|
|
@@ -3,6 +3,7 @@ package com.uas.platform.b2b.service.impl;
|
|
|
import com.uas.platform.b2b.dao.CommonDao;
|
|
|
import com.uas.platform.b2b.dao.DistributeDao;
|
|
|
import com.uas.platform.b2b.dao.EnterpriseDao;
|
|
|
+import com.uas.platform.b2b.dao.RoleDao;
|
|
|
import com.uas.platform.b2b.dao.VendorContactDao;
|
|
|
import com.uas.platform.b2b.dao.VendorDao;
|
|
|
import com.uas.platform.b2b.dao.VendorDistributeDao;
|
|
|
@@ -12,6 +13,7 @@ import com.uas.platform.b2b.erp.model.VendorRecommend;
|
|
|
import com.uas.platform.b2b.model.Distribute;
|
|
|
import com.uas.platform.b2b.model.Enterprise;
|
|
|
import com.uas.platform.b2b.model.Product;
|
|
|
+import com.uas.platform.b2b.model.Role;
|
|
|
import com.uas.platform.b2b.model.SearchFilter;
|
|
|
import com.uas.platform.b2b.model.User;
|
|
|
import com.uas.platform.b2b.model.Vendor;
|
|
|
@@ -82,6 +84,9 @@ public class VendorsServiceImpl implements VendorService {
|
|
|
@Autowired
|
|
|
private UserService userService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RoleDao roleDao;
|
|
|
+
|
|
|
/**
|
|
|
* 应用来源
|
|
|
*/
|
|
|
@@ -560,7 +565,7 @@ public class VendorsServiceImpl implements VendorService {
|
|
|
* @return 转移结果
|
|
|
*/
|
|
|
@Override
|
|
|
- public boolean transferVendorToUser(Long id, List<User> users) {
|
|
|
+ public boolean transferVendorToUser(Long id, List<User> users) throws IllegalAccessException {
|
|
|
Vendor vendor = vendorDao.findOne(id);
|
|
|
if (!CollectionUtils.isEmpty(users)) {
|
|
|
List<VendorDistribute> saveList = new ArrayList<>();
|
|
|
@@ -604,6 +609,35 @@ public class VendorsServiceImpl implements VendorService {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询是否有操作转移的权限
|
|
|
+ * <pre>
|
|
|
+ * 1、 先判断是否是管理员,如果是,后面不用判断
|
|
|
+ * 2、 非管理员判断是否被转移权限,有权限继续,没有权限返回给出提示,不能操作
|
|
|
+ * </pre>
|
|
|
+ *
|
|
|
+ * @param vendId 供应商关系表id
|
|
|
+ */
|
|
|
+ private void checkAuthority(Long vendId) throws IllegalAccessException {
|
|
|
+ User user = SystemSession.getUser();
|
|
|
+ List<String> roles = new ArrayList<>();
|
|
|
+ roles.add(Role.ROLE_ADMIN);
|
|
|
+ // 查询是否是管理员
|
|
|
+ Integer count = roleDao.countByEnUUAndUserUU(user.getEnterprise().getUu(), user.getUserUU(), roles);
|
|
|
+ if (count == 0) {
|
|
|
+ // 查询是否被转移权限
|
|
|
+ List<VendorDistribute> distributes = vendorDistributeDao.findByUserUUAndVendorId(user.getUserUU(), vendId);
|
|
|
+ if (!CollectionUtil.isEmpty(distributes)) {
|
|
|
+ VendorDistribute distribute = distributes.get(0);
|
|
|
+ if (Constant.NO == distribute.getIsTransfer()) {
|
|
|
+ throw new IllegalAccessException("当前用户没有分配或转移的权限");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 删除用户的所有关联节点
|
|
|
* @param vendorId 供应商关系id
|
|
|
@@ -633,7 +667,8 @@ public class VendorsServiceImpl implements VendorService {
|
|
|
* @return 分配的供应商
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<User> findUserInfoVendDistribute(Long veId) {
|
|
|
+ public List<User> findUserInfoVendDistribute(Long veId) throws IllegalAccessException {
|
|
|
+ checkAuthority(veId);
|
|
|
List<VendorDistribute> distributes = vendorDistributeDao.findByVendorId(veId);
|
|
|
List<User> users = userService.findUsersByEnUU(SystemSession.getUser().getEnterprise().getUu());
|
|
|
users.forEach(user -> {
|