Browse Source

新增登录通知开关设置

fuyuchuan 1 day ago
parent
commit
17e8d3ee94

+ 31 - 28
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysProfileController.java

@@ -7,10 +7,12 @@ import com.usky.common.core.util.StringUtils;
 import com.usky.common.security.service.TokenService;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.system.domain.SysUser;
+import com.usky.system.domain.SysUserPerson;
 import com.usky.system.domain.SysUserVO;
 import com.usky.system.domain.constants.UserConstants;
 import com.usky.system.model.LoginUser;
 import com.usky.system.service.ISysUserService;
+import com.usky.system.service.SysUserPersonService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -21,29 +23,30 @@ import java.util.Map;
 
 /**
  * 个人信息 业务处理
- * 
+ *
  * @author yq
  */
 @RestController
 @RequestMapping("/user/profile")
-public class SysProfileController extends BaseController
-{
+public class SysProfileController extends BaseController {
     @Autowired
     private ISysUserService userService;
 
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private SysUserPersonService sysUserPersonService;
+
     /**
      * 个人信息
      */
     @GetMapping
-    public ApiResult profile()
-    {
+    public ApiResult profile() {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         SysUserVO user = loginUser.getSysUser();
-        Map<String,Object> map = new HashMap<>();
-        map.put("user",user);
+        Map<String, Object> map = new HashMap<>();
+        map.put("user", user);
         map.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
         map.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
         return ApiResult.success(map);
@@ -53,24 +56,30 @@ public class SysProfileController extends BaseController
      * 修改用户
      */
     @PutMapping
-    public ApiResult updateProfile(@RequestBody SysUser user)
-    {
+    public ApiResult updateProfile(@RequestBody SysUser user) {
         if (StringUtils.isNotEmpty(user.getPhonenumber())
-                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
-        {
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
             throw new BusinessException("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
         }
         if (StringUtils.isNotEmpty(user.getEmail())
-                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
-        {
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
             throw new BusinessException("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         LoginUser loginUser = SecurityUtils.getLoginUser();
         SysUserVO sysUser = loginUser.getSysUser();
         user.setUserId(sysUser.getUserId());
         user.setPassword(null);
-        if (userService.updateUserProfile(user) > 0)
-        {
+        if (userService.updateUserProfile(user) > 0) {
+
+            // 更新登录通知设置
+            Integer isLoginNotify = user.getIsLoginNotify();
+            if (isLoginNotify != null) {
+                sysUserPersonService.lambdaUpdate()
+                        .eq(SysUserPerson::getUserId, sysUser.getUserId())
+                        .set(SysUserPerson::getIsLoginNotify, isLoginNotify)
+                        .update();
+            }
+
             // 更新缓存用户信息
             sysUser.setNickName(user.getNickName());
             sysUser.setPhonenumber(user.getPhonenumber());
@@ -86,22 +95,18 @@ public class SysProfileController extends BaseController
      * 重置密码
      */
     @PutMapping("/updatePwd")
-    public ApiResult updatePwd(String oldPassword, String newPassword)
-    {
+    public ApiResult updatePwd(String oldPassword, String newPassword) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         SysUserVO sysUser = loginUser.getSysUser();
         String userName = sysUser.getUserName();
         String password = sysUser.getPassword();
-        if (!SecurityUtils.matchesPassword(oldPassword, password))
-        {
+        if (!SecurityUtils.matchesPassword(oldPassword, password)) {
             throw new BusinessException("修改密码失败,旧密码错误");
         }
-        if (SecurityUtils.matchesPassword(newPassword, password))
-        {
+        if (SecurityUtils.matchesPassword(newPassword, password)) {
             throw new BusinessException("新密码不能与旧密码相同");
         }
-        if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
-        {
+        if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) {
             // 更新缓存用户密码
             sysUser.setPassword(SecurityUtils.encryptPassword(newPassword));
             tokenService.setLoginUser(loginUser);
@@ -114,13 +119,11 @@ public class SysProfileController extends BaseController
      * 头像上传
      */
     @PostMapping("/avatar")
-    public ApiResult avatar(@RequestParam String filePath) throws IOException
-    {
+    public ApiResult avatar(@RequestParam String filePath) throws IOException {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         SysUserVO sysUser = loginUser.getSysUser();
-        if (userService.updateUserAvatar(loginUser.getUsername(), filePath))
-        {
-            Map<String,Object> map = new HashMap<>();
+        if (userService.updateUserAvatar(loginUser.getUsername(), filePath)) {
+            Map<String, Object> map = new HashMap<>();
             map.put("imgUrl", filePath);
             // 更新缓存用户头像
             sysUser.setAvatar(filePath);

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

@@ -7,16 +7,10 @@ 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.SysUserTenant;
+import com.usky.system.domain.*;
 import com.usky.system.domain.constants.UserConstants;
 import com.usky.system.mapper.SysUserTenantMapper;
-import com.usky.system.service.ISysDeptService;
-import com.usky.system.service.ISysPostService;
-import com.usky.system.service.ISysRoleService;
-import com.usky.system.service.ISysUserService;
+import com.usky.system.service.*;
 import com.usky.system.service.vo.SysUserNewVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,6 +47,9 @@ public class SysUserController extends BaseController
     @Autowired
     private SysUserTenantMapper sysUserTenantMapper;
 
+    @Autowired
+    private SysUserPersonService sysUserPersonService;
+
     /**
      * 获取用户列表
      */
@@ -155,6 +152,13 @@ public class SysUserController extends BaseController
         user.setCreateBy(SecurityUtils.getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         int row = userService.insertUser(user);
+
+        // 新增用户登录通知设置
+        SysUserPerson sysUserPerson = new SysUserPerson();
+        sysUserPerson.setUserId(user.getUserId());
+        sysUserPerson.setIsLoginNotify(0);
+        sysUserPersonService.save(sysUserPerson);
+
         return toAjax(row);
     }
 

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

@@ -100,6 +100,20 @@ public class SysUser extends BaseEntity
     /** 姓名 */
     private String fullName;
 
+    /**
+     * 是否打开登录通知(1 表示是,0 表示否,默认 0)
+     */
+    @TableField(exist = false)
+    private Integer isLoginNotify;
+
+    public Integer getIsLoginNotify() {
+        return isLoginNotify;
+    }
+
+    public void setIsLoginNotify(Integer isLoginNotify) {
+        this.isLoginNotify = isLoginNotify;
+    }
+
     /** 岗位 */
     @TableField(exist = false)
     private String post;
@@ -391,6 +405,7 @@ public class SysUser extends BaseEntity
             .append("updateTime", getUpdateTime())
             .append("remark", getRemark())
             .append("dept", getDept())
+            .append("isLoginNotify",  getIsLoginNotify())
             .toString();
     }
 }

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

@@ -1,6 +1,7 @@
 package com.usky.system.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
 import lombok.Data;
@@ -36,5 +37,10 @@ public class SysUserPerson implements Serializable {
      */
     private Integer personId;
 
+    /**
+     * 是否打开登录通知(1 表示是,0 表示否,默认 0)
+     */
+    private Integer isLoginNotify;
+
 
 }