From fda0fb5027b76e76ad3302040a95c006d7fd3da0 Mon Sep 17 00:00:00 2001 From: aikai Date: Fri, 12 Apr 2024 15:05:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=AF=84=E8=AE=BA=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/comment/WorkLogCommentController.java | 6 ++ .../app/comment/dto/CommentDTO.java | 8 +- .../app/comment/vo/CommentTypeCountVO.java | 16 ++++ .../comment/WorkLogCommentService.java | 23 ++++-- .../comment/WorkLogCommentServiceImpl.java | 20 +++++ .../worklog/LogInstanceServiceImpl.java | 76 +++++++++---------- .../mapper/comment/WorkLogCommentMapper.xml | 3 + 7 files changed, 105 insertions(+), 47 deletions(-) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/vo/CommentTypeCountVO.java diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/WorkLogCommentController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/WorkLogCommentController.java index c62032d3..2cc45650 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/WorkLogCommentController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/WorkLogCommentController.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.controller.app.comment; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.module.system.controller.app.comment.dto.CommentDTO; import cn.iocoder.yudao.module.system.controller.app.comment.vo.CommentPageListVO; +import cn.iocoder.yudao.module.system.controller.app.comment.vo.CommentTypeCountVO; import cn.iocoder.yudao.module.system.controller.app.comment.vo.WorkLogCommentSaveReqVO; import cn.iocoder.yudao.module.system.service.comment.WorkLogCommentService; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -40,5 +41,10 @@ public class WorkLogCommentController { return success(workLogCommentService.createWorkLogComment(createReqVO)); } + @GetMapping("/queryCommentTypeCount") + @Operation(summary = "获取评论类型数量") + public CommonResult queryCommentTypeCount() { + return success(workLogCommentService.queryCommentTypeCount()); + } } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/dto/CommentDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/dto/CommentDTO.java index 4e488434..8f33d89d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/dto/CommentDTO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/dto/CommentDTO.java @@ -7,11 +7,17 @@ import lombok.Data; @Data public class CommentDTO { - @Schema(description = "工作日志id", required = true) + @Schema(description = "工作日志id") @JsonSerialize(using = ToStringSerializer.class) private Long workLogId; @Schema(description = "评论类型(0|评论;1|回评") private Integer type; @Schema(description = "是否需要显示日志内容 0否 1是 默认否") private Integer isShowWorkLogContent; + + @Schema(description = "是否查看自己的评论记录 0否 1是") + private Integer checkMyselfFlag; + + @Schema(description = "用户id") + private Long userId; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/vo/CommentTypeCountVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/vo/CommentTypeCountVO.java new file mode 100644 index 00000000..09e474ba --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/comment/vo/CommentTypeCountVO.java @@ -0,0 +1,16 @@ +package cn.iocoder.yudao.module.system.controller.app.comment.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class CommentTypeCountVO { + + @Schema(description = "全部数量") + private Integer allNum; + @Schema(description = "评论数量") + private Integer commentNum; + @Schema(description = "回复数量") + private Integer replyNum; + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/comment/WorkLogCommentService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/comment/WorkLogCommentService.java index ea657381..8eeaa7b8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/comment/WorkLogCommentService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/comment/WorkLogCommentService.java @@ -1,16 +1,17 @@ package cn.iocoder.yudao.module.system.service.comment; -import java.util.*; -import javax.validation.*; - -import cn.iocoder.yudao.module.system.controller.app.comment.dto.CommentDTO; -import cn.iocoder.yudao.module.system.controller.app.comment.vo.*; -import cn.iocoder.yudao.module.system.dal.dataobject.comment.WorkLogCommentDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.module.system.controller.app.comment.dto.CommentDTO; +import cn.iocoder.yudao.module.system.controller.app.comment.vo.CommentPageListVO; +import cn.iocoder.yudao.module.system.controller.app.comment.vo.CommentTypeCountVO; +import cn.iocoder.yudao.module.system.controller.app.comment.vo.WorkLogCommentPageReqVO; +import cn.iocoder.yudao.module.system.controller.app.comment.vo.WorkLogCommentSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.comment.WorkLogCommentDO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import javax.validation.Valid; + /** * 工作日志评论 Service 接口 * @@ -57,10 +58,16 @@ public interface WorkLogCommentService { PageResult getWorkLogCommentPage(WorkLogCommentPageReqVO pageReqVO); /** - * * @param page * @param dto * @return */ IPage queryCommentPageList(Page page, CommentDTO dto); + + /** + * 获取评论类型数量 + * + * @return + */ + CommentTypeCountVO queryCommentTypeCount(); } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/comment/WorkLogCommentServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/comment/WorkLogCommentServiceImpl.java index 3de49267..9edc4631 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/comment/WorkLogCommentServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/comment/WorkLogCommentServiceImpl.java @@ -7,12 +7,14 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; import cn.iocoder.yudao.module.system.controller.app.comment.dto.CommentDTO; import cn.iocoder.yudao.module.system.controller.app.comment.vo.CommentPageListVO; +import cn.iocoder.yudao.module.system.controller.app.comment.vo.CommentTypeCountVO; import cn.iocoder.yudao.module.system.controller.app.comment.vo.WorkLogCommentPageReqVO; import cn.iocoder.yudao.module.system.controller.app.comment.vo.WorkLogCommentSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.comment.WorkLogCommentDO; import cn.iocoder.yudao.module.system.dal.dataobject.worklog.LogFormDO; import cn.iocoder.yudao.module.system.dal.mysql.comment.WorkLogCommentMapper; import cn.iocoder.yudao.module.system.service.worklog.LogFormService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.stereotype.Service; @@ -83,6 +85,10 @@ public class WorkLogCommentServiceImpl implements WorkLogCommentService { @Override public IPage queryCommentPageList(Page page, CommentDTO dto) { + if (dto.getCheckMyselfFlag() == 1) { + Long userId = WebFrameworkUtils.getLoginUserId(); + dto.setUserId(userId); + } IPage pageList = workLogCommentMapper.queryCommentPageList(page, dto); List records = pageList.getRecords(); if (dto.getIsShowWorkLogContent() != null && dto.getIsShowWorkLogContent() == 1 && !records.isEmpty()) { @@ -111,4 +117,18 @@ public class WorkLogCommentServiceImpl implements WorkLogCommentService { return pageList; } + @Override + public CommentTypeCountVO queryCommentTypeCount() { + Long userId = WebFrameworkUtils.getLoginUserId(); + CommentTypeCountVO vo = new CommentTypeCountVO(); + Integer commentNum = Math.toIntExact(workLogCommentMapper.selectCount(new LambdaQueryWrapper() + .eq(WorkLogCommentDO::getUserId, userId))); + Integer replyNum = Math.toIntExact(workLogCommentMapper.selectCount(new LambdaQueryWrapper() + .eq(WorkLogCommentDO::getCommentUserId, userId))); + vo.setCommentNum(commentNum); + vo.setReplyNum(replyNum); + vo.setAllNum(commentNum + replyNum); + return vo; + } + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java index 457860ad..c09750a3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java @@ -74,44 +74,44 @@ public class LogInstanceServiceImpl implements LogInstanceService { Set roleIds = permissionService.getMenuRoleIdListByMenuIdFromCache(menuIds.get(0)); List roleDOS = roleService.getRoleList(roleIds); - for (RoleDO roleDo : roleDOS) { - - if (Objects.equals(roleDo.getDataScope(), DataScopeEnum.ALL.getScope())) { //数据权限是全部时 - - roles.add(roleDo.getId()); - }else if (Objects.equals(roleDo.getDataScope(), DataScopeEnum.DEPT_CUSTOM.getScope())) { //数据权限是指定部门 - - //指定部门组里存在 发起人的部门 - if (roleDo.getDataScopeDeptIds().contains(createReqVO.getDeptId())) { - - roles.add(roleDo.getId()); - } - }else if (Objects.equals(roleDo.getDataScope(), DataScopeEnum.DEPT_ONLY.getScope())) { //数据权限是本部门 - - List userDos = adminUserMapper.selectListByRoleId(roleDo.getId()); - for (AdminUserDO userDO : userDos) { - - //权限部门与发起人部门一致时 - if (Objects.equals(userDO.getDeptId(), createReqVO.getDeptId())) { - - readStatus.put(String.valueOf(userDO.getId()), "0"); - } - } - }else if (Objects.equals(roleDo.getDataScope(), DataScopeEnum.DEPT_AND_CHILD.getScope())) { //数据权限是本部门及一下 - - //根据规则ID 查询用户信息 - List userDos = adminUserMapper.selectListByRoleId(roleDo.getId()); - for (AdminUserDO userDO : userDos) { - - Set deptIds = deptService.getChildDeptIdListFromCache(userDO.getDeptId()); - //权限部门与发起人部门一致时 - if (deptIds.contains(createReqVO.getDeptId())) { - - readStatus.put(String.valueOf(userDO.getId()), "0"); - } - } - } - } +// for (RoleDO roleDo : roleDOS) { +// +// if (Objects.equals(roleDo.getDataScope(), DataScopeEnum.ALL.getScope())) { //数据权限是全部时 +// +// roles.add(roleDo.getId()); +// }else if (Objects.equals(roleDo.getDataScope(), DataScopeEnum.DEPT_CUSTOM.getScope())) { //数据权限是指定部门 +// +// //指定部门组里存在 发起人的部门 +// if (roleDo.getDataScopeDeptIds().contains(createReqVO.getDeptId())) { +// +// roles.add(roleDo.getId()); +// } +// }else if (Objects.equals(roleDo.getDataScope(), DataScopeEnum.DEPT_ONLY.getScope())) { //数据权限是本部门 +// +// List userDos = adminUserMapper.selectListByRoleId(roleDo.getId()); +// for (AdminUserDO userDO : userDos) { +// +// //权限部门与发起人部门一致时 +// if (Objects.equals(userDO.getDeptId(), createReqVO.getDeptId())) { +// +// readStatus.put(String.valueOf(userDO.getId()), "0"); +// } +// } +// }else if (Objects.equals(roleDo.getDataScope(), DataScopeEnum.DEPT_AND_CHILD.getScope())) { //数据权限是本部门及一下 +// +// //根据规则ID 查询用户信息 +// List userDos = adminUserMapper.selectListByRoleId(roleDo.getId()); +// for (AdminUserDO userDO : userDos) { +// +// Set deptIds = deptService.getChildDeptIdListFromCache(userDO.getDeptId()); +// //权限部门与发起人部门一致时 +// if (deptIds.contains(createReqVO.getDeptId())) { +// +// readStatus.put(String.valueOf(userDO.getId()), "0"); +// } +// } +// } +// } //通过满足条件的roleId 查询所有用户信息 List userRoleDOS = userRoleMapper.selectListByRoleIds(roles); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/comment/WorkLogCommentMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/comment/WorkLogCommentMapper.xml index 144d974b..0ab17dbb 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/comment/WorkLogCommentMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/comment/WorkLogCommentMapper.xml @@ -43,6 +43,9 @@ and a.type = #{dto.type} + + and (a.user_id = #{dto.userId} or a.comment_user_id = #{dto.userId}) + ORDER BY a.create_time DESC