Sfoglia il codice sorgente

1.配置管理增加首次登录参数配置校验
2.增加用户首次登录时必须要重新修改密码的校验

jzp 4 giorni fa
parent
commit
4b4878d0fa

+ 17 - 0
fs-company/src/main/java/com/fs/company/controller/company/CompanyConfigController.java

@@ -1,12 +1,15 @@
 package com.fs.company.controller.company;
 
 import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.utils.ServletUtils;
 import com.fs.company.domain.CompanyConfig;
 import com.fs.company.service.ICompanyConfigService;
 import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
+import com.fs.system.domain.SysConfig;
+import com.fs.system.service.ISysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -28,6 +31,9 @@ public class CompanyConfigController extends BaseController
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private ISysConfigService configService;
+
 
 
     @PreAuthorize("@ss.hasPermi('company:config:edit')")
@@ -40,6 +46,17 @@ public class CompanyConfigController extends BaseController
         return R.ok("操作成功");
     }
 
+    /**
+     * 根据参数键名查询总后台参数值
+     * @param configKey
+     * @return
+     */
+    @GetMapping(value = "/getConfigByKey/{configKey}")
+    public AjaxResult getConfigByKey(@PathVariable String configKey)
+    {
+        SysConfig config=configService.selectConfigByConfigKey(configKey);
+        return AjaxResult.success(config);
+    }
 
     /**
      * 根据参数键名查询参数值

+ 29 - 0
fs-company/src/main/java/com/fs/company/controller/company/CompanyLoginController.java

@@ -1,5 +1,6 @@
 package com.fs.company.controller.company;
 
+import com.alibaba.fastjson.JSONObject;
 import com.fs.common.constant.Constants;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.redis.RedisCache;
@@ -13,6 +14,8 @@ import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.CompanyLoginService;
 import com.fs.framework.service.CompanyPermissionService;
 import com.fs.framework.service.TokenService;
+import com.fs.system.domain.SysConfig;
+import com.fs.system.service.ISysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -43,6 +46,8 @@ public class CompanyLoginController
     private TokenService tokenService;
     @Autowired
     private RedisCache redisCache;
+    @Autowired
+    private ISysConfigService configService;
 
     /**
      * 登录方法
@@ -104,5 +109,29 @@ public class CompanyLoginController
         return AjaxResult.success(menuService.buildMenus(menus));
     }
 
+
+    /**
+     * 根据系统配置去查询是否需要首次登录,并开启校验
+     * @return
+     */
+    @GetMapping("getFirstLogin")
+    public AjaxResult getFirstLogin()
+    {
+        SysConfig config = configService.selectConfigByConfigKey("his.login");
+        if(config != null && config.getConfigValue() != null){
+            String configValue = config.getConfigValue();
+            JSONObject jsonObject = JSONObject.parseObject(configValue);
+            Boolean disabled = jsonObject.getBoolean("disabled");
+            if(disabled){
+                LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+                Long userId = redisCache.getCacheObject("newCompanyUser:" + loginUser.getUser().getCompanyId() + ":" + loginUser.getUser().getUserName());
+                if (loginUser.getUser().getUserId().equals(userId)) {
+                    return AjaxResult.success(true);
+                }
+            }
+        }
+        return AjaxResult.success(false);
+    }
+
 }
 

+ 13 - 0
fs-company/src/main/java/com/fs/company/controller/company/CompanyProfileController.java

@@ -4,6 +4,7 @@ import com.fs.common.annotation.Log;
 import com.fs.common.config.FSConfig;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.redis.RedisCache;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.PatternUtils;
 import com.fs.common.utils.ServletUtils;
@@ -14,6 +15,7 @@ import com.fs.company.service.ICompanyUserService;
 import com.fs.framework.security.LoginUser;
 import com.fs.framework.security.SecurityUtils;
 import com.fs.framework.service.TokenService;
+import com.fs.system.service.ISysConfigService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -34,6 +36,8 @@ public class CompanyProfileController extends BaseController
 
     @Autowired
     private TokenService tokenService;
+    @Autowired
+    private RedisCache redisCache;
 
     /**
      * 个人信息
@@ -103,11 +107,20 @@ public class CompanyProfileController extends BaseController
             // 更新缓存用户密码
             loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
             tokenService.setLoginUser(loginUser);
+            cleanFirstLogin(loginUser);
             return AjaxResult.success();
         }
         return AjaxResult.error("修改密码异常,请联系管理员");
     }
 
+    /**
+     * 去除首次登录的标志
+     * @param loginUser
+     */
+    private void cleanFirstLogin(LoginUser loginUser) {
+        redisCache.deleteObject("newCompanyUser:" + loginUser.getUser().getCompanyId() + ":" + loginUser.getUser().getUserName());
+    }
+
     /**
      * 头像上传
      */

+ 2 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -247,6 +247,8 @@ public class CompanyUserServiceImpl implements ICompanyUserService
         insertUserPost(user);
         // 新增用户与角色管理
         insertUserRole(user);
+        //新增用户需要修改密码
+        redisCache.setCacheObject("newCompanyUser:" + user.getCompanyId() + ":" +user.getUserName(),user.getUserId());
         return rows;
     }