xiewj 2 years ago
parent
commit
6d159f3320

+ 7 - 1
src/main/java/com/fdkankan/site/controller/CommentController.java

@@ -53,12 +53,18 @@ public class CommentController extends BaseController {
      */
     @PostMapping("/reply")
     public ResultData Reply(@RequestBody Comments param){
-        VUtils.isTure(param.getParentId() == null).throwMessage(ResultCode.PARAM_MISS);
+//        VUtils.isTure(param.getParentId() == null).throwMessage(ResultCode.PARAM_MISS);
         if (Optional.ofNullable(param.getCommentId()).isPresent()){
             log.info("不为空修改");
             commentsService.updateById(param);
         } else {
             log.info("为空");
+            if (param.getParentId()==null){
+                param.setParentId(0);
+            }
+            if (param.getParentUserId()==null){
+                param.setParentUserId(0);
+            }
             commentsService.save(param);
 
         }

+ 2 - 2
src/main/java/com/fdkankan/site/controller/LoginController.java

@@ -50,9 +50,9 @@ public class LoginController extends BaseController {
                         .setIsLastingCookie(false)
                         .setToken(fdkkLoginVo.getData().getToken());
                 FdkkLoginVo data = fdkkLoginVo.getData();
-                User user = userService.findByUserName(data.getUser().getUserName(),data.getUser().getId());
+                User user = userService.findByUserName(data.getUser().getUserName(),data.getUser().getId(),data.getUser().getHead());
                 StpUtil.login(user.getUserName(), saLoginModel);
-//                StpUtil.getSession().set("user",user);
+                StpUtil.getSession().set("user",user);
                 return ResultData.ok(data);
             }
             return ResultData.error(fdkkLoginVo.getCode(), fdkkLoginVo.getMsg());

+ 4 - 2
src/main/java/com/fdkankan/site/controller/MarkingController.java

@@ -77,13 +77,15 @@ public class MarkingController  extends BaseController {
         if (Optional.ofNullable(param.getMarkingId()).isPresent()){
             // 写不为空的逻辑
             log.info("不为空修改");
-            ProjectTeam byUserIdAndProjectId = projectTeamService.findByUserIdAndProjectId(getUserId(), param.getProjectId());
-            param.setLastUpdateBy(byUserIdAndProjectId.getNickName());
+//            ProjectTeam byUserIdAndProjectId = projectTeamService.findByUserIdAndProjectId(getUserId(), param.getProjectId());
+//            param.setLastUpdateBy(byUserIdAndProjectId.getNickName());
             markingService.updateById(param);
             markingId=param.getMarkingId();
         } else {
             // 写为空的逻辑
             log.info("为空");
+//            ProjectTeam byUserIdAndProjectId = projectTeamService.findByUserIdAndProjectId(getUserId(), param.getProjectId());
+//            param.setLastCreateBy(byUserIdAndProjectId.getNickName());
             markingService.save(param);
             markingId=param.getMarkingId();
         }

+ 13 - 0
src/main/java/com/fdkankan/site/entity/Comments.java

@@ -41,4 +41,17 @@ public class Comments extends BaseEntity{
      * */
     @TableField(value = "parent_id")
     private Integer parentId;
+
+    /**
+     * 评论id
+     * */
+    @TableField(value = "reply_id")
+    private Integer replyId;
+
+    /**
+     * 回复节点用户
+     * */
+    @TableField(value = "parent_user_id")
+    private Integer parentUserId;
+
 }

+ 1 - 5
src/main/java/com/fdkankan/site/entity/Marking.java

@@ -40,10 +40,6 @@ public class Marking extends BaseEntity{
     */
    @TableField(value = "marking_title")
    private String markingTitle;
-   /**
-    * 最后更新者
-    */
-   @TableField(value = "last_update_by")
-   private String lastUpdateBy;
+
 
 }

+ 4 - 1
src/main/java/com/fdkankan/site/entity/User.java

@@ -22,8 +22,11 @@ public class User extends BaseEntity{
    @TableField("user_name")
    private String userName;
 
+   @TableField("head")
+   private String head;
+
    @TableField("fdkk_id")
-   private Integer FdkkId;
+   private Integer fdkkId;
 //   /**
 //    * 部门ID
 //    */

+ 3 - 1
src/main/java/com/fdkankan/site/entity/dto/CommentDTO.java

@@ -14,7 +14,9 @@ import java.util.List;
  */
 @Data
 public class CommentDTO extends Comments {
-   private String userName;
+   private String nickName;
+   private String replyNickName;
+   private String head;
 
 
    /** 子评论*/

+ 11 - 0
src/main/java/com/fdkankan/site/entity/dto/MarkingDTO.java

@@ -1,5 +1,6 @@
 package com.fdkankan.site.entity.dto;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fdkankan.site.entity.Marking;
 import com.fdkankan.site.entity.User;
 import lombok.Data;
@@ -13,4 +14,14 @@ import java.util.List;
 @Data
 public class MarkingDTO extends Marking {
    private List<UserDTO> users;
+
+   /**
+    * 最后创建者
+    */
+   private String lastCreateBy;
+   /**
+    * 最后更新者
+    */
+   private String lastUpdateBy;
+
 }

+ 10 - 4
src/main/java/com/fdkankan/site/entity/vo/TreeComments.java

@@ -21,12 +21,15 @@ public class TreeComments implements Serializable
     private static final long serialVersionUID = 1L;
 
     /** 节点ID */
-    private Integer id;
+    private Integer commentId;
 
     /** 节点名称 */
-    private String userName;
+    private String nickName;
+    private String replyNickName;
     private String content;
+    private String head;
     private Integer userId;
+    private Integer replyId;
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
     private LocalDateTime createTime;
@@ -37,11 +40,14 @@ public class TreeComments implements Serializable
 
     public TreeComments(CommentDTO commentDTO)
     {
-        this.id = commentDTO.getCommentId();
-        this.userName = commentDTO.getUserName();
+        this.commentId = commentDTO.getCommentId();
+        this.nickName = commentDTO.getNickName();
+        this.head = commentDTO.getHead();
+        this.replyNickName = commentDTO.getReplyNickName();
         this.userId = commentDTO.getUserId();
         this.createTime = commentDTO.getCreateTime();
         this.content = commentDTO.getContent();
+        this.replyId = commentDTO.getReplyId();
         this.children = commentDTO.getChildren().stream().map(TreeComments::new).collect(Collectors.toList());
     }
 

+ 7 - 4
src/main/java/com/fdkankan/site/handler/MyMetaObjectHandler.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.amazonaws.services.dynamodbv2.xspec.S;
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.fdkankan.site.entity.User;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.reflection.MetaObject;
 import org.springframework.stereotype.Component;
@@ -26,8 +27,9 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
         // 起始版本 3.3.3(推荐)
         boolean createByTimeSetter = metaObject.hasSetter("createBy");
 
-        if (StpUtil.isLogin()&&ObjectUtil.isNotEmpty(StpUtil.getLoginId())&&createByTimeSetter){
-            this.setFieldValByName( "createBy", String.valueOf(StpUtil.getLoginId()),metaObject); // 起始版本 3.3.3(推荐)
+        if (StpUtil.isLogin()&&ObjectUtil.isNotEmpty(StpUtil.getSession().getModel("user",User.class))&&createByTimeSetter){
+            User user = StpUtil.getSession().getModel("user",User.class);
+            this.setFieldValByName( "createBy", user.getUserId(),metaObject); // 起始版本 3.3.3(推荐)
         }
         this.setFieldValByName("createTime", LocalDateTime.now(), metaObject);
     }
@@ -36,8 +38,9 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
     public void updateFill(MetaObject metaObject) {
         // 起始版本 3.3.3(推荐)
         boolean updateByTimeSetter = metaObject.hasSetter("updateBy");
-        if (StpUtil.isLogin()&&ObjectUtil.isNotEmpty(StpUtil.getLoginId())&&updateByTimeSetter){
-            this.setFieldValByName( "updateBy", String.valueOf(StpUtil.getLoginId()),metaObject); // 起始版本 3.3.3(推荐)
+        if (StpUtil.isLogin()&&ObjectUtil.isNotEmpty(StpUtil.getSession().getModel("user",User.class))&&updateByTimeSetter){
+            User user = (User)StpUtil.getSession().get("user");
+            this.setFieldValByName( "updateBy", user.getUserId(),metaObject); // 起始版本 3.3.3(推荐)
         }
         this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
     }

+ 5 - 0
src/main/java/com/fdkankan/site/mapper/ICommentsMapper.java

@@ -2,8 +2,12 @@ package com.fdkankan.site.mapper;
 
 import com.fdkankan.site.entity.Comments;
 import com.fdkankan.site.entity.Menu;
+import com.fdkankan.site.entity.dto.CommentDTO;
 import com.github.yulichang.base.MPJBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -15,5 +19,6 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface ICommentsMapper extends MPJBaseMapper<Comments> {
+    List<CommentDTO> findByMarkingId(@Param("markingId")Integer markingId);
 
 }

+ 1 - 1
src/main/java/com/fdkankan/site/service/IUserService.java

@@ -14,7 +14,7 @@ import com.fdkankan.site.entity.User;
 public interface IUserService extends IService<User> {
 
     User findByUserName(String userName);
-    User findByUserName(String userName,Integer fdkkId);
+    User findByUserName(String userName,Integer fdkkId,String head);
     User findByTokenCovUserName(String token);
 
 }

+ 2 - 6
src/main/java/com/fdkankan/site/service/impl/CommentsServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.site.common.ResultCode;
 import com.fdkankan.site.entity.*;
 import com.fdkankan.site.entity.dto.CommentDTO;
+import com.fdkankan.site.entity.dto.ProjectTeamDTO;
 import com.fdkankan.site.entity.vo.TreeComments;
 import com.fdkankan.site.exception.BusinessException;
 import com.fdkankan.site.mapper.ICommentsMapper;
@@ -25,12 +26,7 @@ public class CommentsServiceImpl extends ServiceImpl<ICommentsMapper, Comments>
 
     @Override
     public List<CommentDTO> findByMarkingId(Integer markingId) {
-        MPJLambdaWrapper<Comments> wrapper = new MPJLambdaWrapper<Comments>()
-                .selectAll(Comments.class)
-                .select(User::getUserName,User::getUserId)
-                .leftJoin(User.class, User::getUserId, Comments::getUserId)
-                .eq(Comments::getMarkingId,markingId);
-        return baseMapper.selectJoinList(CommentDTO.class,wrapper);
+        return getBaseMapper().findByMarkingId(markingId);
     }
 
     @Override

+ 18 - 0
src/main/java/com/fdkankan/site/service/impl/MarkingServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fdkankan.site.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -17,6 +18,7 @@ import com.fdkankan.site.request.MarkingSearchParam;
 import com.fdkankan.site.service.IMarkingService;
 import com.fdkankan.site.service.IProjectLogService;
 import com.fdkankan.site.service.IMarkingUserService;
+import com.fdkankan.site.service.IProjectTeamService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -30,6 +32,10 @@ public class MarkingServiceImpl extends ServiceImpl<IMarkingMapper, Marking> imp
     IProjectLogService projectLogService;
     @Autowired
     IMarkingUserService markingUserService;
+    @Autowired
+    IProjectTeamService projectTeamService;
+
+
     @Override
     public Object pageList(MarkingSearchParam param) {
 //        VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
@@ -62,6 +68,18 @@ public class MarkingServiceImpl extends ServiceImpl<IMarkingMapper, Marking> imp
         for (MarkingDTO record : page.getRecords()) {
             List<UserDTO> users = markingUserService.findByProjectIdAndMarkingId(record.getProjectId(), record.getMarkingId());
             record.setUsers(users);
+            ProjectTeam create = projectTeamService.findByUserIdAndProjectId(Integer.valueOf(record.getCreateBy()), record.getProjectId());
+            if (ObjectUtil.isNotNull(create)){
+                if (StrUtil.isNotEmpty(create.getNickName())){
+                    record.setLastCreateBy(create.getNickName());
+                }
+            }
+            ProjectTeam update = projectTeamService.findByUserIdAndProjectId(Integer.valueOf(record.getCreateBy()), record.getProjectId());
+            if (ObjectUtil.isNotNull(update)){
+                if (StrUtil.isNotEmpty(update.getNickName())){
+                    record.setLastUpdateBy(update.getNickName());
+                }
+            }
         }
 
         return PageInfo.PageInfo(page);

+ 2 - 10
src/main/java/com/fdkankan/site/service/impl/UserServiceImpl.java

@@ -2,19 +2,10 @@ package com.fdkankan.site.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fdkankan.site.common.PageInfo;
-import com.fdkankan.site.common.ResultCode;
 import com.fdkankan.site.common.util.JwtUtil;
-import com.fdkankan.site.common.util.VUtils;
-import com.fdkankan.site.entity.Marking;
-import com.fdkankan.site.entity.ProjectNum;
 import com.fdkankan.site.entity.User;
-import com.fdkankan.site.mapper.IMarkingMapper;
 import com.fdkankan.site.mapper.IUserMapper;
-import com.fdkankan.site.request.MarkingSearchParam;
-import com.fdkankan.site.service.IMarkingService;
 import com.fdkankan.site.service.IUserService;
 import org.springframework.stereotype.Service;
 
@@ -37,13 +28,14 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
     }
 
     @Override
-    public User findByUserName(String userName, Integer fdkkId) {
+    public User findByUserName(String userName, Integer fdkkId,String head) {
         LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
         wrapper.in(User::getUserName,userName);
         User one = this.getOne(wrapper);
         if (ObjectUtil.isNotNull(one)){
             if (ObjectUtil.isNull(one.getFdkkId())){
                 one.setFdkkId(fdkkId);
+                one.setHead(head);
                 updateById(one);
             }
             return one;

+ 36 - 0
src/main/resources/mapper/site/CommentsMapper.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.site.mapper.ICommentsMapper">
+
+    <select id="findByMarkingId" resultType="com.fdkankan.site.entity.dto.CommentDTO">
+        SELECT
+        t.comment_id,
+        t.marking_id,
+        t.content,
+        t.user_id,
+        t.parent_id,
+        t.reply_id,
+        t.parent_user_id,
+        t.tb_status,
+        t.create_time,
+        t.update_time,
+        t.create_by,
+        t.update_by,
+        (SELECT t2.nick_name FROM t_project_team t2 WHERE t1.project_id=t2.project_id and t.user_id=t2.user_id and t2.tb_status = 0 ) nick_name,
+        (SELECT t3.nick_name FROM t_project_team t3 WHERE t1.project_id=t3.project_id and t.parent_user_id=t3.user_id and t3.tb_status = 0 ) reply_nick_name ,
+        (SELECT t4.head FROM t_users t4 WHERE   t.user_id=t.user_id and t4.tb_status = 0 ) head
+        FROM
+        t_comments t
+        LEFT JOIN t_marking t1 ON ( t1.marking_id = t.marking_id )
+        WHERE
+        t.tb_status = 0
+        AND t1.tb_status = 0
+        <if test="markingId != null">
+            AND (
+                 t.marking_id= #{markingId}
+              )
+        </if>
+        ORDER BY
+            t.comment_id ASC
+    </select>
+</mapper>