|
@ -1,116 +1,116 @@
|
|
|
package com.yihu.wlyy.activemq;
|
|
|
|
|
|
import com.yihu.es.entity.HealthEduArticlePatient;
|
|
|
import com.yihu.wlyy.entity.patient.Patient;
|
|
|
import com.yihu.wlyy.service.app.consult.ConsultService;
|
|
|
import com.yihu.wlyy.service.common.account.PatientService;
|
|
|
import com.yihu.wlyy.task.PushMsgTask;
|
|
|
import com.yihu.wlyy.util.DateUtil;
|
|
|
import com.yihu.wlyy.util.ImUtill;
|
|
|
import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
|
|
|
import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils;
|
|
|
import net.sf.json.JSONObject;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.json.JSONArray;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.jms.JMSException;
|
|
|
import javax.jms.Message;
|
|
|
import javax.jms.MessageListener;
|
|
|
import javax.jms.TextMessage;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* Created by chenweida on 2017/9/9.
|
|
|
* 健康教育文章监听
|
|
|
*/
|
|
|
@Component
|
|
|
public class HealthArtListener implements MessageListener {
|
|
|
private Logger logger = LoggerFactory.getLogger(HealthArtListener.class);
|
|
|
|
|
|
@Autowired
|
|
|
private WeiXinOpenIdUtils weiXinOpenIdUtils;
|
|
|
@Autowired
|
|
|
private PushMsgTask pushMsgTask;
|
|
|
@Autowired
|
|
|
private PatientService patientService;
|
|
|
@Autowired
|
|
|
private ConsultService consultService;
|
|
|
@Autowired
|
|
|
private WeiXinAccessTokenUtils weiXinAccessTokenUtils;
|
|
|
|
|
|
@Override
|
|
|
public void onMessage(Message message) {
|
|
|
try {
|
|
|
TextMessage textMessage = (TextMessage) message;
|
|
|
HealthEduArticlePatient healthEduArticlePatient = (HealthEduArticlePatient)JSONObject.toBean(JSONObject.fromObject(textMessage.getText()),HealthEduArticlePatient.class);
|
|
|
// logger.info(jo.toString());
|
|
|
sendWxTemplateAndIM(healthEduArticlePatient);
|
|
|
//返回服务器表示消息消费成功
|
|
|
message.acknowledge();
|
|
|
} catch (JMSException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//发送到IM和微信消息模板
|
|
|
private void sendWxTemplateAndIM(HealthEduArticlePatient one) {
|
|
|
String endMsg = "";//"为了您的健康," + doctor.getName() + "医生给您发送了一篇患教文章,请仔细查阅,如有问题,可随时咨询医生。";
|
|
|
|
|
|
// healthEduArticlePatients.stream().forEach(one -> {
|
|
|
Patient patient = patientService.findByCode(one.getPatient());
|
|
|
try {
|
|
|
//卫纪委发送不推IM
|
|
|
if (1 == one.getSendType()) {
|
|
|
consultService.sendMucMessageBySingnType(one.getSendCode(), one.getSendName(), patient.getCode(), "{\"title\":\"" + one.getAttachedTitle() + "\",\"type\":0,\"id\":\"" + one.getId() + "\",\"img\":\"" + one.getAttachedPic() + "\",\"content\":\"为了您的健康,我给您发送了一篇文章,请咨询查阅,如有问题,可随时与我沟通\"}", "4", patient.getName());
|
|
|
if (StringUtils.isNotBlank(one.getAttachedMessage())) {
|
|
|
//发送备注
|
|
|
consultService.sendMucMessageBySingnType(one.getSendCode(), one.getSendName(), patient.getCode(), one.getAttachedMessage(), ImUtill.CONTENT_TYPE_TEXT, patient.getName());
|
|
|
}
|
|
|
}
|
|
|
// 推送消息给微信端
|
|
|
org.json.JSONObject json = new org.json.JSONObject();
|
|
|
json.put("first", patient.getName() + ",您好! " + one.getSendName() + (one.getSendType()==2 ? "卫计委":"医生") +"给您发来了一篇患教文章");
|
|
|
json.put("toUser", patient.getCode());
|
|
|
json.put("article", one.getArticleId() + "");
|
|
|
json.put("title", one.getAttachedTitle());
|
|
|
json.put("doctorName", one.getSendName()+(one.getSendType()==2 ? "卫计委":"医生"));
|
|
|
json.put("represented", patient.getCode());//被代理人
|
|
|
json.put("date", DateUtil.dateToStrLong(DateUtil.getNowDate()));
|
|
|
json.put("remark", org.springframework.util.StringUtils.isEmpty(one.getAttachedMessage()) ? " " : one.getAttachedMessage());
|
|
|
json.put("articleUrl",one.getArticleUrl());
|
|
|
if (StringUtils.isNotBlank(patient.getOpenid())) {
|
|
|
pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 9,
|
|
|
patient.getOpenid(),
|
|
|
patient.getName(),
|
|
|
json);
|
|
|
}
|
|
|
//发送代理人
|
|
|
JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(patient.getCode(), patient.getOpenid());
|
|
|
if (jsonArray != null && jsonArray.length() > 0) {
|
|
|
for (int i = 0; i < jsonArray.length(); i++) {
|
|
|
org.json.JSONObject j = jsonArray.getJSONObject(i);
|
|
|
Patient member = (Patient) j.get("member");
|
|
|
json.remove("toUser");
|
|
|
json.put("toUser", member.getCode());
|
|
|
json.remove("first");
|
|
|
try {
|
|
|
json.put("first", weiXinOpenIdUtils.getTitleMes(patient, j.isNull("relation") ? 1 : j.getInt("relation"), patient.getName()));
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(member.getOpenid())) {
|
|
|
pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 9, member.getOpenid(), patient.getName(), json);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
logger.error("patient:" + patient.getCode() + "," + e.getMessage());
|
|
|
}
|
|
|
// });
|
|
|
}
|
|
|
}
|
|
|
//package com.yihu.wlyy.activemq;
|
|
|
//
|
|
|
//import com.yihu.es.entity.HealthEduArticlePatient;
|
|
|
//import com.yihu.wlyy.entity.patient.Patient;
|
|
|
//import com.yihu.wlyy.service.app.consult.ConsultService;
|
|
|
//import com.yihu.wlyy.service.common.account.PatientService;
|
|
|
//import com.yihu.wlyy.task.PushMsgTask;
|
|
|
//import com.yihu.wlyy.util.DateUtil;
|
|
|
//import com.yihu.wlyy.util.ImUtill;
|
|
|
//import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils;
|
|
|
//import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils;
|
|
|
//import net.sf.json.JSONObject;
|
|
|
//import org.apache.commons.lang3.StringUtils;
|
|
|
//import org.json.JSONArray;
|
|
|
//import org.slf4j.Logger;
|
|
|
//import org.slf4j.LoggerFactory;
|
|
|
//import org.springframework.beans.factory.annotation.Autowired;
|
|
|
//import org.springframework.stereotype.Component;
|
|
|
//
|
|
|
//import javax.jms.JMSException;
|
|
|
//import javax.jms.Message;
|
|
|
//import javax.jms.MessageListener;
|
|
|
//import javax.jms.TextMessage;
|
|
|
//import java.util.List;
|
|
|
//
|
|
|
///**
|
|
|
// * Created by chenweida on 2017/9/9.
|
|
|
// * 健康教育文章监听
|
|
|
// */
|
|
|
//@Component
|
|
|
//public class HealthArtListener implements MessageListener {
|
|
|
// private Logger logger = LoggerFactory.getLogger(HealthArtListener.class);
|
|
|
//
|
|
|
// @Autowired
|
|
|
// private WeiXinOpenIdUtils weiXinOpenIdUtils;
|
|
|
// @Autowired
|
|
|
// private PushMsgTask pushMsgTask;
|
|
|
// @Autowired
|
|
|
// private PatientService patientService;
|
|
|
// @Autowired
|
|
|
// private ConsultService consultService;
|
|
|
// @Autowired
|
|
|
// private WeiXinAccessTokenUtils weiXinAccessTokenUtils;
|
|
|
//
|
|
|
// @Override
|
|
|
// public void onMessage(Message message) {
|
|
|
// try {
|
|
|
// TextMessage textMessage = (TextMessage) message;
|
|
|
// HealthEduArticlePatient healthEduArticlePatient = (HealthEduArticlePatient)JSONObject.toBean(JSONObject.fromObject(textMessage.getText()),HealthEduArticlePatient.class);
|
|
|
//// logger.info(jo.toString());
|
|
|
// sendWxTemplateAndIM(healthEduArticlePatient);
|
|
|
// //返回服务器表示消息消费成功
|
|
|
// message.acknowledge();
|
|
|
// } catch (JMSException e) {
|
|
|
// e.printStackTrace();
|
|
|
// }
|
|
|
// }
|
|
|
//
|
|
|
//
|
|
|
// //发送到IM和微信消息模板
|
|
|
// private void sendWxTemplateAndIM(HealthEduArticlePatient one) {
|
|
|
// String endMsg = "";//"为了您的健康," + doctor.getName() + "医生给您发送了一篇患教文章,请仔细查阅,如有问题,可随时咨询医生。";
|
|
|
//
|
|
|
//// healthEduArticlePatients.stream().forEach(one -> {
|
|
|
// Patient patient = patientService.findByCode(one.getPatient());
|
|
|
// try {
|
|
|
// //卫纪委发送不推IM
|
|
|
// if (1 == one.getSendType()) {
|
|
|
// consultService.sendMucMessageBySingnType(one.getSendCode(), one.getSendName(), patient.getCode(), "{\"title\":\"" + one.getAttachedTitle() + "\",\"type\":0,\"id\":\"" + one.getId() + "\",\"img\":\"" + one.getAttachedPic() + "\",\"content\":\"为了您的健康,我给您发送了一篇文章,请咨询查阅,如有问题,可随时与我沟通\"}", "4", patient.getName());
|
|
|
// if (StringUtils.isNotBlank(one.getAttachedMessage())) {
|
|
|
// //发送备注
|
|
|
// consultService.sendMucMessageBySingnType(one.getSendCode(), one.getSendName(), patient.getCode(), one.getAttachedMessage(), ImUtill.CONTENT_TYPE_TEXT, patient.getName());
|
|
|
// }
|
|
|
// }
|
|
|
// // 推送消息给微信端
|
|
|
// org.json.JSONObject json = new org.json.JSONObject();
|
|
|
// json.put("first", patient.getName() + ",您好! " + one.getSendName() + (one.getSendType()==2 ? "卫计委":"医生") +"给您发来了一篇患教文章");
|
|
|
// json.put("toUser", patient.getCode());
|
|
|
// json.put("article", one.getArticleId() + "");
|
|
|
// json.put("title", one.getAttachedTitle());
|
|
|
// json.put("doctorName", one.getSendName()+(one.getSendType()==2 ? "卫计委":"医生"));
|
|
|
// json.put("represented", patient.getCode());//被代理人
|
|
|
// json.put("date", DateUtil.dateToStrLong(DateUtil.getNowDate()));
|
|
|
// json.put("remark", org.springframework.util.StringUtils.isEmpty(one.getAttachedMessage()) ? " " : one.getAttachedMessage());
|
|
|
// json.put("articleUrl",one.getArticleUrl());
|
|
|
// if (StringUtils.isNotBlank(patient.getOpenid())) {
|
|
|
// pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 9,
|
|
|
// patient.getOpenid(),
|
|
|
// patient.getName(),
|
|
|
// json);
|
|
|
// }
|
|
|
// //发送代理人
|
|
|
// JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(patient.getCode(), patient.getOpenid());
|
|
|
// if (jsonArray != null && jsonArray.length() > 0) {
|
|
|
// for (int i = 0; i < jsonArray.length(); i++) {
|
|
|
// org.json.JSONObject j = jsonArray.getJSONObject(i);
|
|
|
// Patient member = (Patient) j.get("member");
|
|
|
// json.remove("toUser");
|
|
|
// json.put("toUser", member.getCode());
|
|
|
// json.remove("first");
|
|
|
// try {
|
|
|
// json.put("first", weiXinOpenIdUtils.getTitleMes(patient, j.isNull("relation") ? 1 : j.getInt("relation"), patient.getName()));
|
|
|
// } catch (Exception e) {
|
|
|
// e.printStackTrace();
|
|
|
// }
|
|
|
// if (StringUtils.isNotBlank(member.getOpenid())) {
|
|
|
// pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 9, member.getOpenid(), patient.getName(), json);
|
|
|
// }
|
|
|
// }
|
|
|
// }
|
|
|
// } catch (Exception e) {
|
|
|
// logger.error("patient:" + patient.getCode() + "," + e.getMessage());
|
|
|
// }
|
|
|
//// });
|
|
|
// }
|
|
|
//}
|