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.service.app.consult.ConsultService; import com.yihu.wlyy.service.common.SMSService; import com.yihu.wlyy.util.DateUtil; import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils; import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils; import org.apache.commons.lang3.StringUtils; import org.json.JSONArray; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.context.support.SpringBeanAutowiringSupport; import java.util.Date; import java.util.List; /** * 缴费提醒任务 *

* Created by lyr-pc on 2017/1/16. */ public class RemindExpensesTask implements Runnable { List patients; Doctor doctor; Hospital hospital; @Autowired WeiXinAccessTokenUtils tokenUtils; @Autowired WeiXinOpenIdUtils weiXinOpenIdUtils; @Autowired ConsultService consultService; private SMSService smsService; public RemindExpensesTask(List patients, Doctor doctor, Hospital hospital,SMSService smsService) { this.patients = patients; this.doctor = doctor; this.hospital = hospital; SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this); this.smsService=smsService; } @Override public void run() { StringBuffer sb = new StringBuffer(); for (Patient p : patients) { try { if (StringUtils.isNotEmpty(p.getMobile())) { if (sb.length() > 0) { sb.append(","); } sb.append(p.getMobile()); } // 微信提醒 JSONObject json = new JSONObject(); json.put("first", "缴费提醒"); json.put("toUser", p.getCode()); json.put("represented",p.getCode());//被代理人 json.put("name", p.getName()); json.put("doctor", doctor.getCode()); json.put("doctorName", doctor.getName()); json.put("date", DateUtil.dateToStrShort(new Date())); json.put("content", p.getName() + ",您好!为完成家庭医生签约,尽早为您提供家庭医生服务,请尽快到" + hospital.getName() + "(地址:" + hospital.getAddress() + ")缴费"); json.put("remark", ""); if (StringUtils.isNotEmpty(p.getOpenid())) { // 添加到发送队列 PushMsgTask.getInstance().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