Browse Source

用户设置密保修改

wangmh 7 years ago
parent
commit
f60d73ce8a

+ 18 - 10
sso-server/src/main/java/com/uas/sso/controller/UpdateUserController.java

@@ -351,21 +351,29 @@ public class UpdateUserController extends BaseController {
     }
 
     @RequestMapping(value = "/setQuestion", method = RequestMethod.POST)
-    public ModelMap updateQuestion(@RequestParam String token, List<UserQuestion> userQuestions) {
-        // 校验空参数
-        if (CollectionUtils.isEmpty(userQuestions)) {
-            return error("密保不能为空");
+    public ModelMap updateQuestion(@RequestParam String token, @RequestParam String userQuestions) {
+        List<UserQuestion> questions = JSON.parseArray(userQuestions, UserQuestion.class);
+
+        // 校验token
+        if (StringUtils.isEmpty(token)) {
+            return error("请求超时");
+        }
+        Token existToken = tokenService.findOne(token);
+        // 拿出userUU,并删除token
+        if (existToken.getBind() == null || !(existToken.getBind() instanceof Long)) {
+            // token错误,跳转到失败页面
+            tokenService.delete(token);
+            return error("请求错误");
         }
+        Long userUU = (Long) existToken.getBind();
 
-        // 从session中获取用户信息
-        User user = (User) request.getSession().getAttribute("user");
-        if (user == null) {
-            return error("请求超时,请刷新重试");
+        // 校验空参数
+        if (CollectionUtils.isEmpty(questions)) {
+            return error("密保不能为空");
         }
 
         // 设置密保
-        user.setQuestions(userQuestions);
-        userService.save(user);
+        userService.setQuestion(userUU, questions);
         return success();
     }
 

+ 8 - 0
sso-server/src/main/java/com/uas/sso/core/Type.java

@@ -28,6 +28,11 @@ public enum Type {
      */
     UPDATE_DETAIL("DETAIL"),
 
+    /**
+     * 修改用户密保
+     */
+    UPDATE_QUESTION("question"),
+
     /**
      * 修改类型为注册
      */
@@ -52,4 +57,7 @@ public enum Type {
     public String getValue() {
         return this.value;
     }
+
+    public class UPDATE_QUESTION {
+    }
 }

+ 1 - 1
sso-server/src/main/java/com/uas/sso/entity/User.java

@@ -195,7 +195,7 @@ public class User implements Serializable {
     /**
      * 密保问题
      */
-    @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.REMOVE})
+    @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
     @JoinColumn(name = "useruu", nullable = false)
     private List<UserQuestion> questions;
 

+ 1 - 1
sso-server/src/main/java/com/uas/sso/entity/UserLog.java

@@ -68,7 +68,7 @@ public class UserLog extends BaseLog implements Serializable {
     @Column(name = "otherMsg", length = 2000)
     private String otherMsg;
 
-    public UserLog(String appId, String msg, String msgDetail, int returnCode, String returnMsg) {
+    public UserLog() {
     }
 
     public UserLog(User user, String level, String type) {

+ 10 - 0
sso-server/src/main/java/com/uas/sso/service/UserService.java

@@ -1,9 +1,12 @@
 package com.uas.sso.service;
 
 import com.uas.sso.entity.User;
+import com.uas.sso.entity.UserQuestion;
 import com.uas.sso.entity.UserRecord;
 import org.springframework.data.domain.Page;
 
+import java.util.List;
+
 /**
  * 用户信息service
  *
@@ -191,4 +194,11 @@ public interface UserService {
      * @param spaceUU 绑定的企业uu号
      */
     void bindUserspace(Long userUU, Long spaceUU);
+
+    /**
+     * 设置用户密保
+     * @param userUU 用户uu号
+     * @param questions
+     */
+    void setQuestion(Long userUU, List<UserQuestion> questions);
 }

+ 15 - 0
sso-server/src/main/java/com/uas/sso/service/impl/UserServiceImpl.java

@@ -359,6 +359,21 @@ public class UserServiceImpl implements UserService {
         userDao.save(user);
     }
 
+    @Override
+    public void setQuestion(Long userUU, List<UserQuestion> questions) {
+        // 找到用户密保
+        User user = userDao.findOne(userUU);
+        List<UserQuestion> userQuestions = user.getQuestions();
+
+        // 清空旧的并添加新的
+        userQuestions.clear();
+        userQuestions.addAll(questions);
+
+        // 保存并添加日志
+        user = userDao.save(user);
+        userLog.info(user, Type.UPDATE_QUESTION.getValue());
+    }
+
     /**
      * 同步用户信息到各个应用
      * @param userUU 用户uu号