| 
					
				 | 
			
			
				@ -0,0 +1,799 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.care.service.family; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.dao.family.PatientFamilyMemberDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.dao.sign.ServicePackageSignRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.care.service.wechat.WeiXinAccessTokenUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.patient.BasePatientDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.patient.BasePatientFamilyMemberDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.servicePackage.ServicePackageSignRecordDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.patient.dao.BasePatientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.common.IdCardUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.security.MD5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.wechat.wxhttp.HttpUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.mysql.query.BaseJpaService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.annotation.PostConstruct; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.regex.Matcher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.regex.Pattern; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @author liuwenbin on 2018/11/27. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class PatientFamilyMemberService extends BaseJpaService<BasePatientFamilyMemberDO, PatientFamilyMemberDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Map<Integer, String> relations = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private PatientFamilyMemberDao memberDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BasePatientDao patientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ServicePackageSignRecordDao signRecordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WeiXinAccessTokenUtils weiXinAccessTokenUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostConstruct 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void init() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        relations.put(0, "其他"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        relations.put(1, "父亲"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        relations.put(2, "母亲"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        relations.put(3, "老公"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        relations.put(4, "老婆"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        relations.put(5, "儿子"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        relations.put(6, "女儿"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        relations.put(7, "未知"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        relations.put(8, "免疫关联"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 家庭关系转换 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient  居民 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param relation 关系 1父亲 2母亲 3老公 4老婆 5儿子 6女儿 7其他 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public int familyRelationTrans(BasePatientDO patient, int relation) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int relationTrans = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        switch (relation) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (patient.getSex() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    relationTrans = 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else if (patient.getSex() == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    relationTrans = 6; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    relationTrans = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (relationTrans == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("1")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        relationTrans = 6; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("2")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        relationTrans = 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                relationTrans = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 4: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                relationTrans = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 5: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 6: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (patient.getSex() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    relationTrans = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else if (patient.getSex() == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    relationTrans = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    relationTrans = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (relationTrans == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("1")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        relationTrans = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else if (IdCardUtil.getSexForIdcard(StringUtils.isEmpty(patient.getIdcard()) ? "" : patient.getIdcard()).equals("2")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        relationTrans = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return relationTrans; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 添加家庭成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 患者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param member  成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param captcha 验证码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param member  成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public int addMember(String patient, String member, String captcha, String password, int relation) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (patient.equals(member)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO p = patientDao.findById(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO m = patientDao.findById(member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (p == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 添加的成员是否注册判断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (m == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //家庭关系为父亲、母亲、老公、老婆时只能有一个 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (relation > 0 && relation < 5) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BasePatientFamilyMemberDO> familyMembers = memberDao.findByPatientAndFamilyRelation(patient, relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (familyMembers != null && familyMembers.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return -5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 验证码验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (StringUtils.isNotEmpty(captcha)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            int checkStatus = smsService.check(m.getMobile(), 10, captcha); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if (checkStatus == -2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return -6;  // 验证码过期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } else if (checkStatus == -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return -3; // 验证码错误 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotEmpty(password)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String loginPassword = MD5.GetMD5Code(password + m.getSalt()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!loginPassword.equals(m.getPassword())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return -3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 添加自己与对方的关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientFamilyMemberDO fm = memberDao.findByPatientAndFamilyMember(patient, member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 家庭关系已存在时,不重复添加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (fm != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fm = new BasePatientFamilyMemberDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fm.setPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fm.setFamilyMember(member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fm.setFamilyRelation(relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fm.setIsAuthorize(0);//默认授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 添加对方与自己的关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientFamilyMemberDO fmt = memberDao.findByPatientAndFamilyMember(member, patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 不存在则创建 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (fmt == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fmt = new BasePatientFamilyMemberDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fmt.setPatient(member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fmt.setFamilyMember(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 对方与自己的关系转换 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int relationTrans = familyRelationTrans(p, relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fmt.setFamilyRelation(relationTrans); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fmt.setIsAuthorize(1);//默认授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        memberDao.save(fm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        memberDao.save(fmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //设置家人openid 加入undefined 判断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isBlank(m.getOpenid()) && StringUtils.isNotBlank(p.getOpenid()) && !"undefined".equals(p.getOpenid())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            m.setOpenid(p.getOpenid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (m.getOpenidTime() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                m.setOpenidTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientDao.save(m); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (StringUtils.isBlank(p.getOpenid()) && StringUtils.isNotBlank(m.getOpenid()) && !"undefined".equals(m.getOpenid())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            p.setOpenid(m.getOpenid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (p.getOpenidTime() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                p.setOpenidTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientDao.save(p); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 修改家庭成员关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient  居民 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param member   成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param relation 关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public int modifyFamilyRelation(String patient, String member, int relation) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO p = patientDao.findById(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO m = patientDao.findById(member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (p == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 成员是否注册判断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (m == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 自己与对方的关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientFamilyMemberDO fm = memberDao.findByPatientAndFamilyMember(patient, member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (fm == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (relation > 0 && relation < 5) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BasePatientFamilyMemberDO> familyMembers = memberDao.findByPatientAndFamilyRelation(patient, relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (familyMembers != null && familyMembers.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return -5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fm.setFamilyRelation(relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 对方与自己的关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientFamilyMemberDO fmt = memberDao.findByPatientAndFamilyMember(member, patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 不存在则创建 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (fmt == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fmt = new BasePatientFamilyMemberDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fmt.setPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fmt.setFamilyMember(member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int relationTrans = familyRelationTrans(p, relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fmt.setFamilyRelation(relationTrans); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        memberDao.save(fm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        memberDao.save(fmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 删除家庭成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 居民 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param member  成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public int deleteMember(String patient, String member) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 自己与对方的关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientFamilyMemberDO fm = memberDao.findByPatientAndFamilyMember(patient, member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (fm == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 对方与自己的关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientFamilyMemberDO fmt = memberDao.findByPatientAndFamilyMember(member, patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        memberDao.delete(fm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (fmt != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            memberDao.delete(fmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 设置授权关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param member 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param isAuthorize 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public int authorizeMember(String patient, String member, Integer isAuthorize) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientFamilyMemberDO fm = memberDao.findByPatientAndFamilyMember(patient, member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (fm == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fm.setIsAuthorize(isAuthorize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        memberDao.save(fm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取居民的家庭成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 居民 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray getPatientMembers(String patient, String doctorCode, boolean isContain, String current, Integer isAgree) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray resultArray = getPatientFamilyMembers(patient, doctorCode, isAgree); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultArray == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultArray = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (isContain && !patient.equals(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BasePatientDO p = patientDao.findById(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject obj = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<ServicePackageSignRecordDO> signs = signRecordDao.findByStatusAndPatient(1,patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            boolean jtSign = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(signs.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jtSign = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("id", p.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("name", p.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("sex", p.getSex()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("birthday", p.getBirthday()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("idcard", StringUtils.isEmpty(p.getIdcard()) ? "" : p.getIdcard()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("photo", StringUtils.isEmpty(p.getPhoto()) ? "" : p.getPhoto()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("mobile", StringUtils.isEmpty(p.getMobile()) ? "" : p.getMobile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("address", StringUtils.isEmpty(p.getAddress()) ? "" : p.getAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("familyRelation", "-1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("familyRelationName", "自己"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("isAuthorize", 1);//0:未授权,1:已授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("authorizeStatus", 3);// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (jtSign) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("signType", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("signType", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultArray.add(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return resultArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取居民的家庭成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 居民 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray getPatientFamilyMembers(String patient, String doctorCode, Integer isAgree) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray resultArray = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "select * " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    base_patient_family_member t1, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    base_patient t2 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    t2.id in (select family_member from base_patient_family_member where patient = ? ) " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    and t1.patient = ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "    and t1.family_member = t2.id "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{patient, patient}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (result != null && result.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map<String, Object> map : result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject obj = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<ServicePackageSignRecordDO> signs = signRecordDao.findByStatusAndPatient(1,map.get("family_member").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                boolean jtSign = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                int status = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(signs.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jtSign = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    status = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Integer isAuthorize = (Integer) map.get("is_authorize"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("id", map.get("id")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("name", map.get("name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("sex", map.get("sex")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("isAuthorize", isAuthorize);//0:未授权,1:已授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("birthday", map.get("birthday")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("idcard", StringUtils.isEmpty(String.valueOf(map.get("idcard"))) ? "" : map.get("idcard").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("photo", map.get("photo")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("mobile", map.get("mobile")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("address", StringUtils.isEmpty(String.valueOf(map.get("address"))) ? "" : map.get("address")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("familyRelation", map.get("family_relation")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("familyRelationName", relations.get(map.get("family_relation"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!StringUtils.isEmpty(doctorCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("relaholder", relations.get(map.get("family_relation"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("addressCode", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("addressName", StringUtils.isEmpty(String.valueOf(map.get("address"))) ? "" : map.get("address")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("status", status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("source", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (isAuthorize == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        BasePatientFamilyMemberDO familyMember = memberDao.findByPatientAndFamilyMember(String.valueOf(map.get("family_member")), patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (familyMember.getIsAuthorize() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            obj.put("authorizeStatus", 1);//相互授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            obj.put("authorizeStatus", 2);//居民单方向向家人授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        obj.put("authorizeStatus", 3);//居民被家人授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (jtSign) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("signType", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("signType", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("state", "1");//0 :未处理;1:已同意;2:已拒绝 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("id", map.get("id")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultArray.add(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return resultArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取有授权的家庭成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray getAuthorizeMembers(String patient) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray resultArray = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resultArray.add(getPatient(patient)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BasePatientFamilyMemberDO> list = memberDao.findByFamilyMemberAndIsAuthorize(patient, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (list != null && list.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray tem = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (BasePatientFamilyMemberDO member : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject obj = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                BasePatientDO p = patientDao.findById(member.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (p == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    throw new Exception("成员为空!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<ServicePackageSignRecordDO> signs = signRecordDao.findByStatusAndPatient(1,patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                boolean jtSign = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(signs.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jtSign = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Integer relation = familyRelationTrans(p, member.getFamilyRelation()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (signs.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("signCode",signs.get(0).getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("signCode",""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("id", p.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("name", p.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("sex", p.getSex()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("isAuthorize", member.getIsAuthorize());//0:未授权,1:已授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("birthday", p.getBirthday()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String idCard = StringUtils.isEmpty(p.getIdcard()) ? "" : p.getIdcard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("idcard", IdCardUtil.getIdcardEncode(idCard)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("idcardAll", idCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("photo", p.getPhoto()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("mobile", p.getMobile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("age", IdCardUtil.getAgeByIdcardOrBirthday(p.getIdcard(),p.getBirthday())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("ssc", p.getSsc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("familyRelation", relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("familyRelationName", relations.get(relation)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("address", p.getAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                obj.put("openid", p.getOpenid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (jtSign) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("signType", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    obj.put("signType", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (member.getIsAuthorize() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    tem.add(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    resultArray.add(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (tem.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (int i = 0; i < tem.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    resultArray.add(tem.get(i)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return resultArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 判断成员是否注册 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idcard 身份证号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject isRegister(String idcard, String patient) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO p = patientDao.findByIdcard(idcard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (p == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("isRegister", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (patient.equals(p.getId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                result.put("isRegister", -1); //不能添加自己 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("isRegister", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("mobile", StringUtils.isEmpty(p.getMobile()) ? "" : p.getMobile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("name", StringUtils.isEmpty(p.getName()) ? "" : p.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("id",  p.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("photo", StringUtils.isEmpty(p.getPhoto()) ? "" : p.getPhoto()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("sex", p.getSex()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getPatient(String patient) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO p = patientDao.findById(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject obj = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<ServicePackageSignRecordDO> signs = signRecordDao.findByStatusAndPatient(1,patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean jtSign = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(signs.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jtSign = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("id", p.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("name", p.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("sex", p.getSex()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("birthday", p.getBirthday()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("isAuthorize", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String idCard = StringUtils.isEmpty(p.getIdcard()) ? "" : p.getIdcard(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("idcard", IdCardUtil.getIdcardEncode(idCard)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("idcardAll", idCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("age", IdCardUtil.getAgeByIdcardOrBirthday(p.getIdcard(),p.getBirthday())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("ssc", p.getSsc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("photo", StringUtils.isEmpty(p.getPhoto()) ? "" : p.getPhoto()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("mobile", StringUtils.isEmpty(p.getMobile()) ? "" : p.getMobile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("address", StringUtils.isEmpty(p.getAddress()) ? "" : p.getAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("familyRelation", -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("familyRelationName", "自己"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("isAuthorize", 1);//0:未授权,1:已授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        obj.put("openid", p.getOpenid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (jtSign) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("signType", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            obj.put("signType", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return obj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 验证添加的家庭成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param menber 预绑定成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 0未绑定微信,1仅绑定微信,2仅绑定手机,3手机微信都绑定 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject checkFamilyMember(String menber) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject r = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //未绑定微信,未绑定手机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int result = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //1.判断微信过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //判断是否绑定微信,如果版绑定了微信,将状态改变为 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO p = patientDao.findById(menber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(p.getOpenid())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String sus = getIsSus(p.getOpenid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(sus)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if ("1".equals(sus)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    result = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //2.判断手机过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //判断是否绑定了手机 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(p.getMobile()) && isMobileNO(p.getMobile())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //如果用户绑定了微信,将状态更改为4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (result == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                result = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //如果用户未绑定微信,将状态更改为2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (result == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                result = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //返回过滤后的状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        r.put("state", result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (result == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            r.put("mes", "未绑定微信和手机"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (result == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            r.put("mes", "仅绑定微信"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (result == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            r.put("mes", "仅绑定手机"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (result == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            r.put("mes", "手机和微信皆绑定"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return r; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 通过用户名密码添加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param member 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param password 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param relation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public int addMemberByPw(String patient, String member, String password, int relation) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (patient.equals(member)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO p = patientDao.findById(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO m = patientDao.findById(member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (p == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 添加的成员是否注册判断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (m == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotEmpty(password)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String loginPassword = MD5.GetMD5Code(password + m.getSalt()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!loginPassword.equals(m.getPassword())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return -3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return addMemberFamily(p, m, patient, member, relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public int addMemberFamily(BasePatientDO p, BasePatientDO m, String patient, String member, int relation) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (relation > 0 && relation < 5) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BasePatientFamilyMemberDO> familyMembers = memberDao.findByPatientAndFamilyRelation(patient, relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (familyMembers != null && familyMembers.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return -5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 添加自己与对方的关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientFamilyMemberDO fm = memberDao.findByPatientAndFamilyMember(patient, member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 家庭关系已存在时,不重复添加 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (fm != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fm = new BasePatientFamilyMemberDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fm.setPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fm.setFamilyMember(member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fm.setFamilyRelation(relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fm.setIsAuthorize(0);//默认授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 添加对方与自己的关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientFamilyMemberDO fmt = memberDao.findByPatientAndFamilyMember(member, patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 不存在则创建 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (fmt == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fmt = new BasePatientFamilyMemberDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fmt.setPatient(member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            fmt.setFamilyMember(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 对方与自己的关系转s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //int relationTrans = familyRelationTrans(p, relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int relationTrans = familyRelationTrans(p, relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fmt.setFamilyRelation(relationTrans); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        fmt.setIsAuthorize(0);//默认授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        memberDao.save(fm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        memberDao.save(fmt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //设置家人openid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isBlank(m.getOpenid()) && StringUtils.isNotBlank(p.getOpenid()) && !"undefined".equals(p.getOpenid())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            m.setOpenid(p.getOpenid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (m.getOpenidTime() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                m.setOpenidTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientDao.save(m); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (StringUtils.isBlank(p.getOpenid()) && StringUtils.isNotBlank(m.getOpenid()) && !"undefined".equals(m.getOpenid())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            p.setOpenid(m.getOpenid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (p.getOpenidTime() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                p.setOpenidTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientDao.save(p); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public int addMemberByCaptcha(String patient, String member, String captcha, int relation) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (patient.equals(member)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO p = patientDao.findById(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BasePatientDO m = patientDao.findById(member); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (p == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 添加的成员是否注册判断 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (m == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return -2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        // 验证码验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (StringUtils.isNotEmpty(captcha)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            int checkStatus = smsService.check(m.getMobile(), 10, captcha); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if (checkStatus == -2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return -6;  // 验证码过期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } else if (checkStatus == -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return -3; // 验证码错误 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return addMemberFamily(p, m, patient, member, relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取subscribe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param openid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getIsSus(String openid) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String userInfo_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=" + weiXinAccessTokenUtils.getAccessToken() + "&openid=" + openid + "&lang=zh_CN"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String params = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String result = HttpUtil.sendGet(userInfo_url, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = JSONObject.parseObject(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (json.containsKey("subscribe")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return json.get("subscribe").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public boolean isMobileNO(String number) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Pattern pattern = Pattern.compile("^1(3|4|5|7|8)[0-9]\\d{8}$"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Matcher m = pattern.matcher(number); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return m.matches(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取已绑定家人的信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<BasePatientFamilyMemberDO> getByPatientAndFamilyRelation(String patient,Integer familyRelation){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BasePatientFamilyMemberDO> list = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(familyRelation==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            list = memberDao.getByPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            list = memberDao.getByPatientAndFamilyRelation(patient,familyRelation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<BasePatientFamilyMemberDO> getByFamilyMemberAndRelation(String familyMember,Integer familyRelation){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BasePatientFamilyMemberDO> list = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(familyRelation==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            list = memberDao.getByFamilyMember(familyMember); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            list = memberDao.getByFamilyMemberAndFamilyRelation(familyMember,familyRelation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |