Ver Fonte

完成通过权限查看报表的功能

gt há 2 anos atrás
pai
commit
9f6aa63ae2

+ 14 - 1
chuanyi_server/src/main/java/com/judong/chuanyiserver/controller/ReportTableController.java

@@ -196,7 +196,20 @@ public class ReportTableController {
      */
     @GetMapping("/queryTableNum")
     @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.REPORTTABLE, OperationEnum = OperationEnum.SELECT)
-    public Result queryTableNum(){
+    public Result queryTableNum() {
         return reportTableService.queryTableNum();
     }
+
+    /**
+     * 获取当前登录人的能查看的所有报表(包括自己创建的)
+     *
+     * @param page
+     * @param limit
+     * @return
+     */
+    @GetMapping("/getAllOkReportTable")
+    @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.REPORTTABLE, OperationEnum = OperationEnum.SELECT)
+    public Result getAllOkReportTable(Integer page, Integer limit) {
+        return reportTableService.getAllOkReportTable(page, limit);
+    }
 }

+ 97 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/controller/UserGroupController.java

@@ -0,0 +1,97 @@
+package com.judong.chuanyiserver.controller;
+
+import com.judong.chuanyiserver.annotation.WebLog;
+import com.judong.chuanyiserver.entity.ItemGroup;
+import com.judong.chuanyiserver.entity.ReportTable;
+import com.judong.chuanyiserver.entity.UserGroup;
+import com.judong.chuanyiserver.enums.ModelEnum;
+import com.judong.chuanyiserver.enums.OperationEnum;
+import com.judong.chuanyiserver.enums.ResultEnum;
+import com.judong.chuanyiserver.enums.ServerEnum;
+import com.judong.chuanyiserver.service.UserGroupService;
+import com.judong.chuanyiserver.util.Blank;
+import com.judong.chuanyiserver.util.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("userGroup")
+@Slf4j
+public class UserGroupController {
+
+    @Resource
+    private UserGroupService userGroupService;
+
+    /**
+     * 新增用户组
+     *
+     * @param userGroup
+     * @return
+     */
+    @PostMapping("/addUserGroup")
+    @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.USERGROUP, OperationEnum = OperationEnum.ADD)
+    public Result addUserGroup(@RequestBody UserGroup userGroup) {
+        if (Blank.isEmpty(userGroup, userGroup.getUserGroupName(), userGroup.getSortNum())) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "用户组名称,排序号不能为空");
+        }
+        return userGroupService.addUserGroup(userGroup);
+    }
+
+    /**
+     * 修改用户组
+     *
+     * @param userGroup
+     * @return
+     */
+    @PostMapping("/updateUserGroup")
+    @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.USERGROUP, OperationEnum = OperationEnum.UPDATE)
+    public Result updateUserGroup(@RequestBody UserGroup userGroup) {
+        if (Blank.isEmpty(userGroup, userGroup.getId(), userGroup.getUserGroupName(), userGroup.getSortNum())) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "用户组id,名称,排序号不能为空");
+        }
+        return userGroupService.updateUserGroup(userGroup);
+    }
+
+    /**
+     * 获取当前登录人,创建的用户组
+     *
+     * @return
+     */
+    @GetMapping("/getAllUserGroup")
+    @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.USERGROUP, OperationEnum = OperationEnum.SELECT)
+    public Result getAllUserGroup() {
+        return userGroupService.getAllUserGroup();
+    }
+
+    /**
+     * 通过id获取用户组
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/getUserGroupById/{id}")
+    @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.USERGROUP, OperationEnum = OperationEnum.SELECT)
+    public Result getUserGroupById(@PathVariable Integer id) {
+        if (Blank.isEmpty(id)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), ResultEnum.REQUEST_WRONGPARAMS.getRespMsg());
+        }
+        return userGroupService.getUserGroupById(id);
+    }
+
+    /**
+     * 通过id删除用户组
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/delUserGroupById/{id}")
+    @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.USERGROUP, OperationEnum = OperationEnum.DELETE)
+    public Result delUserGroupById(@PathVariable Integer id) {
+        if (Blank.isEmpty(id)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), ResultEnum.REQUEST_WRONGPARAMS.getRespMsg());
+        }
+        return userGroupService.delUserGroupById(id);
+    }
+}

+ 5 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/dao/ReportTableDao.java

@@ -2,6 +2,7 @@ package com.judong.chuanyiserver.dao;
 
 import com.judong.chuanyiserver.entity.ReportTable;
 import com.judong.chuanyiserver.entity.TableTemplate;
+import com.judong.chuanyiserver.entity.UserGroupUser;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -44,4 +45,8 @@ public interface ReportTableDao {
     Integer tableExchangeTypeById(Integer id, Integer isAutoReport);
 
     Integer queryTableNum();
+
+    List<ReportTable> getAllOkReportTable1(List<UserGroupUser> userGroupUserList, String userId);
+
+    List<ReportTable> getAllOkReportTable2(String userId);
 }

+ 31 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/dao/UserGroupDao.java

@@ -0,0 +1,31 @@
+package com.judong.chuanyiserver.dao;
+
+import com.judong.chuanyiserver.entity.UserGroup;
+import com.judong.chuanyiserver.entity.UserGroupUser;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface UserGroupDao {
+
+    List<UserGroup> getAllUserGroup(String userId);
+
+    UserGroup getUserGroupById(Integer id);
+
+    List<UserGroupUser> getUserGroupUserById(Integer userGroupId);
+
+    Integer delUserGroupUserListById(Integer userGroupId);
+
+    Integer delUserGroupById(Integer id);
+
+    Integer addUserGroup(UserGroup userGroup);
+
+    Integer addUserGroupUserList(Integer userGroupId, List<UserGroupUser> userGroupUserList);
+
+    UserGroup getUserGroupByNameNoId(Integer id, String userId, String userGroupName);
+
+    Integer updateUserGroup(UserGroup userGroup);
+
+    List<UserGroupUser> getUserGroupUserList(String userId);
+}

+ 4 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/entity/ReportTable.java

@@ -31,6 +31,10 @@ public class ReportTable implements Serializable {
      */
     private String isAutoReport;
     /**
+     * 用户组id
+     */
+    private Integer userGroupId;
+    /**
      * 创建时间
      */
     private Date createTime;

+ 44 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/entity/UserGroup.java

@@ -0,0 +1,44 @@
+package com.judong.chuanyiserver.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class UserGroup implements Serializable {
+
+    private static final long serialVersionUID = -96536212774977561L;
+
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 用户组名称
+     */
+    private String userGroupName;
+
+    /**
+     * 创建用户组的用户id
+     */
+    private String userId;
+    /**
+     * 排序号
+     */
+    private Integer sortNum;
+    /**
+     * 用户组描述
+     */
+    private String userGroupDescribe;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    private List<UserGroupUser> userGroupUserList;
+
+}

+ 26 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/entity/UserGroupUser.java

@@ -0,0 +1,26 @@
+package com.judong.chuanyiserver.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class UserGroupUser implements Serializable {
+
+    private static final long serialVersionUID = -96536212774977561L;
+
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * 用户组id
+     */
+    private String userGroupId;
+
+    /**
+     * 用户id
+     */
+    private String userId;
+}

+ 5 - 1
chuanyi_server/src/main/java/com/judong/chuanyiserver/entity/UserRole.java

@@ -2,8 +2,12 @@ package com.judong.chuanyiserver.entity;
 
 import lombok.Data;
 
+import java.io.Serializable;
+
 @Data
-public class UserRole {
+public class UserRole implements Serializable {
+
+    private static final long serialVersionUID = -96536212774977561L;
 
     /**
      * id

+ 1 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/enums/ModelEnum.java

@@ -17,6 +17,7 @@ public enum ModelEnum {
     DATAGROUP("数据组配置", "DATAGROUP"),
     DATAMODEL("数据模型", "DATAMODEL"),
     RUNSETUP("运行配置", "RUNSETUP"),
+    USERGROUP("用户组", "USERGROUP"),
 
     SIGNIN("登录", "SIGNIN"), LOGOUT("退出登录", "LOGOUT"), REGISTER("注册", "REGISTER"), HOMEBYPAGE("首页", "HOMEBYPAGE"),
     UPDATECODE("发送验证码", "UPDATECODE");

+ 2 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/ReportTableService.java

@@ -29,4 +29,6 @@ public interface ReportTableService {
     Result tableExchangeTypeById(Integer id, Integer isAutoReport);
 
     Result queryTableNum();
+
+    Result getAllOkReportTable(Integer page, Integer limit);
 }

+ 17 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/UserGroupService.java

@@ -0,0 +1,17 @@
+package com.judong.chuanyiserver.service;
+
+import com.judong.chuanyiserver.entity.UserGroup;
+import com.judong.chuanyiserver.util.Result;
+
+public interface UserGroupService {
+
+    Result addUserGroup(UserGroup userGroup);
+
+    Result getAllUserGroup();
+
+    Result updateUserGroup(UserGroup userGroup);
+
+    Result getUserGroupById(Integer id);
+
+    Result delUserGroupById(Integer id);
+}

+ 19 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/impl/ReportTableServiceImpl.java

@@ -2,8 +2,10 @@ package com.judong.chuanyiserver.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.judong.chuanyiserver.dao.ReportTableDao;
+import com.judong.chuanyiserver.dao.UserGroupDao;
 import com.judong.chuanyiserver.entity.ReportTable;
 import com.judong.chuanyiserver.entity.TableTemplate;
+import com.judong.chuanyiserver.entity.UserGroupUser;
 import com.judong.chuanyiserver.enums.ResultEnum;
 import com.judong.chuanyiserver.service.ReportTableService;
 import com.judong.chuanyiserver.util.Blank;
@@ -14,6 +16,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 @Service
@@ -26,6 +29,9 @@ public class ReportTableServiceImpl implements ReportTableService {
     @Resource
     private UserUtil userUtil;
 
+    @Resource
+    private UserGroupDao userGroupDao;
+
     @Override
     public synchronized Result addTableTemplate(TableTemplate tableTemplate) {
         String userId = userUtil.getCurrentUserId();
@@ -120,6 +126,19 @@ public class ReportTableServiceImpl implements ReportTableService {
     }
 
     @Override
+    public Result getAllOkReportTable(Integer page, Integer limit) {
+        String userId = userUtil.getCurrentUserId();
+        List<UserGroupUser> userGroupUserList = userGroupDao.getUserGroupUserList(userId);
+        List<ReportTable> reportTableList = new ArrayList<>();
+        if (Blank.isNotEmpty(userGroupUserList)) {
+            reportTableList = reportTableDao.getAllOkReportTable1(userGroupUserList, userId);
+        } else {
+            reportTableList = reportTableDao.getAllOkReportTable2(userId);
+        }
+        return Result.ok(reportTableList);
+    }
+
+    @Override
     public Result getAllTableTemplate(Integer page, Integer limit, String userId) {
         JSONObject jsonObject = new JSONObject();
         if (Blank.isEmpty(userId)) {

+ 81 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/impl/UserGroupServiceImpl.java

@@ -0,0 +1,81 @@
+package com.judong.chuanyiserver.service.impl;
+
+import com.judong.chuanyiserver.dao.UserGroupDao;
+import com.judong.chuanyiserver.entity.UserGroup;
+import com.judong.chuanyiserver.entity.UserGroupUser;
+import com.judong.chuanyiserver.enums.ResultEnum;
+import com.judong.chuanyiserver.service.UserGroupService;
+import com.judong.chuanyiserver.util.Blank;
+import com.judong.chuanyiserver.util.Result;
+import com.judong.chuanyiserver.util.UserUtil;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+@Transactional
+public class UserGroupServiceImpl implements UserGroupService {
+
+    @Resource
+    private UserGroupDao userGroupDao;
+
+    @Resource
+    private UserUtil userUtil;
+
+    @Override
+    public synchronized Result addUserGroup(UserGroup userGroup) {
+        userGroup.setUserId(userUtil.getCurrentUserId());
+        if (userGroupDao.addUserGroup(userGroup) <= 0) {
+            return Result.no(ResultEnum.SERVER_ERROR.getRespCode(), "新增用户组失败");
+        }
+        if (Blank.isNotEmpty(userGroup.getUserGroupUserList())) {
+            userGroupDao.addUserGroupUserList(userGroup.getId(), userGroup.getUserGroupUserList());
+        }
+        return Result.ok("新增用户组成功");
+    }
+
+    @Override
+    public synchronized Result updateUserGroup(UserGroup userGroup) {
+        String userId = userUtil.getCurrentUserId();
+        userGroup.setUserId(userId);
+        UserGroup isExistItemGroup = userGroupDao.getUserGroupByNameNoId(userGroup.getId(), userId, userGroup.getUserGroupName());
+        if (Blank.isNotEmpty(isExistItemGroup)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "已经存在此用户组的名称了,请更改名称");
+        }
+        if (userGroupDao.updateUserGroup(userGroup) <= 0) {
+            return Result.no(ResultEnum.SERVER_ERROR.getRespCode(), "修改用户组失败");
+        }
+        userGroupDao.delUserGroupUserListById(userGroup.getId());
+        if (Blank.isNotEmpty(userGroup.getUserGroupUserList())) {
+            userGroupDao.addUserGroupUserList(userGroup.getId(), userGroup.getUserGroupUserList());
+        }
+        return Result.ok("修改用户组成功");
+    }
+
+    @Override
+    public Result getUserGroupById(Integer id) {
+        UserGroup userGroup = userGroupDao.getUserGroupById(id);
+        List<UserGroupUser> userGroupUserList = userGroupDao.getUserGroupUserById(id);
+        userGroup.setUserGroupUserList(userGroupUserList);
+        return Result.ok(userGroup);
+    }
+
+    @Override
+    public synchronized Result delUserGroupById(Integer id) {
+        userGroupDao.delUserGroupUserListById(id);
+        if (userGroupDao.delUserGroupById(id) <= 0) {
+            return Result.no(ResultEnum.SERVER_ERROR.getRespCode(), "删除用户组失败");
+        }
+        return Result.ok("删除用户组成功");
+    }
+
+    @Override
+    public Result getAllUserGroup() {
+        String userId = userUtil.getCurrentUserId();
+        return Result.ok(userGroupDao.getAllUserGroup(userId));
+    }
+
+
+}

+ 27 - 2
chuanyi_server/src/main/resources/mapper/ReportTableDao.xml

@@ -7,7 +7,7 @@
     </sql>
 
     <sql id="reportTable">
-        id, user_id, report_table_name, report_table_data, is_auto_report, create_time
+        id, user_id, report_table_name, report_table_data, is_auto_report, user_group_id, create_time
     </sql>
 
     <insert id="addTableTemplate">
@@ -140,6 +140,31 @@
     </select>
 
     <select id="queryTableNum" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM t_report_table
+        SELECT COUNT(*)
+        FROM t_report_table
+    </select>
+
+    <select id="getAllOkReportTable1" resultType="com.judong.chuanyiserver.entity.ReportTable">
+        (select
+        <include refid="reportTable"/>
+        from t_report_table
+        where user_group_id in
+        <foreach collection="userGroupUserList" item="userGroupUser" index="index" separator=",">
+            (#{userGroupUser.userGroupId})
+        </foreach>)
+        UNION ALL
+        (select
+        <include refid="reportTable"/>
+        from t_report_table
+        where user_id = #{userId}
+        order by create_time desc)
+    </select>
+
+    <select id="getAllOkReportTable2" resultType="com.judong.chuanyiserver.entity.ReportTable">
+        select
+        <include refid="reportTable"/>
+        from t_report_table
+        where user_id = #{userId}
+        order by create_time desc
     </select>
 </mapper>

+ 84 - 0
chuanyi_server/src/main/resources/mapper/UserGroupDao.xml

@@ -0,0 +1,84 @@
+<?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.judong.chuanyiserver.dao.UserGroupDao">
+
+    <sql id="userGroup">
+        id
+        , user_group_name, user_id, sort_num, user_group_describe, create_time
+    </sql>
+
+    <sql id="userGroupUser">
+        id
+        , user_group_id, user_id
+    </sql>
+
+    <insert id="addUserGroup">
+        insert into t_user_group(user_group_name, user_id, sort_num, user_group_describe, create_time)
+            value (#{userGroupName}, #{userId}, #{sortNum}, #{userGroupDescribe}, now())
+    </insert>
+
+    <insert id="addUserGroupUserList">
+        insert into t_user_group_user (user_group_id, user_id) VALUES
+        <foreach collection="userGroupUserList" item="userGroupUser" index="index" separator=",">
+            (#{userGroupId},#{userGroupUser.userId})
+        </foreach>
+    </insert>
+
+    <update id="updateUserGroup">
+        update t_user_group
+        set user_group_name=#{userGroupName},
+            sort_num=#{sortNum},
+            user_group_describe=#{userGroupDescribe}
+        where id = #{id}
+    </update>
+
+    <select id="getAllUserGroup" resultType="com.judong.chuanyiserver.entity.UserGroup">
+        select
+        <include refid="userGroup"/>
+        from t_user_group
+        where user_id = #{userId} order by sort_num,create_time desc
+    </select>
+
+    <select id="getUserGroupById" resultType="com.judong.chuanyiserver.entity.UserGroup">
+        select
+        <include refid="userGroup"/>
+        from t_user_group
+        where id=#{id}
+    </select>
+
+    <select id="getUserGroupUserById" resultType="com.judong.chuanyiserver.entity.UserGroupUser">
+        select
+        <include refid="userGroupUser"/>
+        from t_user_group_user
+        where user_group_id = #{userGroupId}
+    </select>
+
+    <select id="getUserGroupByNameNoId" resultType="com.judong.chuanyiserver.entity.UserGroup">
+        select
+        <include refid="userGroup"/>
+        from t_user_group
+        where user_id=#{userId}
+        and user_group_name=#{user_group_name}
+        and user_id!=#{userId}
+    </select>
+
+    <select id="getUserGroupUserList" resultType="com.judong.chuanyiserver.entity.UserGroupUser">
+        select
+        <include refid="userGroupUser"/>
+        from t_user_group_user
+        where user_id=#{userId}
+    </select>
+
+    <delete id="delUserGroupUserListById">
+        delete
+        from t_user_group_user
+        where user_group_id = #{userGroupId}
+    </delete>
+
+    <delete id="delUserGroupById">
+        delete
+        from t_user_group
+        where id = #{id}
+    </delete>
+
+</mapper>