Merge remote-tracking branch 'origin/main'

This commit is contained in:
2025-12-16 19:15:55 +08:00
3 changed files with 47 additions and 10 deletions

View File

@@ -697,7 +697,7 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
for (TaskNode taskNode : taskNodeList) {
createDir(taskNode.getUuid(), parentUuid, taskNode.getNodeName());
// 发送消息通知
sendMessage(MessageTemplateEnum.TASK_ISSUE, taskNode.getNodeName());
sendMessage(MessageTemplateEnum.TASK_ISSUE, taskNode.getNodeName(), taskNode.getUuid());
}
for (TaskNode taskNode : taskNodeList) {
// 更新文件权限
@@ -783,12 +783,15 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
return response;
}
private void sendMessage(MessageTemplateEnum templateEnum, String taskName) {
private void sendMessage(MessageTemplateEnum templateEnum, String taskName, String uuid) {
SendMsgReq req = new SendMsgReq();
req.setTitle(templateEnum.getTitle());
req.setContent(templateEnum.getContent(taskName));
req.setTenantId(ThreadLocalContext.getTenantId().toString());
req.setUserId(ThreadLocalContext.getUserId().toString());
JSONObject params = new JSONObject();
params.put("taskId", uuid);
req.setParams(JSONObject.toJSONString(params));
messageFeignClient.sendMessage(req);
}

View File

@@ -44,8 +44,8 @@ public class SystemLogController implements ISysLogFeignClient {
* @param sysLog 系统日志
* @return
*/
@GetMapping("/page")
public SdmResponse<PageDataResp<List<SysLogDTO>>> getLogPage(@ParameterObject SysLogDTO sysLog) {
@PostMapping("/page")
public SdmResponse<PageDataResp<List<SysLogDTO>>> getLogPage(@RequestBody SysLogDTO sysLog) {
return logService.getLogByPage(sysLog);
}
@@ -54,8 +54,8 @@ public class SystemLogController implements ISysLogFeignClient {
* @param sysLog
* @return
*/
@GetMapping("/getUserLoginStatistics")
public SdmResponse<List<LoginStateResp>> getUserLoginStatistics(@ParameterObject SysLogDTO sysLog) {
@PostMapping("/getUserLoginStatistics")
public SdmResponse<List<LoginStateResp>> getUserLoginStatistics(@RequestBody SysLogDTO sysLog) {
return logService.getUserLoginStatistics(sysLog);
}

View File

@@ -31,9 +31,14 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import static com.mysql.cj.util.TimeUtil.DATE_FORMATTER;
/**
* <p>
@@ -62,6 +67,9 @@ public class ISysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> implem
}
PageHelper.startPage(sysLog.getCurrent(), sysLog.getSize());
List<SysLog> sysLogList = this.list(wrapper);
PageInfo<SysLog> page = new PageInfo<>(sysLogList);
long total = page.getTotal();
List<SysLogDTO> sysLogDTOList = sysLogList.stream().map(i -> {
SysLogDTO sysLogDTO = new SysLogDTO();
BeanUtils.copyProperties(i, sysLogDTO);
@@ -70,14 +78,40 @@ public class ISysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> implem
}).toList();
setCreatorNames(sysLogDTOList);
PageInfo<SysLogDTO> page = new PageInfo<>(sysLogDTOList);
return PageUtils.getJsonObjectSdmResponse(sysLogDTOList, page);
PageInfo<SysLogDTO> page1 = new PageInfo<>(sysLogDTOList);
page1.setTotal(total);
return PageUtils.getJsonObjectSdmResponse(sysLogDTOList, page1);
}
@Override
public SdmResponse<List<LoginStateResp>> getUserLoginStatistics(SysLogDTO sysLog) {
List<LoginStateResp> respList = baseMapper.countDailyLoginUsers(sysLog.getCreateTimeArr()[0], sysLog.getCreateTimeArr()[1]);
return SdmResponse.success(respList);
String startDate = sysLog.getCreateTimeArr()[0];
String endDate = sysLog.getCreateTimeArr()[1];
List<LoginStateResp> respList = baseMapper.countDailyLoginUsers(startDate + " 00:00:00", endDate + " 23:59:59");
// 将结果转换为Map方便查找
Map<String, Integer> resultMap = respList.stream()
.collect(Collectors.toMap(
LoginStateResp::getDate,
LoginStateResp::getLoginUserCount
));
// 解析日期范围
LocalDate start = LocalDate.parse(startDate, DATE_FORMATTER);
LocalDate end = LocalDate.parse(endDate, DATE_FORMATTER);
// 生成完整日期列表
List<LoginStateResp> fullResults = new ArrayList<>();
LocalDate currentDate = start;
while (!currentDate.isAfter(end)) {
LoginStateResp resp = new LoginStateResp();
String dateStr = currentDate.format(DATE_FORMATTER);
resp.setDate(dateStr);
// 如果有数据则用数据没有则为0
resp.setLoginUserCount(resultMap.getOrDefault(dateStr, 0));
fullResults.add(resp);
currentDate = currentDate.plusDays(1);
}
return SdmResponse.success(fullResults);
}
@Override