Browse Source

Changes 修改站点绑定业务

cyan 4 months ago
parent
commit
eec32637e5

+ 2 - 1
jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/okki/site/service/IFeiShuCommonService.java

@@ -164,7 +164,7 @@ public class IFeiShuCommonService {
      *
      * @param okkiSite
      */
-    public void syncWebsiteToFeiShuSheet(OkkiSite okkiSite,Map<String, Object> updateGroupFieldMap) {
+    public String syncWebsiteToFeiShuSheet(OkkiSite okkiSite,Map<String, Object> updateGroupFieldMap) {
         FeiShuConfigEnum configEnum = FeiShuConfigManager.getInstance().getConfigEnum();
         Client client = Client.newBuilder(configEnum.getAppId(), configEnum.getAppSecret()).build();
 
@@ -199,6 +199,7 @@ public class IFeiShuCommonService {
 
 //        System.out.println(Jsons.DEFAULT.toJson(resp.getData()));
 //        feiShuMsgService.sendSyncFeiShuSheetMsg(okkiSite.getCompanyName(), okkiSite.getSiteId(), okkiSite.getTcName(), syncStatus);
+        return resp.getData().getRecord().getRecordId();
     }
 
     /**

+ 13 - 1
jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/okki/site/service/IFeiShuGroupService.java

@@ -1,5 +1,7 @@
 package org.jeecg.modules.okki.site.service;
 
+import java.util.Map;
+
 /**
  * @author Chen
  */
@@ -14,5 +16,15 @@ public interface IFeiShuGroupService {
      * @param groupName
      * @param recordId
      */
-    public void createFeiShuGroup(String customerName, String siteId, String planName, String groupName,String recordId);
+    public void createFeiShuGroup(String customerName, String siteId, String planName, String groupName, String recordId);
+
+    /**
+     * 发送创建飞书群 -- Oms
+     *
+     * @param customerName
+     * @param siteId
+     * @param planName
+     * @param recordId
+     */
+    public void createFeiShuGroupOms(Map<String, Object> updateGroupFieldMap, String customerName, String siteId, String planName, String recordId,String ownerId);
 }

+ 51 - 4
jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/okki/site/service/impl/FeiShuGroupServiceImpl.java

@@ -11,10 +11,8 @@ import org.jeecg.modules.okki.site.service.IFeiShuGroupService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author Chen
@@ -129,4 +127,53 @@ public class FeiShuGroupServiceImpl implements IFeiShuGroupService {
         feiShuCommonService.sendGroupMsg(feiShuGroupName, feiShuGroupId);
     }
 
+    /**
+     * 创建飞书群 -- oms
+     *
+     * @param updateGroupFieldMap
+     * @param customerName
+     * @param siteId
+     * @param planName
+     * @param recordId
+     * @param ownerId
+     */
+    @Override
+    public void createFeiShuGroupOms(Map<String, Object> updateGroupFieldMap, String customerName, String siteId, String planName, String recordId, String ownerId) {
+//        log.info("updateGroupFieldMap:{}", FastJsonUtil.toJSONString(updateGroupFieldMap));
+//        log.info("customerName:{}", customerName);
+//        log.info("siteId:{}", siteId);
+//        log.info("planName:{}", planName);
+//        log.info("recordId:{}", recordId);
+//        log.info("ownerId:{}", ownerId);
+
+        //群成员
+        List<String> needJoinFeiShuIds = updateGroupFieldMap.values().stream()
+                .filter(value -> value instanceof List)
+                .map(value -> (List<Map<String, String>>) value)
+                .flatMap(List::stream)
+                .map(item -> item.get("id"))
+                .filter(Objects::nonNull)
+                .collect(Collectors.toList());
+//        log.info("needJoinFeiShuIds: {}", FastJsonUtil.toJSONString(needJoinFeiShuIds));
+
+        // 去除 外部人员 - 韩齐齐
+        needJoinFeiShuIds.remove("ou_afa4c39a90731aa2ff483c3d165aa546");
+
+        // 转换为数组
+        String[] needJoinFeiShuIdsArray = needJoinFeiShuIds.toArray(new String[0]);
+
+        // 群名称
+        String feiShuGroupName = "Cyan测试 - " + customerName + " - " + planName + " - OK项目组";
+//        log.info("feiShuGroupName:{}", feiShuGroupName);
+
+        //创建群聊
+        CreateChatResp createChatResp = feiShuCommonService.sendCreateFeiShuGroupRequest(customerName, siteId, feiShuGroupName, ownerId, needJoinFeiShuIdsArray, recordId);
+        if (createChatResp.success()) {
+            String feiShuGroupId = createChatResp.getData().getChatId();
+
+            // 更新表格-群组字段
+            updateGroupField(feiShuGroupName, recordId, feiShuGroupId);
+        }
+    }
+
 }

+ 38 - 6
jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/okki/site/service/impl/OkkiSiteServiceImpl.java

@@ -16,10 +16,7 @@ import org.jeecg.modules.okki.site.entity.OkkiSiteStatusChangeLog;
 import org.jeecg.modules.okki.site.mapper.OkkiSiteMapper;
 import org.jeecg.modules.okki.site.param.ChangeSiteStatusParam;
 import org.jeecg.modules.okki.site.param.OkkiSiteParam;
-import org.jeecg.modules.okki.site.service.IFeiShuCommonService;
-import org.jeecg.modules.okki.site.service.IFeiShuMsgService;
-import org.jeecg.modules.okki.site.service.IOkkiSiteService;
-import org.jeecg.modules.okki.site.service.IOkkiSiteStatusChangeLogService;
+import org.jeecg.modules.okki.site.service.*;
 import org.jeecg.modules.okki.siteuser.entity.OkkiSiteUser;
 import org.jeecg.modules.okki.siteuser.service.IOkkiSiteUserService;
 import org.jeecg.modules.okki.utils.HttpClientUtils;
@@ -62,6 +59,9 @@ public class OkkiSiteServiceImpl extends ServiceImpl<OkkiSiteMapper, OkkiSite> i
     @Autowired
     private IFeiShuMsgService feiShuMsgService;
 
+    @Autowired
+    private IFeiShuGroupService feiShuGroupService;
+
     @Override
     public boolean updateBySiteId(OkkiSiteParam okkiSiteParam) {
         QueryWrapper<OkkiSite> okkiSiteQueryWrapper = new QueryWrapper<>();
@@ -355,7 +355,7 @@ public class OkkiSiteServiceImpl extends ServiceImpl<OkkiSiteMapper, OkkiSite> i
         List<Map<String, Object>> customerInfo = feiShuCommonService.getCustomerInfoKfSheetBySiteId(siteId);
 //        log.info("customerInfo: {}", FastJsonUtil.toJSONString(customerInfo));
 
-        // Step 4: 判断信息
+        // 判断信息
         if (!customerInfo.isEmpty()) {
             handleCustomerInfoUpdate(customerInfo, siteId, okkiSiteUserMap, teamSheetMap);
         } else {
@@ -398,13 +398,45 @@ public class OkkiSiteServiceImpl extends ServiceImpl<OkkiSiteMapper, OkkiSite> i
         List<OkkiSite> okkiSites = list(new QueryWrapper<OkkiSite>().eq("site_id", siteId));
         if (!okkiSites.isEmpty()) {
             OkkiSite okkiSite = okkiSites.get(0);
+//            log.info("okkiSiteUserMap: {}", FastJsonUtil.toJSONString(okkiSiteUserMap));
+//            log.info("teamSheetMap: {}", FastJsonUtil.toJSONString(teamSheetMap));
 
             // 获取更新字段映射
             Map<String, Object> updateGroupFieldMap = getStringObjectMap(siteId, okkiSiteUserMap, teamSheetMap);
 //            log.info("updateGroupFieldMap: {}", updateGroupFieldMap);
 
+            // serviceManageUser、孙跃 || rdUser、陈云
+            List<OkkiSiteUser> serviceManageUsers = okkiSiteUserMap.get("serviceManageUser");
+            OkkiSiteUser feishuGroupOwner = serviceManageUsers.stream()
+                    .filter(okkiSiteUser -> "孙跃".equals(okkiSiteUser.getNickname()))
+                    .findFirst()
+                    .orElse(null);
+//            log.info("feishuGroupOwner:{}", feishuGroupOwner);
+
+            String ownerId = "";
+            if (feishuGroupOwner != null) {
+                List<JSONObject> teamSheetUserInfos = teamSheetMap.get(feishuGroupOwner.getId());
+//                log.info("teamSheetUserInfos:{}", FastJsonUtil.toJSONString(teamSheetUserInfos));
+                if (!teamSheetUserInfos.isEmpty()) {
+                    JSONObject jsonObject = teamSheetUserInfos.get(0);
+                    JSONArray personnelArray = jsonObject.getJSONArray("人员");
+                    if (personnelArray != null) {
+                        for (int i = 0; i < personnelArray.size(); i++) {
+                            JSONObject person = personnelArray.getJSONObject(i);
+                            ownerId = person.getString("id");
+                        }
+                    }
+                }
+//                log.info("ownerId:{}", ownerId);
+            }
+
             // 同步网站信息到飞书
-            feiShuCommonService.syncWebsiteToFeiShuSheet(okkiSite, updateGroupFieldMap);
+            String recordId = feiShuCommonService.syncWebsiteToFeiShuSheet(okkiSite, updateGroupFieldMap);
+
+            // 创建飞书群
+            String customerName = okkiSite.getCompanyName();
+            String planName = okkiSite.getTcName();
+            feiShuGroupService.createFeiShuGroupOms(updateGroupFieldMap, customerName, siteId, planName, recordId, ownerId);
         }
     }