|
@ -2,10 +2,12 @@ package com.yihu.wlyy.wechat.util;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.wlyy.entity.dict.SystemDict;
|
|
|
import com.yihu.wlyy.entity.patient.Patient;
|
|
|
import com.yihu.wlyy.entity.patient.SignFamily;
|
|
|
import com.yihu.wlyy.entity.wechat.WechatTag;
|
|
|
import com.yihu.wlyy.entity.wechat.WechatTagLog;
|
|
|
import com.yihu.wlyy.repository.dict.SystemDictDao;
|
|
|
import com.yihu.wlyy.repository.patient.PatientDao;
|
|
|
import com.yihu.wlyy.repository.patient.SignFamilyDao;
|
|
|
import com.yihu.wlyy.repository.wechat.WechatTagDao;
|
|
|
import com.yihu.wlyy.repository.wechat.WechatTagLogDao;
|
|
@ -16,6 +18,7 @@ import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import java.util.Date;
|
|
@ -42,6 +45,8 @@ public class WeiXinTagUtil {
|
|
|
private String appSecret;
|
|
|
@Autowired
|
|
|
private SignFamilyDao signFamilyDao;
|
|
|
@Autowired
|
|
|
private PatientDao patientDao;
|
|
|
|
|
|
|
|
|
// 创建标签
|
|
@ -112,6 +117,8 @@ public class WeiXinTagUtil {
|
|
|
if (status != 0) {
|
|
|
throw new Exception("创建失败," + result);
|
|
|
}
|
|
|
//更新患者表
|
|
|
patientDao.updateIsWXTagByCode(patient, Patient.isWchatTage.yes.getValue());
|
|
|
}
|
|
|
|
|
|
return result;
|
|
@ -130,25 +137,28 @@ public class WeiXinTagUtil {
|
|
|
*/
|
|
|
public String addTagWithOpenid(String openid, String hospital, String patient, String patientName) {
|
|
|
try {
|
|
|
if (!StringUtils.isEmpty(hospital)) {
|
|
|
String town = hospital.substring(0, 6);
|
|
|
//根据机构获取tagId
|
|
|
WechatTag tagId = wechatTagDao.findByTownCode(town);
|
|
|
if (tagId != null) {
|
|
|
if (StringUtils.isEmpty(openid)) {
|
|
|
saveLog(openid, patient, patientName, null, 1, "签约表openid是为空");
|
|
|
} else {
|
|
|
String resultStr = addTagWithOpenid(openid, tagId.getTagId(), patient, patientName);
|
|
|
saveLog(openid, patient, patientName, tagId, 1, resultStr);
|
|
|
return resultStr;
|
|
|
}
|
|
|
} else {
|
|
|
saveLog(openid, patient, patientName, null, 1, "wx_tag中不存在区是" + town + "的标签");
|
|
|
}
|
|
|
} else {
|
|
|
String str = null;
|
|
|
if (StringUtils.isEmpty(hospital)) {
|
|
|
saveLog(openid, patient, patientName, null, 1, "签约表机构是为空");
|
|
|
return str;
|
|
|
}
|
|
|
return null;
|
|
|
if (StringUtils.isEmpty(openid)) {
|
|
|
saveLog(openid, patient, patientName, null, 1, "签约表openid是为空");
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
String town = hospital.substring(0, 6);
|
|
|
//根据机构获取tagId
|
|
|
WechatTag tagId = wechatTagDao.findByTownCode(town);
|
|
|
if (tagId != null) {
|
|
|
str = addTagWithOpenid(openid, tagId.getTagId(), patient, patientName);
|
|
|
saveLog(openid, patient, patientName, tagId, 1, str);
|
|
|
} else {
|
|
|
saveLog(openid, patient, patientName, null, 1, "wx_tag中不存在区是" + town + "的标签");
|
|
|
}
|
|
|
//更新患者表
|
|
|
patientDao.updateIsWXTagByCode(patient, Patient.isWchatTage.yes.getValue());
|
|
|
return str;
|
|
|
} catch (Exception e) {
|
|
|
logger.error(e.getMessage());
|
|
|
return null;
|
|
@ -188,26 +198,30 @@ public class WeiXinTagUtil {
|
|
|
* @return
|
|
|
*/
|
|
|
public String deleteTagWithOpenid(String openid, String hospital, String patient, String patientName) {
|
|
|
String str = null;
|
|
|
try {
|
|
|
if (!StringUtils.isEmpty(hospital)) {
|
|
|
String town = hospital.substring(0, 6);
|
|
|
//根据机构获取tagId
|
|
|
WechatTag tagId = wechatTagDao.findByTownCode(town);
|
|
|
if (tagId != null) {
|
|
|
if (StringUtils.isEmpty(openid)) {
|
|
|
saveLog(openid, patient, patientName, null, 2, "签约表openid是为空");
|
|
|
} else {
|
|
|
String str = deleteTagWithOpenid(openid, tagId.getTagId());
|
|
|
saveLog(openid, patient, patientName, tagId, 2, str);
|
|
|
return str;
|
|
|
}
|
|
|
} else {
|
|
|
saveLog(openid, patient, patientName, null, 2, "wx_tag中不存在区是" + town + "的标签");
|
|
|
}
|
|
|
if (StringUtils.isEmpty(hospital)) {
|
|
|
saveLog(openid, patient, patientName, null, 1, "签约表机构是为空");
|
|
|
return str;
|
|
|
}
|
|
|
if (StringUtils.isEmpty(openid)) {
|
|
|
saveLog(openid, patient, patientName, null, 1, "签约表openid是为空");
|
|
|
return str;
|
|
|
}
|
|
|
|
|
|
String town = hospital.substring(0, 6);
|
|
|
//根据机构获取tagId
|
|
|
WechatTag tagId = wechatTagDao.findByTownCode(town);
|
|
|
if (tagId != null) {
|
|
|
str = deleteTagWithOpenid(openid, tagId.getTagId());
|
|
|
saveLog(openid, patient, patientName, tagId, 2, str);
|
|
|
//更新患者表
|
|
|
return str;
|
|
|
} else {
|
|
|
saveLog(openid, patient, patientName, null, 2, "签约表机构是为空");
|
|
|
saveLog(openid, patient, patientName, null, 2, "wx_tag中不存在区是" + town + "的标签");
|
|
|
}
|
|
|
return null;
|
|
|
patientDao.updateIsWXTagByCode(patient, Patient.isWchatTage.no.getValue());
|
|
|
return str;
|
|
|
} catch (Exception e) {
|
|
|
logger.error(e.getMessage());
|
|
|
return null;
|
|
@ -372,6 +386,8 @@ public class WeiXinTagUtil {
|
|
|
* @param code
|
|
|
* @param name
|
|
|
*/
|
|
|
|
|
|
@Transactional
|
|
|
public void addTagWithOpenid(String openid, String code, String name) {
|
|
|
SignFamily signFamily = signFamilyDao.findByPatient(code);
|
|
|
if (signFamily == null) {
|