张天森
2022-10-12 3c884ccd7b51edf3b36840bf99de5edaa41a38a7
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java
@@ -7,6 +7,8 @@
import com.panzhihua.common.model.dtos.community.reserve.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.reserve.*;
import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.WxUtil;
import com.panzhihua.common.utlis.WxXCXTempSend;
@@ -55,6 +57,8 @@
    private ComActReserveOperationRecordService comActReserveOperationRecordService;
    @Resource
    private ComActActSignDAO comActActSignDAO;
    @Resource
    private UserService userService;
    private final static String CANCEL="用户取消";
    @Override
@@ -84,7 +88,7 @@
                    comActReserveOperationRecordDO.setReserveContent(CANCEL);
                    comActReserveOperationRecordDO.setPhone(comActReserveRecordDO.getPhone());
                    comActReserveOperationRecordDO.setStatus(ComActReserveOperationRecordDO.status.qx);
                    comActReserveOperationRecordDO.setUserId(comActReserveRecordDO.getUserId());
                    comActReserveOperationRecordDO.setUserId(comActReserveRecord.getUserId());
                    comActReserveOperationRecordDO.setReserveTime(DateUtil.date());
                    comActReserveOperationRecordMapper.insert(comActReserveOperationRecordDO);
                    return R.ok();
@@ -140,12 +144,16 @@
            reserveRecordDTO.getIds().forEach(id -> {
                ComActReserveRecordDO reserveRecordDO = comActReserveRecordMapper.selectById(id);
                if(reserveRecordDO != null){
                    //更新预约记录社区备注字段
                    reserveRecordDO.setActRemark(reserveRecordDTO.getRemark());
                    reserveRecordDO.setHandleId(userId);
                    comActReserveRecordMapper.updateById(reserveRecordDO);
                    //取消预约返还可参加名额
                    comActReserveMapper.addReserveCountById(reserveRecordDO.getReserveId());
                    //添加操作记录
                    comActReserveOperationRecordService.addReserveOperationRecord(reserveRecordDO.getReserveId()
                            ,reserveRecordDO.getId(),reserveRecordDO.getUserId(),ComActReserveOperationRecordDO.type.sq,null
                            ,"社区管理员取消预约",reserveRecordDTO.getRemark(),ComActReserveOperationRecordDO.status.qx,userId,null);
                            ,"社区管理员取消预约",reserveRecordDTO.getRemark(),ComActReserveOperationRecordDO.status.qx,userId,new Date());
                }
            });
            return R.ok();
@@ -240,7 +248,7 @@
                ComActReserveDO reserveDO = comActReserveMapper.selectById(reserveRecordDO.getReserveId());
                // 预约以后给用户推送消息
                Map<String, String> map = comActActSignDAO.getUserOpenId(reserveRecordDO.getUserId());
                R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(makeHandleDTO.getAreaCode(),10);
                //判断处理是否通过
                if(makeHandleDTO.getIsOk().equals(MakeHandleAdminDTO.isOk.yes)){
                    reserveRecordDO.setStatus(ComActReserveRecordDO.status.cg);
@@ -250,8 +258,8 @@
                    if (map != null) {
                        String openid = map.get("openid");
                        try {
                            WxUtil.sendSubscribeYYTX(openid, util.getAppAccessToken(), "预约成功",
                                    reserveDO.getTitle(), reserveRecordDO.getName(), makeHandleDTO.getMakeTime());
                            WxUtil.sendSubscribeYYTX(openid, util.getAccessToken(), "预约成功",
                                    reserveDO.getTitle(), reserveRecordDO.getName(), makeHandleDTO.getMakeTime(),sysTemplateConfigVO.getData().getTemplateId());
                        } catch (Exception e) {
                            log.error("消息推送失败,失败原因:" + e.getMessage());
                        }
@@ -265,17 +273,20 @@
                    if (map != null) {
                        String openid = map.get("openid");
                        try {
                            WxUtil.sendSubscribeYYTX(openid, util.getAppAccessToken(), "预约失败",
                                    reserveDO.getTitle(), reserveRecordDO.getName(), DateUtils.format(reserveRecordDO.getReserveTime(),DateUtils.ymdhms_format));
                            WxUtil.sendSubscribeYYTX(openid, util.getAccessToken(), "预约失败",
                                    reserveDO.getTitle(), reserveRecordDO.getName(), DateUtils.format(reserveRecordDO.getReserveTime(),DateUtils.ymdhms_format),sysTemplateConfigVO.getData().getTemplateId());
                        } catch (Exception e) {
                            log.error("消息推送失败,失败原因:" + e.getMessage());
                        }
                    }
                    //预约失败时需要更新预约登记参与人数
                    comActReserveMapper.addReserveCountById(reserveRecordDO.getReserveId());
                }
                reserveRecordDO.setActRemark(remark);
                reserveRecordDO.setReserveTime(reserveTime);
                reserveRecordDO.setUpdateAt(nowDate);
                reserveRecordDO.setUpdateBy(userId);
                reserveRecordDO.setHandleId(userId);
                updateList.add(reserveRecordDO);
            }
        });
@@ -316,9 +327,19 @@
            registerDetailedVO.setIdentity(identity.substring(0,identity.length()-1));
            //查询答题数据
            List<ComActReserveRegisterDetailedAnswerVO> answerList = comActReserveAnswerContentMapper.getRegisterDetailedAnswerList(reserveRecordId);
            answerList.forEach(answer ->{
                if(answer.getType()==4){
                    answer.setAnswerContent(answer.getAnswerContent().replaceAll("(?<=\\w{3})\\w(?=\\w{4})", "*"));
                }
            });
            registerDetailedVO.setAnswerList(answerList);
        }
        return R.ok(registerDetailedVO);
    }
    @Override
    public R fiveCount(Long reserveId) {
        return R.ok(comActReserveAnswerContentMapper.fiveCount(reserveId));
    }
}