|
|
@@ -1,13 +1,5 @@
|
|
|
package com.uas.platform.b2b.v2.service.impl;
|
|
|
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
-
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
-
|
|
|
import com.uas.account.util.AccountUtils;
|
|
|
import com.uas.platform.b2b.dao.EnterpriseDao;
|
|
|
import com.uas.platform.b2b.dao.RoleDao;
|
|
|
@@ -22,6 +14,14 @@ import com.uas.platform.b2b.v2.service.ChangeAdminService;
|
|
|
import com.uas.platform.core.model.Constant;
|
|
|
import com.uas.platform.core.model.Status;
|
|
|
import com.uas.platform.core.util.encry.Md5Utils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.Iterator;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
@SuppressWarnings("deprecation")
|
|
|
@Service("v2.ChangeAdminService")
|
|
|
@@ -50,8 +50,13 @@ public class ChangeAdminServiceImpl implements ChangeAdminService {
|
|
|
// 如果用户存在,则更换管理员
|
|
|
User user = userService.findUserByUserTel(detail.getAdminTel());
|
|
|
Enterprise enterprise = enterpriseDao.findEnterpriseByEnBussinessCode(detail.getBusinessCode());
|
|
|
- // 解除以前管理员与本企业的关系
|
|
|
- EnterpriseDeleteUser(enterprise);
|
|
|
+ // 如果方式是删除,解除以前管理员与本企业的关系
|
|
|
+ if(("remove").equals(detail.getMethod())) {
|
|
|
+ EnterpriseDeleteUser(enterprise);
|
|
|
+ } else {
|
|
|
+ // 将以前的管理员设置成普通用户
|
|
|
+ updateUserRole(enterprise);
|
|
|
+ }
|
|
|
if (user != null) {
|
|
|
enterprise.setEnAdminuu(user.getUserUU());
|
|
|
enterprise.setAdmin(user);
|
|
|
@@ -99,6 +104,32 @@ public class ChangeAdminServiceImpl implements ChangeAdminService {
|
|
|
return enterprise;
|
|
|
}
|
|
|
|
|
|
+ private void updateUserRole(Enterprise enterprise) {
|
|
|
+ User newUser = userDao.findOne(enterprise.getEnAdminuu());
|
|
|
+ if (!CollectionUtils.isEmpty(newUser.getRoles())) {
|
|
|
+ Set<Role> existRoles = newUser.getRoles();
|
|
|
+ if(!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
|
|
|
+ Iterator<Role> iterator = existRoles.iterator();
|
|
|
+ Long currentEnuu = enterprise.getUu();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ Role role = iterator.next();
|
|
|
+ if(role.getEnUU().equals(currentEnuu)) {
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ existRoles = new HashSet<>();
|
|
|
+ }
|
|
|
+ newUser.setRoles(existRoles);
|
|
|
+ try {
|
|
|
+ userDao.save(newUser);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
private void EnterpriseDeleteUser(Enterprise enterprise) {
|
|
|
User user = userDao.findOne(enterprise.getEnAdminuu());
|
|
|
@@ -110,6 +141,7 @@ public class ChangeAdminServiceImpl implements ChangeAdminService {
|
|
|
userInfo.setUid(user.getUserTel());
|
|
|
userInfo.setSecondUID(user.getUserEmail());
|
|
|
userInfo.setDialectUID(String.valueOf(enterprise.getEnAdminuu()));
|
|
|
+ userInfo.setSpaceDialectUID(String.valueOf(enterprise.getUu()));
|
|
|
if (user.getEnterprises().contains(enterprise)) {
|
|
|
user.removeEnterprise(enterprise);
|
|
|
if (user.getEnterprises().size() == 0)
|