chenweida hace 8 años
padre
commit
72a7844714

+ 107 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/wechat/WechatTagLog.java

@ -0,0 +1,107 @@
package com.yihu.wlyy.entity.wechat;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by chenweida on 2017/8/4.
 */
@Entity
@Table(name = "wx_tag_log")
public class WechatTagLog extends IdEntity {
    private Integer tagId;
    private String tagName;
    private Date createTime;
    private String townCode;//区code
    private String townName;//区名称
    private String patient;//患者名称
    private String patientName;//患者名称
    private String openId;//患者名称
    private String message;//信息
    private Integer type;// 1新增 2取消
    public Integer getTagId() {
        return tagId;
    }
    public void setTagId(Integer tagId) {
        this.tagId = tagId;
    }
    public String getTagName() {
        return tagName;
    }
    public void setTagName(String tagName) {
        this.tagName = tagName;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getTownCode() {
        return townCode;
    }
    public void setTownCode(String townCode) {
        this.townCode = townCode;
    }
    public String getTownName() {
        return townName;
    }
    public void setTownName(String townName) {
        this.townName = townName;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getOpenId() {
        return openId;
    }
    public void setOpenId(String openId) {
        this.openId = openId;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
}

+ 12 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/wechat/WechatTagLogDao.java

@ -0,0 +1,12 @@
package com.yihu.wlyy.repository.wechat;
import com.yihu.wlyy.entity.wechat.WechatTag;
import com.yihu.wlyy.entity.wechat.WechatTagLog;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by chenweida on 2017/8/7.
 */
public interface WechatTagLogDao  extends PagingAndSortingRepository<WechatTagLog, Long>, JpaSpecificationExecutor<WechatTagLog> {
}

+ 3 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -1187,7 +1187,7 @@ public class FamilyContractService extends BaseService {
        //签约成功之后给患者新增标签
        String openId=sf.getOpenid();
       hospital=sf.getHospital();
        weiXinTagUtil.addTagWithOpenid(openId,hospital);
        weiXinTagUtil.addTagWithOpenid(openId,hospital,sf.getPatient(),sf.getName());
        return temp;
    }
@ -1535,7 +1535,7 @@ public class FamilyContractService extends BaseService {
        //签约成功之后给患者新增标签
        String openId=sf.getOpenid();
        String hospital=sf.getHospital();
        weiXinTagUtil.addTagWithOpenid(openId,hospital);
        weiXinTagUtil.addTagWithOpenid(openId,hospital,sf.getPatient(),sf.getName());
        return result;
    }
@ -1672,7 +1672,7 @@ public class FamilyContractService extends BaseService {
        //根据openId给患者清掉标签
        String openId=sf.getOpenid();
        String hospital=sf.getHospital();
        weiXinTagUtil.deleteTagWithOpenid(openId,hospital);
        weiXinTagUtil.deleteTagWithOpenid(openId,hospital,sf.getPatient(),sf.getName());
        return 1;
    }

+ 2 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/wx/WechatTagController.java

@ -85,7 +85,7 @@ public class WechatTagController extends BaseController {
        try {
            String[] openis = openids.split(",");
            String string = weiXinTagUtil.addTagWithOpenid(java.util.Arrays.asList(openis), tageId);
            String string = weiXinTagUtil.addTagWithOpenid(java.util.Arrays.asList(openis), tageId,null,null);
            return write(200, "查询成功", "date", string);
        } catch (Exception e) {
            return error(-1, "失败");
@ -114,7 +114,7 @@ public class WechatTagController extends BaseController {
            @ApiParam(name = "tageId", value = "微信标签Id", required = true) @RequestParam(value = "tageId", required = true) Integer tageId) {
        try {
            List<String> openids = signWebService.findOpenidsByTown(town);
            String string = weiXinTagUtil.addTagWithOpenid(openids, tageId);
            String string = weiXinTagUtil.addTagWithOpenid(openids, tageId,null,null);
            return write(200, "查询成功", "date", string);
        } catch (Exception e) {
            return error(-1, "失败");

+ 66 - 13
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/wechat/util/WeiXinTagUtil.java

@ -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;
        }
    }
    /**
     * 获取用户身上的标签列表
     *