chenw 6 жил өмнө
parent
commit
7603a69bcc

+ 2 - 0
bi-server/src/main/java/com/usoftchina/bi/server/controller/user/UserPowerController.java

@@ -3,6 +3,7 @@ package com.usoftchina.bi.server.controller.user;
 import com.usoftchina.bi.core.base.RepCode;
 import com.usoftchina.bi.core.base.RepEntity;
 import com.usoftchina.bi.server.model.pojo.annotation.CheckToken;
+import com.usoftchina.bi.server.model.pojo.annotation.Log;
 import com.usoftchina.bi.server.model.vo.configVo.BatchUserPowerInfo;
 import com.usoftchina.bi.server.model.vo.configVo.UserPowerInfo;
 import com.usoftchina.bi.server.service.user.UserPowerService;
@@ -31,6 +32,7 @@ public class UserPowerController {
      */
     @PostMapping("/save")
     @CheckToken
+    @Log(module = "权限设置", name = "", token = "#token", value = "")
     @ApiOperation(value = "新增用户(组)报表权限", notes = "新增用户(组)报表权限", response = RepEntity.class)
     public RepEntity save(@RequestHeader String token, @RequestBody UserPowerInfo userPowerInfo){
         userPowerService.save(userPowerInfo);

+ 1 - 4
bi-server/src/main/java/com/usoftchina/bi/server/dao/dashboard/DashboardsMapper.java

@@ -133,10 +133,7 @@ public interface DashboardsMapper {
    查询看板
     */
     @Select("select id, bd_note as bdNote, bd_name as bdName, CONFIGURATION as bdConfiguration, CREATE_BY as createBy, create_id as createId, CREATE_DATE as createDate, BD_THUMBNAIL as thumbnail, relation_columns as relationColumns, filters, demo, bd_code,bd_menuId " +
-            " from BI_DASHBOARDS where (id in " +
-            " (select bo_da_id from bi_DASHBOARDS_object " +
-            " where (bo_type = '0' and bo_ob_id in (select br_user_group from bi_user_rel_groups))" +
-            " or (BO_TYPE='1'))) and id = #{id}")
+            " from BI_DASHBOARDS where id = #{id}")
     @ResultMap("DashBoardsResultMap")
     Dashboards getDashboardsWithoutLimit(@Param("id") int id);
 

+ 8 - 0
bi-server/src/main/java/com/usoftchina/bi/server/dao/user/UserPowerMapper.java

@@ -84,4 +84,12 @@ public interface UserPowerMapper {
             + "</script>")
     void insertByUserId(@Param("array") String[] ids, @Param("userId") int id);
 
+    @Select("SELECT WM_CONCAT(BD_NAME) FROM BI_DASHBOARDS WHERE ID IN (${ids}) AND ID NOT IN (SELECT BPU_DASHBOARDID FROM BI_POWER_USERS WHERE BPU_USERGROUPID = #{id} AND BPU_DASHBOARDID IN (${ids}))")
+    String getDashboardsNameByUserGroup(@Param("ids") String ids, @Param("id") int id);
+
+    @Select("SELECT WM_CONCAT(BD_NAME) FROM BI_DASHBOARDS WHERE ID IN (${ids}) AND ID NOT IN (SELECT BPU_DASHBOARDID FROM BI_POWER_USERS WHERE BPU_USERID = #{id} AND BPU_DASHBOARDID IN (${ids}))")
+    String getDashboardsNameByUser(@Param("ids") String ids, @Param("id") int id);
+
+    @Select("SELECT WM_CONCAT(BD_NAME) FROM BI_DASHBOARDS WHERE ID IN (${ids})")
+    String getDashboardsByIds(@Param("ids") String ids);
 }

+ 50 - 0
bi-server/src/main/java/com/usoftchina/bi/server/service/user/UserPowerService.java

@@ -1,10 +1,13 @@
 package com.usoftchina.bi.server.service.user;
 
 import com.usoftchina.bi.core.base.BaseContextHolder;
+import com.usoftchina.bi.server.dao.dashboard.DashboardsMapper;
+import com.usoftchina.bi.server.dao.user.UserMapper;
 import com.usoftchina.bi.server.dao.user.UserPowerMapper;
 import com.usoftchina.bi.server.model.vo.configVo.BatchUserPowerInfo;
 import com.usoftchina.bi.server.model.vo.configVo.UserPowerInfo;
 import com.usoftchina.bi.server.model.vo.dataVo.DashboardPowerDTO;
+import com.usoftchina.bi.server.service.common.MessageLogService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -19,6 +22,12 @@ public class UserPowerService {
 
     @Autowired
     private UserPowerMapper userPowerMapper;
+    @Autowired
+    private MessageLogService messageLogService;
+    @Autowired
+    private UserMapper userMapper;
+    @Autowired
+    private DashboardsMapper dashboardsMapper;
 
     /**
      * 新增用户(组)权限
@@ -26,6 +35,8 @@ public class UserPowerService {
      */
     public void save(UserPowerInfo userPowerInfo){
         userPowerMapper.insert(userPowerInfo);
+        String content = getLogContent(userPowerInfo, "新增");
+        messageLogService.save("权限设置", null, BaseContextHolder.getUserName(), content);
     }
 
     /**
@@ -43,6 +54,8 @@ public class UserPowerService {
      */
     public void delete(UserPowerInfo userPowerInfo){
         userPowerMapper.delete(userPowerInfo);
+        String content = getLogContent(userPowerInfo, "删除");
+        messageLogService.delete("权限设置", null, BaseContextHolder.getUserName(), content);
     }
 
     /**
@@ -52,20 +65,57 @@ public class UserPowerService {
     public void batchAdd(BatchUserPowerInfo batchUserPowerInfo) {
         String[] ids = batchUserPowerInfo.getDashboardIds().split(",");
         if (batchUserPowerInfo.getType() == 0) {
+            String dashboardsName = userPowerMapper.getDashboardsNameByUserGroup(batchUserPowerInfo.getDashboardIds(), batchUserPowerInfo.getBizId());
+            String name = userMapper.getUserGroup(batchUserPowerInfo.getBizId()).getUserGroupName();
+
             userPowerMapper.deleteByUserGroupId(batchUserPowerInfo.getDashboardIds(),batchUserPowerInfo.getBizId());
             userPowerMapper.insertByUserGroupId(ids, batchUserPowerInfo.getBizId());
+            messageLogService.save("权限设置", null, BaseContextHolder.getUserName(), "批量新增 " + name + "(用户组) 查看报表 " + dashboardsName + " 的权限");
         }else {
+            String dashboardsName = userPowerMapper.getDashboardsNameByUser(batchUserPowerInfo.getDashboardIds(), batchUserPowerInfo.getBizId());
+            String name = userMapper.getUserById(batchUserPowerInfo.getBizId()).getUserName();
+
             userPowerMapper.deleteByUserId(batchUserPowerInfo.getDashboardIds(), batchUserPowerInfo.getBizId());
             userPowerMapper.insertByUserId(ids, batchUserPowerInfo.getBizId());
+
+            messageLogService.save("权限设置", null, BaseContextHolder.getUserName(), "批量新增 " + name + "(用户) 查看报表 " + dashboardsName + " 的权限");
         }
     }
 
+    /**
+     * 批量删除权限
+     * @param batchUserPowerInfo
+     */
     public void batchDelete(BatchUserPowerInfo batchUserPowerInfo){
         if (batchUserPowerInfo.getType() == 0) {
+            String dashboardsName = userPowerMapper.getDashboardsByIds(batchUserPowerInfo.getDashboardIds());
+            String name = userMapper.getUserGroup(batchUserPowerInfo.getBizId()).getUserGroupName();
             userPowerMapper.deleteByUserGroupId(batchUserPowerInfo.getDashboardIds(),batchUserPowerInfo.getBizId());
+            messageLogService.delete("权限设置", null, BaseContextHolder.getUserName(), "批量删除 " + name + "(用户组) 查看报表 " + dashboardsName + " 的权限");
         }else {
+            String dashboardsName = userPowerMapper.getDashboardsByIds(batchUserPowerInfo.getDashboardIds());
+            String name = userMapper.getUserById(batchUserPowerInfo.getBizId()).getUserName();
             userPowerMapper.deleteByUserId(batchUserPowerInfo.getDashboardIds(), batchUserPowerInfo.getBizId());
+            messageLogService.delete("权限设置", null, BaseContextHolder.getUserName(), "批量删除 " + name + "(用户) 查看报表 " + dashboardsName + " 的权限");
+        }
+    }
+
+    /**
+     * 获取日志内容
+     * @param userPowerInfo
+     * @return
+     */
+    private String getLogContent(UserPowerInfo userPowerInfo, String operation){
+        String dashboardName = dashboardsMapper.getDashboardsWithoutLimit(userPowerInfo.getDashboardId()).getBdName();
+        StringBuilder sb = new StringBuilder();
+        if (userPowerInfo.getType() == 0) {
+            String name = userMapper.getUserGroup(userPowerInfo.getBizId()).getUserGroupName();
+            sb.append(operation + "用户组 " + name + "查看报表 " + dashboardName + "的权限");
+        }else {
+            String name = userMapper.getUserById(userPowerInfo.getBizId()).getUserName();
+            sb.append(operation + "用户 " + name + "查看报表 " + dashboardName + "的权限");
         }
+        return sb.toString();
     }
 
 }