Ver código fonte

Merge branch 'dev' of chenweida/patient-co-management into dev

chenweida 7 anos atrás
pai
commit
a151652a9c

+ 34 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/patient/Patient.java

@ -24,6 +24,8 @@ import java.util.List;
@Entity
@Table(name = "wlyy_patient")
public class Patient extends IdEntity implements Serializable {
	/**
	 * 
	 */
@ -94,6 +96,8 @@ public class Patient extends IdEntity implements Serializable {
	private Integer sicardStatus;
//	绑定电子社保卡时间
	private Date sicardTime;
	//是否分配过微信标签  1分配过 0或者空没有
	private Integer isWxtag;
	public Integer getSicardStatus() {
@ -394,4 +398,34 @@ public class Patient extends IdEntity implements Serializable {
	public void setSickVillageName(String sickVillageName) {
		this.sickVillageName = sickVillageName;
	}
	public Integer getIsWxtag() {
		return isWxtag;
	}
	public void setIsWxtag(Integer isWxtag) {
		this.isWxtag = isWxtag;
	}
	//---------------------------常量----------------------------
	public enum isWchatTage{
		yes(1),no(0);
		isWchatTage(Integer value) {
			this.value = value;
		}
		private Integer value;
		public Integer getValue() {
			return value;
		}
		public void setValue(Integer value) {
			this.value = value;
		}
	}
}

+ 5 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/PatientDao.java

@ -1,7 +1,7 @@
/*******************************************************************************
 * Copyright (c) 2005, 2014 springside.github.io
 *
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 *******************************************************************************/
package com.yihu.wlyy.repository.patient;
@ -64,4 +64,8 @@ public interface PatientDao extends PagingAndSortingRepository<Patient, Long> {
    //获取所有的openid并排重
    @Query("select distinct p.openid from Patient p where p.openid is not null and p.openid <> '' ")
    List<String> findOpenids();
    @Modifying
    @Query("update Patient p set p.isWxtag=?2 where p.code=?1")
    void updateIsWXTagByCode(String patient, Integer status);
}

+ 16 - 11
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/common/account/WechatController.java

@ -78,7 +78,7 @@ public class WechatController extends WeixinBaseController {
     * @param idCard
     * @return
     */
    @RequestMapping(value = "getMobile",method = RequestMethod.POST)
    @RequestMapping(value = "getMobile", method = RequestMethod.POST)
    @ResponseBody
    public String getPatientInfoByIdCard(@RequestParam(value = "idCard", required = true) String idCard) {
        Patient temp = patientService.findByIdcard(idCard);
@ -107,7 +107,7 @@ public class WechatController extends WeixinBaseController {
     * @param mobile 手机号
     * @return
     */
    @RequestMapping(value = "/check_regist_info",method = RequestMethod.POST)
    @RequestMapping(value = "/check_regist_info", method = RequestMethod.POST)
    @ResponseBody
    public String checkRegistInfo(String name, String idcard, String ssc, String mobile) {
        try {
@ -177,7 +177,7 @@ public class WechatController extends WeixinBaseController {
     * @param captcha 手机验证码
     * @return
     */
    @RequestMapping(value = "regist",method = RequestMethod.POST)
    @RequestMapping(value = "regist", method = RequestMethod.POST)
    @ResponseBody
    public String regist(@RequestParam(value = "name", required = true) String name,
                         @RequestParam(value = "idcard", required = true) String idcard,
@ -302,7 +302,7 @@ public class WechatController extends WeixinBaseController {
     * @param password 登录密码
     * @return
     */
    @RequestMapping(value = "login",method = RequestMethod.POST)
    @RequestMapping(value = "login", method = RequestMethod.POST)
    @ResponseBody
    public String login(
            @RequestParam(required = false) String mobile,
@ -387,9 +387,11 @@ public class WechatController extends WeixinBaseController {
                    loginLog.setLoginType("1");
                    loginLogService.saveLog(loginLog);
                    //给患者打微信标签
                    weiXinTagUtil.addTagWithOpenid(openid,p.getCode(),p.getName());
                    //判断是否打过标签
                    if (!(Patient.isWchatTage.yes.getValue() == p.getIsWxtag())) {
                        //给患者打微信标签
                        weiXinTagUtil.addTagWithOpenid(openid, p.getCode(), p.getName());
                    }
                    return write(200, "登录成功", "data", map);
                } else {
                    errorMessage = "密码错误,登录失败";
@ -482,8 +484,11 @@ public class WechatController extends WeixinBaseController {
                    }
                    loginLog.setType("1");
                    loginLogService.saveLog(loginLog);
                    //给患者打微信标签
                    weiXinTagUtil.addTagWithOpenid(openid,p.getCode(),p.getName());
                    //判断是否打过标签
                    if (!(Patient.isWchatTage.yes.getValue() == p.getIsWxtag())) {
                        //给患者打微信标签
                        weiXinTagUtil.addTagWithOpenid(openid, p.getCode(), p.getName());
                    }
                    return write(200, "登录成功", "data", map);
                }
            }
@ -504,7 +509,7 @@ public class WechatController extends WeixinBaseController {
     * @param pageUrl 需要签名的页面全地址(?后的也需要除了#后的不需要)
     * @return
     */
    @RequestMapping(value = "getSign",method = RequestMethod.POST)
    @RequestMapping(value = "getSign", method = RequestMethod.POST)
    @ResponseBody
    public String getSign(String pageUrl) {
        try {
@ -538,7 +543,7 @@ public class WechatController extends WeixinBaseController {
     * @param code
     * @return
     */
    @RequestMapping(value = "getOpenidByCode",method = {RequestMethod.POST,RequestMethod.GET})
    @RequestMapping(value = "getOpenidByCode", method = {RequestMethod.POST, RequestMethod.GET})
    @ResponseBody
    public String getOpenidByCode(String code) {
        try {

+ 50 - 34
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/wechat/util/WeiXinTagUtil.java

@ -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) {