Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

LiTaohong 6 years ago
parent
commit
0f92232917

+ 5 - 6
business/base-service/src/main/java/com/yihu/jw/message/dao/MessageDao.java

@ -2,6 +2,7 @@ package com.yihu.jw.message.dao;
import com.yihu.jw.entity.base.message.BaseMessageDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
@ -13,14 +14,12 @@ import java.util.List;
 */
public interface MessageDao extends PagingAndSortingRepository<BaseMessageDO, String>, JpaSpecificationExecutor<BaseMessageDO> {
    @Query("select m from BaseMessageDO m where m.platform=?1 and m.receiver=?2 and m.saasId=?3 and m.del=1 and m.msgTypeCode like ?4 and m.type=2 order by m.readState desc")
    List<BaseMessageDO> messageList(Integer platform, String code, String saasId,String msgTypeCode);
    @Query("select m from BaseMessageDO m where m.platform=?1 and m.receiver=?2  and m.del=1 and m.msgTypeCode like ?3  order by m.readState desc")
    List<BaseMessageDO> messageList(Integer platform, String code,String msgTypeCode);
    @Query("select count(m.id) from BaseMessageDO m where m.platform=?1 and m.receiver=?2 and m.saasId=?3 and m.del=1 and m.msgTypeCode like ?4 and m.type=2 and m.readState=1")
    Integer countMessage(Integer platform, String code, String saasId,String msgTypeCode);
    @Query("select count(m.id) from BaseMessageDO m where m.platform=?1 and m.receiver=?2  and m.del=1 and m.msgTypeCode like ?3  and m.readState=1")
    Integer countMessage(Integer platform, String code,String msgTypeCode);
    BaseMessageDO findById(Integer id);
    @Query("select m from BaseMessageDO m where m.receiver=?1 and m.type=1 and m.failureTime>=?2 and m.msgTypeCode=?3")
    List<BaseMessageDO> applyMessageList(String patient,Date failureTime,String msgTypeCode);
}

+ 16 - 16
business/base-service/src/main/java/com/yihu/jw/message/service/MessageService.java

@ -2,6 +2,7 @@ package com.yihu.jw.message.service;
import com.yihu.jw.entity.base.message.BaseMessageDO;
import com.yihu.jw.message.dao.MessageDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.collections.map.HashedMap;
import org.springframework.beans.factory.annotation.Autowired;
@ -30,12 +31,11 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
     * 消息列表
     * @param platform
     * @param code
     * @param saasId
     * @param page
     * @param pageSize
     * @return
     */
    public List<Map<String,Object>> messageList(Integer platform,String code,String saasId,Integer page,Integer pageSize){
    public List<Map<String,Object>> messageList(Integer platform,String code,Integer page,Integer pageSize){
        if(page==null){
            page = 0;
@ -50,10 +50,10 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
        // 排序
        Sort sort = new Sort(Sort.Direction.DESC, "createTime");
        // 分页信息
        List<BaseMessageDO> applyList = messageDao.messageList(platform,code,saasId,"00%");
        Integer applyReadCount = messageDao.countMessage(platform,code,saasId,"00%");
        List<BaseMessageDO> systemList = messageDao.messageList(platform,code,saasId,"01%");
        Integer systemReadCount = messageDao.countMessage(platform,code,saasId,"01%");
        List<BaseMessageDO> applyList = messageDao.messageList(platform,code,"00%");
        Integer applyReadCount = messageDao.countMessage(platform,code,"00%");
        List<BaseMessageDO> systemList = messageDao.messageList(platform,code,"01%");
        Integer systemReadCount = messageDao.countMessage(platform,code,"01%");
        List<Map<String,Object>> resultList = new LinkedList<>();
        Map<String,Object> applyMap = new HashedMap();
@ -73,7 +73,7 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
        }
        //1、未读消息(置顶)
        List<Map<String, Object>> unReadResult = messageListSql(platform,code,saasId,0,page,unReadPageSize);
        List<Map<String, Object>> unReadResult = messageListSql(platform,code,0,page,unReadPageSize);
        for(Map<String, Object> one:unReadResult){
            Map<String,Object> unReadMap = new HashedMap();
            unReadMap.put("name",one.get("sender_name"));
@ -82,9 +82,9 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
            resultList.add(unReadMap);
        }
        if(unReadResult.size()<unReadPageSize){
            page = messageCountSql(platform,code,saasId,1,page,pageSize);
            page = messageCountSql(platform,code,1,page,pageSize);
            //2、已读消息
            List<Map<String, Object>> readResult = messageListSql(platform,code,saasId,1,page,unReadPageSize);
            List<Map<String, Object>> readResult = messageListSql(platform,code,1,page,unReadPageSize);
            for(Map<String, Object> one:readResult){
                Map<String,Object> readMap = new HashedMap();
                readMap.put("name",one.get("sender_name"));
@ -104,14 +104,17 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
    }
    public List<BaseMessageDO> applyMessageList(String patient, Date failureTime, String msgTypeCode){
        return messageDao.applyMessageList(patient,failureTime,msgTypeCode);
    public List<Map<String, Object>> applyMessageList(String patient, Date failureTime, String msgTypeCode){
        String failureTimeStr = DateUtil.dateToStr(failureTime,"yyyy-MM-dd HH:mm:ss");
        String sql = "select m.* from base_message m join patient_apply_for_log l on m.relation_data=l.id where m.failure_Time>='"+failureTimeStr+"' and m.msgTypeCode='"+msgTypeCode+"'";
        return jdbcTemplate.queryForList(sql);
//        return messageDao.applyMessageList(patient,failureTime,msgTypeCode);
    }
    private List<Map<String, Object>> messageListSql(Integer platform,String code,String saasId,Integer readState,Integer page,Integer pageSize){
    private List<Map<String, Object>> messageListSql(Integer platform,String code,Integer readState,Integer page,Integer pageSize){
        String sql =" SELECT " +
                " a.*, b.msg_content " +
                " FROM " +
@ -126,7 +129,6 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
                "  WHERE " +
                "   m.platform = '"+platform+"' " +
                "  AND m.receiver = '"+code+"' " +
                "  AND m.saas_id = '"+saasId+"' " +
                "  AND m.del = 1 " +
                "  AND m.read_state = "+readState+" " +
                "  GROUP BY " +
@ -139,20 +141,18 @@ public class MessageService extends BaseJpaService<BaseMessageDO, MessageDao> {
                " AND a.create_time = b.create_time " +
                " AND b.platform = '"+platform+"' " +
                " AND b.receiver = '"+code+"' " +
                " AND b.saas_id = '"+saasId+"' " +
                " AND b.del = 1 " +
                " AND m.read_state = "+readState;
        return jdbcTemplate.queryForList(sql);
    }
    private Integer messageCountSql(Integer platform,String code,String saasId,Integer readState,Integer page,Integer originalPageSize){
    private Integer messageCountSql(Integer platform,String code,Integer readState,Integer page,Integer originalPageSize){
        String sql ="  SELECT count(*) as num " +
                "  FROM " +
                "   base_message m " +
                "  WHERE " +
                "   m.platform = '"+platform+"' " +
                "  AND m.receiver = '"+code+"' " +
                "  AND m.saas_id = '"+saasId+"' " +
                "  AND m.del = 1 " +
                "  AND m.read_state = "+readState+" " +
                "  GROUP BY " +

+ 0 - 14
common/common-entity/src/main/java/com/yihu/jw/entity/base/message/BaseMessageDO.java

@ -18,10 +18,6 @@ import java.util.Date;
@Table(name = "base_message")
public class BaseMessageDO extends IntegerIdentityEntity {
    /**
     * saas配置id,消息里不可为空
     */
    private String saasId;
    /**
     * 消息接收人(微信平台为患者标识,医生APP平台为医生标识)
@ -127,16 +123,6 @@ public class BaseMessageDO extends IntegerIdentityEntity {
     */
    private Date failureTime;
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    @Column(name = "receiver")
    public String getReceiver() {
        return receiver;

+ 205 - 73
common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/BasePatientDO.java

@ -2,14 +2,10 @@ package com.yihu.jw.entity.base.patient;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
@ -72,6 +68,10 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
	 * 联系电话
	 */
	private String phone;
    /**
     * 社保卡号
     */
	private String ssc;
    /**
	 * 头像http地址
@ -117,6 +117,15 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
     * 街道名称
     */
    private String streetName;
    /**
     * 居住居委会代码
     */
    private String committeeCode;
    /**
     * 居住居委会名称
     */
    private String committeeName;
    /**
     * 地址
@ -124,132 +133,166 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
    private String address;
    /**
     * 居住省代码
     * 疾病类型,0健康,1高血压,2糖尿病,3高血压+糖尿病
     */
    private String liveProvinceCode;
    private String disease;
    /**
     * 病情:0绿标,1黄标,2红标,3重点关注
     */
    private String diseaseCondition;
    /**
     * 居住省名称
     * 总积分
     */
    private String liveProvinceName;
    private String points;
    /**
     * 居住市代码
     * 病历总数
     */
    private String liveCityCode;
    private String recordAmount;
    /**
     * 居住市名称
     * 微信编号
     */
    private String liveCityName;
    private String openid;
    /**
     * 居住区县代码
     * 用户状态:1正常,0禁用,-1恶意注册,2审核中
     */
    private String liveTownCode;
    private String patientStatus;
    /**
     * 居住区县名称
     * 联系方式备注【基卫】
     */
    private String liveTownName;
    private String mobileRemarks;
    /**
     * 居住街道代码
     * 第一次添加open的时间
     */
    private String liveStreetCode;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date openidTime;
    /**
     * 居住街道名称
     * 绑定电子社保卡主体(共济为操作人code,医社保关联patient_medicare_card)
     */
    private String liveStreetName;
    private String principalCode;
    /**
     * 是否绑定电子社保卡 (0否 1是)
     */
    private String sicardStatus;
    /**
     * 居住居委会代码
     * 电子社保卡绑定时间
     */
    private String committeeCode;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date sicardTime;
    /**
     * 居住居委会名称
     * 是否分配过微信标签
     */
    private String committeeName;
    private Integer isWxtag;
    /**
	 * 总积分
	 */
	private String points;
     * 微信tagId
     */
    private String wxtagid;
    /**
	 * 病历总数
	 */
	private String recordAmount;
     * 居民预警状态:0为标准,1为预警状态
     */
    private Integer standardStatus;
    /**
	 * 微信编号
	 */
	private String openid;
     * 医疗保险号
     */
    private String medicareNumber;
    /**
	 * 用户状态:1正常,0禁用,-1恶意注册,2审核中
	 */
	private String patientStatus;
     * unionId 开发平台唯一标识
     */
    private String unionid;
    /**
	 * 联系方式备注【基卫】
	 */
	private String mobileRemarks;
     * 作废标识,1正常,0作废
     */
    private String del;
    /**
	 * 第一次添加open的时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
	private Date openidTime;
     * 登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date loginDate;
    /**
	 * 绑定电子社保卡主体(共济为操作人code,医社保关联patient_medicare_card)
	 */
	private String principalCode;
     * 锁定时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    private Date lockedDate;
    /**
	 * 是否绑定电子社保卡 (0否 1是)
	 */
	private String sicardStatus;
     * 是否被锁定;1为锁定,0为可用
     */
    private Integer locked;
    /**
	 * 电子社保卡绑定时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
	private Date sicardTime;
     * 是否可用
     */
    private Integer enabled;
    /**
	 * 是否分配过微信标签
	 */
	private Integer isWxtag;
     * 备注
     */
    private String remark;
    /**
	 * 微信tagId
	 */
	private String wxtagid;
     * 登录失败次数
     */
    private Integer loginFailureCount;
    /**
	 * 居民预警状态:0为标准,1为预警状态
	 */
	private Integer standardStatus;
     * 居住区县代码
     */
    private String liveTownCode;
    /**
	 * unionId 开发平台唯一标识
	 */
	private String unionid;
     * 居住区县名称
     */
    private String liveTownName;
    /**
	 * 作废标识,1正常,0作废
	 */
	private String del;
     * 居住市代码
     */
    private String liveCityCode;
    /**
     * 居住市名称
     */
    private String liveCityName;
    /**
     * 居住省代码
     */
    private String liveProvinceCode;
	/**
	 * 备注
	 */
	private String remark;
    /**
     * 居住省名称
     */
    private String liveProvinceName;
    /**
     * 居住街道代码
     */
    private String liveStreetCode;
    /**
     * 居住街道名称
     */
    private String liveStreetName;
	@Column(name = "saas_id")
@ -535,14 +578,16 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
        this.del = del;
    }
    @Column(name = "remark")
    public String getRemark() {
        return remark;
    }
    @Column(name = "remark")
    public void setRemark(String remark) {
        this.remark = remark;
    }
    @Column(name = "live_province_code")
    public String getLiveProvinceCode() {
        return liveProvinceCode;
    }
@ -551,6 +596,7 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
        this.liveProvinceCode = liveProvinceCode;
    }
    @Column(name = "live_province_name")
    public String getLiveProvinceName() {
        return liveProvinceName;
    }
@ -559,6 +605,7 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
        this.liveProvinceName = liveProvinceName;
    }
    @Column(name = "live_city_code")
    public String getLiveCityCode() {
        return liveCityCode;
    }
@ -567,6 +614,7 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
        this.liveCityCode = liveCityCode;
    }
    @Column(name = "live_city_name")
    public String getLiveCityName() {
        return liveCityName;
    }
@ -575,6 +623,7 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
        this.liveCityName = liveCityName;
    }
    @Column(name = "live_town_code")
    public String getLiveTownCode() {
        return liveTownCode;
    }
@ -583,6 +632,7 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
        this.liveTownCode = liveTownCode;
    }
    @Column(name = "live_town_name")
    public String getLiveTownName() {
        return liveTownName;
    }
@ -607,4 +657,86 @@ public class BasePatientDO extends UuidIdentityEntityWithOperator {
    public void setLiveStreetName(String liveStreetName) {
        this.liveStreetName = liveStreetName;
    }
    @Column(name = "ssc")
    public String getSsc() {
        return ssc;
    }
    public void setSsc(String ssc) {
        this.ssc = ssc;
    }
    @Column(name = "disease")
    public String getDisease() {
        return disease;
    }
    public void setDisease(String disease) {
        this.disease = disease;
    }
    @Column(name = "disease_condition")
    public String getDiseaseCondition() {
        return diseaseCondition;
    }
    public void setDiseaseCondition(String diseaseCondition) {
        this.diseaseCondition = diseaseCondition;
    }
    @Column(name = "medicare_number")
    public String getMedicareNumber() {
        return medicareNumber;
    }
    public void setMedicareNumber(String medicareNumber) {
        this.medicareNumber = medicareNumber;
    }
    @Column(name = "login_date")
    public Date getLoginDate() {
        return loginDate;
    }
    public void setLoginDate(Date loginDate) {
        this.loginDate = loginDate;
    }
    @Column(name = "locked_date")
    public Date getLockedDate() {
        return lockedDate;
    }
    public void setLockedDate(Date lockedDate) {
        this.lockedDate = lockedDate;
    }
    @Column(name = "locked")
    public Integer getLocked() {
        return locked;
    }
    public void setLocked(Integer locked) {
        this.locked = locked;
    }
    @Column(name = "enabled")
    public Integer getEnabled() {
        return enabled;
    }
    public void setEnabled(Integer enabled) {
        this.enabled = enabled;
    }
    @Column(name = "login_failure_count")
    public Integer getLoginFailureCount() {
        return loginFailureCount;
    }
    public void setLoginFailureCount(Integer loginFailureCount) {
        this.loginFailureCount = loginFailureCount;
    }
}

+ 1 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/patient/PatientRequestMapping.java

@ -55,6 +55,7 @@ public class PatientRequestMapping {
        public static final String confirmApply  = "/confirmApply";
        public static final String applyMessageList  = "/applyMessageList";
        public static final String cancelApply  = "/cancelApply";
        public static final String myFamilyBindList  = "/myFamilyBindList";
    }

+ 1 - 1
svr/svr-patient/src/main/java/com/yihu/jw/patient/dao/myFamily/PatientApplyLogDao.java

@ -13,7 +13,7 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface PatientApplyLogDao extends PagingAndSortingRepository<PatientApplyLog, String>, JpaSpecificationExecutor<PatientApplyLog> {
    @Modifying
    @Query("update PatientApplyLog t set t.remindType = ?1 where t.id=?2 ")
    @Query("update PatientApplyLog t set t.remindType = ?1,t.status=2 where t.id=?2 ")
    int updateRemindTypeById(Integer remindType, Integer id);
    PatientApplyLog findById(Integer id);

+ 14 - 3
svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/myFamily/MyFamilyEndpoint.java

@ -67,14 +67,12 @@ public class MyFamilyEndpoint extends EnvelopRestEndpoint {
            @RequestParam(value = "patient",required = false) String patient,
            @ApiParam(name = "wechatId", value = "wechatId", required = true)
            @RequestParam(value = "wechatId",required = true) String wechatId,
            @ApiParam(name = "saasId", value = "saasId", required = true)
            @RequestParam(value = "saasId",required = true) String saasId,
            @ApiParam(name = "familyMobile", value = "家人的手机号码", required = true)
            @RequestParam(value = "familyMobile",required = true) String familyMobile,
            @ApiParam(name = "familyBindRole", value = "家庭关系关系 1配偶 2父亲 3母亲 4公公 5婆婆 6岳父 7岳母 8子女", required = true)
            @RequestParam(value = "familyBindRole",required = true) Integer familyBindRole,HttpServletRequest request) throws Exception {
        try{
            PatientApplyLog patientApplyLog = myFamilyService.bindingMyFamily(request,wechatId, saasId, getUID(patient), familyMobile, 1,familyBindRole);
            PatientApplyLog patientApplyLog = myFamilyService.bindingMyFamily(request,wechatId, getUID(patient), familyMobile, 1,familyBindRole);
            return success(patientApplyLog);
        }catch (Exception e){
            e.printStackTrace();
@ -164,5 +162,18 @@ public class MyFamilyEndpoint extends EnvelopRestEndpoint {
            return failed(e.getMessage());
        }
    }
    @GetMapping(value = PatientRequestMapping.MyFamily.myFamilyBindList)
    @ApiOperation(value = "我绑定的记录")
    public Envelop myFamilyBindList(
            @ApiParam(name = "patient", value = "居民code", required = false)
            @RequestParam(value = "patient",required = false) String patient) throws Exception {
        try{
            List<Map<String,Object>> resultList = myFamilyService.myFamilyBindList(getUID(patient));
            return success(resultList);
        }catch (Exception e){
            e.printStackTrace();
            return failed(e.getMessage());
        }
    }
}

+ 4 - 113
svr/svr-patient/src/main/java/com/yihu/jw/patient/endpoint/personal_info/PatientEndpoint.java

@ -95,126 +95,17 @@ public class PatientEndpoint extends EnvelopRestEndpoint {
                          @ApiParam(value = "微信openId", name = "openid") @RequestParam(value = "openid", required = false) String openid,
                          @ApiParam(value = "密码", name = "password") @RequestParam(value = "password", required = false) String password) {
        Envelop envelop = new Envelop();
        boolean b = CommonUtils.isMobile(mobile);
        if (!b) {
            envelop.setMessage("手机号码格式不正确");
            envelop.setStatus(-1);
            return envelop;
        }
        //验证手机是否被注册
        List<BasePatientDO> list = basePatientDao.findByMobileAndDel(mobile, "1");
        if (list != null && list.size() > 0) {
            envelop.setMessage("该手机号已经注册!");
            Map<String, Object> result = patientService.regist(mobile, captcha, password, openid);
            if ("-1".equals(result.get("code"))) {
                envelop.setStatus(-1);
                envelop.setMessage(result.get("message") + "");
            } else {
                envelop.setStatus(200);
                envelop.setMessage(result.get("message") + "");
            }
        }
        return envelop;
    }
    /**
     * 患者微信登录接口
     *
     * @param captcha  短信号
     * @param mobile   电话号码
     * @param password 登录密码
     * @return
     */
    @RequestMapping(value = BaseRequestMapping.BasePatient.Login, method = RequestMethod.POST)
    @ResponseBody
    public Envelop login(
            @RequestParam(required = true) String mobile,
            @RequestParam(required = false) String captcha,
            @RequestParam(required = false) String password,
            @RequestParam(required = false) String openId) throws Exception {
        Envelop envelop = new Envelop();
        boolean b = CommonUtils.isMobile(mobile);
        if (!b) {
            envelop.setMessage("手机号码格式不正确");
            envelop.setStatus(-1);
            return envelop;
        }
        //验证手机是否被注册
        List<BasePatientDO> list = basePatientDao.findByMobileAndDel(mobile, "1");
        if (CollectionUtils.isEmpty(list)) {
            envelop.setMessage("该手机未注册");
        Map<String, Object> result = patientService.regist(mobile, captcha, password, openid);
        if ("-1".equals(result.get("code"))) {
            envelop.setStatus(-1);
            return envelop;
        }
        if (list.size() > 1) {
            envelop.setMessage("该手机号存在多个账号,请联系管理员");
            envelop.setStatus(-1);
            return envelop;
        }
        BasePatientDO p = list.get(0);
        //用于判断是否登陆成功,若登陆成功,且openId不为空,则更新openId
        boolean isLogin = false;
        if (org.apache.commons.lang3.StringUtils.isNotBlank(password)) {
            password = rsaService.decryptString(password);
            password = org.apache.commons.lang3.StringUtils.reverse(password);
            //生成MD5
            String loginPassword = MD5.GetMD5Code(password + p.getSalt());
            if (loginPassword.equals(p.getPassword())) {
                //使用密码登录成功
                isLogin = true;
            } else {
                //使用密码登录失败
                envelop.setMessage("密码错误");
                envelop.setStatus(-1);
                return envelop;
            }
            envelop.setMessage(result.get("message") + "");
        } else {
            //验证码登陆
            int res = baseSmsService.check(mobile, 4, captcha);
            if (-2 == res) {
                envelop.setMessage("验证码已过期!");
                envelop.setStatus(-1);
                return envelop;
            } else if (-1 == res) {
                envelop.setMessage("请输入正确的验证码!");
                envelop.setStatus(-1);
                return envelop;
            } else if (0 == res) {
                envelop.setMessage("验证码无效!");
                envelop.setStatus(-1);
                return envelop;
            } else {
                //使用密码登录成功
                isLogin = true;
            }
        }
        if (isLogin) {
            if (StringUtils.isNotBlank(openId) && !"undefined".equals(openId)) {
                //更新openId
                if (!openId.equals(p.getOpenid())) {
                    patientService.updateOpenId(p.getId(), openId);
                }
            }
            // 用户校验通过,生成token
            Token token = tokenService.newTxToken(p.getId(), p.getOpenid());
            Map<Object, Object> map = new HashMap<Object, Object>();
            map.put("id", p.getId());
            map.put("uid", p.getId());
            map.put("name", p.getName());
            map.put("token", token.getToken());
            map.put("photo", p.getPhoto());
            envelop.setMessage("登陆成功");
            envelop.setStatus(200);
            envelop.setMessage(result.get("message") + "");
        }
        return envelop;
    }
    @PostMapping(value = BaseRequestMapping.BasePatient.CREATE)
    @ApiOperation(value = "创建")
    public Envelop create(

+ 65 - 18
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/myFamily/MyFamilyService.java

@ -93,14 +93,13 @@ public class MyFamilyService {
     * 一键绑定
     * @param request
     * @param wechatId
     * @param saasId
     * @param patient
     * @param familyMobile
     * @param platform
     * @throws Exception
     */
    @Transactional(rollbackFor = Exception.class)
    public PatientApplyLog bindingMyFamily(HttpServletRequest request,String wechatId, String saasId, String patient, String familyMobile, Integer platform,Integer familyBindRole) throws Exception{
    public PatientApplyLog bindingMyFamily(HttpServletRequest request,String wechatId, String patient, String familyMobile, Integer platform,Integer familyBindRole) throws Exception{
        BasePatientDO patientDO = patientService.findByIdAndDel(patient);
        //1、检验手机号码是否有存在账号,
@ -113,7 +112,6 @@ public class MyFamilyService {
        PatientApplyLog patientApplyLog = createFamilyQrCode(request,familyPatient,wechatId,patient,familyBindRole);
        //4、发送绑定家人的系统消息
        BaseMessageDO messageDO = new BaseMessageDO();
        messageDO.setSaasId(saasId);
        messageDO.setReceiver(familyPatient.getId());
        messageDO.setReceiverName(familyPatient.getName());
        messageDO.setSender(patient);
@ -139,16 +137,15 @@ public class MyFamilyService {
     * 签约绑定家人
     * @param request
     * @param wechatId
     * @param saasId
     * @param patient
     * @param familyMobile
     * @param platform
     * @param familyBindRole 1"配偶",2"父亲",3"母亲",4"公公",5"婆婆",6"岳父",7"岳母",8"女婿",9"儿媳",10"子女"
     * @param isAdult 0未成年人 1成年人
     */
    public PatientApplyLog signBindFamily(HttpServletRequest request,String wechatId, String saasId, String patient, String familyMobile, Integer platform,Integer familyBindRole,Integer isAdult) throws Exception{
    public PatientApplyLog signBindFamily(HttpServletRequest request,String wechatId, String patient, String familyMobile, Integer platform,Integer familyBindRole,Integer isAdult) throws Exception{
        if(isAdult==1){
            PatientApplyLog p = bindingMyFamily(request,wechatId, saasId,patient, familyMobile, platform,familyBindRole);
            PatientApplyLog p = bindingMyFamily(request,wechatId,patient, familyMobile, platform,familyBindRole);
            return p;
        }else if(isAdult==0){
            //注册一个没有手机号码的用户信息
@ -265,7 +262,7 @@ public class MyFamilyService {
            map.put("principalNum","");//社保卡号
        }
        map.put("mobile",basePatientDO.getMobile());//手机号码
        if(StringUtils.isEmpty(packageId)){
        if(!StringUtils.isEmpty(packageId)){
            if(packageService.findPatientSignExist(patient,packageId)){
                map.put("isPackage",1);
            }else{
@ -309,11 +306,11 @@ public class MyFamilyService {
        return resultList;
    }
    public void myFamilyBindList(String patient) throws Exception{
    public List<Map<String,Object>> myFamilyBindList(String patient) throws Exception{
        List<Map<String,Object>> resultList = new LinkedList<>();
        //已绑定的
        List<BasePatientFamilyMemberDO> bindList = patientFamilyMemberService.getByPatientAndFamilyMember(patient);
        BasePatientDO patientDO = patientService.findByIdAndDel(patient);//绑定人
        List<Map<String,Object>> resultList = new ArrayList<>();
        for(BasePatientFamilyMemberDO one:bindList){
            Map<String,Object> map = new HashedMap();
            if(patient.equals(one.getPatient())){
@ -341,8 +338,45 @@ public class MyFamilyService {
            resultList.add(map);
        }
        //已邀请的
//        patientApplyLogService.
        List<Map<String, Object>> validList = patientApplyLogService.findValidByPatient(patient);
        for(Map<String, Object> one:validList){
            Map<String,Object> map = new HashedMap();
            BasePatientDO familyMember = patientService.findByIdAndDel(one.get("family_member_code")+"");
            map.put("photo",familyMember.getPhoto());//头像
            map.put("name",familyMember.getName());//姓名
            map.put("roleName",role.get(Integer.valueOf(one.get("family_bind_role")+"")+1));//角色名称
            map.put("mobile",familyMember.getMobile());//手机号码
            //有效期
            Date failurTime = (Date)one.get("failure_time");
            Long l = failurTime.getTime()-System.currentTimeMillis();
            Long day24 = 1000*60*60*24L;
            map.put("day",l/day24);
            map.put("patientApplyId",one.get("id"));
            map.put("patientId",familyMember.getId());
            map.put("type",2);
            resultList.add(map);
        }
        //已取消的
        List<Map<String, Object>> invalidList = patientApplyLogService.findInvalidByPatient(patient);
        for(Map<String, Object> one:invalidList){
            Map<String,Object> map = new HashedMap();
            BasePatientDO familyMember = patientService.findByIdAndDel(one.get("family_member_code")+"");
            map.put("photo",familyMember.getPhoto());//头像
            map.put("name",familyMember.getName());//姓名
            map.put("roleName",role.get(Integer.valueOf(one.get("family_bind_role")+"")+1));//角色名称
            map.put("mobile",familyMember.getMobile());//手机号码
            Integer status = null;
            if("1".equals(one.get("status")+"")||"2".equals(one.get("status")+"")){
                status = 5;
            }else if("4".equals(one.get("status")+"")||"5".equals(one.get("status")+"")){
                status = Integer.valueOf(one.get("status")+"");
            }
            map.put("status",one.get("status"));//状态
            map.put("statusName",getStatusName(status));//状态名称;
            map.put("type",3);
            resultList.add(map);
        }
        return resultList;
    }
    /**
@ -351,13 +385,13 @@ public class MyFamilyService {
     */
    @Transactional(rollbackFor = Exception.class)
    public List<Map<String,Object>> applyMessageList(String patient) throws Exception{
        List<BaseMessageDO> msgList = messageService.applyMessageList(patient, new Date(), "010801");
        List<Map<String, Object>> msgList = messageService.applyMessageList(patient, new Date(), "010801");
        List<Map<String,Object>> result = new ArrayList<>();
        PatientApplyLog patientApplyLog = null;
        for(BaseMessageDO one:msgList){
        for(Map<String, Object> one:msgList){
            Map<String,Object> map = new HashedMap();
            String o = one.getRelationData();
            patientApplyLog = patientApplyLogService.findById(Integer.valueOf(o));
            String relationData = one.get("relation_data")+"";
            patientApplyLog = patientApplyLogService.findById(Integer.valueOf(relationData));
            Integer bindRole = patientApplyLog.getFamilyBindRole();
            String createUser = patientApplyLog.getCreateUser();//申请人code
@ -365,14 +399,15 @@ public class MyFamilyService {
            BasePatientDO createPatient = patientService.findByIdAndDel(createUser);//绑定人
            Integer converRole = familyRelationTrans(bindRole,createPatient.getSex());//转换后的角色
            map.put("patientApplyLogId",one.getId());
            map.put("patientApplyLogId",relationData);
            map.put("patientPhoto",patientDO.getPhoto());
            map.put("applyPatientPhoto",createPatient.getPhoto());
            map.put("explain","您的"+role.get(converRole-1)+createPatient.getName()+"邀请您绑定家人账号");
            result.add(map);
            one.setReadonly(1);
            one.setReadTime(new Date());
            messageService.save(one);
            BaseMessageDO msg = messageService.findById(Integer.valueOf(one.get("id")+""));
            msg.setReadonly(1);
            msg.setReadTime(new Date());
            messageService.save(msg);
        }
        return result;
    }
@ -442,4 +477,16 @@ public class MyFamilyService {
        return relationTrans;
    }
    public String getStatusName(Integer status){
        String statusName ="";
        switch (status){
            case 1:statusName="已邀请";break;
            case 2:statusName="已邀请";break;
            case 3:statusName="已通过";break;
            case 4:statusName="已拒绝";break;
            case 5:statusName="已取消";break;
        }
        return statusName;
    }
}

+ 3 - 3
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/myFamily/PatientApplyLogService.java

@ -46,15 +46,15 @@ public class PatientApplyLogService extends BaseJpaService<PatientApplyLog, Pati
        return  patientApplyLogDao.updateStatusById(status,patientApplyLogId);
    }
    //invalid 无效 valid 有效
    //valid 有效
    public List<Map<String, Object>> findValidByPatient(String patient){
        String sql = "select l.* from patient_apply_for_log l where l.create_user='"+patient+"' and l.del=1 and l.status in (1,2) and l.failure_time>="+ DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss");
        return jdbcTemplate.queryForList(sql);
    }
    //invalid 无效 valid 有效
    //invalid 无效
    public List<Map<String, Object>> findInvalidByPatient(String patient){
        String sql = "select l.* from patient_apply_for_log l where l.create_user='"+patient+"' and l.del=1 and (l.status in (4,5) or (l.failure_time>='"+ DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss")+"' and l.status in (1,2)))";
        String sql = "select l.* from patient_apply_for_log l where l.create_user='"+patient+"' and l.del=1 and (l.status in (4,5) or (l.failure_time>='"+ DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss")+"' and l.status in (1,2))) limit0,10";
        return jdbcTemplate.queryForList(sql);
    }
}

+ 12 - 2
svr/svr-patient/src/main/java/com/yihu/jw/patient/service/personal_Info/PatientService.java

@ -80,7 +80,6 @@ public class PatientService extends BasePatientService<BasePatientDO, BasePatien
            return map;
        } else{
            BasePatientDO patient = new BasePatientDO();
            patient.setMobile(mobile);
            if(StringUtils.isNotBlank(password)){
                //增加密码
                if(password.length()<6 || password.length()>20){
@ -95,16 +94,27 @@ public class PatientService extends BasePatientService<BasePatientDO, BasePatien
                patient.setOpenid(openid);
                patient.setOpenidTime(new Date());
            }
            patient.setMobile(mobile);
            patient.setLocked(0);
            patient.setEnabled(0);
            patient.setDel("1");
            patient.setPatientStatus("1");
            this.save(patient);
            map.put("code",1);
            map.put("message","注册成功");
            return map;
        }
    }
    /**
     * 预注册功能接口
     * @param phone
     * @return
     */
//    public Map<String,Object> bespeakRegist(String phone){
//
//    }
    /**
     * 设置登录密码/修改密码
     * @param id