Просмотр исходного кода

企业资料修改增加营业执照修改(客服操作);更换管理员增加更换方法,涉及到以前人员的删除或设为普通用户的方法

hejq 9 лет назад
Родитель
Сommit
27d42a430f

+ 14 - 0
src/main/java/com/uas/platform/b2b/temporary/model/ChangeAdminDetail.java

@@ -34,6 +34,7 @@ public class ChangeAdminDetail implements Serializable {
 	private Date enDate;
 	private String adminPassword;
 	private String appId;
+	private String method;
 
 	public Long getId() {
 		return id;
@@ -262,4 +263,17 @@ public class ChangeAdminDetail implements Serializable {
 		this.appId = appId;
 	}
 
+
+	/**
+	 * 更换方式
+	 *
+	 * @return
+	 */
+	public String getMethod() {
+		return method;
+	}
+
+	public void setMethod(String method) {
+		this.method = method;
+	}
 }

+ 5 - 1
src/main/java/com/uas/platform/b2b/v2/controller/EnterpriseController.java

@@ -80,11 +80,15 @@ public class EnterpriseController {
 	@RequestMapping(value = "/renewUserSpace", method = RequestMethod.POST)
 	@ResponseBody
 	public String renewUserSpace(UserSpaceDetail userSpaceDetail) throws Exception {
-		Enterprise enterprise = enterService.findByenBussinessCode(userSpaceDetail.getBusinessCode());
+		Enterprise enterprise = null;
+		if(userSpaceDetail.getUu() != null) {
+			enterprise = enterService.findByEnUU(userSpaceDetail.getUu());
+		}
 		if (enterprise != null) {
 			enterprise.setEnName(userSpaceDetail.getName());
 			enterprise.setEnShortname(userSpaceDetail.getShortName());
 			enterprise.setEnAddress(userSpaceDetail.getAddress());
+			enterprise.setEnBussinessCode(userSpaceDetail.getBusinessCode());
 			try {
 				enterpriseService.save(enterprise);
 				return "success";

+ 42 - 10
src/main/java/com/uas/platform/b2b/v2/service/impl/ChangeAdminServiceImpl.java

@@ -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)