Переглянути джерело

【NEW】增加领导选择车间接口

ZhaoMn 3 роки тому
батько
коміт
6060542d05

+ 46 - 1
railway-admin/src/main/java/com/railway/web/controller/system/SysProfileController.java

@@ -1,11 +1,14 @@
 package com.railway.web.controller.system;
 
 import com.railway.common.annotation.Log;
+import com.railway.common.constant.Constants;
 import com.railway.common.core.controller.BaseController;
 import com.railway.common.core.domain.AjaxResult;
 import com.railway.common.core.domain.entity.SysRole;
 import com.railway.common.core.domain.entity.SysUser;
 import com.railway.common.core.domain.model.LoginUser;
+import com.railway.common.core.page.TableDataInfo;
+import com.railway.common.core.redis.RedisCache;
 import com.railway.common.enums.BusinessType;
 import com.railway.common.utils.SecurityUtils;
 import com.railway.common.utils.StringUtils;
@@ -15,8 +18,11 @@ import com.railway.system.service.ISysRoleService;
 import com.railway.system.service.ISysUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import java.util.Arrays;
 import java.util.List;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -39,14 +45,16 @@ public class SysProfileController extends BaseController {
   private final ISysRoleService roleService;
   private final TokenService tokenService;
   private final ISysFileService sysFileService;
+  private final RedisCache redisCache;
 
   public SysProfileController(ISysUserService userService,
       ISysRoleService roleService, TokenService tokenService,
-      ISysFileService sysFileService) {
+      ISysFileService sysFileService, RedisCache redisCache) {
     this.userService = userService;
     this.roleService = roleService;
     this.tokenService = tokenService;
     this.sysFileService = sysFileService;
+    this.redisCache = redisCache;
   }
 
   /**
@@ -67,6 +75,43 @@ public class SysProfileController extends BaseController {
     return ajax;
   }
 
+  /**
+   * 获取用户所选要查看数据的车间
+   */
+  @ApiOperation(value = "获取用户所选要查看数据的车间", response = TableDataInfo.class)
+  @GetMapping("/getSelectedDept")
+  public AjaxResult getSelectedDept() {
+    LoginUser loginUser = getLoginUser();
+    List<Long> deptIds = redisCache.getCacheList(getCacheKey(loginUser.getUserId()));
+    AjaxResult ajax = AjaxResult.success();
+    if(CollectionUtils.isNotEmpty(deptIds)) {
+      ajax.put("selectedDeptIds", deptIds);
+    }
+    return ajax;
+  }
+
+  /**
+   * 更新用户所选要查看数据的车间
+   */
+  @ApiOperation(value = "更新用户所选要查看数据的车间", response = AjaxResult.class)
+  @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+  @PutMapping("/putSelectedDept/{userIds}")
+  public AjaxResult putSelectedDept(@PathVariable Long[] userIds) {
+    LoginUser loginUser = getLoginUser();
+    redisCache.setCacheList(getCacheKey(loginUser.getUserId()), Arrays.asList(userIds));
+    return AjaxResult.success();
+  }
+
+  /**
+   * 设置cache key
+   *
+   * @param configKey 参数键
+   * @return 缓存键key
+   */
+  private String getCacheKey(Long configKey) {
+    return Constants.LEADER_VIEW_DEPT_KEY + configKey;
+  }
+
   /**
    * 修改用户
    */

+ 5 - 0
railway-common/src/main/java/com/railway/common/constant/Constants.java

@@ -139,6 +139,11 @@ public class Constants {
    */
   public static final String SYS_DICT_KEY = "sys_dict:";
 
+  /**
+   * 大领导查看数据所选车间
+   */
+  public static final String LEADER_VIEW_DEPT_KEY = "view_dept:";
+
   /**
    * 资源映射路径 前缀
    */

+ 49 - 0
railway-common/src/main/java/com/railway/common/core/domain/vo/UserSelectedDeptVo.java

@@ -0,0 +1,49 @@
+package com.railway.common.core.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.railway.common.annotation.Excel;
+import com.railway.common.annotation.Excel.ColumnType;
+import com.railway.common.annotation.Excel.Type;
+import com.railway.common.annotation.Excels;
+import com.railway.common.core.domain.BaseEntity;
+import com.railway.common.core.domain.entity.SysDept;
+import com.railway.common.core.domain.entity.SysRole;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
+import java.util.List;
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 用户对象 sys_user
+ *
+ * @author railway
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel("接触网管理 - 用户选择车间信息")
+public class UserSelectedDeptVo extends BaseEntity {
+
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * 用户ID
+   */
+  @ApiModelProperty(value = "用户ID", hidden = true)
+  @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号")
+  private Long userId;
+
+  /**
+   * 部门ID
+   */
+  @ApiModelProperty(value = "部门ID")
+  @Excel(name = "部门编号", type = Type.IMPORT)
+  private Long deptId;
+
+
+
+}