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

feat: 优化客户分配相关数据查询

hejq 7 лет назад
Родитель
Сommit
693e84c19f

+ 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

+ 15 - 5
src/main/java/com/uas/platform/b2b/dao/DistributeDao.java

@@ -8,6 +8,7 @@ import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * 客户分配信息
@@ -26,12 +27,12 @@ public interface DistributeDao extends JpaSpecificationExecutor<Distribute>, Gen
 	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查询客户分配
@@ -74,4 +75,13 @@ public interface DistributeDao extends JpaSpecificationExecutor<Distribute>, Gen
      */
     @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);
 }

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

@@ -832,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();
                     }