Forráskód Böngészése

Merge remote-tracking branch 'origin/feature-hejq-201844' into feature-hejq-201844

shenjunjie 7 éve
szülő
commit
d3cbaf7af9

+ 1 - 1
src/main/java/com/uas/platform/b2b/controller/UserController.java

@@ -89,7 +89,7 @@ public class UserController {
 	}
 
 	/**
-	 * 通过客户UU查询分配的用户
+	 * 通过客户分配id查询分配的用户
 	 *
 	 * @param id 客户UU
 	 * @return

+ 42 - 10
src/main/java/com/uas/platform/b2b/dao/DistributeDao.java

@@ -8,24 +8,31 @@ import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
+import java.util.Set;
 
+/**
+ * 客户分配信息
+ *
+ * @author hejq
+ * @date 2018-12-12 9:26
+ */
 @Repository
 public interface DistributeDao extends JpaSpecificationExecutor<Distribute>, GenericRepository<Distribute, Long> {
 	
 	/**
 	 * 根据用户UU查询客户分配表 
 	 * @param userUU
-	 * @return
+	 * @return 分配记录
 	 */
 	List<Distribute> findByUserUU(Long userUU);
 	
 	/**
-	 * 根据用户UU和vendor ID
-	 * @param userUU
-	 * @param vendorId
-	 * @return
+	 * 根据用户UU和vendor ID 查询客户分配表
+	 * @param userUU 用户UU
+	 * @param vendorId vendor ID
+	 * @return 分配记录
 	 */
-	List<Distribute> findByUserUUAndVendorId(Long userUU,Long vendorId);
+	List<Distribute> findByUserUUAndVendorId(Long userUU, Long vendorId);
 
 	/**
 	 * 通过供应商表id查询客户分配
@@ -36,20 +43,45 @@ public interface DistributeDao extends JpaSpecificationExecutor<Distribute>, Gen
 	@Query("select d from Distribute d where d.vendorId in (:vendorIds)")
 	List<Distribute> findByVendorId(@Param("vendorIds") List<Long> vendorIds);
 
+    /**
+     * 通过供应商客户关系表ID查询客户分配信息
+     *
+     * @param vendorId 供应商客户关系表ID
+     * @return 客户分配
+     */
 	List<Distribute> findByVendorId(Long vendorId);
 
 	/**
 	 * 查找被当前用户绑定当前客户权限的记录
-	 * @param id
-	 * @param userUU
-	 * @return
+	 * @param id 供应商关系表id
+	 * @param userUU 转移人UU
+	 * @return 客户分配
 	 */
 	List<Distribute> findByVendorIdAndLeaderUU(Long id, Long userUU);
 
 	/**
 	 * 根据leaderUU 查询客户绑定记录
 	 * @param userUU 用户UU
-	 * @return
+	 * @return 分配记录
 	 */
     List<Distribute> findByLeaderUU(Long userUU);
+
+    /**
+     * 通过用户UU和供应商UU查询分配的客户信息
+     *
+     * @param UserUU 用户UU
+     * @param vendorUU 供应商UU
+     * @return 分配记录
+     */
+    @Query("select d from Distribute d where d.userUU = :userUU and d.vendor.vendEnUU = :vendorUU")
+    List<Distribute> findByUserUUAndVendorUU(@Param("userUU") Long UserUU, @Param("vendorUU") Long vendorUU);
+
+    /**
+     * 通过用户UU和供应商关系id查询客户分配信息
+     *
+     * @param userUUList 用户UUlist
+     * @param vendorId 供应商表Id
+     * @return 符合条件的客户分配关系
+     */
+    List<Distribute> findByVendorIdAndUserUUIn(Long vendorId, List<Long> userUUList);
 }

+ 1 - 1
src/main/java/com/uas/platform/b2b/filter/SSOInterceptor.java

@@ -133,7 +133,7 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 				// 企业资料在client系统自己的唯一标识,比如en_uu
 				if (tokenUser.getSpaceUU() != null) {
                     authorizedUser.setCurrentEnterprise(tokenUser.getSpaceUU());
-				} else if (StringUtils.isEmpty(tokenUser.getBusinessCode())) {
+				} else if (!StringUtils.isEmpty(tokenUser.getBusinessCode())) {
 					for (Enterprise enterprise : authorizedUser.getEnterprises()) {
 						// 企业资料在所有系统公认的唯一标识,这里使用商业登记证号
 						if (tokenUser.getBusinessCode().equals(enterprise.getEnBussinessCode())) {

+ 6 - 7
src/main/java/com/uas/platform/b2b/model/User.java

@@ -29,6 +29,11 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
 
+/**
+ * B2B用户信息
+ *
+ * @author US50
+ */
 @Entity
 @Table(name = "sec$users")
 @Cacheable
@@ -462,13 +467,7 @@ public class User implements Serializable {
     public void setCurrentEnterpriseRoles(Long enUU) {
         if (null != enUU) {
             if (!CollectionUtils.isEmpty(this.roles)) {
-                Iterator<Role> iterator = this.roles.iterator();
-                while (iterator.hasNext()) {
-                    Role role = iterator.next();
-                    if (!role.getEnUU().equals(enUU)) {
-                        iterator.remove();
-                    }
-                }
+                this.roles.removeIf(role -> !role.getEnUU().equals(enUU));
             }
         } else {
             this.roles = null;

+ 2 - 4
src/main/java/com/uas/platform/b2b/service/impl/PurchaseApCheckServiceImpl.java

@@ -521,10 +521,8 @@ public class PurchaseApCheckServiceImpl implements PurchaseApCheckService {
                 List<TradeCount> totalTrades = getDueTrade(enUU, customerUU);
                 customer.setTotalCount(totalTrades);
                 // 本月应收
-                if (null != checkDate) {
-                    List<TradeCount> thisMonthTrades = getThisMonthTrade(enUU, customerUU, checkDate, fromDate, endDate);
-                    customer.setThisMonthCount(thisMonthTrades);
-                }
+                List<TradeCount> thisMonthTrades = getThisMonthTrade(enUU, customerUU, checkDate, fromDate, endDate);
+                customer.setThisMonthCount(thisMonthTrades);
             });
         return vendorSPage;
     }

+ 22 - 22
src/main/java/com/uas/platform/b2b/service/impl/UserServiceImpl.java

@@ -52,6 +52,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * @author US50
@@ -624,15 +625,16 @@ public class UserServiceImpl implements UserService {
 	 */
 	@Override
 	public Set<User> findUsersByKeyWord(String keyword) {
-		List<User> users = new ArrayList<User>();
-		Set<User> userSet = new HashSet<User>();
+		Set<User> userSet = new HashSet<>();
 		Long enUU = SystemSession.getUser().getEnterprise().getUu();
 		userSet.addAll(userDao.findUserByUserEmailAndEnUU(keyword, enUU));
 		userSet.addAll(userDao.findUserByUserTelAndEnUU(keyword, enUU));
-		userSet.addAll(userDao.findByEnUUAndUserUU(enUU, Long.parseLong(keyword)));
+		if (keyword.matches(UU_REGEXP)) {
+            userSet.addAll(userDao.findByEnUUAndUserUU(enUU, Long.parseLong(keyword)));
+        }
 		userSet.addAll(userDao.findUserByUserNameAndEnUU(keyword, enUU));
 		if (!CollectionUtils.isEmpty(userSet)) {
-			for (User user : users) {
+			for (User user : userSet) {
 				user.setCurrentEnterpriseRoles(enUU);
 			}
 		}
@@ -741,6 +743,8 @@ public class UserServiceImpl implements UserService {
 	@Override
 	public boolean addCustomerToUser(Long userUU, List<Vendor> vendors) {
 		if (!CollectionUtils.isEmpty(vendors)) {
+		    List<Distribute> needToSave = new ArrayList<>();
+		    List<Distribute> needToRemove = new ArrayList<>();
 			for (Vendor vendor : vendors) {
 				Distribute disbute = new Distribute();
 				if (vendor.getDistribute()) {
@@ -748,15 +752,21 @@ public class UserServiceImpl implements UserService {
 					if (CollectionUtils.isEmpty(disbutes)) {
 						disbute.setUserUU(userUU);
 						disbute.setVendorId(vendor.getId());
-						distributeDao.save(disbute);
+                        needToSave.add(disbute);
 					}
 				} else {
 					List<Distribute> disbutes = distributeDao.findByUserUUAndVendorId(userUU, vendor.getId());
 					if (!CollectionUtils.isEmpty(disbutes)) {
-						distributeDao.delete(disbutes.get(0));
+                        needToRemove.add(disbutes.get(0));
 					}
 				}
 			}
+			if (!CollectionUtils.isEmpty(needToSave)) {
+                distributeDao.save(needToSave);
+            }
+            if (!CollectionUtils.isEmpty(needToRemove)) {
+                distributeDao.delete(needToRemove);
+            }
 			return true;
 		}
 		return false;
@@ -764,19 +774,8 @@ public class UserServiceImpl implements UserService {
 
 	@Override
 	public List<Vendor> findChooseVendor(Long userUU) {
-		List<Vendor> vendors = vendorDao.findByVendEnUU(SystemSession.getUser().getEnterprise().getUu());
-		List<Vendor> vendors2 = new ArrayList<Vendor>();
-		List<Distribute> distributes = distributeDao.findByUserUU(userUU);
-		if (!CollectionUtils.isEmpty(distributes) && !CollectionUtils.isEmpty(vendors)) {
-			for (Distribute d : distributes) {
-				for (int i = 0; i < vendors.size(); i++) {
-					if (d.getVendorId().equals(vendors.get(i).getId())) {
-						vendors2.add(vendors.get(i));
-					}
-				}
-			}
-		}
-		return vendors2;
+        List<Distribute> distributes = distributeDao.findByUserUUAndVendorUU(userUU, SystemSession.getUser().getEnterprise().getUu());
+        return distributes.stream().map(Distribute::getVendor).collect(Collectors.toList());
 	}
 
 	@Override
@@ -833,10 +832,11 @@ public class UserServiceImpl implements UserService {
 
 	@Override
 	public SPage<UserBaseInfo> findUserInfoDistribute(Long id, PageParams params, String keyword) {
-		List<Distribute> butes = vendorService.findByVeId(id);
         SPage<UserBaseInfo> userBaseInfoSPage = vendorService.findUserInfoByPage(params, keyword);
-		if (!CollectionUtils.isEmpty(userBaseInfoSPage.getContent())) {
-			if (!CollectionUtils.isEmpty(butes)) {
+        if (!CollectionUtils.isEmpty(userBaseInfoSPage.getContent())) {
+            List<Long> userUUList = userBaseInfoSPage.getContent().stream().map(UserBaseInfo::getUserUU).collect(Collectors.toList());
+            List<Distribute> butes = distributeDao.findByVendorIdAndUserUUIn(id, userUUList);
+            if (!CollectionUtils.isEmpty(butes)) {
 				for (UserBaseInfo u : userBaseInfoSPage.getContent()) {
 					for (Distribute d : butes) {
 						if (u.getUserUU().equals(d.getUserUU())) {

+ 3 - 2
src/main/java/com/uas/platform/b2b/service/impl/VendorsServiceImpl.java

@@ -504,8 +504,9 @@ public class VendorsServiceImpl implements VendorService {
                 Iterator<VendorDistribute> iterator = distributeListCopy.iterator();
                 while (iterator.hasNext()) {
                     VendorDistribute distribute = iterator.next();
-                    if (Objects.equals(vendor.getId(), distribute.getVendorId())
-                        && (1 == distribute.getIsTransfer() || 1 == distribute.getDistribute())) {
+                    boolean existContacts = Objects.equals(vendor.getId(), distribute.getVendorId())
+                        && (1 == distribute.getIsTransfer() || 1 == distribute.getDistribute());
+                    if (existContacts) {
                         contacts.add(distribute.getUser().getUserName());
                         iterator.remove();
                     }