|
@@ -1,5 +1,6 @@
|
|
|
package org.jeecg.modules.okki.site.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.io.FileUtil;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -11,6 +12,7 @@ import org.jeecg.common.util.FastJsonUtil;
|
|
|
import org.jeecg.common.util.ThreadPoolUtil;
|
|
|
import org.jeecg.modules.okki.account.dto.OkkiUserInfoDto;
|
|
|
import org.jeecg.modules.okki.site.dto.FeiShuRecordSheetDto;
|
|
|
+import org.jeecg.modules.okki.site.dto.XiaoManSiteDto;
|
|
|
import org.jeecg.modules.okki.site.entity.OkkiSite;
|
|
|
import org.jeecg.modules.okki.site.entity.OkkiSiteStatusChangeLog;
|
|
|
import org.jeecg.modules.okki.site.mapper.OkkiSiteMapper;
|
|
@@ -223,7 +225,7 @@ public class OkkiSiteServiceImpl extends ServiceImpl<OkkiSiteMapper, OkkiSite> i
|
|
|
defaultUserIds.put("10", Collections.singletonList(1543));
|
|
|
defaultUserIds.put("4", Collections.singletonList(1290));
|
|
|
defaultUserIds.put("8", Collections.singletonList(1593));
|
|
|
- defaultUserIds.put("12", Collections.singletonList(1409));
|
|
|
+ defaultUserIds.put("12", Arrays.asList(1364, 1409));
|
|
|
if (userIds.isEmpty() && defaultUserIds.containsKey(key)) {
|
|
|
userIds.addAll(defaultUserIds.get(key));
|
|
|
}
|
|
@@ -605,4 +607,88 @@ public class OkkiSiteServiceImpl extends ServiceImpl<OkkiSiteMapper, OkkiSite> i
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理站点信息
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean dealSiteInfoByJsonData(String jsonPath) {
|
|
|
+ boolean result = false;
|
|
|
+
|
|
|
+ // 读取 JSON 数据
|
|
|
+ String jsonDataStr = FileUtil.readString(jsonPath, "UTF-8");
|
|
|
+
|
|
|
+ // 解析 JSON 数据并清理 siteId
|
|
|
+ List<XiaoManSiteDto> xiaoManSiteDtoOrigins = FastJsonUtil.parseList(jsonDataStr, XiaoManSiteDto.class);
|
|
|
+ xiaoManSiteDtoOrigins.forEach(c -> {
|
|
|
+ String siteId = c.getSiteId();
|
|
|
+ if (siteId.contains("网站ID: ")) {
|
|
|
+ c.setSiteId(siteId.replace("网站ID: ", ""));
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ Map<String, XiaoManSiteDto> xiaoManSiteDtoMap = new HashMap<>();
|
|
|
+ xiaoManSiteDtoOrigins.forEach(c -> {
|
|
|
+ xiaoManSiteDtoMap.put(c.getSiteId(), c);
|
|
|
+ });
|
|
|
+ log.info("xiaoManSiteDtoMap: {}", FastJsonUtil.toJSONString(xiaoManSiteDtoMap));
|
|
|
+
|
|
|
+ // 获取所有客户信息
|
|
|
+ List<Map<String, Object>> allCustomerInfos = feiShuCommonService.getCustomerInfoKfSheet();
|
|
|
+ if (allCustomerInfos.isEmpty()) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 遍历客户信息并处理更新
|
|
|
+ for (Map<String, Object> item : allCustomerInfos) {
|
|
|
+ String siteIdStr = String.valueOf(item.get("网站ID"));
|
|
|
+ String[] parts = siteIdStr.split("\\.");
|
|
|
+ String siteId = parts[0];
|
|
|
+ log.info("siteId:{}", siteId);
|
|
|
+ if (xiaoManSiteDtoMap.containsKey(siteId)) {
|
|
|
+ dealUpdateCustomerInfo(item, xiaoManSiteDtoMap.get(siteId));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 发送消息
|
|
|
+ feiShuMsgService.syncXiaoManDashboardData();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理客服团队信息的更新逻辑
|
|
|
+ */
|
|
|
+ private void dealUpdateCustomerInfo(Map<String, Object> customerInfo, XiaoManSiteDto xiaoManSiteDto) {
|
|
|
+ log.info("customerInfo:{},xiaoManSiteDto:{}", FastJsonUtil.toJSONString(customerInfo), FastJsonUtil.toJSONString(xiaoManSiteDto));
|
|
|
+ // 初始化飞书更新 DTO
|
|
|
+ String recordId = (String) customerInfo.get("record_id");
|
|
|
+ FeiShuRecordSheetDto recordSheetDto = new FeiShuRecordSheetDto();
|
|
|
+ recordSheetDto.setRecordId(recordId);
|
|
|
+ recordSheetDto.setOkTablePage("Y");
|
|
|
+ recordSheetDto.setOkTableName("客服团队");
|
|
|
+
|
|
|
+ // 获取更新字段映射
|
|
|
+ Map<String, Object> updateGroupFieldMap = getOkkiSiteInfoMap(xiaoManSiteDto);
|
|
|
+ log.info("updateGroupFieldMap: {}", updateGroupFieldMap);
|
|
|
+
|
|
|
+ // 发送更新请求到飞书
|
|
|
+ feiShuCommonService.sendUpdateRequestFeiShuSheet(updateGroupFieldMap, recordSheetDto);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取需要更新的用户类型与对应的飞书字段
|
|
|
+ *
|
|
|
+ * @param xiaoManSiteDto
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Map<String, Object> getOkkiSiteInfoMap(XiaoManSiteDto xiaoManSiteDto) {
|
|
|
+ Map<String, Object> updateGroupFieldMap = new HashMap<>();
|
|
|
+ updateGroupFieldMap.put("小满-服务阶段", xiaoManSiteDto.getServicePhase());
|
|
|
+ updateGroupFieldMap.put("小满-阶段状态", xiaoManSiteDto.getServiceStatus());
|
|
|
+ updateGroupFieldMap.put("小满-阶段停留时长", xiaoManSiteDto.getServiceHour());
|
|
|
+ updateGroupFieldMap.put("小满-阶段节点", xiaoManSiteDto.getPhaseName());
|
|
|
+ updateGroupFieldMap.put("小满-阶段节点状态", xiaoManSiteDto.getPhaseStatus());
|
|
|
+ updateGroupFieldMap.put("小满-节点停留时长", xiaoManSiteDto.getPhaseHour());
|
|
|
+ return updateGroupFieldMap;
|
|
|
+ }
|
|
|
}
|