101captain
2022-05-07 6e9db07a768f2f5d64ea85c537d50111cf0a4f3f
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java
@@ -1,19 +1,27 @@
package com.panzhihua.service_community.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.community.acid.ComActAcidRecordDTO;
import com.panzhihua.common.model.dtos.property.CommonPage;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.acid.ComAcidAreaVO;
import com.panzhihua.common.model.vos.community.acid.ComAcidStaticVO;
import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
import com.panzhihua.common.model.vos.community.acid.*;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.ComActAcidDangerMemberDao;
import com.panzhihua.service_community.dao.ComActDAO;
import com.panzhihua.service_community.entity.ComActAcidDangerMember;
import com.panzhihua.service_community.entity.ComActAcidRecord;
import com.panzhihua.service_community.dao.ComActAcidRecordDao;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.service.ComActAcidRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
@@ -26,6 +34,7 @@
import java.util.Date;
import java.util.List;
import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotEmpty;
import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNull;
/**
@@ -44,6 +53,10 @@
    private RabbitTemplate rabbitTemplate;
    @Resource
    private ComActAcidDangerMemberDao comActAcidDangerMemberDao;
    @Resource
    private UserService userService;
    @Resource
    private ComActDAO comActDAO;
    @Override
    public R pageList(ComActAcidRecordDTO comActAcidRecordDTO) {
@@ -52,17 +65,44 @@
    @Override
    public R export(ComActAcidRecordDTO comActAcidRecordDTO) {
        return R.ok(this.baseMapper.export(comActAcidRecordDTO));
        List<ComActAcidRecordExcelReturn> comActAcidRecordExcelVOS=this.baseMapper.export(comActAcidRecordDTO);
        comActAcidRecordExcelVOS.forEach(comActAcidRecordExcelVO -> {
            if(StringUtils.isNotEmpty(comActAcidRecordExcelVO.getTouristCity())&&comActAcidRecordExcelVO.getTouristCity().contains("[")){
                JSONArray jsonArray = JSON.parseArray(comActAcidRecordExcelVO.getTouristCity());
                if(jsonArray.isEmpty()){
                    comActAcidRecordExcelVO.setTouristCity("");
                }
                else {
                    StringBuilder touristCity= new StringBuilder();
                    for(int i=0;i<jsonArray.size();i++){
                        JSONObject jsonObject=jsonArray.getJSONObject(i);
                        String name=jsonObject.getString("name");
                        if(StringUtils.isNotEmpty(name)){
                            touristCity.append(name).append(";");
                        }
                    }
                    comActAcidRecordExcelVO.setTouristCity(touristCity.toString());
                }
            }
        });
        return R.ok(comActAcidRecordExcelVOS);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R insertRecord(ComActAcidRecordVO comActAcidRecordVO) {
        Integer count= this.baseMapper.selectCount(new QueryWrapper<ComActAcidRecord>().lambda().eq(ComActAcidRecord::getIdCard,comActAcidRecordVO.getIdCard()).ge(ComActAcidRecord::getCreateTime, DateUtils.getCurrentDate(DateUtils.yyyyMMdd_format)));
        if(count>0){
            return R.fail("请勿重复提交");
        }
        if(StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())){
            rabbitTemplate.convertAndSend("huacheng.acid.exchange", "huacheng.acid.key", comActAcidRecordVO, message -> {
                message.getMessageProperties().setHeader("x-delay", 24*60*60*1000);
                message.getMessageProperties().setHeader("x-delay", 2*60*60*1000);
                return message;
            });
        }
        else {
            rabbitTemplate.convertAndSend("huacheng.acid.direct.exchange", "huacheng.acid.direct.key", comActAcidRecordVO);
        }
        ComActAcidRecord comActAcidRecord=new ComActAcidRecord();
        BeanUtils.copyProperties(comActAcidRecordVO,comActAcidRecord);
@@ -78,10 +118,6 @@
                    || dangerArea.equals("是") || outsideCity.equals("是") || acidTest.equals("阳性")) {
                //风险人员
                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())) {
@@ -95,8 +131,22 @@
    }
    private void saveAcidDangerMember(ComActAcidRecordVO comActAcidRecordVO, Long recordId, Integer type) {
        String localCity = comActAcidRecordVO.getLocalCity();
        String relationName = "panzhihua";
        if (isNotEmpty(localCity)) {
            relationName = localCity;
        } else {
            String realAddress = comActAcidRecordVO.getRealAddress();
            if (realAddress.contains("攀枝花")) {
                if (realAddress.contains("区")) {
                    relationName = realAddress.substring(realAddress.indexOf("市") + 1, realAddress.indexOf("区") + 1);
                } else {
                    relationName = realAddress.substring(realAddress.indexOf("市") + 1, realAddress.indexOf("县") + 1);
                }
            }
        }
        ComActAcidDangerMember dangerMember = comActAcidDangerMemberDao.selectOne(new LambdaQueryWrapper<ComActAcidDangerMember>()
                .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard()));
                .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard()).eq(ComActAcidDangerMember::getRelationName, relationName));
        if (isNull(dangerMember)) {
            dangerMember = new ComActAcidDangerMember();
            dangerMember.setName(comActAcidRecordVO.getName());
@@ -106,6 +156,7 @@
            dangerMember.setSource(1);
            dangerMember.setStatus(6);
            dangerMember.setType(type);
            dangerMember.setRelationName(relationName);
            dangerMember.setCreateTime(new Date());
            comActAcidDangerMemberDao.insert(dangerMember);
        } else {
@@ -116,9 +167,16 @@
            dangerMember.setSource(1);
            dangerMember.setStatus(6);
            dangerMember.setType(type);
            dangerMember.setRelationName(relationName);
            dangerMember.setUpdateTime(new Date());
            comActAcidDangerMemberDao.updateById(dangerMember);
        }
        ComActAcidDangerMemberVO dangerMemberVO = new ComActAcidDangerMemberVO();
        BeanUtils.copyProperties(dangerMember, dangerMemberVO);
        rabbitTemplate.convertAndSend("huacheng.acid.danger.exchange", "huacheng.acid.danger.key", dangerMemberVO, message -> {
            message.getMessageProperties().setHeader("x-delay", 1*60*1000);
            return message;
        });
    }
    @Override
@@ -126,8 +184,8 @@
        return R.ok(this.baseMapper.fiveCount(localCity));
    }
    @Override
    public R fiveCountPlus(String date) {
        return R.ok(this.baseMapper.fiveCountPlus(date));
    public R fiveCountPlus(String date,String localCity) {
        return R.ok(this.baseMapper.fiveCountPlus(date,localCity));
    }
    @Override
@@ -151,4 +209,23 @@
        }
        return R.ok(comAcidStaticVOS);
    }
    @Override
    public R updateLocalCity(ComActAcidRecordVO comActAcidRecordVO) {
        ComActAcidRecord comActAcidRecord=new ComActAcidRecord();
        BeanUtils.copyProperties(comActAcidRecordVO,comActAcidRecord);
        if(StringUtils.isNotEmpty(comActAcidRecord.getLocalCity())){
            ComActAcidDangerMember comActAcidDangerMember= comActAcidDangerMemberDao.selectOne(new QueryWrapper<ComActAcidDangerMember>().lambda().eq(ComActAcidDangerMember::getRecordId,comActAcidRecordVO.getId()));
            if(comActAcidDangerMember!=null){
                if(comActAcidDangerMember.getType()==2){
                    this.comActAcidDangerMemberDao.deleteById(comActAcidDangerMember.getId());
                }
                else {
                    comActAcidDangerMember.setRelationName(comActAcidRecord.getLocalCity());
                    this.comActAcidDangerMemberDao.updateById(comActAcidDangerMember);
                }
            }
        }
        return R.ok(this.baseMapper.updateById(comActAcidRecord));
    }
}