diff --git a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntity.java b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntity.java index 4a25e22c1c976c5b8d62fb4d06f281cfd00e8592..f5d693db842ef1ce7640cb924b2fe80eb7c13439 100644 --- a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntity.java +++ b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntity.java @@ -6,13 +6,14 @@ import java.util.Objects; import com.mortals.framework.ap.SysConstains; import com.mortals.framework.model.BaseEntityLong; import com.mortals.framework.service.IUser; +import com.mortals.xhx.base.system.user.model.vo.UserVo; /** * * Description:User * date: 2021-9-26 16:11:48 */ -public class UserEntity extends UserEntityExt implements IUser { +public class UserEntity extends UserVo implements IUser { private static final long serialVersionUID = 1632643908537L; @@ -126,6 +127,8 @@ public class UserEntity extends UserEntityExt implements IUser { */ private String lastModPwdAddr; + private String siteIds; + public UserEntity(){ } @@ -330,7 +333,7 @@ public class UserEntity extends UserEntityExt implements IUser { @Override public String getSiteIds() { - return super.getSiteIds(); + return this.siteIds; } @Override @@ -338,6 +341,10 @@ public class UserEntity extends UserEntityExt implements IUser { return null; } + public void setSiteIds(String siteIds) { + this.siteIds = siteIds; + } + /** * 璁剧疆 绔欑偣id * @param siteId diff --git a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntityExt.java b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntityExt.java index 9a73a6bd6b3fea280682085b2b8786d288571656..8c8cff0fa56491367fa5ca41f132f4ff909f2c02 100644 --- a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntityExt.java +++ b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/UserEntityExt.java @@ -30,7 +30,6 @@ public class UserEntityExt extends BaseEntityLong { private Long expireTime; private String siteName; - private List<Long> roleIds; private String siteCode; private String oldPassword; diff --git a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/vo/UserVo.java b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/vo/UserVo.java new file mode 100644 index 0000000000000000000000000000000000000000..ed02779044f07d409862f86e88013c02fdecebbd --- /dev/null +++ b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/model/vo/UserVo.java @@ -0,0 +1,44 @@ +package com.mortals.xhx.base.system.user.model.vo; + + +import com.mortals.framework.model.BaseEntityLong; +import lombok.Data; + +/** + * 鐢ㄦ埛淇℃伅涓氬姟瑙嗗浘瀵硅薄 + * + * @author zxfei + * @date 2022-07-05 + */ +@Data +public class UserVo extends BaseEntityLong { + + /** + * 绔欑偣鍚嶇О + */ + private String siteName; + + private String roleIds; + /** + * 鍞竴鏍囪瘑 + */ + private String token; + /** + * 鑿滃崟鏍� + */ + private String menuUrl; + + /** + * 鐧诲綍鏃堕棿 + */ + private Long loginTime; + + /** + * 杩囨湡鏃堕棿 + */ + private Long expireTime; + + private String oldPassword; + private String newPassword; + private String siteIds; +} \ No newline at end of file diff --git a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java index 81740607144e4ab689cee25c6715889ede0a53b8..c5c2047b84bceb7b30bb23479e06a1360c1fb5b6 100644 --- a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java +++ b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/service/UserService.java @@ -31,35 +31,7 @@ import java.util.Set; */ public interface UserService extends ICRUDCacheService<UserEntity,Long> { - /** - * 鐢ㄦ埛鐧诲綍 - * - * @param loginName 鐧诲綍鐢ㄦ埛鍚� - * @param password 鐧诲綍瀵嗙爜 - * @param loginIp 鐧诲綍IP - * @return - * @throws AppException - */ - public UserEntity doLogin(String loginName, String password, String loginIp) throws AppException; - /** - * 鏍¢獙鐢ㄦ埛鍚嶄笌瀵嗙爜鏄惁姝g‘ - * - * @param loginName - * @param password - * @return - * @throws AppException - */ - public UserEntity doCheckUser(String loginName, String password) throws AppException; - - /** - * 妫€鏌ョ敤鎴锋槸鍚﹀瓨鍦� - * - * @param loginName 鐧诲綍鐢ㄦ埛鍚� - * @param userId 瀵嗙爜 - * @return - */ - public boolean existUser(String loginName, Long userId) throws AppException; /** * 閫氳繃鐧诲綍鐢ㄦ埛鑾峰彇鑿滃崟鍔熻兘鏉冮檺 @@ -67,7 +39,7 @@ public interface UserService extends ICRUDCacheService<UserEntity,Long> { * @param user * @return */ - public List<MenuEntity> findOutlookBarList(IUser user); + List<MenuEntity> findOutlookBarList(IUser user); /** * 鏌ヨ鐢ㄦ埛鎵€鏈夋湁鏉冮檺鐨勮彍鍗旾D @@ -75,47 +47,7 @@ public interface UserService extends ICRUDCacheService<UserEntity,Long> { * @param userEntity * @return */ - public Set<Long> findAllAuthIds(UserEntity userEntity) throws AppException; - - /** - * 鏌ヨ鐢ㄦ埛璁板綍 - * - * @param platformId - * @param params - * @param currPage - * @param prePageResult - * @return - * @throws AppException - */ - public Result<UserEntity> find(Long platformId, UserEntity params, int currPage, int prePageResult) throws AppException; - - /** - * 涓哄鎴峰垱寤虹敤鎴� - * - * @param currUser 褰撳墠鐢ㄦ埛 - * @param customerId 瀹㈡埛ID - * @param customerName 瀹㈡埛鍚嶇О - * @param loginName - * @param password - * @param userName - * @param mobile - * @return - * @throws AppException - */ - public UserEntity createUser(IUser currUser, Long customerId, String customerName, String loginName, String password, - String userName, String mobile) throws AppException; - - /** - * 鐢ㄦ埛淇敼瀵嗙爜 - * - * @param loginName - * @param oldPwd - * @param newPwd - * @return - * @throws AppException - */ - public boolean updateUserPwd(String loginName, String oldPwd, String newPwd) throws AppException; - + Set<Long> findAllAuthIds(UserEntity userEntity) throws AppException; Rest<Void> refreshUser(); diff --git a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java index a30e92f97111232c03abf476ae353ed35f556250..dec3b46469357c3f711c2940903e091e56a1cce8 100644 --- a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java +++ b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/service/impl/UserServiceImpl.java @@ -26,6 +26,7 @@ import com.mortals.xhx.base.system.resource.model.ResourceEntity; import com.mortals.xhx.base.system.resource.service.ResourceService; import com.mortals.xhx.base.system.role.dao.RoleUserDao; import com.mortals.xhx.base.system.role.model.RoleUserEntity; +import com.mortals.xhx.base.system.role.model.RoleUserQuery; import com.mortals.xhx.base.system.role.service.RoleUserService; import com.mortals.xhx.base.system.user.dao.UserDao; import com.mortals.xhx.base.system.user.model.UserEntity; @@ -79,146 +80,36 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE } - private void doHandlerUser(UserEntity entity) throws AppException { - if (StringUtils.isNotEmpty(entity.getLoginPwd())) { - try { - entity.setLoginPwd(SecurityUtil.md5DoubleEncoding(entity.getLoginPwd())); - } catch (Exception e) { - throw new AppException("瀵嗙爜杞崲寮傚父"); - } - } else { - entity.setLoginPwd(null); - } -// if (entity.isSystemUser()) { -// entity.setUserType(UserType.SYSTEM.getValue()); -// } else { -// entity.setUserType(UserType.CUSTOMER.getValue()); -// } - } - - @Override - protected void saveBefore(UserEntity entity, Context context) throws AppException { - this.doHandlerUser(entity); - } - @Override protected void saveAfter(UserEntity entity, Context context) throws AppException { - if (CollectionUtils.isNotEmpty(entity.getRoleIds())) { - List<RoleUserEntity> roleUserEntityList = new ArrayList<>(); - entity.getRoleIds().stream().forEach(item -> { - RoleUserEntity roleUserEntity = new RoleUserEntity(); - roleUserEntity.setUserId(entity.getId()); - roleUserEntity.setRoleId(item); - roleUserEntityList.add(roleUserEntity); - }); - roleUserDao.insertBatch(roleUserEntityList); - } - } - - @Override - protected void updateBefore(UserEntity entity, Context context) throws AppException { - if (entity.getId().longValue() == SysConstains.ADMIN_ID && !context.getUser().isAdmin()) { - throw new AppException("浣犳病鏈夋潈闄愭墽琛岃鎿嶄綔"); - } - this.doHandlerUser(entity); + updateUserRole(entity); } @Override protected void updateAfter(UserEntity entity, Context context) throws AppException { - if (CollectionUtils.isNotEmpty(entity.getRoleIds())) { - List<RoleUserEntity> roleUserEntityList = new ArrayList<>(); - entity.getRoleIds().stream().forEach(item -> { - RoleUserEntity roleUserEntity = new RoleUserEntity(); - roleUserEntity.setUserId(entity.getId()); - roleUserEntity.setRoleId(item); - roleUserEntityList.add(roleUserEntity); - }); - RoleUserEntity condition = new RoleUserEntity(); - condition.setUserId(entity.getId()); - roleUserDao.delete(condition); - roleUserDao.insertBatch(roleUserEntityList); - } + updateUserRole(entity); } - @Override - protected UserEntity findBefore(UserEntity params, Context context) throws AppException { -// if (StringUtils.isNotEmpty(params.getDeptIds())) { -// params.setDeptIds(StringUtils.fillWithMark(params.getDeptIds(), ",")); -// } - return super.findBefore(params, context); - } - - @Override - protected UserEntity findBefore(UserEntity params, PageInfo pageInfo, Context context) throws AppException { -// if (StringUtils.isNotEmpty(params.getDeptIds())) { -// params.setDeptIds(StringUtils.fillWithMark(params.getDeptIds(), ",")); -// } - return super.findBefore(params, pageInfo, context); + private void updateUserRole(UserEntity entity) { + if (!ObjectUtils.isEmpty(entity.getId()) && entity.getId().longValue() != SysConstains.ADMIN_ID && !ObjectUtils.isEmpty(entity.getRoleIds())) { + RoleUserQuery roleUserQuery = new RoleUserQuery(); + roleUserQuery.setUserId(entity.getId()); + List<Long> idList = Arrays.asList(entity.getRoleIds().split(",")).stream().map(Long::parseLong).collect(Collectors.toList()); + roleUserQuery.setRoleIdList(idList); + roleUserService.doDistributionRole(roleUserQuery); + } } @Override protected void findAfter(UserEntity params, PageInfo pageInfo, Context context, List<UserEntity> list) throws AppException { - if (CollectionUtils.isNotEmpty(list)) { - list.stream().forEach(item -> { - RoleUserEntity query = new RoleUserEntity(); - query.setUserId(item.getId()); - List<RoleUserEntity> roleUserEntityList = roleUserDao.getList(query); - List<Long> roleIds = new ArrayList<>(); - roleUserEntityList.stream().forEach(role -> { - roleIds.add(role.getRoleId()); - }); - item.setRoleIds(roleIds); - }); - //List<RoleUserEntity> roleUserEntityList = - } - } - - public UserEntity findByLoginName(String loginName) { - UserQuery params = new UserQuery(); - params.setLoginName(loginName); - List<UserEntity> userList = super.dao.getList(params); - if (userList != null && userList.size() > 0) { - return userList.get(0); - } - return null; + list.stream().peek(item -> { + RoleUserQuery roleUserQuery = new RoleUserQuery(); + roleUserQuery.setUserId(item.getId()); + String roleIds = roleUserService.find(roleUserQuery).stream().map(RoleUserEntity::getRoleId).map(String::valueOf).collect(Collectors.joining(",")); + item.setRoleIds(roleIds); + }).count(); } - @Override - public UserEntity doLogin(String loginName, String password, String loginIp) throws AppException { - UserEntity sysUser = this.findByLoginName(loginName); - if (sysUser == null || !sysUser.getLoginName().equals(loginName)) { - throw new AppException("鐢ㄦ埛鍚嶄笉瀛樺湪锛�"); - } - try { - if (!sysUser.getLoginPwd().equals(SecurityUtil.md5DoubleEncoding(password))) { - throw new AppException("鐧诲綍瀵嗙爜閿欒锛�"); - } - } catch (Exception e) { - throw new AppException("瀵嗙爜楠岃鍑洪敊锛�", e); - } - UserEntity update = new UserEntity(); - update.setId(sysUser.getId()); - update.setLastLoginAddress(loginIp); - update.setLastLoginTime(new Date()); - this.dao.update(update); - return sysUser; - } - - @Override - public UserEntity doCheckUser(String loginName, String password) throws AppException { - UserEntity sysUser = this.findByLoginName(loginName); - if (sysUser == null || !sysUser.getLoginName().equals(loginName)) { - return null; - } - try { - if (!sysUser.getLoginPwd().equals(SecurityUtil.md5DoubleEncoding(password))) { - return null; - } - } catch (Exception e) { - return null; - } - return sysUser; - } @Override public Set<Long> findAllAuthIds(UserEntity userEntity) throws AppException { @@ -285,79 +176,6 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE return outlookBar; } - @Override - public Result<UserEntity> find(Long platformId, UserEntity params, int currPage, int prePageResult) throws AppException { - PageInfo pageInfo = new PageInfo(prePageResult); - pageInfo.setCurrPage(currPage); - return super.find(params, pageInfo, null); - } - - @Override - public UserEntity createUser(IUser currUser, Long customerId, String customerName, String loginName, String password, - String userName, String mobile) throws AppException { - try { - UserEntity entity = new UserEntity(); - entity.initAttrValue(); - entity.setLoginName(loginName); - entity.setRealName(userName); - entity.setCustomerId(customerId); - entity.setLoginPwd(password); - entity.setMobile(mobile); - entity.setUserType(UserType.CUSTOMER.getValue()); - entity.setCreateTime(new Date()); - if (currUser != null) { - entity.setCreateUser(currUser.getLoginName()); - entity.setCreateUserName(currUser.getRealName()); - } - this.doHandlerUser(entity); - dao.insert(entity); - return entity; - } catch (Exception e) { - log.error("缁欏鎴峰垱寤虹敤鎴峰紓甯�-->customerId:" + customerId + ",customerName:" + customerName + ",loginName:" + loginName + - "-->鍘熷洜锛�" + e.getMessage()); - return null; - } - } - - @Override - public boolean existUser(String loginName, Long userId) throws AppException { - UserEntity sysUser = this.findByLoginName(loginName); - boolean bRet = false; - if (sysUser != null) { - if (userId == null || userId == 0 || userId.longValue() != sysUser.getId().longValue()) { - bRet = true; - } - } - return bRet; - } - - @Override - public boolean updateUserPwd(String loginName, String oldPwd, String newPwd) throws AppException { - UserEntity sysUser = this.findByLoginName(loginName); - if (sysUser == null || !sysUser.getLoginName().equals(loginName)) { - throw new AppException("甯愬彿閿欒锛�"); - } - try { - if (!sysUser.getLoginPwd().equals(SecurityUtil.md5DoubleEncoding(oldPwd))) { - throw new AppException("鍘熷瀵嗙爜閿欒锛�"); - } - } catch (Exception e) { - throw new AppException("瀵嗙爜楠岃鍑洪敊锛�", e); - } - try { - sysUser.setLoginPwd(SecurityUtil.md5DoubleEncoding(newPwd)); - sysUser.setLoginPwd3(sysUser.getLoginPwd2()); - sysUser.setLoginPwd2(sysUser.getLoginPwd1()); - sysUser.setLoginPwd1(sysUser.getLoginPwd()); - sysUser.setLastModPwdTime(new Date()); - } catch (Exception e) { - throw new AppException("瀵嗙爜杞崲寮傚父锛�", e); - } - dao.update(sysUser); - return true; - } - - @Override public Rest<Void> refreshUser() { UserPdu userPdu = new UserPdu(); @@ -420,6 +238,15 @@ public class UserServiceImpl extends AbstractCRUDCacheServiceImpl<UserDao, UserE return Rest.ok(); } + @Override + protected void removeAfter(Long[] ids, Context context, int result) throws AppException { + super.removeAfter(ids, context, result); + RoleUserQuery roleUserQuery = new RoleUserQuery(); + roleUserQuery.setUserIdList(Arrays.asList(ids)); + Long[] userIds = roleUserService.find(roleUserQuery).stream().map(RoleUserEntity::getId).toArray(Long[]::new); + roleUserService.remove(userIds, context); + } + @Override public UserDao getUserDao() { diff --git a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java index e216534aa5bff5314fe62c3303c5cc747dd54789..6c0b5318a9fef1e5138e5643f62b6b95dbeaf178 100644 --- a/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java +++ b/sample-form-manager/src/main/java/com/mortals/xhx/base/system/user/web/UserController.java @@ -21,7 +21,10 @@ import com.mortals.framework.common.Rest; import com.mortals.framework.service.IUser; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.xhx.base.system.role.model.RoleEntity; +import com.mortals.xhx.base.system.role.model.RoleUserEntity; +import com.mortals.xhx.base.system.role.model.RoleUserQuery; import com.mortals.xhx.base.system.role.service.RoleService; +import com.mortals.xhx.base.system.role.service.RoleUserService; import com.mortals.xhx.common.code.UserStatus; import com.mortals.framework.common.IBaseEnum; import com.mortals.framework.common.code.UserType; @@ -55,6 +58,9 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic @Autowired private RoleService roleService; + @Autowired + private RoleUserService roleUserService; + public UserController() { super.setModuleDesc("鐢ㄦ埛淇℃伅"); } @@ -69,34 +75,6 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic super.init(model, context); } - @Override - protected int editAfter(Long id, Map<String, Object> model, UserEntity entity, Context context) throws AppException { - entity.setLoginPwd(null); - entity.setLoginPwd1(null); - entity.setLoginPwd2(null); - entity.setLoginPwd3(null); - return 1; - } - - @RequestMapping(value = "change/password", method = RequestMethod.POST) - public String changePassword(@RequestBody UserEntity entity) { - - IUser user = this.getCurUser(); - if(user == null){ - return this.createFailJsonResp("璇峰厛鐧诲綍"); - } - JSONObject ret = new JSONObject(); - try { - service.updateUserPwd(super.getCurUser().getLoginName(), entity.getOldPassword(), entity.getNewPassword()); - ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS); - ret.put(KEY_RESULT_MSG, "瀵嗙爜淇敼鎴愬姛锛�"); - } catch (Exception e) { - ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE); - ret.put(KEY_RESULT_MSG, super.convertException(e)); - } - return ret.toJSONString(); - } - @PostMapping({"refreshUser"}) @UnAuth