Levi.u 4 лет назад
Родитель
Сommit
3ed74cd9e6

+ 13 - 0
src/main/java/com/ebei/screen/controller/eba/EbaSystemController.java

@@ -1,5 +1,6 @@
 package com.ebei.screen.controller.eba;
 
+import com.ebei.screen.common.response.BasePageBean;
 import com.ebei.screen.common.response.ResponseBean;
 import com.ebei.screen.common.util.EbaUtils;
 import com.ebei.screen.service.EbaSystemService;
@@ -65,4 +66,16 @@ public class EbaSystemController {
         return ebaSystemService.getShowProjectList();
     }
 
+    @ApiOperation("分页查询所有已配置关联的项目列表")
+    @PostMapping("/getProjectListByPage")
+    public ResponseBean getProjectListByPage(@RequestBody BasePageBean pageBean) {
+        return ebaSystemService.getProjectListByPage(pageBean);
+    }
+
+    @ApiOperation("删除已有的关联项目")
+    @PostMapping("/deleteRelevance/{ebeiProjectId}")
+    public ResponseBean deleteRelevance(@PathVariable String ebeiProjectId){
+        return ebaSystemService.deleteRelevance(ebeiProjectId);
+    }
+
 }

+ 17 - 0
src/main/java/com/ebei/screen/service/EbaSystemService.java

@@ -1,5 +1,6 @@
 package com.ebei.screen.service;
 
+import com.ebei.screen.common.response.BasePageBean;
 import com.ebei.screen.common.response.ResponseBean;
 
 import java.util.Map;
@@ -119,4 +120,20 @@ public interface EbaSystemService {
      * @return
      */
     ResponseBean getCrmProjectList();
+
+    /**
+     * 分页查询所有已配置关联的项目列表
+     *
+     * @param pageBean
+     * @return
+     */
+    ResponseBean getProjectListByPage(BasePageBean pageBean);
+
+    /**
+     * 删除已有的关联项目
+     *
+     * @param ebeiProjectId
+     * @return
+     */
+    ResponseBean deleteRelevance(String ebeiProjectId);
 }

+ 52 - 3
src/main/java/com/ebei/screen/service/impl/EbaSystemServiceImpl.java

@@ -9,6 +9,8 @@ import com.alibaba.fastjson.JSONObject;
 import com.ebei.screen.common.config.auth.LoginUtils;
 import com.ebei.screen.common.constants.EbaMessageCode;
 import com.ebei.screen.common.constants.EbaSystemConstants;
+import com.ebei.screen.common.response.BasePageBean;
+import com.ebei.screen.common.response.PageBean;
 import com.ebei.screen.common.response.ResponseBean;
 import com.ebei.screen.common.response.ResponseBuilder;
 import com.ebei.screen.common.util.EbaUtils;
@@ -30,7 +32,9 @@ import org.springframework.transaction.annotation.Transactional;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
+import java.util.function.Supplier;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * EBA系统大屏
@@ -359,7 +363,10 @@ public class EbaSystemServiceImpl implements EbaSystemService {
             Map data = (Map) map.get("data");
             data.keySet().forEach(x -> results.add((Map) data.get(x)));
         }
-        return ResponseBuilder.ok(results);
+        JSONObject obj = mongoTemplate.findById("relevanceProject", JSONObject.class, "relevanceProject");
+        JSONObject dd = obj != null ? obj.getJSONObject("data") : new JSONObject();
+        List<String> collect = dd.values().stream().map(x -> (String) x).distinct().collect(Collectors.toList());
+        return ResponseBuilder.ok(results.stream().filter(x -> !collect.contains(x.get("projectId").toString())).collect(Collectors.toList()));
     }
 
     /**
@@ -515,10 +522,52 @@ public class EbaSystemServiceImpl implements EbaSystemService {
         String str = HttpRequest.get(getProjectList + LoginUtils.getUserId())
                 .execute().body();
         List<Map> projectLists = LeviUtils.getJsonFieldMany(str, "items", Map.class);
+        JSONObject obj = mongoTemplate.findById("relevanceProject", JSONObject.class, "relevanceProject");
+        JSONObject dd = obj != null ? obj.getJSONObject("data") : new JSONObject();
+        Set<String> projectIds = dd.keySet();
+        List<Map> projectListsNew = projectLists.stream().filter(x -> !projectIds.contains(x.get("projectId").toString())).collect(Collectors.toList());
         JSONObject data = new JSONObject();
-        projectLists.forEach(x -> data.put(x.get("projectId").toString(), x.get("projectName").toString()));
+        projectListsNew.forEach(x -> data.put(x.get("projectId").toString(), x.get("projectName").toString()));
         EbaUtils.crmProjectInfo = data;
-        return ResponseBuilder.ok(projectLists);
+        return ResponseBuilder.ok(projectListsNew);
+    }
+
+    /**
+     * 分页查询所有已配置关联的项目列表
+     *
+     * @param pageBean
+     * @return
+     */
+    @Override
+    public ResponseBean getProjectListByPage(BasePageBean pageBean) {
+        JSONObject obj = mongoTemplate.findById("relevanceProject", JSONObject.class, "relevanceProject");
+        JSONObject data = obj != null ? obj.getJSONObject("data") : new JSONObject();
+        JSONObject crmProjectInfo = EbaUtils.crmProjectInfo;
+        List<Map> list = new ArrayList<>();
+        data.keySet().forEach(x -> list.add(Levi.by("ebaProjectId", x).set("ebaProjectName", crmProjectInfo.get(x)).set("ebeiProjectId", data.getString(x)).set("ebeiProjectName", EbaUtils.project.getJSONObject(data.getString(x)).getString("projectName"))));
+        Supplier<Stream<Map>> resStream = () -> list.stream();
+        List<Map> results = resStream.get().skip((pageBean.getPageNum() - 1) * pageBean.getPageSize()).limit(pageBean.getPageSize()).collect(Collectors.toList());
+        return ResponseBuilder.ok(PageBean.<Map>builder().total(resStream.get().count()).row(results).build());
+    }
+
+    /**
+     * 删除已有的关联项目
+     *
+     * @param ebeiProjectId
+     * @return
+     */
+    @Override
+    public ResponseBean deleteRelevance(String ebeiProjectId) {
+        JSONObject obj = mongoTemplate.findById("relevanceProject", JSONObject.class, "relevanceProject");
+        JSONObject data = obj != null ? obj.getJSONObject("data") : new JSONObject();
+        data.remove(ebeiProjectId);
+        Query query = new Query();
+        query.addCriteria(Criteria.where("_id").is("relevanceProject"));
+        Update update = new Update();
+        update.set("data", data);
+        mongoTemplate.upsert(query, update, "relevanceProject");
+        return ResponseBuilder.ok("删除成功");
     }
 
+
 }