浏览代码

job微信模板

wujunjie 7 年之前
父节点
当前提交
b1d93a6475

+ 21 - 6
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/PatientConfirmReceiptJob.java

@ -4,10 +4,12 @@ import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.PhysicalExaminationRecords;
import com.yihu.wlyy.entity.patient.prescription.Prescription;
import com.yihu.wlyy.entity.patient.prescription.PrescriptionLog;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.dict.SystemDictDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.physicalExamination.PatientPhysicalExaminationDao;
import com.yihu.wlyy.repository.prescription.PrescriptionDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.app.physicalExamination.PatientPhysicalExaminationService;
import com.yihu.wlyy.service.app.prescription.PrescriptionLogService;
import com.yihu.wlyy.task.PushMsgTask;
@ -57,6 +59,8 @@ public class PatientConfirmReceiptJob implements Job {
    private PatientPhysicalExaminationService examinationService;
    @Autowired
    private PrescriptionLogService payLogService;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
@ -134,11 +138,16 @@ public class PatientConfirmReceiptJob implements Job {
        if (type == 1) {
            String url = "prescription/html/order_tracking.html?code=" + PrescriptionCode +"&represented="+patient;
            String first = name + "您好,您的续方订单将在4天后自动确认收药,如您已经取药,请点击本消息完成确认收药操作,结束订单";
            String remark = "如果您希望延长自动确认收药时间,请点击本消息后进行延长收药操作。";
            WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_change","syytx");
            String first = templateConfig.getFirst();
            first = first.replace("key1",(name==null?"":name));
            String remark = templateConfig.getRemark();
            String keyword3 = templateConfig.getKeyword3();
//            String first = name + "您好,您的续方订单将在4天后自动确认收药,如您已经取药,请点击本消息完成确认收药操作,结束订单";
//            String remark = "如果您希望延长自动确认收药时间,请点击本消息后进行延长收药操作。";
            sendJson.put("keyword1", name);
            sendJson.put("keyword2", dateFormat.format(new Date()));
            sendJson.put("keyword3", "续方订单状态");
            sendJson.put("keyword3", keyword3);
            sendJson.put("first", first);
            sendJson.put("remark", remark);
            sendJson.put("url", url+ "&openid=" + openId +"&toUser=" + patient + "&toName=" +name);//带参数的模板跳转链接
@ -163,11 +172,17 @@ public class PatientConfirmReceiptJob implements Job {
            logger.info("sendJson: " + sendJson);
        }else if (type == 2) {
            String url = "prescription/html/order_tracking.html?code=" + PrescriptionCode +"&represented="+patient;
            String first = name + "您好,您的续方订单已自动确认收药";
            String remark = "如果您未收到续方药品,请及时与社区药房工作人员联系。";
            WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_change","sytx");
            String first = templateConfig.getFirst();
            first = first.replace("key1",(name==null?"":name));
            String remark = templateConfig.getRemark();
            String keyword3 = templateConfig.getKeyword3();
//            String first = name + "您好,您的续方订单已自动确认收药";
//            String remark = "如果您未收到续方药品,请及时与社区药房工作人员联系。";
            sendJson.put("keyword1", name);
            sendJson.put("keyword2", dateFormat.format(new Date()));
            sendJson.put("keyword3", "续方订单状态");
            sendJson.put("keyword3", keyword3);
            sendJson.put("first", first);
            sendJson.put("remark", remark);
            sendJson.put("url", url+ "&openid=" + openId +"&toUser=" + patient + "&toName=" +name);//带参数的模板跳转链接

+ 18 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/wechat/WechatTemplateConfigDao.java

@ -0,0 +1,18 @@
package com.yihu.wlyy.repository.wechat;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * @Description: 分场景值查询模板文案内容
 * @Author: WuJunjie
 * @Date: Created in 2018/2/23 11:51
 */
public interface WechatTemplateConfigDao extends PagingAndSortingRepository<WechatTemplateConfig, Long>, JpaSpecificationExecutor<WechatTemplateConfig> {
    //根据自定义模板名称、场景值查询有效模板内容
    @Query("select t  from WechatTemplateConfig t where t.templateName=?1 and t.scene=?2 and t.status = 1 ")
    WechatTemplateConfig findByScene(String templateName, String scene);
}

+ 10 - 2
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/physicalExamination/PatientPhysicalExaminationService.java

@ -5,11 +5,13 @@ import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.PatientRemindRecords;
import com.yihu.wlyy.entity.patient.PhysicalExaminationRecords;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.organization.HospitalDao;
import com.yihu.wlyy.repository.organization.HospitalMappingDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.physicalExamination.PatientPhysicalExaminationDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.util.IdCardUtil;
@ -48,6 +50,8 @@ public class PatientPhysicalExaminationService extends BaseService {
    private WeiXinAccessTokenUtils accessTokenUtils;
    @Autowired
    private PatientPhysicalExaminationDao examinationDao;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    public void sendExaminationTemplate() throws Exception {
@ -57,10 +61,14 @@ public class PatientPhysicalExaminationService extends BaseService {
        c.add(Calendar.YEAR, -1);
        Date yesteryear = c.getTime();
        WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_survey","cqjktj");
        String first = templateConfig.getFirst();
        String keyword1 = templateConfig.getKeyword1();
        JSONObject json = new JSONObject();
        String first = "温馨提醒,您已经超过一年没有到社区进行健康体检啦,为了您和您的家庭医生了解您近期的健康状况,请及时到签约社区进行65岁以上老年人的免费健康体检哟~(如今年已体检请忽略)";
//        String first = "温馨提醒,您已经超过一年没有到社区进行健康体检啦,为了您和您的家庭医生了解您近期的健康状况,请及时到签约社区进行65岁以上老年人的免费健康体检哟~(如今年已体检请忽略)";
        json.put("remark", "");
        json.put("keyword1", "健康体检");
        json.put("keyword1", keyword1);
        json.put("keyword2", format.format(new Date()));
        String accessToken = accessTokenUtils.getAccessToken();

+ 38 - 7
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/prenatalInspector/PrenatalInspectorPreCardService.java

@ -8,12 +8,14 @@ import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorPlan;
import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorRecord;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.message.MessageDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.PrenatalInspectorPlanDao;
import com.yihu.wlyy.repository.patient.PrenatalInspectorRecordDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.third.jw.JwMaternalChildService;
import com.yihu.wlyy.task.PushMsgTask;
@ -58,6 +60,8 @@ public class PrenatalInspectorPreCardService extends BaseService {
    private DoctorDao doctorDao;
    @Autowired
    private JwMaternalChildService jwMaternalChildService;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    Logger logger = LoggerFactory.getLogger(PrenatalInspectorPreCardService.class);
@ -127,22 +131,49 @@ public class PrenatalInspectorPreCardService extends BaseService {
                    record.setSendTime(new Date());
                    if (day == 7) {
                        //产检提醒
                        json.put("remark", "产检内容以医生实际检查为准。点击进行预约");
                        WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_survey","cjtx");
                        String first = templateConfig.getFirst();
                        first = first.replace("key1",(name==null?"":name));
                        String remark = templateConfig.getRemark();
                        String keyword1 = templateConfig.getKeyword1();
                        String keyword2 = templateConfig.getKeyword2();
                        keyword2 = keyword2.replace("key1",(DateUtil.getStringDateShort()==null?"":DateUtil.getStringDateShort()))
                                .replace("key2",(plan.getCheckItem()==null?"":plan.getCheckItem()))
                                .replace("br","\n");
//                        json.put("remark", "产检内容以医生实际检查为准。点击进行预约");
//                        json.put("first", name + ",您好!您和您的宝宝需要进行产检啦~请及时预约产检,如已预约,请忽略");
                        json.put("remark", remark);
                        json.put("first", name + ",您好!您和您的宝宝需要进行产检啦~请及时预约产检,如已预约,请忽略");
                        json.put("url", "wdyy/html/appointment-register.html?openid=" + openId + "&toUser=" + patientCode + "&toName=" + name);
                        json.put("keyword1", "产检提醒");
                        String keyword2 = DateUtil.getStringDateShort() + "\n产检内容:" + plan.getCheckItem();
                        json.put("keyword1", keyword1);
//                        String keyword2 = DateUtil.getStringDateShort() + "\n产检内容:" + plan.getCheckItem();
                        json.put("keyword2", keyword2);
                        pushMsgTask.sendWeixinMessage(accessTokenUtils.getAccessToken(), 18, openId, name, json);
                        recordDao.save(record);
                    } else if (day == 1) {
                        //产检就诊提醒
                        json.put("remark", "产检内容以医生实际检查为准。点击查看预约记录");
                        json.put("first", name + ",您好!您和您的宝宝即将进行产检啦~请按时就诊,如已就诊,请忽略");
                        WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_survey","cjjztx");
                        String first = templateConfig.getFirst();
                        first = first.replace("key1",(name==null?"":name));
                        String remark = templateConfig.getRemark();
                        String keyword1 = templateConfig.getKeyword1();
                        String keyword2 = templateConfig.getKeyword2();
                        keyword2 = keyword2.replace("key1",(DateUtil.getStringDateShort()==null?"":DateUtil.getStringDateShort()))
                                .replace("key2",(plan.getCheckItem()==null?"":plan.getCheckItem()))
                                .replace("br","\n");
//                        json.put("remark", "产检内容以医生实际检查为准。点击查看预约记录");
//                        json.put("first", name + ",您好!您和您的宝宝即将进行产检啦~请按时就诊,如已就诊,请忽略");
                        json.put("url", "wdyy/html/my-appointment.html?openid=" + openId + "&toUser=" + patientCode + "&toName=" + name);
                        json.put("keyword1", "产检就诊提醒");
                        String keyword2 = DateUtil.getStringDateShort() + "\n产检内容:" + plan.getCheckItem();
//                        json.put("keyword1", "产检就诊提醒");
//                        String keyword2 = DateUtil.getStringDateShort() + "\n产检内容:" + plan.getCheckItem();
                        json.put("remark", remark);
                        json.put("first", first);
                        json.put("keyword1", keyword1);
                        json.put("keyword2", keyword2);
                        pushMsgTask.sendWeixinMessage(accessTokenUtils.getAccessToken(), 18, openId, name, json);
                        recordDao.save(record);

+ 58 - 14
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/prescription/PrescriptionNoticesService.java

@ -1,7 +1,9 @@
package com.yihu.wlyy.service.app.prescription;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
@ -29,6 +31,8 @@ public class PrescriptionNoticesService extends BaseService {
    private WeiXinAccessTokenUtils weiXinAccessTokenUtils;
    @Autowired
    private WeiXinOpenIdUtils weiXinOpenIdUtils;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    private static final Logger LOGGER = LoggerFactory.getLogger(PrescriptionNoticesService.class);
@ -64,9 +68,16 @@ public class PrescriptionNoticesService extends BaseService {
        if (type == 1) {
            switch (status) {
                case 0:
                    first = name + "您好,你的续方申请医生已审核。";
                    WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_audit","xfbtg");
                    first = templateConfig.getFirst();
                    first = first.replace("key1",(name==null?"":name));
                    remark = templateConfig.getRemark();
                    String keyword1 = templateConfig.getKeyword1();
                    /*first = name + "您好,你的续方申请医生已审核。";
                    remark = "您可点击消息查看详情,修改续方信息后重新提交。";
                    sendJson.put("keyword1", "审核不通过");
                    sendJson.put("keyword1", "审核不通过");*/
                    sendJson.put("keyword1", keyword1);
                    sendJson.put("keyword2", doctName);
                    sendJson.put("first", first);
                    sendJson.put("remark", remark);
@ -90,9 +101,16 @@ public class PrescriptionNoticesService extends BaseService {
                    }
                    break;
                case 1:
                    first = name + "您好,你的续方申请医生已审核。";
                    templateConfig = templateConfigDao.findByScene("template_doctor_audit","xftg");
                    first = templateConfig.getFirst();
                    first = first.replace("key1",(name==null?"":name));
                    remark = templateConfig.getRemark();
                    String keyword = templateConfig.getKeyword1();
                    /*first = name + "您好,你的续方申请医生已审核。";
                    remark = "您可点击消息查看详情并完成支付。";
                    sendJson.put("keyword1", "审核通过");
                    sendJson.put("keyword1", "审核通过");*/
                    sendJson.put("keyword1", keyword);
                    sendJson.put("keyword2", doctName);
                    sendJson.put("first", first);
                    sendJson.put("remark", remark);
@ -116,9 +134,16 @@ public class PrescriptionNoticesService extends BaseService {
                    }
                    break;
                case 2:
                    first = name + "您好,您的续方申请医生已修改处方清单并审核。";
                    templateConfig = templateConfigDao.findByScene("template_doctor_audit","tztg");
                    first = templateConfig.getFirst();
                    first = first.replace("key1",(name==null?"":name));
                    remark = templateConfig.getRemark();
                    String keyword2 = templateConfig.getKeyword1();
                    /*first = name + "您好,您的续方申请医生已修改处方清单并审核。";
                    remark = "您可点击消息查看详情并完成支付。";
                    sendJson.put("keyword1", "审核通过");
                    sendJson.put("keyword1", "审核通过");*/
                    sendJson.put("keyword1", keyword2);
                    sendJson.put("keyword2", doctName);
                    sendJson.put("first", first);
                    sendJson.put("remark", remark);
@ -143,9 +168,15 @@ public class PrescriptionNoticesService extends BaseService {
                    break;
            }
        } else if (type == 2) {
            first = name + "您好,您的续方订单已完成配药,请尽快致社区医院取药。";
            WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_survey","xfqy");
            first = templateConfig.getFirst();
            first = first.replace("key1",(name==null?"":name));
            String keyword1 = templateConfig.getKeyword1();
//            first = name + "您好,您的续方订单已完成配药,请尽快致社区医院取药。";
            remark = "";
            sendJson.put("keyword1", "续方订单取药");
            sendJson.put("keyword1", keyword1);
//            sendJson.put("keyword1", "续方订单取药");
            sendJson.put("keyword2", dateFormat.format(new Date()));
            sendJson.put("first", first);
            sendJson.put("remark", remark);
@ -169,11 +200,17 @@ public class PrescriptionNoticesService extends BaseService {
            }
        }
        if (type == 3) {
            first = name + "您好,您的续方订单配送员" + doctName + "已顺利取药,续方状态变更为配送中。";
            remark = "您可点击消息查看详情。";
            WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_change","xfqy");
            first = templateConfig.getFirst();
            remark = templateConfig.getRemark();
            first = first.replace("key1",(name==null?"":name)).replace("key2",(doctName==null?"":doctName));
            String keyword3 = templateConfig.getKeyword3();
           /* first = name + "您好,您的续方订单配送员" + doctName + "已顺利取药,续方状态变更为配送中。";
            remark = "您可点击消息查看详情。";*/
            sendJson.put("keyword1", doctName);
            sendJson.put("keyword2", dateFormat.format(new Date()));
            sendJson.put("keyword3", "续方状态");
            sendJson.put("keyword3", keyword3);
            sendJson.put("first", first);
            sendJson.put("remark", remark);
            sendJson.put("url", url);//带参数的模板跳转链接
@ -196,9 +233,16 @@ public class PrescriptionNoticesService extends BaseService {
            }
        }
        if (type == 4) {
            first = name + ",您好!您的续方订单已成功配送。";
            remark = "感谢您的使用。";
            sendJson.put("keyword1", "续方申请");
            WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_service","xfwc");
            first = templateConfig.getFirst();
            remark = templateConfig.getRemark();
            first = first.replace("key1",(name==null?"":name));
            String keyword1 = templateConfig.getKeyword1();
//            first = name + ",您好!您的续方订单已成功配送。";
//            remark = "感谢您的使用。";
//            sendJson.put("keyword1", "续方申请");
            sendJson.put("keyword1", keyword1);
            sendJson.put("keyword2", doctName);//审核医生姓名 开处方的医生(团队长?)
            sendJson.put("keyword3", ordenTime);//订单完成时间
            sendJson.put("first", first);

+ 25 - 8
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/template/DoctorFeldsherTemplateService.java

@ -1,7 +1,9 @@
package com.yihu.wlyy.service.template;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.task.PushMsgTask;
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
@ -35,6 +37,8 @@ public class DoctorFeldsherTemplateService extends BaseService {
    private PatientDao patientDao;
    @Autowired
    private WeiXinOpenIdUtils weiXinOpenIdUtils;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    private static final Logger logger = LoggerFactory.getLogger(DoctorFeldsherTemplateService.class);
    /**
@ -55,12 +59,18 @@ public class DoctorFeldsherTemplateService extends BaseService {
        JSONObject sendJson = new JSONObject();
        if (type == 1) {
            WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_survey","xtjc");
            String first = templateConfig.getFirst();
            first = first.replace("key1",(name==null?"":name)).replace("key2",(comment==null?"":comment));
            String remark = templateConfig.getRemark();
            String keyword1 = templateConfig.getKeyword1();
            String url = "jkjl/html/health-index-add-bloodsugar.html?represented="+patient;
            String first = name + "您好,请按照您的血糖监测方案测量" + comment + "血糖数据。";
            String remark = "您可使用智能设备测量后自动上传数据,或点击详情手动上传测量数据";
            sendJson.put("keyword1", "血糖测量");
//            String first = name + "您好,请按照您的血糖监测方案测量" + comment + "血糖数据。";
//            String remark = "您可使用智能设备测量后自动上传数据,或点击详情手动上传测量数据";
            sendJson.put("keyword1", keyword1);
            sendJson.put("keyword2", dateFormat.format(new Date()));
            sendJson.put("first", first);
            sendJson.put("remark", remark);
@ -75,7 +85,7 @@ public class DoctorFeldsherTemplateService extends BaseService {
                        JSONObject j = jsonArray.getJSONObject(i);
                        Patient member = (Patient) j.get("member");
                        JSONObject newJson =  new JSONObject();
                        newJson.put("keyword1", "血糖测量");
                        newJson.put("keyword1", keyword1);
                        newJson.put("keyword2", dateFormat.format(new Date()));
                        newJson.put("remark", remark);
                        newJson.put("toUser", member.getCode());//带参数的模板跳转链接
@ -89,9 +99,16 @@ public class DoctorFeldsherTemplateService extends BaseService {
            logger.info("sendJson: " + sendJson);
        }else if (type == 2) {
            String url = "jkjl/html/health-index-add-bloodpressure.html?represented="+patient;
            String first = name + "您好,请按照您的血压监测方案测量血压数据。";
            String remark = "您可使用智能设备测量后自动上传数据,或点击详情手动上传测量数据";
            sendJson.put("keyword1", "血压测量");
            WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_doctor_survey","xyjc");
            String first = templateConfig.getFirst();
            first = first.replace("key1",(name==null?"":name));
            String remark = templateConfig.getRemark();
            String keyword1 = templateConfig.getKeyword1();
//            String first = name + "您好,请按照您的血压监测方案测量血压数据。";
//            String remark = "您可使用智能设备测量后自动上传数据,或点击详情手动上传测量数据";
            sendJson.put("keyword1",keyword1);
            sendJson.put("keyword2", dateFormat.format(new Date()));
            sendJson.put("first", first);
            sendJson.put("remark", remark);
@ -106,7 +123,7 @@ public class DoctorFeldsherTemplateService extends BaseService {
                        JSONObject j = jsonArray.getJSONObject(i);
                        Patient member = (Patient) j.get("member");
                        JSONObject newJson =  new JSONObject();
                        newJson.put("keyword1", "血压测量");
                        newJson.put("keyword1", keyword1);
                        newJson.put("keyword2", dateFormat.format(new Date()));
                        newJson.put("remark", remark);
                        newJson.put("toUser", member.getCode());//带参数的模板跳转链接

+ 32 - 19
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/task/RemindExpensesTask.java

@ -3,6 +3,8 @@ package com.yihu.wlyy.task;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.organization.Hospital;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.entity.wechat.WechatTemplateConfig;
import com.yihu.wlyy.repository.wechat.WechatTemplateConfigDao;
import com.yihu.wlyy.service.app.consult.ConsultService;
import com.yihu.wlyy.service.common.SMSService;
import com.yihu.wlyy.util.DateUtil;
@ -36,6 +38,8 @@ public class RemindExpensesTask implements Runnable {
    ConsultService consultService;
    @Autowired
    private PushMsgTask pushMsgTask;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    private SMSService smsService;
@ -60,6 +64,13 @@ public class RemindExpensesTask implements Runnable {
                    }
                    sb.append(p.getMobile());
                }
                WechatTemplateConfig templateConfig = templateConfigDao.findByScene("template_expenses_remind","jftx");
                String first = templateConfig.getFirst();
                String remark = templateConfig.getRemark();
                first = first.replace("key1",( doctor.getName()==null?"": doctor.getName()));
                remark = remark.replace("key1",(p.getName()==null?"":p.getName())).replace("key2",(hospital.getName()==null?"":hospital.getName()))
                        .replace("key3",(hospital.getAddress()==null?"":hospital.getAddress()));
                // 微信提醒
                JSONObject json = new JSONObject();
                json.put("first", "缴费提醒");
@ -67,39 +78,41 @@ public class RemindExpensesTask implements Runnable {
                json.put("represented",p.getCode());//被代理人
                json.put("name", p.getName());
                json.put("doctor", doctor.getCode());
                json.put("doctorName", doctor.getName());
//                json.put("doctorName", doctor.getName());
                json.put("doctorName", first);
                json.put("date", DateUtil.dateToStrShort(new Date()));
                json.put("content", p.getName() + ",您好!为完成家庭医生签约,尽早为您提供家庭医生服务,请尽快到" + hospital.getName() + "(地址:" + hospital.getAddress() + ")缴费");
//                json.put("content", p.getName() + ",您好!为完成家庭医生签约,尽早为您提供家庭医生服务,请尽快到" + hospital.getName() + "(地址:" + hospital.getAddress() + ")缴费");
                json.put("content", remark);
                json.put("remark", "");
                if (StringUtils.isNotEmpty(p.getOpenid())) {
                    // 添加到发送队列
                    pushMsgTask.putWxMsg(tokenUtils.getAccessToken(), 8, p.getOpenid(), p.getName(), json);
                }
                //发送代理人
                JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(p.getCode(),p.getOpenid());
                if(jsonArray!=null&&jsonArray.length()>0){
                    String first = (String) json.get("doctorName");
                    for (int i = 0;i<jsonArray.length();i++){
                        JSONObject j  = jsonArray.getJSONObject(i);
                        Patient member = (Patient) j.get("member");
                        JSONObject data = json;
                        data.remove("toUser");
                        data.put("toUser",member.getCode());
                        data.remove("doctorName");
                        data.put("doctorName", weiXinOpenIdUtils.getTitleMes(p, j.getInt("relation"), p.getName()) +"\n"+first);
                        pushMsgTask.putWxMsg(tokenUtils.getAccessToken(), 8, member.getOpenid(), p.getName(), data);
                }else {
                    //发送代理人
                    JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(p.getCode(), p.getOpenid());
                    if (jsonArray != null && jsonArray.length() > 0) {
                        first = (String) json.get("doctorName");
                        for (int i = 0; i < jsonArray.length(); i++) {
                            JSONObject j = jsonArray.getJSONObject(i);
                            Patient member = (Patient) j.get("member");
                            JSONObject data = json;
                            data.remove("toUser");
                            data.put("toUser", member.getCode());
                            data.remove("doctorName");
                            data.put("doctorName", weiXinOpenIdUtils.getTitleMes(p, j.getInt("relation"), p.getName()) + "\n" + first);
                            pushMsgTask.putWxMsg(tokenUtils.getAccessToken(), 8, member.getOpenid(), p.getName(), data);
                        }
                    }
                }
                //发送IM
                consultService.sendMucMessageBySingnType(doctor.getCode(), doctor.getName(), p.getCode(), doctor.getName() + "医生提醒您:为完成家庭医生签约," +
                        "尽早为您提供家庭医生服务,请尽快到" + doctor.getName() + "(地址:" + hospital.getAddress() + ")缴费", "1", p.getName());
                consultService.sendMucMessageBySingnType(doctor.getCode(), doctor.getName(), p.getCode(), doctor.getName() + "医生提醒您:"+remark, "1", p.getName());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        JSONObject result = smsService.sendMsg(sb.toString(), doctor.getName() + "医生提醒您:为完成家庭医生签约," +
                "尽早为您提供家庭医生服务,请尽快到" + hospital.getName() + "(地址:" + hospital.getAddress() + ")缴费");
                "尽早为您提供家庭医生服务,您可登录微信账号,进入签约管理,选择待缴费的签约记录进行缴费操作,如需线下缴费,请尽快到" + hospital.getName() + "(地址:" + hospital.getAddress() + ")缴费");
    }
}