From 69a1b3bf45738f048361ee4ccb6bdc64fce35720 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 12 三月 2025 11:31:46 +0800
Subject: [PATCH] 更新

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncNoticeServiceImpl.java |  159 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 159 insertions(+), 0 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncNoticeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncNoticeServiceImpl.java
new file mode 100644
index 0000000..9b0200c
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncNoticeServiceImpl.java
@@ -0,0 +1,159 @@
+package com.doumee.service.business.impl.hksync;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseListPageResponse;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.*;
+import com.doumee.core.haikang.model.param.respose.*;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.dao.MemberMapper;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.system.join.NoticesJoinMapper;
+import com.doumee.dao.system.model.Notices;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+/**
+ * 娴峰悍璁垮涓氬姟Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/11/30 15:33
+ */
+@Service
+@Slf4j
+public class HkSyncNoticeServiceImpl extends HkSyncBaseServiceImpl {
+    @Autowired
+    private NoticesJoinMapper noticesJoinMapper;
+    @Autowired
+    private MemberMapper memberMapper;
+
+    @Override
+    public String syncHkNotices(String username){
+        if(Constants.DEALING_HK_NOTICE_LIST){
+            return   null;
+        }
+        Constants.DEALING_HK_NOTICE_LIST =true;
+        try {
+            List<String> users = new ArrayList<>();
+            users.add(username);
+
+            List<Integer> userIds = new ArrayList<>();
+            List<Member > userList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                    .in(Member::getPhone,users)
+                    .eq(Member::getType,Constants.TWO)
+                    .eq(Member::getIsdeleted,Constants.ZERO));
+            Member tu= getFromUserList(username,userList);
+            if(tu!=null){
+                userIds.add(tu.getId());
+            }else{
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鏃犳晥璐﹀彿~");
+            }
+            if(userIds.size()>0){
+                //娓呯┖娴峰悍鍏ㄩ儴鐨勪唬鍔炴暟鎹�
+                noticesJoinMapper.delete(new UpdateWrapper<Notices>().lambda()
+                        .eq(Notices::getType, Constants.noticesObjectType.hknotice)
+                        .in(Notices::getUserId, userIds));
+            }
+            Date date = new Date();
+            List<GetTodoListResponse> allHkList = new ArrayList<>();
+            boolean hasNext = true;
+            int curTotal = 0;
+            int curPage = 1;
+            while (hasNext){
+                //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+                GetTodoListRequest param = new GetTodoListRequest();
+//                param.setComId("dfe");//鎺ュ叏閮ㄧ殑浠e姙
+                param.setUserId(username);
+                param.setStatus(1);//鍙煡寰呭鐞嗙殑鏁版嵁
+                param.setPageNo(curPage);
+                param.setLocaleType("zh_CN");
+                param.setPageSize(100);
+                BaseResponse<BaseListPageResponse<GetTodoListResponse>>   response = HKService.getTodoListPage(param);
+                if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+                    throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+                }
+                BaseListPageResponse<GetTodoListResponse> r = response.getData();
+                curTotal += 100;
+                if(curTotal >= r.getTotal()){
+                    hasNext = false;
+                }
+                if(r.getList() == null || r.getList().size()==0){
+                    hasNext =false;
+                }else{
+                    allHkList.addAll(r.getList());
+                }
+                curPage++;
+            }
+
+
+            if(allHkList!=null && allHkList.size()>0){
+                 List<Notices> list = new ArrayList<>();
+                for(GetTodoListResponse data :allHkList){
+                   Member u = getFromUserList(data.getUserId(),userList);
+                   if(u==null){
+                       continue;
+                   }
+                    userIds.add(u.getId());
+                    JSONObject param = new JSONObject();
+
+                    param.put("componentId","dfe");
+                    param.put("msgType","tlnc");
+                    param.put("componentMenuId", data.getMenuCode());
+                    JSONObject c = new JSONObject();
+                    c.put("method","dealTlncMsg");
+                    c.put("argument", data);
+                    param.put("callback",c);
+                    Notices notices = new Notices();
+                    notices.setCreateDate(DateUtil.getISO8601DateByStr(data.getMsgCreateTimeIso()));
+                    notices.setUserId(u.getId());
+                    notices.setStatus(Constants.ZERO);
+                    notices.setSendacopy(Constants.ZERO);
+                    //涓氬姟鐘舵�佷俊鎭� 0 =寰呭鐞�;1=宸插悓鎰�/宸插鐞�;2=宸叉嫆缁�/宸查��鍥�;3=宸茶浆浜�;4=宸叉挙閿�
+                    notices.setParam1(JSONObject.toJSONString(data));
+                    notices.setParam2(Constants.ZERO+"");
+                    notices.setTitle(data.getMsgTitle());
+                    if(notices.getCreateDate() == null){
+                        notices.setCreateDate(date);
+                    }
+                    notices.setIsdeleted(Constants.ZERO);
+                    notices.setParam4(data.getMsgCreateTimeIso());
+                    notices.setParam3(data.getMsgCreateTime());
+                    notices.setParam5(JSONObject.toJSONString(param));
+                    notices.setType(Constants.noticesObjectType.hknotice);
+                    list.add(notices);
+                }
+                 if(list.size()>0){
+                    noticesJoinMapper.insert(list);//鎵归噺鎻掑叆璁板綍
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            Constants.DEALING_HK_NOTICE_LIST =false;
+        }
+        return  null;
+    }
+
+    private Member getFromUserList(String userId, List<Member> userList) {
+        if(userList!=null ){
+            for(Member u :userList){
+                if(StringUtils.equals(u.getPhone(),userId)){
+                    return  u;
+                }
+            }
+        }
+        return null;
+    }
+
+
+}

--
Gitblit v1.9.3