Parcourir la source

Merge branch 'system-165' of uskycloud/usky-cloud into master

gez il y a 8 mois
Parent
commit
1fc04aff6b
14 fichiers modifiés avec 401 ajouts et 53 suppressions
  1. 70 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/HceReviewController.java
  2. 9 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysUserController.java
  3. 91 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/HceReview.java
  4. 16 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/HceReviewMapper.java
  5. 2 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysDeptMapper.java
  6. 25 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/HceReviewService.java
  7. 2 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysDeptService.java
  8. 82 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/HceReviewServiceImpl.java
  9. 12 23
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysDeptServiceImpl.java
  10. 40 0
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/HceReviewRequestVO.java
  11. 1 25
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/TreeNode.java
  12. 20 5
      base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/UserTreeNode.java
  13. 22 0
      base-modules/service-system/service-system-biz/src/main/resources/mapper/system/HceReviewMapper.xml
  14. 9 0
      base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysDeptMapper.xml

+ 70 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/HceReviewController.java

@@ -0,0 +1,70 @@
+package com.usky.system.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.system.domain.HceReview;
+import com.usky.system.service.HceReviewService;
+import com.usky.system.service.vo.HceReviewRequestVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 帮助中心建议反馈表 前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2024-08-07
+ */
+@RestController
+@RequestMapping("/hceReview")
+public class HceReviewController {
+    @Autowired
+    private HceReviewService hceReviewService;
+
+    /**
+     * 新增
+     * @param hceReview
+     * @return
+     */
+    @PostMapping
+    ApiResult<Void> add(@RequestBody HceReview hceReview){
+        hceReviewService.add(hceReview);
+        return ApiResult.success();
+    }
+
+    /**
+     * 修改
+     * @param hceReview
+     * @return
+     */
+    @PutMapping
+    ApiResult<Void> edit(@RequestBody HceReview hceReview){
+        hceReviewService.edit(hceReview);
+        return ApiResult.success();
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/{id}")
+    ApiResult<Void> remove(@PathVariable("id") Integer id){
+        hceReviewService.remove(id);
+        return ApiResult.success();
+    }
+
+    /**
+     * 列表
+     * @param requestVO
+     * @return
+     */
+    @PostMapping("page")
+    ApiResult<CommonPage<HceReview>> page(@RequestBody HceReviewRequestVO requestVO){
+        return ApiResult.success(hceReviewService.page(requestVO));
+    }
+
+}
+

+ 9 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysUserController.java

@@ -5,9 +5,11 @@ import com.usky.common.security.utils.SecurityUtils;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.exception.BusinessErrorCode;
 import com.usky.system.controller.web.page.TableDataInfo;
+import com.usky.system.domain.SysDept;
 import com.usky.system.domain.SysRole;
 import com.usky.system.domain.SysUser;
 import com.usky.system.domain.constants.UserConstants;
+import com.usky.system.service.ISysDeptService;
 import com.usky.system.service.ISysPostService;
 import com.usky.system.service.ISysRoleService;
 import com.usky.system.service.ISysUserService;
@@ -40,6 +42,9 @@ public class SysUserController extends BaseController
     @Autowired
     private ISysPostService postService;
 
+    @Autowired
+    private ISysDeptService deptService;
+
     /**
      * 获取用户列表
      */
@@ -109,6 +114,10 @@ public class SysUserController extends BaseController
         if(UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique1(user.getPhonenumber(),user.getTenantId()))){
             return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新增手机号'" + user.getPhonenumber() + "'失败,手机号已存在");
         }
+        List<SysDept> list = deptService.deptListByTenant(user.getTenantId());
+        if (list.size() > 0){
+            user.setDeptId(list.get(0).getDeptId());
+        }
         user.setUserType("00");
         user.setTenantId(user.getTenantId());
         user.setCreateBy(user.getUserName());

+ 91 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/HceReview.java

@@ -0,0 +1,91 @@
+package com.usky.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 帮助中心建议反馈表
+ * </p>
+ *
+ * @author han
+ * @since 2024-08-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class HceReview implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 用户账号
+     */
+    private String userName;
+
+    /**
+     * 用户昵称
+     */
+    private String nickName;
+
+    /**
+     * 反馈问题类型
+     */
+    private Integer reviewType;
+
+    /**
+     * 反馈问题内容
+     */
+    private String reviewContent;
+
+    /**
+     * 反馈图片
+     */
+    private String reviewPicture;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 处理人
+     */
+    private String handleBy;
+
+    /**
+     * 处理时间
+     */
+    private LocalDateTime handleTime;
+
+    /**
+     * 组织结构ID
+     */
+    private Integer deptId;
+
+    /**
+     * 租户ID
+     */
+    private Integer tenantId;
+
+    /**
+     * 处理内容
+     */
+    private String handleContent;
+
+
+}

+ 16 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/HceReviewMapper.java

@@ -0,0 +1,16 @@
+package com.usky.system.mapper;
+
+import com.usky.system.domain.HceReview;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 帮助中心建议反馈表 Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2024-08-07
+ */
+public interface HceReviewMapper extends CrudMapper<HceReview> {
+
+}

+ 2 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysDeptMapper.java

@@ -26,6 +26,8 @@ public interface SysDeptMapper extends BaseMapper<SysDept>
 
     public List<SysDept> deptList(SysDept dept);
 
+    public List<SysDept> deptListByTenant(Integer tenantId);
+
     /**
      * 根据角色ID查询部门树信息
      * 

+ 25 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/HceReviewService.java

@@ -0,0 +1,25 @@
+package com.usky.system.service;
+
+import com.usky.common.core.bean.CommonPage;
+import com.usky.system.domain.HceReview;
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.system.service.vo.HceReviewRequestVO;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * <p>
+ * 帮助中心建议反馈表 服务类
+ * </p>
+ *
+ * @author han
+ * @since 2024-08-07
+ */
+public interface HceReviewService extends CrudService<HceReview> {
+    void add(HceReview hceReview);
+
+    void edit(HceReview hceReview);
+
+    void remove(Integer id);
+
+    CommonPage<HceReview> page(HceReviewRequestVO requestVO);
+}

+ 2 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysDeptService.java

@@ -26,6 +26,8 @@ public interface ISysDeptService extends IService<SysDept>
 
     public List<SysDept> deptList(SysDept dept);
 
+    public List<SysDept> deptListByTenant(Integer tenantId);
+
     /**
      * 构建前端所需要树结构
      * 

+ 82 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/HceReviewServiceImpl.java

@@ -0,0 +1,82 @@
+package com.usky.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.datascope.annotation.DataScope;
+import com.ruoyi.common.datascope.context.DataScopeContextHolder;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.system.domain.HceReview;
+import com.usky.system.mapper.HceReviewMapper;
+import com.usky.system.service.HceReviewService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.system.service.vo.HceReviewRequestVO;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.function.LongToIntFunction;
+
+/**
+ * <p>
+ * 帮助中心建议反馈表 服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2024-08-07
+ */
+@Service
+public class HceReviewServiceImpl extends AbstractCrudService<HceReviewMapper, HceReview> implements HceReviewService {
+
+    @Override
+    public void add(HceReview hceReview){
+        hceReview.setUserName(SecurityUtils.getUsername());
+        hceReview.setNickName(SecurityUtils.getLoginUser().getSysUser().getNickName());
+        hceReview.setStatus(0);
+        hceReview.setCreateTime(LocalDateTime.now());
+        hceReview.setDeptId(Integer.parseInt(String.valueOf(SecurityUtils.getLoginUser().getSysUser().getDeptId())));
+        hceReview.setTenantId(SecurityUtils.getTenantId());
+
+        this.save(hceReview);
+    }
+
+    @Override
+    public void edit(HceReview hceReview){
+        hceReview.setStatus(1);
+        hceReview.setHandleBy(SecurityUtils.getUsername());
+        hceReview.setHandleTime(LocalDateTime.now());
+
+        this.updateById(hceReview);
+    }
+
+    @Override
+    public void remove(Integer id){
+        if(id == null || id == 0){
+            throw new BusinessException("栏目id不能为空或者等于0");
+        }
+
+        this.removeById(id);
+    }
+
+    @Override
+    @DataScope
+    public CommonPage<HceReview> page(HceReviewRequestVO requestVO){
+        IPage<HceReview> page = new Page<>(requestVO.getPageNum(),requestVO.getPageSize());
+        LambdaQueryWrapper<HceReview> queryWrapper = Wrappers.lambdaQuery();
+        if(StringUtils.isNotBlank(requestVO.getName())){
+            queryWrapper.and(wrapper->wrapper.like(HceReview::getUserName,requestVO.getName()).or().like(HceReview::getNickName,requestVO.getName()));
+        }
+        queryWrapper.between(StringUtils.isNotBlank(requestVO.getStartTime())&&StringUtils.isNotBlank(requestVO.getEndTime()),HceReview::getCreateTime,requestVO.getStartTime(),requestVO.getEndTime())
+                .eq(requestVO.getStatus() != null,HceReview::getStatus,requestVO.getStatus())
+                .apply(DataScopeContextHolder.getDataScopeSql())
+                .orderByDesc(HceReview::getId);
+        page = this.page(page,queryWrapper);
+
+        return new CommonPage<>(page.getRecords(),page.getTotal(),requestVO.getPageSize(),requestVO.getPageNum());
+    }
+
+}

+ 12 - 23
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysDeptServiceImpl.java

@@ -69,6 +69,11 @@ public class SysDeptServiceImpl extends AbstractCrudService<SysDeptMapper, SysDe
         return deptMapper.deptList(dept);
     }
 
+    @Override
+    public List<SysDept> deptListByTenant(Integer tenantId) {
+        return deptMapper.deptListByTenant(tenantId);
+    }
+
 
     @Override
     public List<TreeNode> buildDeptUserTreeSelect(List<SysDept> depts, List<SysUser> users) {
@@ -124,6 +129,13 @@ public class SysDeptServiceImpl extends AbstractCrudService<SysDeptMapper, SysDe
         return returnList;
     }
 
+    /**
+     * @description: 递归列表
+     * @author: fu
+     * @date: 2024/8/8 16:00
+     * @param: [list, t]
+     * @return: void
+     **/
     private void recursionFn2(List<SysDept> list, SysDept t) {
         List<SysDept> childList = getChildList(list, t);
         t.setChildren(childList);
@@ -173,29 +185,6 @@ public class SysDeptServiceImpl extends AbstractCrudService<SysDeptMapper, SysDe
         return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
     }
 
-/*    @Override
-    public List<TreeSelect> buildDeptUserTreeSelect(List<SysDept> depts, List<SysUser> users) {
-        List<SysDept> deptTrees = buildDeptTree(depts);
-        List<TreeSelect> treeSelectList = new ArrayList<>();
-        for (SysDept dept : deptTrees) {
-            TreeSelect treeSelect = new TreeSelect();
-            treeSelect.setId(dept.getDeptId());
-            treeSelect.setLabel(dept.getDeptName());
-            List<TreeSelect> children = new ArrayList<>();
-            for (SysUser user : users) {
-                if (user.getDeptId().equals(dept.getDeptId())) {
-                    TreeSelect child = new TreeSelect();
-                    child.setId(user.getUserId());
-                    child.setLabel(user.getNickName());
-                    children.add(child);
-                }
-            }
-            treeSelect.setChildren(children);
-            treeSelectList.add(treeSelect);
-        }
-        return treeSelectList;
-    }*/
-
 
     /**
      * 根据角色ID查询部门树信息

+ 40 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/HceReviewRequestVO.java

@@ -0,0 +1,40 @@
+package com.usky.system.service.vo;
+
+import lombok.Data;
+
+@Data
+public class HceReviewRequestVO {
+
+    /**
+     * 账号、昵称
+     */
+    private String name;
+
+    /**
+     * 处理状态
+     */
+    private Integer status;
+
+    /**
+     * 开始时间
+     */
+    private String startTime;
+
+    /**
+     * 结束时间
+     */
+    private String endTime;
+
+    /**
+     * 当前页
+     *
+     */
+    private Integer pageNum;
+
+    /**
+     * 每页条数
+     */
+    private Integer pageSize;
+
+
+}

+ 1 - 25
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/TreeNode.java

@@ -30,39 +30,15 @@ public class TreeNode implements Serializable {
      */
     private String label;
 
-//    /**
-//     * 用户头像
-//     */
-//    private String avatar;
-//
-//    /**
-//     * 用户职位
-//     */
-//    private String post;
-
     /**
      * 子节点
      */
-    @JsonInclude(JsonInclude.Include.NON_EMPTY)
+    //@JsonInclude(JsonInclude.Include.NON_EMPTY)
     private List<TreeNode> children;
 
     public TreeNode() {
     }
 
-    public TreeNode(Long id, String label, List<TreeNode> children) {
-        this.id = id;
-        this.label = label;
-        this.children = children;
-    }
-
-//    public TreeNode(SysUser user) {
-//        this.id = user.getUserId();
-//        this.label = user.getNickName();
-//        this.avatar = user.getAvatar();
-//        this.post = user.getPost();
-//        this.children = new ArrayList<>();
-//    }
-
     public TreeNode(SysDept dept) {
         this.id = dept.getDeptId();
         this.label = dept.getDeptName();

+ 20 - 5
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/vo/UserTreeNode.java

@@ -1,10 +1,10 @@
 package com.usky.system.service.vo;
-import com.usky.system.domain.SysDeptVO;
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.usky.system.domain.SysUser;
 import lombok.Data;
 
 import java.util.ArrayList;
-import java.util.Date;
+import java.util.List;
 
 /**
  * @description:TODO
@@ -12,7 +12,21 @@ import java.util.Date;
  * @create: 2024-08-01 11:40
  */
 @Data
-public class UserTreeNode extends TreeNode {
+public class UserTreeNode extends TreeNode{
+
+    /**
+     * 节点ID
+     */
+    private Long id;
+
+    /**
+     * 节点名称
+     */
+    private String label;
+
+     /** 子节点 */
+    @JsonInclude(JsonInclude.Include.NON_EMPTY)
+    private List<TreeNode> children;
 
     /** 用户ID */
     private Long userId;
@@ -44,9 +58,9 @@ public class UserTreeNode extends TreeNode {
     /** 岗位 */
     private String post;
 
-
     public UserTreeNode(SysUser user) {
-        super(user.getUserId(), user.getNickName(), new ArrayList<>());
+        this.id = user.getUserId();
+        this.label = user.getNickName();
         this.userId = user.getUserId();
         this.deptId = user.getDeptId();
         this.userName = user.getUserName();
@@ -57,6 +71,7 @@ public class UserTreeNode extends TreeNode {
         this.avatar = user.getAvatar();
         this.address = user.getAddress();
         this.post = user.getPost();
+        this.children = new ArrayList<>();
     }
 }
 

+ 22 - 0
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/HceReviewMapper.xml

@@ -0,0 +1,22 @@
+<?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.usky.system.mapper.HceReviewMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.system.domain.HceReview">
+        <id column="id" property="id" />
+        <result column="user_name" property="userName" />
+        <result column="nick_name" property="nickName" />
+        <result column="review_type" property="reviewType" />
+        <result column="review_content" property="reviewContent" />
+        <result column="review_picture" property="reviewPicture" />
+        <result column="status" property="status" />
+        <result column="create_time" property="createTime" />
+        <result column="handle_by" property="handleBy" />
+        <result column="handle_time" property="handleTime" />
+        <result column="dept_id" property="deptId" />
+        <result column="tenant_id" property="tenantId" />
+        <result column="handle_content" property="handleContent" />
+    </resultMap>
+
+</mapper>

+ 9 - 0
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysDeptMapper.xml

@@ -58,6 +58,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		</if>
 		order by d.parent_id, d.order_num
 	</select>
+
+	<select id="deptListByTenant" parameterType="com.usky.system.domain.SysDept" resultMap="SysDeptResult">
+		<include refid="selectDeptVo"/>
+		where d.del_flag = '0'
+		<if test="tenantId != null and tenantId != '' and tenantId != 0">
+			AND tenant_id = #{tenantId}
+		</if>
+		order by d.parent_id, d.order_num
+	</select>
     
     <select id="selectDeptListByRoleId" resultType="Integer">
 		select d.dept_id