|
|
@@ -1,10 +1,7 @@
|
|
|
package com.uas.platform.b2c.common.account.service.impl;
|
|
|
|
|
|
import com.uas.message.mail.service.MailService;
|
|
|
-import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
|
|
|
-import com.uas.platform.b2c.common.account.dao.RoleDao;
|
|
|
-import com.uas.platform.b2c.common.account.dao.UserCacheEnterpriseDao;
|
|
|
-import com.uas.platform.b2c.common.account.dao.UserDao;
|
|
|
+import com.uas.platform.b2c.common.account.dao.*;
|
|
|
import com.uas.platform.b2c.common.account.model.*;
|
|
|
import com.uas.platform.b2c.common.account.service.UserService;
|
|
|
import com.uas.platform.b2c.common.base.dao.CommonDao;
|
|
|
@@ -75,6 +72,9 @@ public class UserServiceImpl implements UserService {
|
|
|
@Autowired
|
|
|
private MessageConf messageConf;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ResourceItemDao resourceItemDao;
|
|
|
+
|
|
|
@Override
|
|
|
public User findUserByUserUU(Long uu) {
|
|
|
List<User> users = userDao.findUserByUserUU(uu);
|
|
|
@@ -159,31 +159,7 @@ public class UserServiceImpl implements UserService {
|
|
|
@Override
|
|
|
public Page<User> findUsersPageByEnUU(final PageInfo pageInfo , Long enUU) {
|
|
|
final List<Long> usersId = userDao.findIdByEnUU(enUU);
|
|
|
- if (usersId.size()>0) {
|
|
|
- Page<User> pUser = userDao.findAll(new Specification<User>() {
|
|
|
- public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
|
|
|
- Predicate predicateId = root.get("userUU").in(usersId);
|
|
|
- query.where(predicateId);
|
|
|
- return null;
|
|
|
- }
|
|
|
- }, pageInfo);
|
|
|
- for (User user : pUser) {
|
|
|
- Set<Role> roles = user.getRoles();
|
|
|
- Long enuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
- if (!CollectionUtils.isEmpty(roles)) {
|
|
|
- Iterator<Role> iterator = roles.iterator();
|
|
|
- while (iterator.hasNext()) {
|
|
|
- Role role = iterator.next();
|
|
|
- if (!role.getEnUU().equals(enuu)) {
|
|
|
- iterator.remove();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return pUser;
|
|
|
- }else{
|
|
|
- return null;
|
|
|
- }
|
|
|
+ return deleteOtherRole(pageInfo,usersId);
|
|
|
|
|
|
}
|
|
|
@Override
|
|
|
@@ -251,34 +227,8 @@ public class UserServiceImpl implements UserService {
|
|
|
//过滤 角色信息
|
|
|
usersId = userDao.findUserByRoleAndUsers(roleId,usersId.toArray(new Long[0]));
|
|
|
}
|
|
|
-
|
|
|
final List<Long> users = usersId;
|
|
|
- if (users.size()>0) {
|
|
|
- Page<User> pUser = userDao.findAll(new Specification<User>() {
|
|
|
- public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
|
|
|
- Predicate predicateId = root.get("userUU").in(users);
|
|
|
- query.where(predicateId);
|
|
|
- return null;
|
|
|
- }
|
|
|
- }, pageInfo);
|
|
|
- for (User user : pUser) {
|
|
|
- Set<Role> roles = user.getRoles();
|
|
|
- Long enuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
- if (!CollectionUtils.isEmpty(roles)) {
|
|
|
- Iterator<Role> iterator = roles.iterator();
|
|
|
- while (iterator.hasNext()) {
|
|
|
- Role role = iterator.next();
|
|
|
- if (!role.getEnUU().equals(enuu)) {
|
|
|
- iterator.remove();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return pUser;
|
|
|
- }else{
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
+ return deleteOtherRole(pageInfo,users);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -288,6 +238,10 @@ public class UserServiceImpl implements UserService {
|
|
|
usersId = userDao.findUserByUserNameLikeAndEnUU(userName, enUU);
|
|
|
}
|
|
|
final List<Long> users = usersId;
|
|
|
+ return deleteOtherRole(pageInfo,users);
|
|
|
+ }
|
|
|
+
|
|
|
+ private Page<User> deleteOtherRole(final PageInfo pageInfo,final List<Long> users) {
|
|
|
if (users.size()>0) {
|
|
|
Page<User> pUser = userDao.findAll(new Specification<User>() {
|
|
|
public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
|
|
|
@@ -328,38 +282,7 @@ public class UserServiceImpl implements UserService {
|
|
|
// throw new RuntimeException(e.getMessage());
|
|
|
}
|
|
|
// 修改用户角色,只对用户的当前企业的角色进行修改
|
|
|
- if (!CollectionUtils.isEmpty(user.getRoles())) {
|
|
|
- Set<Role> existRoles = userOld.getRoles();
|
|
|
- if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
|
|
|
- Iterator<Role> iterator = existRoles.iterator();
|
|
|
- Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
- while (iterator.hasNext()) {
|
|
|
- Role role = iterator.next();
|
|
|
- if (role.getEnUU().equals(currentEnuu)) {
|
|
|
- iterator.remove();
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- existRoles = new HashSet<>();
|
|
|
- }
|
|
|
- for (Role role : user.getRoles()) {
|
|
|
- existRoles.add(role);
|
|
|
- }
|
|
|
- userOld.setRoles(existRoles);
|
|
|
- } else {
|
|
|
- Set<Role> existRoles = userOld.getRoles();
|
|
|
- if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
|
|
|
- Iterator<Role> iterator = existRoles.iterator();
|
|
|
- Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
- while (iterator.hasNext()) {
|
|
|
- Role role = iterator.next();
|
|
|
- if (role.getEnUU().equals(currentEnuu)) {
|
|
|
- iterator.remove();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- userOld.setRoles(existRoles);
|
|
|
- }
|
|
|
+ updateRole(user,userOld);
|
|
|
try {
|
|
|
userOld = userDao.save(userOld);
|
|
|
} catch (Exception e) {
|
|
|
@@ -384,38 +307,7 @@ public class UserServiceImpl implements UserService {
|
|
|
userOld.setUserTel(user.getUserTel());
|
|
|
userOld.setUserName(user.getUserName());
|
|
|
// 修改用户角色,只对用户的当前企业的角色进行修改
|
|
|
- if (!CollectionUtils.isEmpty(user.getRoles())) {
|
|
|
- Set<Role> existRoles = userOld.getRoles();
|
|
|
- if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
|
|
|
- Iterator<Role> iterator = existRoles.iterator();
|
|
|
- Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
- while (iterator.hasNext()) {
|
|
|
- Role role = iterator.next();
|
|
|
- if (role.getEnUU().equals(currentEnuu)) {
|
|
|
- iterator.remove();
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- existRoles = new HashSet<>();
|
|
|
- }
|
|
|
- for (Role role : user.getRoles()) {
|
|
|
- existRoles.add(role);
|
|
|
- }
|
|
|
- userOld.setRoles(existRoles);
|
|
|
- } else {
|
|
|
- Set<Role> existRoles = userOld.getRoles();
|
|
|
- if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
|
|
|
- Iterator<Role> iterator = existRoles.iterator();
|
|
|
- Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
- while (iterator.hasNext()) {
|
|
|
- Role role = iterator.next();
|
|
|
- if (role.getEnUU().equals(currentEnuu)) {
|
|
|
- iterator.remove();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- userOld.setRoles(existRoles);
|
|
|
- }
|
|
|
+ updateRole(user,userOld);
|
|
|
try {
|
|
|
userOld = userDao.save(userOld);
|
|
|
} catch (Exception e) {
|
|
|
@@ -432,36 +324,46 @@ public class UserServiceImpl implements UserService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void updateRole(User user,User userOld) {
|
|
|
+ if (!CollectionUtils.isEmpty(user.getRoles())) {
|
|
|
+ Set<Role> existRoles = userOld.getRoles();
|
|
|
+ if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
|
|
|
+ Iterator<Role> iterator = existRoles.iterator();
|
|
|
+ Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ Role role = iterator.next();
|
|
|
+ if (role.getEnUU().equals(currentEnuu)) {
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ existRoles = new HashSet<>();
|
|
|
+ }
|
|
|
+ for (Role role : user.getRoles()) {
|
|
|
+ existRoles.add(role);
|
|
|
+ }
|
|
|
+ userOld.setRoles(existRoles);
|
|
|
+ } else {
|
|
|
+ Set<Role> existRoles = userOld.getRoles();
|
|
|
+ if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
|
|
|
+ Iterator<Role> iterator = existRoles.iterator();
|
|
|
+ Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ Role role = iterator.next();
|
|
|
+ if (role.getEnUU().equals(currentEnuu)) {
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ userOld.setRoles(existRoles);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public User updatePassword(User user, String password, String newPassword) {
|
|
|
-// boolean result = user.getUserPwd().equals(Md5Utils.encode(password, user.getUserUU()));
|
|
|
-// if (result) {
|
|
|
-// User user1 = userDao.findOne(user.getUserUU());
|
|
|
-// user1.setUserPwd(Md5Utils.encode(newPassword, user1.getUserUU()));
|
|
|
-// user1.setPwdSecLevel(user.getPwdSecLevel());
|
|
|
-// if (user1.getEnterprise() == null)
|
|
|
-// user1.setCurrentEnterprise();// 随便绑定一个用户所属企业
|
|
|
-// Enterprise enterprise = user1.getEnterprise();
|
|
|
-// try {
|
|
|
-// //判断是否为个人账户
|
|
|
-// if (enterprise == null){
|
|
|
-// //AccountUtils.resetPassword(user1.getUserUU(), null, newPassword);
|
|
|
-// }else {
|
|
|
-// //AccountUtils.resetPassword(user1.getUserUU(), enterprise.getUu(), newPassword);
|
|
|
-// }
|
|
|
-// user1 = userDao.save(user1);
|
|
|
-// } catch (Exception e) {
|
|
|
-// throw new SystemException(e.getMessage());
|
|
|
-// }
|
|
|
-// return user1;
|
|
|
-// } else {
|
|
|
-// throw new IllegalOperatorException("原密码验证错误");
|
|
|
-// }
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- static final String defaultPassword = "111111";
|
|
|
@Override
|
|
|
public User addUser(User user, HttpServletRequest request) {
|
|
|
List<User> users = userDao.findUserByUserTel(user.getUserTel().trim());
|
|
|
@@ -487,7 +389,6 @@ public class UserServiceImpl implements UserService {
|
|
|
}else{
|
|
|
enterpriseDao.callInitProcedure(SystemSession.getUser().getEnterprise().getUu());
|
|
|
}
|
|
|
- //Long uu = commonDao.queryForObject("select users_seq.nextval from dual", Long.class);
|
|
|
user.setUserUU(addssoUser.getUserUU());
|
|
|
user.addEnterprise(SystemSession.getUser().getEnterprise());
|
|
|
user.setCurrentEnterprise();
|
|
|
@@ -508,26 +409,10 @@ public class UserServiceImpl implements UserService {
|
|
|
model.put("rootpath", AgentUtils.getHost(request));
|
|
|
if (user.getUserEmail() != null) {
|
|
|
mailService.send(messageConf.getTplAfterBeAddedtoB2C(), user.getUserEmail(), model);
|
|
|
- //mailService.send(messageConf.getTplInvitationForB2B(), user.getUserEmail(), model);
|
|
|
}
|
|
|
return user;
|
|
|
}
|
|
|
|
|
|
- //添加未注册
|
|
|
- /*public com.uas.account.entity.User postToAccountCenter(User user, String password) throws Exception {
|
|
|
- UserDetail detail = new UserDetail();
|
|
|
- detail.setEmail(user.getUserEmail());
|
|
|
- detail.setIdCode(user.getUserIdcode());
|
|
|
- detail.setMobile(user.getUserTel());
|
|
|
- detail.setName(user.getUserName());
|
|
|
- detail.setSex(user.getUserSex());
|
|
|
- List<com.uas.account.entity.User> users = AccountUtils.addUser(user.getUserUU(), SystemSession.getUser().getEnterprise().getUu(), detail, password);
|
|
|
- if (!CollectionUtils.isEmpty(users)) {
|
|
|
- return users.get(0);
|
|
|
- } else {
|
|
|
- return null;
|
|
|
- }
|
|
|
- }*/
|
|
|
public void postToAccountCenter(User user) throws Exception {
|
|
|
//判断是否个人用户
|
|
|
if(SystemSession.getUser().getEnterprise()==null){
|
|
|
@@ -541,8 +426,6 @@ public class UserServiceImpl implements UserService {
|
|
|
User user = userDao.findOne(uu);
|
|
|
if (user.getEnterprises().contains(SystemSession.getUser().getEnterprise())) {
|
|
|
user.removeEnterprise(SystemSession.getUser().getEnterprise());
|
|
|
- /*if (user.getEnterprises().size() == 0)
|
|
|
- user.setEnable((short) Status.DISABLED.value());*/
|
|
|
userDao.save(user);
|
|
|
try {
|
|
|
com.uas.sso.util.AccountUtils.removeUser(uu,SystemSession.getUser().getEnterprise().getUu());
|
|
|
@@ -623,45 +506,11 @@ public class UserServiceImpl implements UserService {
|
|
|
|
|
|
@Override
|
|
|
public User updateUserTel(String oldTel, String newTel,Long uu) {
|
|
|
- /*// 旧手机号是否正确
|
|
|
- User user = userDao.findOne(uu);
|
|
|
- if(!user.getUserTel().equals(oldTel)){
|
|
|
- throw new IllegalOperatorException("旧手机号错误");
|
|
|
- }
|
|
|
- try {
|
|
|
- if(!StringUtils.isEmpty(oldTel) && !StringUtils.isEmpty(newTel)) {
|
|
|
- // 保存数据库
|
|
|
- List<com.uas.account.entity.User> users = AccountUtils.updateTel(oldTel, newTel);
|
|
|
- if (users != null && users.size() > 0) {
|
|
|
- user.setUserTel(users.get(0).getUid());
|
|
|
- user = userDao.save(user);
|
|
|
- return user;
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }*/
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public User updateUserEmail(String tel, String newEmail, Long uu) {
|
|
|
-/*
|
|
|
- try {
|
|
|
- if(!StringUtils.isEmpty(tel) && !StringUtils.isEmpty(newEmail)) {
|
|
|
- User user = userDao.findOne(uu);
|
|
|
- // 从账户中心返回的数据
|
|
|
- List<com.uas.account.entity.User> users = AccountUtils.updateEmail(tel,newEmail);
|
|
|
- // 保存数据库
|
|
|
- if (users != null && users.size() > 0) {
|
|
|
- user.setUserEmail(users.get(0).getSecondUID());
|
|
|
- user = userDao.save(user);
|
|
|
- return user;
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }*/
|
|
|
throw new IllegalOperatorException("数据更新失败...");
|
|
|
}
|
|
|
|
|
|
@@ -674,11 +523,16 @@ public class UserServiceImpl implements UserService {
|
|
|
@Override
|
|
|
public ModelMap anthority(User user,String resUrl) {
|
|
|
Set<ResourceItem> resourceItems = new HashSet<>();
|
|
|
+ List<ResourceItem> resourceItemList = resourceItemDao.findAll();
|
|
|
user.setCurrentEnterpriseRoles();
|
|
|
Set<Role> roles = user.getRoles();
|
|
|
if (!org.apache.commons.collections.CollectionUtils.isEmpty(roles)) {
|
|
|
for (Role role : roles) {
|
|
|
- resourceItems = role.getResourceItems();
|
|
|
+ if (!org.apache.commons.collections.CollectionUtils.isEmpty(role.getResourceItems())) {
|
|
|
+ for (ResourceItem resourceItem : role.getResourceItems()) {
|
|
|
+ resourceItems.add(resourceItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//匹配当前访问权限;
|
|
|
@@ -692,9 +546,19 @@ public class UserServiceImpl implements UserService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if (!org.apache.commons.collections.CollectionUtils.isEmpty(resourceItemList)) {
|
|
|
+ for (ResourceItem re : resourceItemList) {
|
|
|
+ if (resUrl.equals(re.getUrl())) {
|
|
|
+ ModelMap map = new ModelMap();
|
|
|
+ map.put("status","fail");
|
|
|
+ map.put("msg","您没有 "+re.getDesc()+" 权限,请联系管理员");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
ModelMap map = new ModelMap();
|
|
|
map.put("status","fail");
|
|
|
- map.put("msg","没有该导出权限,请联系管理员");
|
|
|
+ map.put("msg","您没有该权限,请联系管理员");
|
|
|
return map;
|
|
|
}
|
|
|
}
|