springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidDangerMemberDTO.java
@@ -29,7 +29,7 @@ * 人员类型 1风险人员 2未填地址人员 */ @ApiModelProperty(value = "人员类型 1风险人员 2未填地址人员") private Integer type; private Integer type = 1; @ApiModelProperty(value = "数据来源 1系统") private Integer source; @ApiModelProperty("页数") springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/PageDangerMemberDTO.java
@@ -7,14 +7,14 @@ import lombok.Data; /** * @title: PageFmsTeamDTO * @title: PageDangerMemberDTO * @projectName: 成都呐喊信息技术有限公司-智慧社区项目 * @description: 分页查询团队信息请求参数 * @description: 分页查询风险人员请求参数 * @author: hans * @date: 2022/02/18 10:16 * @date: 2022/04/28 13:15 */ @Data @ApiModel("分页查询团队信息请求参数") @ApiModel("分页查询风险人员请求参数") public class PageDangerMemberDTO { @ApiModelProperty(value = "关键字") @@ -27,4 +27,10 @@ @ApiModelProperty(value = "分页-每页记录数", example = "10") @NotNull(message = "分页参数不能为空") private Long pageSize; @ApiModelProperty(value = "是否填写居住地(1.是 2.否)", example = "1") private Integer isFill; @ApiModelProperty(value = "人员类型 1风险人员 2未填地址人员") private Integer type = 1; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginUserInfoVO.java
@@ -209,4 +209,10 @@ @ApiModelProperty("账号类型 1街道 2社区 3社会组织") private Integer userType; @ApiModelProperty("是否是防疫工作人员 1.是 2.否") private Integer isAcidMember; @ApiModelProperty("绑定单位") private String relationName; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidMemberVO.java
@@ -57,4 +57,7 @@ @ApiModelProperty(value = "创建时间") private Date createTime; @ApiModelProperty(value = "关联小程序用户openid") private String openid; } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidMemberApi.java
@@ -3,6 +3,7 @@ import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.dtos.community.acid.ComActAcidMemberDTO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO; import com.panzhihua.common.service.community.CommunityService; @@ -66,6 +67,8 @@ @ApiOperation("新增数据") @PostMapping public R insert(@RequestBody ComActAcidMemberVO comActAcidMemberVO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); comActAcidMemberVO.setRelationName(loginUserInfo.getName()); return communityService.insertComActAcidMember(comActAcidMemberVO); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/RabbitmqConfig.java
@@ -33,6 +33,10 @@ public static final String ACID_ROUTING_KEY="huacheng.acid.key"; public static final String ACID_EXCHANGE="huacheng.acid.exchange"; public static final String ACID_DANGER_QUEUE = "huacheng.acid.danger.queue"; public static final String ACID_DANGER_ROUTING_KEY = "huacheng.acid.danger.key"; public static final String ACID_DANGER_EXCHANGE = "huacheng.acid.danger.exchange"; @Bean public Queue preOrderQueue(){ @@ -86,6 +90,23 @@ } @Bean public Queue acidDangerQueue(){ return new Queue(ACID_DANGER_QUEUE,true,false,false,null); } @Bean public Exchange acidDangerExchange(){ Map<String, Object> arguments = new HashMap<>(); arguments.put("x-delayed-type", ExchangeTypes.DIRECT); return new CustomExchange(ACID_DANGER_EXCHANGE,"x-delayed-message",true,false,arguments); } @Bean public Binding acidDangerBinding(){ return BindingBuilder.bind(acidDangerQueue()).to(acidDangerExchange()).with(ACID_DANGER_ROUTING_KEY).noargs(); } @Bean public Queue mcsOrderQueue(){ return new Queue(McsOrder_QUEUE,true,false,false,null); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidMemberDao.java
@@ -10,6 +10,8 @@ import com.panzhihua.service_community.entity.ComActAcidMember; import org.apache.ibatis.annotations.Param; import java.util.List; /** * 防疫工作人员表(ComActAcidMember)表数据库访问层 * projectName 成都呐喊信息技术有限公司-智慧社区项目 @@ -27,4 +29,11 @@ * @return */ IPage<ComActAcidMemberVO> pageList(Page page, @Param("commonPage") ComActAcidMemberDTO commonPage); /** * 根据relationName查询推送人员列表 * @param relationName * @return */ List<ComActAcidMemberVO> selectPushList(@Param("relationName") String relationName); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/AcidMessage.java
@@ -1,5 +1,15 @@ package com.panzhihua.service_community.message; import static java.util.Objects.nonNull; import javax.annotation.Resource; import com.alibaba.fastjson.JSONArray; import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO; @@ -7,10 +17,10 @@ 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 com.panzhihua.service_community.entity.ComActAcidMember; import com.panzhihua.service_community.service.ComActAcidMemberService; import javax.annotation.Resource; import java.util.List; /** * @author zzj @@ -18,8 +28,12 @@ @Component public class AcidMessage { public static final String DELAYED_QUEUE="huacheng.acid.queue"; public static final String ACID_DANGER_QUEUE = "huacheng.acid.danger.queue"; @Resource private UserService userService; @Resource private ComActAcidMemberService comActAcidMemberService; @RabbitListener(queues=DELAYED_QUEUE) public void doTemplate(ComActAcidRecordVO comActAcidRecordVO) { R<LoginUserInfoVO> loginUserInfoVOR= userService.getUserInfoByUserId(comActAcidRecordVO.getUserId().toString()); @@ -35,4 +49,24 @@ WxUtil.sendSubscribeTXTZ(loginUserInfoVO.getOpenid(),accessToken,"pov2BTQ_uILduT5OoVKubeS2dibbZ_p79cy5AMb_BGE"); } } @RabbitListener(queues=ACID_DANGER_QUEUE) public void pushMessage(ComActAcidRecordVO comActAcidRecordVO) { R r = comActAcidMemberService.selectPushList(""); 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.getXQAppAccessToken(); } catch (Exception e) { e.printStackTrace(); } WxUtil.sendSubscribeTXTZ(member.getOpenid(), accessToken,"Yr5idSziLRiRo0t07mcz284sMm41Kr2KsA5UmS"); }); } } } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidMemberService.java
@@ -30,4 +30,11 @@ * @return */ R insert(ComActAcidMemberVO comActAcidMemberVO); /** * 根据relationName查询推送人员列表 * @param relationName * @return */ R selectPushList(String relationName); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidMemberServiceImpl.java
@@ -1,5 +1,6 @@ package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -13,6 +14,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.List; /** * 防疫工作人员表(ComActAcidMember)表服务实现类 @@ -41,4 +44,14 @@ BeanUtils.copyProperties(comActAcidMemberVO,comActAcidMember); return R.ok(this.baseMapper.insert(comActAcidMember)); } /** * 根据relationName查询推送人员列表 * @param relationName * @return */ @Override public R selectPushList(String relationName) { return R.ok(this.baseMapper.selectPushList(relationName)); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java
@@ -76,28 +76,17 @@ String acidTest = comActAcidRecordVO.getAcidTest(); if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码") || travelCard.equals("是") || dangerArea.equals("是") || outsideCity.equals("是") || acidTest.equals("阳性")) { ComActAcidDangerMember dangerMember = comActAcidDangerMemberDao.selectOne(new LambdaQueryWrapper<ComActAcidDangerMember>() .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard())); if (isNull(dangerMember)) { dangerMember = new ComActAcidDangerMember(); dangerMember.setName(comActAcidRecordVO.getName()); dangerMember.setPhone(comActAcidRecordVO.getPhone()); dangerMember.setRecordId(comActAcidRecord.getId()); dangerMember.setSource(1); dangerMember.setStatus(6); dangerMember.setType(1); dangerMember.setCreateTime(new Date()); comActAcidDangerMemberDao.insert(dangerMember); } else { dangerMember.setName(comActAcidRecordVO.getName()); dangerMember.setPhone(comActAcidRecordVO.getPhone()); dangerMember.setRecordId(comActAcidRecord.getId()); dangerMember.setSource(1); dangerMember.setStatus(6); dangerMember.setType(1); dangerMember.setUpdateTime(new Date()); comActAcidDangerMemberDao.updateById(dangerMember); } //风险人员 saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 1); // rabbitTemplate.convertAndSend("huacheng.acid.danger.exchange", "huacheng.acid.danger.key", comActAcidRecordVO, message -> { // message.getMessageProperties().setHeader("x-delay", 24*60*60*1000); // return message; // }); return R.ok(); } if (StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())) { //未填住址人员 saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2); } return R.ok(); } @@ -105,6 +94,33 @@ return R.fail("操作失败,请重新尝试"); } private void saveAcidDangerMember(ComActAcidRecordVO comActAcidRecordVO, Long recordId, Integer type) { ComActAcidDangerMember dangerMember = comActAcidDangerMemberDao.selectOne(new LambdaQueryWrapper<ComActAcidDangerMember>() .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard())); if (isNull(dangerMember)) { dangerMember = new ComActAcidDangerMember(); dangerMember.setName(comActAcidRecordVO.getName()); dangerMember.setPhone(comActAcidRecordVO.getPhone()); dangerMember.setRecordId(recordId); dangerMember.setIdCard(comActAcidRecordVO.getIdCard()); dangerMember.setSource(1); dangerMember.setStatus(6); dangerMember.setType(type); dangerMember.setCreateTime(new Date()); comActAcidDangerMemberDao.insert(dangerMember); } else { dangerMember.setName(comActAcidRecordVO.getName()); dangerMember.setPhone(comActAcidRecordVO.getPhone()); dangerMember.setRecordId(recordId); dangerMember.setIdCard(comActAcidRecordVO.getIdCard()); dangerMember.setSource(1); dangerMember.setStatus(6); dangerMember.setType(type); dangerMember.setUpdateTime(new Date()); comActAcidDangerMemberDao.updateById(dangerMember); } } @Override public R fiveCount(String localCity) { return R.ok(this.baseMapper.fiveCount(localCity)); springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/JsoupUtil.java
@@ -1,10 +1,13 @@ package com.panzhihua.service_community.util; import com.alibaba.fastjson.JSONObject; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.HashMap; import java.util.Map; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; @@ -12,16 +15,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSONObject; /** * @author zzj springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidDangerMemberMapper.xml
@@ -30,6 +30,9 @@ <if test="commonPage.status!=null"> and t1.`status` =#{commonPage.status} </if> <if test="commonPage.type != null"> AND t1.`type` = #{commonPage.type} </if> </where> GROUP BY t1.id HAVING 1=1 @@ -49,7 +52,18 @@ LEFT JOIN com_act_acid_check_record t3 ON t1.id = t3.member_id <where> <if test="pageDangerMemberDTO.keyword != null and pageDangerMemberDTO.keyword != """> AND t1.`name` LIKE CONCAT('%', #{commonPage.keyword}, '%') AND t1.`name` LIKE CONCAT('%', #{pageDangerMemberDTO.keyword}, '%') </if> <if test="pageDangerMemberDTO.isFill != null"> <if test="pageDangerMemberDTO.isFill == 1"> AND t2.local_city IS NOT NULL </if> <if test="pageDangerMemberDTO.isFill == 2"> AND t2.local_city IS NULL </if> </if> <if test="pageDangerMemberDTO.type != null"> AND t1.`type` = #{pageDangerMemberDTO.type} </if> </where> GROUP BY t1.id ORDER BY checkTime ASC springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidMemberMapper.xml
@@ -26,5 +26,11 @@ </where> order by create_time desc </select> <select id="selectPushList" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO"> SELECT t1.id, t1.`name`, t1.phone, t2.openid FROM com_act_acid_member t1 JOIN sys_user t2 ON t1.phone = t2.phone AND `type` = 1 WHERE t1.push_status = 1 AND t1.relation_name = #{relationName} </select> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
@@ -5,6 +5,7 @@ import java.util.Map; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.*; @@ -250,4 +251,11 @@ * @return */ int countEasyPhotoMember(@Param("phone") String phone,@Param("communityId") Long userCommunityId); /** * 查询防疫工作人员信息 * @param phone * @return */ ComActAcidMemberVO selectAcidMemberByPhone(@Param("phone") String phone); } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -20,6 +20,7 @@ import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO; import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO; import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO; import com.panzhihua.service_user.dao.*; import com.panzhihua.service_user.entity.SysAppConfig; @@ -378,6 +379,7 @@ loginUserInfoVO.setIsPropertyWorker(2); loginUserInfoVO.setIsSocialWorker(2); loginUserInfoVO.setIsFmsMember(2); loginUserInfoVO.setIsAcidMember(2); // 志愿者状态 String phone = sysUserDO.getPhone(); Long userCommunityId = sysUserDO.getCommunityId(); @@ -416,6 +418,12 @@ int countFmsMember = userDao.countFmsMember(phone, userCommunityId); if (countFmsMember > 0) { loginUserInfoVO.setIsFmsMember(1); } //是否是防疫工作人员 ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(phone); if (nonNull(acidMember)) { loginUserInfoVO.setIsAcidMember(1); loginUserInfoVO.setRelationName(acidMember.getRelationName()); } //是否网格员 int easyPhotoMember = userDao.countEasyPhotoMember(phone, userCommunityId); @@ -728,6 +736,13 @@ //是否微团队成员 int countFmsMember = userDao.countFmsMember(loginUserInfoVO.getPhone(), loginUserInfoVO.getCommunityId()); loginUserInfoVO.setIsFmsMember(countFmsMember > 0 ? 1 : 0); //是否是防疫工作人员 loginUserInfoVO.setIsAcidMember(2); ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(loginUserInfoVO.getPhone()); if (nonNull(acidMember)) { loginUserInfoVO.setIsAcidMember(1); loginUserInfoVO.setRelationName(acidMember.getRelationName()); } loginUserInfoVO.setIdCard(SensitiveUtil.desensitizedIdNumber(loginUserInfoVO.getIdCard())); loginUserInfoVO.setPhone(SensitiveUtil.desensitizedPhoneNumber(loginUserInfoVO.getPhone())); //判断账号类型 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml
@@ -551,4 +551,8 @@ WHERE phone = #{phone} AND community_id = #{communityId} </select> <select id="selectAcidMemberByPhone" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO"> SELECT id, relation_name FROM com_act_acid_member WHERE phone = #{phone} </select> </mapper>