huanghongfa
2021-08-31 59708cdfc446571671f9d834390bbc1d44c7bbb7
小程序预约提醒消息推送以及修改bug
4个文件已修改
63 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/WxSubscribeConstants.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/WxSubscribeConstants.java
@@ -66,6 +66,10 @@
     */
    public static final String HDJJKS_ID = "__0i0e8-yfDGW3jv3l-qobcWt23Ec3iZEdJhMV3nHWo";
    /**
     * 预约提醒通知模板id
     */
    public static final String YYTX_ID = "KZtj9-KaqcDrKfZnNvv8A_bK4StEUtzLcOo0fhPjWNM";
    /**
     * 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
     */
    public static final String MINIPROGRAM_STATE = "trial";
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java
@@ -362,6 +362,32 @@
        }
    }
    /**
     * 预约提醒订阅消息通知
     * @param openId    用户openid
     * @param accessToken   token会话标识
     * @param result    预约结果
     * @param title     预约主题
     * @param name      预约人
     * @param time      预约时间
     */
    public static void sendSubscribeYYTX(String openId, String accessToken, String result, String title, String name,String time){
        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
        subscribeDTO.setTouser(openId);
        subscribeDTO.setTemplate_id(WxSubscribeConstants.YYTX_ID);
        List<TemplateParam> paras=new ArrayList<TemplateParam>();
        paras.add(new TemplateParam("phrase8",result));//预约结果
        paras.add(new TemplateParam("thing23",title));//预约主题
        paras.add(new TemplateParam("name5",name));//预约人
        paras.add(new TemplateParam("date7",time));//预约时间
        subscribeDTO.setTemplateParamList(paras);
        try {
            sendSubscribe(accessToken,subscribeDTO);
        }catch (Exception e){
            log.error("预约提醒订阅消息推送失败,失败原因:" + e.getMessage());
        }
    }
    public static void main(String[] args) {
        WxXCXTempSend util = new WxXCXTempSend();
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java
@@ -176,6 +176,7 @@
            "p.id, " +
            "p.sponsor_id, " +
            "p.feedback_at, " +
            "p.is_publicity, " +
            "p.examine_at, " +
            "p.create_at, " +
            "u.`name` sponsorName, " +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java
@@ -8,6 +8,8 @@
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.reserve.*;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.WxUtil;
import com.panzhihua.common.utlis.WxXCXTempSend;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.common.model.dtos.community.CancelRecordDTO;
import com.panzhihua.common.model.vos.R;
@@ -27,6 +29,8 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
@@ -49,6 +53,8 @@
    private ComActReserveOperationRecordMapper comActReserveOperationRecordMapper;
    @Resource
    private ComActReserveOperationRecordService comActReserveOperationRecordService;
    @Resource
    private ComActActSignDAO comActActSignDAO;
    private final static String CANCEL="用户取消";
    @Override
@@ -222,22 +228,48 @@
        Date nowDate = new Date();
        Long userId = makeHandleDTO.getUserId();
        String remark = makeHandleDTO.getRemark();
        WxXCXTempSend util = new WxXCXTempSend();
        List<ComActReserveRecordDO> updateList = new ArrayList<>();
        makeHandleDTO.getIds().forEach(id -> {
            ComActReserveRecordDO reserveRecordDO = this.baseMapper.selectById(id);
            if(reserveRecordDO != null){
                Date reserveTime = DateUtils.stringToDate(makeHandleDTO.getMakeTime(),DateUtils.ymdhms_format);
                //查询预约登记信息
                ComActReserveDO reserveDO = comActReserveMapper.selectById(reserveRecordDO.getReserveId());
                // 预约以后给用户推送消息
                Map<String, String> map = comActActSignDAO.getUserOpenId(reserveRecordDO.getUserId());
                //判断处理是否通过
                if(makeHandleDTO.getIsOk().equals(MakeHandleAdminDTO.isOk.yes)){
                    reserveRecordDO.setStatus(ComActReserveRecordDO.status.cg);
                    comActReserveOperationRecordService.addReserveOperationRecord(reserveRecordDO.getReserveId()
                            ,id,reserveRecordDO.getUserId(),ComActReserveOperationRecordDO.type.sq,null
                            ,"社区管理员处理预约成功",remark,ComActReserveOperationRecordDO.status.cg,userId,reserveTime);
                    if (map != null) {
                        String openid = map.get("openid");
                        try {
                            WxUtil.sendSubscribeYYTX(openid, util.getAppAccessToken(), "预约成功",
                                    reserveDO.getTitle(), reserveRecordDO.getName(), makeHandleDTO.getMakeTime());
                        } catch (Exception e) {
                            log.error("消息推送失败,失败原因:" + e.getMessage());
                        }
                    }
                }else if(makeHandleDTO.getIsOk().equals(MakeHandleAdminDTO.isOk.no)){
                    reserveRecordDO.setStatus(ComActReserveRecordDO.status.sb);
                    comActReserveOperationRecordService.addReserveOperationRecord(reserveRecordDO.getReserveId()
                            ,id,reserveRecordDO.getUserId(),ComActReserveOperationRecordDO.type.sq,null
                            ,"社区管理员处理预约失败",remark,ComActReserveOperationRecordDO.status.sb,userId,null);
                    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));
                        } catch (Exception e) {
                            log.error("消息推送失败,失败原因:" + e.getMessage());
                        }
                    }
                }
                reserveRecordDO.setActRemark(remark);
                reserveRecordDO.setReserveTime(reserveTime);