From 43f0578e80af82ecae6c61b51bd0539c6b960603 Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期二, 16 八月 2022 19:08:32 +0800
Subject: [PATCH] 服务范围优化

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/AcidMessage.java |   82 ++++++++++++++++++++++++++++++++++++++--
 1 files changed, 77 insertions(+), 5 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/AcidMessage.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/AcidMessage.java
index c908a0f..eef4b1f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/AcidMessage.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/AcidMessage.java
@@ -1,16 +1,29 @@
 package com.panzhihua.service_community.message;
 
+import static java.util.Objects.nonNull;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+import com.alibaba.fastjson.JSONArray;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
 import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
 import com.panzhihua.common.service.user.UserService;
 import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.common.utlis.WxUtil;
 import com.panzhihua.common.utlis.WxXCXTempSend;
-import org.springframework.amqp.rabbit.annotation.RabbitListener;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
+import com.panzhihua.service_community.service.ComActAcidMemberService;
 
 /**
  * @author zzj
@@ -18,8 +31,15 @@
 @Component
 public class AcidMessage {
     public static final String DELAYED_QUEUE="huacheng.acid.queue";
+    public static final String ACID_DANGER_QUEUE = "huacheng.acid.danger.queue";
+    public static final String DIRECT_QUEUE="huacheng.acid.direct.queue";
     @Resource
     private UserService userService;
+    @Resource
+    private ComActAcidMemberService comActAcidMemberService;
+    @Resource
+    private ComActDAO comActDAO;
+
     @RabbitListener(queues=DELAYED_QUEUE)
     public void doTemplate(ComActAcidRecordVO comActAcidRecordVO) {
        R<LoginUserInfoVO> loginUserInfoVOR= userService.getUserInfoByUserId(comActAcidRecordVO.getUserId().toString());
@@ -28,11 +48,63 @@
            WxXCXTempSend util = new WxXCXTempSend();
            String accessToken = null;
            try {
-               accessToken = util.getXQAppAccessToken();
+               accessToken = util.getAccessToken();
            } catch (Exception e) {
                e.printStackTrace();
            }
            WxUtil.sendSubscribeTXTZ(loginUserInfoVO.getOpenid(),accessToken,"pov2BTQ_uILduT5OoVKubeS2dibbZ_p79cy5AMb_BGE");
        }
     }
+
+    @RabbitListener(queues=ACID_DANGER_QUEUE)
+    public void pushMessage(ComActAcidDangerMemberVO dangerMember) {
+        R r = comActAcidMemberService.selectPushList(dangerMember.getRelationName());
+        if (R.isOk(r) && nonNull(r.getData())) {
+            List<ComActAcidMemberVO> members = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActAcidMemberVO.class);
+            if (nonNull(members) && !members.isEmpty()) {
+                members.forEach(member -> {
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    String accessToken = null;
+                    try {
+                        accessToken = util.getAccessToken();
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    WxUtil.sendSubscribeDanger(member.getOpenid(), accessToken, dangerMember, "Yr5idSziLRiRo0t07mcz284sMm41Kr2KsA5UmSc0jWU");
+                });
+            }
+        }
+    }
+    @RabbitListener(queues = DIRECT_QUEUE)
+    public void updateUserInfo(ComActAcidRecordVO comActAcidRecordVO){
+        //防疫登记提交默认绑定用户信息
+        R<LoginUserInfoVO>  loginUserInfoVOR= userService.getUserInfoByUserId(comActAcidRecordVO.getUserId().toString());
+        if(R.isOk(loginUserInfoVOR)&&loginUserInfoVOR.getData()!=null){
+            LoginUserInfoVO loginUserInfoVO=loginUserInfoVOR.getData();
+            if(StringUtils.isEmpty(loginUserInfoVO.getPhone())||StringUtils.isEmpty(loginUserInfoVO.getIdCard())){
+                loginUserInfoVO.setPhone(comActAcidRecordVO.getPhone());
+                loginUserInfoVO.setIdCard(comActAcidRecordVO.getIdCard());
+                loginUserInfoVO.setName(comActAcidRecordVO.getName());
+                if(StringUtils.isNotEmpty(comActAcidRecordVO.getLocalCity())){
+                    String town=comActAcidRecordVO.getLocalCity().split(",")[2];
+                    String area=comActAcidRecordVO.getLocalCity().split(",")[1];
+                    String country=comActAcidRecordVO.getLocalCity().split(",")[0];
+                    List<ComActDO> comActDOS=comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getName,town).eq(ComActDO::getAppId,"wx118de8a734d269f0"));
+                    if(CollectionUtils.isNotEmpty(comActDOS)){
+                        if(comActDOS.size()==1){
+                            loginUserInfoVO.setCommunityId(comActDOS.get(0).getCommunityId());
+                        }
+                        else {
+                            ComActDO comActDO=comActDAO.selectOne(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getAppId,"wx118de8a734d269f0").eq(ComActDO::getName,town).and(comActDOLambdaQueryWrapper -> comActDOLambdaQueryWrapper.like(ComActDO::getAddress,town).or().like(ComActDO::getAddress,area).or().like(ComActDO::getAddress,country)));
+                            if(comActDO!=null){
+                                loginUserInfoVO.setCommunityId(comActDO.getCommunityId());
+                            }
+                        }
+                    }
+
+                }
+                userService.putUser(loginUserInfoVO);
+            }
+        }
+    }
 }

--
Gitblit v1.7.1