|
@ -3,8 +3,10 @@ package com.yihu.wlyy.wechat.util;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.wlyy.entity.dict.SystemDict;
|
|
|
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.wechat.WechatTagDao;
|
|
|
import com.yihu.wlyy.repository.wechat.WechatTagLogDao;
|
|
|
import com.yihu.wlyy.util.HttpUtil;
|
|
|
import net.sf.json.JSONArray;
|
|
|
import org.slf4j.Logger;
|
|
@ -25,6 +27,9 @@ import java.util.List;
|
|
|
public class WeiXinTagUtil {
|
|
|
@Autowired
|
|
|
private WechatTagDao wechatTagDao;
|
|
|
@Autowired
|
|
|
private WechatTagLogDao wechatTagLogDao;
|
|
|
|
|
|
|
|
|
private Logger logger = LoggerFactory.getLogger(WeiXinTagUtil.class);
|
|
|
@Autowired
|
|
@ -49,13 +54,13 @@ public class WeiXinTagUtil {
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 根据openID给用户打标签,
|
|
|
* 根据openID给用户打标签,
|
|
|
*
|
|
|
* @param openIds
|
|
|
* @param tagId
|
|
|
* @return
|
|
|
*/
|
|
|
public String addTagWithOpenid(List<String> openIds, Integer tagId) {
|
|
|
public String addTagWithOpenid(List<String> openIds, Integer tagId, String patient, String patientName) {
|
|
|
try {
|
|
|
net.sf.json.JSONObject params = new net.sf.json.JSONObject();
|
|
|
|
|
@ -80,13 +85,13 @@ public class WeiXinTagUtil {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据openID给用户打标签,
|
|
|
* 根据openID给用户打标签,
|
|
|
*
|
|
|
* @param openid
|
|
|
* @param tagId
|
|
|
* @return
|
|
|
*/
|
|
|
public String addTagWithOpenid(String openid, Integer tagId) {
|
|
|
public String addTagWithOpenid(String openid, Integer tagId, String patient, String patientName) {
|
|
|
try {
|
|
|
net.sf.json.JSONObject params = new net.sf.json.JSONObject();
|
|
|
net.sf.json.JSONArray ja = new JSONArray();
|
|
@ -112,21 +117,31 @@ public class WeiXinTagUtil {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据openID给用户打标签,
|
|
|
* 根据openID给用户打标签,
|
|
|
*
|
|
|
* @param openid
|
|
|
* @param hospital
|
|
|
* @return
|
|
|
*/
|
|
|
public String addTagWithOpenid(String openid, String hospital) {
|
|
|
public String addTagWithOpenid(String openid, String hospital, String patient, String patientName) {
|
|
|
try {
|
|
|
if (!StringUtils.isEmpty(hospital)) {
|
|
|
String town=hospital.substring(0,6);
|
|
|
String town = hospital.substring(0, 6);
|
|
|
//根据机构获取tagId
|
|
|
WechatTag tagId = wechatTagDao.findByTownCode(town);
|
|
|
if (tagId != null) {
|
|
|
return addTagWithOpenid(openid, tagId.getTagId());
|
|
|
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 {
|
|
|
saveLog(openid, patient, patientName, null, 1, "签约表机构是为空");
|
|
|
}
|
|
|
return null;
|
|
|
} catch (Exception e) {
|
|
@ -135,6 +150,31 @@ public class WeiXinTagUtil {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 保存日志
|
|
|
*
|
|
|
* @param openid
|
|
|
* @param patient
|
|
|
* @param patientName
|
|
|
* @param tagId 微信的标签id
|
|
|
* @param type 1 新增 2取消
|
|
|
*/
|
|
|
private void saveLog(String openid, String patient, String patientName, WechatTag tagId, int type, String message) {
|
|
|
WechatTagLog we = new WechatTagLog();
|
|
|
we.setCreateTime(new Date());
|
|
|
we.setMessage(message);
|
|
|
we.setOpenId(openid);
|
|
|
we.setPatient(patient);
|
|
|
we.setPatientName(patientName);
|
|
|
if (tagId != null) {
|
|
|
we.setTagId(tagId.getTagId());
|
|
|
we.setTownCode(tagId.getTownCode());
|
|
|
we.setTownName(tagId.getTownName());
|
|
|
}
|
|
|
we.setType(type);
|
|
|
wechatTagLogDao.save(we);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据openID给用户取消标签,
|
|
|
*
|
|
@ -142,15 +182,25 @@ public class WeiXinTagUtil {
|
|
|
* @param hospital
|
|
|
* @return
|
|
|
*/
|
|
|
public String deleteTagWithOpenid(String openid, String hospital) {
|
|
|
public String deleteTagWithOpenid(String openid, String hospital, String patient, String patientName) {
|
|
|
try {
|
|
|
if (!StringUtils.isEmpty(hospital)) {
|
|
|
String town=hospital.substring(0,6);
|
|
|
String town = hospital.substring(0, 6);
|
|
|
//根据机构获取tagId
|
|
|
WechatTag tagId = wechatTagDao.findByTownCode(town);
|
|
|
if (tagId != null) {
|
|
|
return deleteTagWithOpenid(openid, tagId.getTagId());
|
|
|
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 + "的标签");
|
|
|
}
|
|
|
} else {
|
|
|
saveLog(openid, patient, patientName, null, 2, "签约表机构是为空");
|
|
|
}
|
|
|
return null;
|
|
|
} catch (Exception e) {
|
|
@ -158,8 +208,9 @@ public class WeiXinTagUtil {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据openID给用户取消标签,
|
|
|
* 根据openID给用户取消标签,
|
|
|
*
|
|
|
* @param openIds
|
|
|
* @param tagId
|
|
@ -188,6 +239,7 @@ public class WeiXinTagUtil {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据openID给用户取消标签,
|
|
|
*
|
|
@ -198,7 +250,7 @@ public class WeiXinTagUtil {
|
|
|
public String deleteTagWithOpenid(String openIds, Integer tagId) {
|
|
|
try {
|
|
|
net.sf.json.JSONObject params = new net.sf.json.JSONObject();
|
|
|
net.sf.json.JSONArray ja=new JSONArray();
|
|
|
net.sf.json.JSONArray ja = new JSONArray();
|
|
|
ja.add(openIds);
|
|
|
params.put("openid_list", ja);
|
|
|
params.put("tagid", tagId);
|
|
@ -219,6 +271,7 @@ public class WeiXinTagUtil {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取用户身上的标签列表
|
|
|
*
|