package com.zteits.pay.util; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSON; import com.clouds.common.utils.MsgTemplateUtil; import com.zteits.clouds.api.apibase.constants.*; import com.zteits.clouds.api.apibase.exception.BizException; import com.zteits.pay.dao.TdCCustPersonDao; import com.zteits.pay.dao.TdCMsgTemplateDao; import com.zteits.pay.dao.TdCPushMsgDao; import com.zteits.pay.domain.TdCCarCheckRecord; import com.zteits.pay.domain.TdCCustPerson; import com.zteits.pay.domain.TdCMsgTemplate; import com.zteits.pay.domain.TdCPushMsg; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * Copyright: Copyright (c) 2019 zteits * * @ClassName: CredentialsReviewService * @Description: * @version: v1.0.0 * @author: niueb * @date: 2020/9/14 11:21 * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2020/9/14 niueb v1.0.0 创建 */ @Component public class CredentialsReviewService { private static final Logger logger = LoggerFactory.getLogger(CredentialsReviewService.class); @Autowired private TdCCustPersonDao tdCCustPersonDao; @Autowired private TdCMsgTemplateDao tdCMsgTemplateDao; @Autowired private TdCPushMsgDao tdCPushMsgDao; /** * 驾驶证审核结果推送 * * @return */ @Async public void driverLicenseResPush(TdCCarCheckRecord checkRecord) { logger.info("driverLicenseResPush驾驶证审核结果推送请求参数:" + JSON.toJSONString(checkRecord)); logger.info("驾驶证审核结果-激光推送开始"); TdCCustPerson tdCCustPerson = tdCCustPersonDao.queryPersonByCustId(checkRecord.getCustId()); if (tdCCustPerson == null || tdCCustPerson.getMsgPushState() == null || tdCCustPerson.getMsgPushState() != 1 || StringUtils.isBlank(tdCCustPerson.getAlias())) { logger.info("custId:" + checkRecord.getCustId() + "不需要推送消息"); return; } //消息模板 String templeteId = checkRecord.getCheckState() == 2 ? MSGTempleteEnum.DRIVER_LICENSE_PASS_TIPS.value() : checkRecord.getCheckState() == 3 ? MSGTempleteEnum.DRIVER_LICENSE_FAILURE_TIPS.value() : checkRecord.getCheckState() == 0 ? MSGTempleteEnum.DRIVER_LICENSE_REVOKE_TIPS.value() : null; TdCMsgTemplate tdCMsgTemplate = tdCMsgTemplateDao.queryMsgTempleteByTempleteId(templeteId); if (tdCMsgTemplate == null) { logger.error("消息模板:" + templeteId + ",不存在,不发送激光消息"); return; } String content = tdCMsgTemplate.getTemplateContent(); String title = tdCMsgTemplate.getTemplateTitle(); //提示语拼接车牌 Map datas = new HashMap(); datas.put("carNumber", checkRecord.getCarNumber() + ""); datas.put("remark", checkRecord.getCheckRemark() + ""); content = MsgTemplateUtil.render(content, datas); //处理消息并发送 TdCPushMsg record = new TdCPushMsg(); record.setMsgContent(content); record.setMsgTitle(title); record.setMsgType(MSGTypeEnum.MSG_TYPE_SYS.value()); record.setTempleteId(tdCMsgTemplate.getTemplateId()); record.setPushType(MSGTypeEnum.MSG_PUSH_TYPE_ONLY.value()); record.setReturnType(MSGTypeEnum.MSG_RETURN_YES.value()); record.setReadType(MSGTypeEnum.MSG_READ_NO.value()); record.setCustId(checkRecord.getCustId()); record.setDataState(1); record.setCreateDate(new Date()); record.setModfiyDate(new Date()); record.setOutMsgNo(checkRecord.getCarNumber()); tdCPushMsgDao.insertSelective(record); //激光推送 JPustUtil.sendPush(content, tdCCustPerson.getAlias(), MSGTypeEnum.MSG_TYPE_SYS.value() + "", tdCCustPerson.getDeivceType()); logger.info("驾驶证审核结果-激光推送结束"); } }