Browse Source

修复师傅配置重复问题

jiahui 1 year ago
parent
commit
f428f0aad2

+ 26 - 12
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPWXGQueryAddServiceImpl.java

@@ -2087,6 +2087,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
 
     public void addDataCategory(List<WorkerServiceCategory> wscList, List<WorkerServiceCategoryDetail> wscdList) {
 
+
         // 师傅服务类目新增
         if (wscList.size()>0){
             workerServiceCategoryService.saveBatch(wscList);
@@ -2199,17 +2200,30 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             // 新增
             // 看 worker_service_category 有无数据,无数据新增
             if (wxgCategoryTypeRecs ==null || wxgCategoryTypeRecs.size()<1 || !wxgCategoryTypeRecs.containsKey(code) ){
-                WorkerServiceCategory wsc = new WorkerServiceCategory();
-                wsc.setId(IdWorker.getIdStr());
-                wsc.setWorkerId(workerBrandAccount.getWorkerId());
-                wsc.setWebsitId(workerBrandAccount.getWebsitId());
-                wsc.setWebsitWorkerId(workerBrandAccount.getWebsitWorkerId());
-                wsc.setServiceCategoryId(sysDict.getDictCode());
-                wsc.setServiceCategoryName(sysDict.getDictValue());
-                wsc.setFlag(type);
-                wsc.setType(code);
-                wsc.setCreateTime(new Date());
-                wscList.add(wsc);
+
+                //去重,判断是否存在
+                List<WorkerServiceCategory> hasWorkerServiceCategory = wscList.stream().filter(v ->
+                        org.apache.commons.lang3.StringUtils.equals(v.getWebsitWorkerId(), workerBrandAccount.getWebsitWorkerId())
+                                && org.apache.commons.lang3.StringUtils.equals(v.getFlag(), type)
+                                && org.apache.commons.lang3.StringUtils.equals(v.getType(), code)
+                ).collect(Collectors.toList());
+
+                WorkerServiceCategory wsc = null;
+                if(CollectionUtils.isNotEmpty(hasWorkerServiceCategory)){
+                    wsc = hasWorkerServiceCategory.get(0);
+                }else {
+                    wsc = new WorkerServiceCategory();
+                    wsc.setId(IdWorker.getIdStr());
+                    wsc.setWorkerId(workerBrandAccount.getWorkerId());
+                    wsc.setWebsitId(workerBrandAccount.getWebsitId());
+                    wsc.setWebsitWorkerId(workerBrandAccount.getWebsitWorkerId());
+                    wsc.setServiceCategoryId(sysDict.getDictCode());
+                    wsc.setServiceCategoryName(sysDict.getDictValue());
+                    wsc.setFlag(type);
+                    wsc.setType(code);
+                    wsc.setCreateTime(new Date());
+                    wscList.add(wsc);
+                }
 
                 // WorkerServiceCategoryDetail 新增
                 WorkerServiceCategoryDetail wscd = new WorkerServiceCategoryDetail();
@@ -2234,7 +2248,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                 // WorkerServiceCategoryDetail 新增
                 WorkerServiceCategoryDetail wscd = new WorkerServiceCategoryDetail();
                 wscd.setId(IdWorker.getIdStr());
-                wscd.setWorkerServiceCategoryId(wxgCategoryTypeRecs.get(code).get(0).getServiceCategoryId());
+                wscd.setWorkerServiceCategoryId(wxgCategoryTypeRecs.get(code).get(0).getWorkerServiceCategoryId());
                 wscd.setWorkerId(workerBrandAccount.getWorkerId());
                 wscd.setWebsitId(workerBrandAccount.getWebsitId());
                 wscd.setWebsitWorkerId(workerBrandAccount.getWebsitWorkerId());