Forráskód Böngészése

MOD: initial userVO settings

zhangxin 7 éve
szülő
commit
50e382f8b3

+ 2 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/UserService.java

@@ -38,4 +38,6 @@ public interface UserService {
     Page<UserDTOForMT> getByUserPackage(Long serviceId, Long packageId, Pageable pageable);
 
     Page<UserDTOForMT> getUserPageByGroupId(Long groupId, String keyword, Pageable pageable);
+
+
 }

+ 12 - 12
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/TestController.java

@@ -6,7 +6,6 @@ import cn.iselab.mooctest.site.configure.ClientFeatureConfiguration;
 import cn.iselab.mooctest.site.configure.realm.DefaultUsernamepasswordToken;
 import cn.iselab.mooctest.site.dao.shiro.MySessionDao;
 import cn.iselab.mooctest.site.data.config.OSSClientConfig;
-import cn.iselab.mooctest.site.models.ManagerProperty;
 import cn.iselab.mooctest.site.service.ManagerPropertyService;
 import cn.iselab.mooctest.site.service.OpenId2UserIdService;
 import cn.iselab.mooctest.site.service.RecordService;
@@ -76,8 +75,7 @@ public class TestController {
     @Autowired
     OSSClientConfig clientConfig;
 
-
-    private Logger LOG = LoggerFactory.getLogger(getClass());
+   private Logger LOG = LoggerFactory.getLogger(getClass());
 
     @RequestMapping(value = "/api/test/getSession", method = RequestMethod.GET)
     public String getSession(HttpSession session) {
@@ -143,15 +141,17 @@ public class TestController {
                 userLogic.adapUsertoEnterprise(userVO);
             }
             recordService.recordLoginAction(request, userVO.getId());
-            userVO.setMenuVOs(menuLogic.getMenuListByUserId(userVO.getId()));
-            userVO.setOpenId(openId2UserIdService.findOpenIdByUserId(userVO.getId()));
-
-            SecurityUtils.getSubject().getSession().setAttribute("userId", userVO.getId());
-
-            if (managerPropertyService.getManagerPropertyByUserId(userVO.getId()) != null) {
-                ManagerProperty managerProperty = managerPropertyService.getManagerPropertyByUserId(userVO.getId());
-                userVO.setExpireTime(Long.valueOf(managerProperty.getExpireTime().getTime()));
-            }
+            userVO = userLogic.initialForUserVO(userVO);
+
+//            userVO.setMenuVOs(menuLogic.getMenuListByUserId(userVO.getId()));
+//            userVO.setOpenId(openId2UserIdService.findOpenIdByUserId(userVO.getId()));
+//
+//            SecurityUtils.getSubject().getSession().setAttribute("userId", userVO.getId());
+//
+//            if (managerPropertyService.getManagerPropertyByUserId(userVO.getId()) != null) {
+//                ManagerProperty managerProperty = managerPropertyService.getManagerPropertyByUserId(userVO.getId());
+//                userVO.setExpireTime(Long.valueOf(managerProperty.getExpireTime().getTime()));
+//            }
             return userVO;
         } else {
             token.clear();

+ 19 - 12
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/UserController.java

@@ -75,26 +75,31 @@ public class UserController {
 
     @RequiresPermissions("personInfo:update")
     @RequestMapping(value = UrlConstants.API + "user", method = RequestMethod.PUT)
-    public UserVO updateUserInfo(@RequestBody UserVO UserVO) {
-        return userLogic.updateUser(UserVO);
+    public UserVO updateUserInfo(@RequestBody UserVO userVO) {
+        userVO = userLogic.updateUser(userVO);
+        return userLogic.initialForUserVO(userVO);
     }
 
     @RequiresPermissions("personInfo:update")
     @RequestMapping(value = UrlConstants.API + "user/name", method = RequestMethod.PUT)
-    public UserVO updateUserName(@RequestBody UserVO UserVO) {
-        return userLogic.updateName(UserVO);
+    public UserVO updateUserName(@RequestBody UserVO userVO) {
+        userVO = userLogic.updateName(userVO);
+        return userLogic.initialForUserVO(userVO);
     }
 
     @RequiresPermissions("personInfo:update")
     @RequestMapping(value = UrlConstants.API + "user/school", method = RequestMethod.PUT)
-    public UserVO updateUserAddress(@RequestBody UserVO UserVO) {
-        return userLogic.updateAddress(UserVO);
+    public UserVO updateUserAddress(@RequestBody UserVO userVO) {
+
+        userVO = userLogic.updateAddress(userVO);
+        return userLogic.initialForUserVO(userVO);
     }
 
     @RequiresPermissions("personInfo:update")
     @RequestMapping(value = UrlConstants.API + "user/mobile", method = RequestMethod.PUT)
-    public UserVO updateMobile(@RequestBody UserVO UserVO) {
-        return userLogic.updateMobile(UserVO);
+    public UserVO updateMobile(@RequestBody UserVO userVO) {
+        userVO = userLogic.updateMobile(userVO);
+        return userLogic.initialForUserVO(userVO);
     }
 
     @RequiresPermissions("personInfo:update")
@@ -110,15 +115,17 @@ public class UserController {
 
     @RequiresPermissions("personInfo:update")
     @RequestMapping(value = UrlConstants.API + "user/appendfile", method = RequestMethod.PUT)
-    public UserVO updateAppendFile(@RequestBody UserVO UserVO) {
-        return userLogic.updateAppendFile(UserVO);
+    public UserVO updateAppendFile(@RequestBody UserVO userVO) {
+        userVO = userLogic.updateAppendFile(userVO);
+        return userLogic.initialForUserVO(userVO);
     }
 
 
     @RequiresPermissions("password:update")
     @RequestMapping(value = UrlConstants.API + "user/password", method = RequestMethod.PUT)
-    public UserVO updateUserPassword(@RequestBody UserVO UserVO, HttpServletRequest request) {
-        return userLogic.updateUserPassword(UserVO, request);
+    public UserVO updateUserPassword(@RequestBody UserVO userVO, HttpServletRequest request) {
+        userVO =  userLogic.updateUserPassword(userVO, request);
+        return userLogic.initialForUserVO(userVO);
     }
 
     @RequestMapping(value = "/api/mobileLogin", method = RequestMethod.POST)

+ 1 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/UserLogic.java

@@ -79,4 +79,5 @@ public interface UserLogic {
     //校园版用户账号适配企业版登录
     UserVO adapUsertoEnterprise(UserVO userVO);
 
+    UserVO initialForUserVO(UserVO userVO);
 }

+ 34 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/UserLogicImpl.java

@@ -12,9 +12,11 @@ import cn.iselab.mooctest.site.models.User2Role;
 import cn.iselab.mooctest.site.service.*;
 import cn.iselab.mooctest.site.util.data.EncryptionUtil;
 import cn.iselab.mooctest.site.web.data.ManagerPropertyVO;
+import cn.iselab.mooctest.site.web.data.MenuVO;
 import cn.iselab.mooctest.site.web.data.UserPackageVO;
 import cn.iselab.mooctest.site.web.data.UserVO;
 import cn.iselab.mooctest.site.web.data.wrapper.ManagerPropertyVOWrapper;
+import cn.iselab.mooctest.site.web.data.wrapper.MenuVOWrapper;
 import cn.iselab.mooctest.site.web.data.wrapper.SalesPackageVOWrapper;
 import cn.iselab.mooctest.site.web.data.wrapper.UserVOWrapper;
 import cn.iselab.mooctest.site.web.exception.HttpBadRequestException;
@@ -94,6 +96,12 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
     @Autowired
     private OpenId2UserIdService openId2UserIdService;
 
+    @Autowired
+    private MenuService menuService;
+
+    @Autowired
+    private MenuVOWrapper menuVOWrapper;
+
     private UserDTOForMT transfer(UserVO userVO) {
         return Converter.convert(UserDTOForMT.class, userVO);
     }
@@ -171,6 +179,8 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
         user.setCreateTime(createTime);
         UserVO = Converter.copy(UserVO, userService.updateUser(user));
         UserVO.setPassword("");
+
+
         return UserVO;
     }
 
@@ -674,6 +684,30 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
         return userVO;
 
     }
+
+
+    @Override
+    public UserVO initialForUserVO(UserVO userVO) {
+
+        List<MenuVO> menuVOs = new ArrayList<>();
+        List<Role> roles = roleService.getRolesOfUser(userVO.getId());
+        for (Role role : roles) {
+            List<MenuVO> menuVOList = menuVOWrapper.wrap(menuService.getMenuListByRoleId(role.getId()));
+            for (MenuVO m : menuVOList) {
+                if (!menuVOs.stream().anyMatch(menuVO -> menuVO.toString().equals(m.toString()))) {
+                    menuVOs.add(m);
+                }
+            }
+        }
+        userVO.setMenuVOs(menuVOs);
+        userVO.setOpenId(openId2UserIdService.findOpenIdByUserId(userVO.getId()));
+
+        if (managerPropertyService.getManagerPropertyByUserId(userVO.getId()) != null) {
+            ManagerProperty managerProperty = managerPropertyService.getManagerPropertyByUserId(userVO.getId());
+            userVO.setExpireTime(Long.valueOf(managerProperty.getExpireTime().getTime()));
+        }
+        return userVO;
+    }
 }