package com.panzhihua.service_community.message; import cn.binarywang.wx.miniapp.api.WxMaService; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComActDynVO; 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.service_community.dao.ComActDAO; import com.panzhihua.service_community.dao.SysUserDao; import com.panzhihua.service_community.model.dos.ComActDO; import com.panzhihua.service_community.service.ComActAcidMemberService; import com.panzhihua.service_community.util.WxMaConfiguration; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; import static java.util.Objects.nonNull; /** * @author zzj */ @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"; public static final String ACID_MESSAGE_QUEUE = "huacheng.acid.message.queue"; @Resource private UserService userService; @Resource private ComActAcidMemberService comActAcidMemberService; @Resource private ComActDAO comActDAO; @Resource private SysUserDao sysUserDao; @Resource private WxMaConfiguration wxMaConfiguration; @RabbitListener(queues = DELAYED_QUEUE) public void doTemplate(ComActAcidRecordVO comActAcidRecordVO) { R loginUserInfoVOR = userService.getUserInfoByUserId(comActAcidRecordVO.getUserId().toString()); LoginUserInfoVO loginUserInfoVO = loginUserInfoVOR.getData(); WxMaService maService = wxMaConfiguration.getMaService("wx118de8a734d269f0"); if (loginUserInfoVO != null && StringUtils.isNotEmpty(loginUserInfoVO.getOpenid())) { try { WxUtil.sendSubscribeTXTZ(loginUserInfoVO.getOpenid(), maService.getAccessToken(), "pov2BTQ_uILduT5OoVKubeS2dibbZ_p79cy5AMb_BGE"); } catch (Exception e) { e.printStackTrace(); } } } @RabbitListener(queues = ACID_DANGER_QUEUE) public void pushMessage(ComActAcidDangerMemberVO dangerMember) { R r = comActAcidMemberService.selectPushList(dangerMember.getRelationName()); WxMaService maService = wxMaConfiguration.getMaService("wx118de8a734d269f0"); if (R.isOk(r) && nonNull(r.getData())) { List members = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActAcidMemberVO.class); if (nonNull(members) && !members.isEmpty()) { members.forEach(member -> { try { WxUtil.sendSubscribeDanger(member.getOpenid(), maService.getAccessToken(), dangerMember, "Yr5idSziLRiRo0t07mcz284sMm41Kr2KsA5UmSc0jWU"); } catch (Exception e) { e.printStackTrace(); } }); } } } @RabbitListener(queues = DIRECT_QUEUE) public void updateUserInfo(ComActAcidRecordVO comActAcidRecordVO) { //防疫登记提交默认绑定用户信息 R 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 comActDOS = comActDAO.selectList(new QueryWrapper().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().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); } } } @RabbitListener(queues = ACID_MESSAGE_QUEUE) public void sendMessage(ComActDynVO comActDynVO) { try { List openIds = sysUserDao.selectOpenId(); WxMaService maService = wxMaConfiguration.getMaService("wx118de8a734d269f0"); for (int i = 0; i < openIds.size(); i++) { try { WxUtil.sendLongTimeTemplate(openIds.get(i), maService.getAccessToken(), "疫情快讯", comActDynVO.getTitle().length() > 10 ? comActDynVO.getTitle().substring(0, 10) + ".." : comActDynVO.getTitle(), "/pages/community_child/community/detail?id=" + comActDynVO.getId() + "&title=疫情快讯详情"); } catch (Exception e) { e.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } } }