|
@@ -27,6 +27,7 @@ import com.uas.platform.b2b.support.SystemSession;
|
|
|
import com.uas.platform.core.model.Constant;
|
|
import com.uas.platform.core.model.Constant;
|
|
|
import com.uas.platform.core.model.PageInfo;
|
|
import com.uas.platform.core.model.PageInfo;
|
|
|
import com.uas.platform.core.model.PageParams;
|
|
import com.uas.platform.core.model.PageParams;
|
|
|
|
|
+import com.uas.ps.core.page.exception.IllegalOperatorException;
|
|
|
import com.uas.search.b2b.model.MultiValue;
|
|
import com.uas.search.b2b.model.MultiValue;
|
|
|
import com.uas.search.b2b.model.SPage;
|
|
import com.uas.search.b2b.model.SPage;
|
|
|
import com.uas.search.b2b.model.Sort;
|
|
import com.uas.search.b2b.model.Sort;
|
|
@@ -495,7 +496,8 @@ public class VendorsServiceImpl implements VendorService {
|
|
|
Iterator<VendorDistribute> iterator = distributeListCopy.iterator();
|
|
Iterator<VendorDistribute> iterator = distributeListCopy.iterator();
|
|
|
while (iterator.hasNext()) {
|
|
while (iterator.hasNext()) {
|
|
|
VendorDistribute distribute = iterator.next();
|
|
VendorDistribute distribute = iterator.next();
|
|
|
- if (Objects.equals(vendor.getId(), distribute.getVendorId())) {
|
|
|
|
|
|
|
+ if (Objects.equals(vendor.getId(), distribute.getVendorId())
|
|
|
|
|
+ && 1 == distribute.getIsTransfer()) {
|
|
|
contacts.add(distribute.getUser().getUserName());
|
|
contacts.add(distribute.getUser().getUserName());
|
|
|
iterator.remove();
|
|
iterator.remove();
|
|
|
}
|
|
}
|
|
@@ -574,7 +576,6 @@ public class VendorsServiceImpl implements VendorService {
|
|
|
if (!CollectionUtils.isEmpty(users)) {
|
|
if (!CollectionUtils.isEmpty(users)) {
|
|
|
List<VendorDistribute> saveList = new ArrayList<>();
|
|
List<VendorDistribute> saveList = new ArrayList<>();
|
|
|
for (User u : users) {
|
|
for (User u : users) {
|
|
|
- List<VendorDistribute> deleteList = new ArrayList<>();
|
|
|
|
|
if (null != u.getUserUU()) {
|
|
if (null != u.getUserUU()) {
|
|
|
VendorDistribute distribute = new VendorDistribute();
|
|
VendorDistribute distribute = new VendorDistribute();
|
|
|
List<VendorDistribute> distributes = vendorDistributeDao.findByUserUUAndVendorId(u.getUserUU(), vendor.getId());
|
|
List<VendorDistribute> distributes = vendorDistributeDao.findByUserUUAndVendorId(u.getUserUU(), vendor.getId());
|
|
@@ -591,18 +592,22 @@ public class VendorsServiceImpl implements VendorService {
|
|
|
distribute.setIsTransfer(Constant.YES);
|
|
distribute.setIsTransfer(Constant.YES);
|
|
|
saveList.add(distribute);
|
|
saveList.add(distribute);
|
|
|
}
|
|
}
|
|
|
|
|
+ // 进行权限转移时判断该用户是否是当前用户,如果不是,去掉当前用户的转移状态
|
|
|
|
|
+ if (!Objects.equals(u.getUserUU(), SystemSession.getUser().getUserUU())) {
|
|
|
|
|
+ List<VendorDistribute> currentDistributes = vendorDistributeDao.findByUserUUAndVendorId(SystemSession.getUser().getUserUU(), vendor.getId());
|
|
|
|
|
+ if (!CollectionUtil.isEmpty(currentDistributes)) {
|
|
|
|
|
+ distribute = currentDistributes.get(0);
|
|
|
|
|
+ distribute.setIsTransfer(Constant.NO);
|
|
|
|
|
+ saveList.add(distribute);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
// 删除当前用户的权限子节点用户
|
|
// 删除当前用户的权限子节点用户
|
|
|
if (!CollectionUtils.isEmpty(distributes)) {
|
|
if (!CollectionUtils.isEmpty(distributes)) {
|
|
|
- // 当前用户
|
|
|
|
|
- deleteList.add(distributes.get(0));
|
|
|
|
|
- Long vendorId = vendor.getId();
|
|
|
|
|
- Long userUU = u.getUserUU();
|
|
|
|
|
- if (null != distributes.get(0).getIsTransfer() && 1 == distributes.get(0).getIsTransfer()) {
|
|
|
|
|
- deleteList = deleteChildrenDistributes(vendorId, userUU, deleteList);
|
|
|
|
|
- }
|
|
|
|
|
- // 防止出现作为参数的用户之间存在权限父子节点关系,导致重复查询,所以每次递归完成,执行一次删除
|
|
|
|
|
- vendorDistributeDao.delete(deleteList);
|
|
|
|
|
|
|
+ distribute = distributes.get(0);
|
|
|
|
|
+ distribute.setLeaderUU(SystemSession.getUser().getUserUU());
|
|
|
|
|
+ distribute.setIsTransfer(Constant.NO);
|
|
|
|
|
+ saveList.add(distribute);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -636,10 +641,10 @@ public class VendorsServiceImpl implements VendorService {
|
|
|
if (Constant.NO == distribute.getIsTransfer()) {
|
|
if (Constant.NO == distribute.getIsTransfer()) {
|
|
|
throw new IllegalAccessException("当前用户没有分配或转移的权限");
|
|
throw new IllegalAccessException("当前用户没有分配或转移的权限");
|
|
|
}
|
|
}
|
|
|
|
|
+ } else {
|
|
|
|
|
+ throw new IllegalAccessException("当前用户没有分配或转移的权限");
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -652,12 +657,14 @@ public class VendorsServiceImpl implements VendorService {
|
|
|
private List<VendorDistribute> deleteChildrenDistributes(Long vendorId, Long userUU, List<VendorDistribute> deleteList) {
|
|
private List<VendorDistribute> deleteChildrenDistributes(Long vendorId, Long userUU, List<VendorDistribute> deleteList) {
|
|
|
// 删除时,同时删除被其分配权限的其他用户
|
|
// 删除时,同时删除被其分配权限的其他用户
|
|
|
List<VendorDistribute> distributes = vendorDistributeDao.findByVendorIdAndLeaderUU(vendorId, userUU);
|
|
List<VendorDistribute> distributes = vendorDistributeDao.findByVendorIdAndLeaderUU(vendorId, userUU);
|
|
|
|
|
+ List<VendorDistribute> vendorDistributes = new ArrayList<>();
|
|
|
if (!CollectionUtils.isEmpty(distributes)) {
|
|
if (!CollectionUtils.isEmpty(distributes)) {
|
|
|
deleteList.addAll(distributes);
|
|
deleteList.addAll(distributes);
|
|
|
// 被删除用户拥有转移权限时,继续删除其子节点
|
|
// 被删除用户拥有转移权限时,继续删除其子节点
|
|
|
for (VendorDistribute distribute : distributes) {
|
|
for (VendorDistribute distribute : distributes) {
|
|
|
if (null != distribute.getIsTransfer() && 1 == distribute.getIsTransfer()) {
|
|
if (null != distribute.getIsTransfer() && 1 == distribute.getIsTransfer()) {
|
|
|
- return deleteChildrenDistributes(vendorId, distribute.getUserUU(), deleteList);
|
|
|
|
|
|
|
+ distribute.setIsTransfer(Constant.NO);
|
|
|
|
|
+ vendorDistributes.add(distribute);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|