|  | @ -1,375 +0,0 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.patient.endpoint.patient;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.patient.BasePatientDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.personal_info.PatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.service.personal_Info.PatientService;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.util.CommonUtils;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.util.RSAService;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.Envelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.patient.PatientRequestMapping;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.security.MD5;
 | 
	
		
			
				|  |  | import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.util.CollectionUtils;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.util.*;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | @RestController
 | 
	
		
			
				|  |  | @RequestMapping(PatientRequestMapping.PatientInfo.PREFIX)
 | 
	
		
			
				|  |  | @Api(value = "患者注册,登陆等", description = "患者注册,登陆等", tags = {"居民端 - 患者注册,登陆等"})
 | 
	
		
			
				|  |  | public class PatientInfoEndpint extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private PatientDao patientDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private PatientService patientService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private RSAService rsaService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 公钥生成并返回接口
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "getKey", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     @ApiOperation("获取公钥")
 | 
	
		
			
				|  |  |     public Envelop publicKey() {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String modulus = rsaService.getModulus();
 | 
	
		
			
				|  |  |         String exponent = rsaService.getExponent();
 | 
	
		
			
				|  |  |         Map<String, String> map = new HashMap<>();
 | 
	
		
			
				|  |  |         map.put("modulus", modulus); //加密指数
 | 
	
		
			
				|  |  |         map.put("exponent", exponent);//加密系数
 | 
	
		
			
				|  |  |         return success(map);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation("居民注册接口")
 | 
	
		
			
				|  |  |     @RequestMapping(value = "regist", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |     @ResponseBody
 | 
	
		
			
				|  |  |     public Envelop regist(@ApiParam(value = "手机号", name = "mobile") @RequestParam(required = true)String mobile ,
 | 
	
		
			
				|  |  |                          @ApiParam(value = "验证码", name = "captcha") @RequestParam(value = "captcha", required = true) String captcha,
 | 
	
		
			
				|  |  |                          @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 =  patientDao.findByMobileAndDel(mobile,"1");
 | 
	
		
			
				|  |  |         if(list!=null && list.size()> 0){
 | 
	
		
			
				|  |  |             envelop.setMessage("该手机号已经注册!");
 | 
	
		
			
				|  |  |             envelop.setStatus(-1);
 | 
	
		
			
				|  |  |             return envelop;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         // 对验证码进行校验 todo cyx
 | 
	
		
			
				|  |  | //            int res = smsService.check(mobile, 1, captcha);
 | 
	
		
			
				|  |  | //            switch (res) {
 | 
	
		
			
				|  |  | //                case -2:
 | 
	
		
			
				|  |  | //                    return error(-1, "验证码已过期!");
 | 
	
		
			
				|  |  | //                case -1:
 | 
	
		
			
				|  |  | //                    return error(-1, "请输入正确的验证码!");
 | 
	
		
			
				|  |  | //                case 0:
 | 
	
		
			
				|  |  | //                    return error(-1, "验证码无效!");
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         BasePatientDO patient = new BasePatientDO();
 | 
	
		
			
				|  |  |         patient.setMobile(mobile);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(password)){
 | 
	
		
			
				|  |  |             //增加密码
 | 
	
		
			
				|  |  |             String salt = UUID.randomUUID().toString().replace("-", "");
 | 
	
		
			
				|  |  |             patient.setSalt(salt);
 | 
	
		
			
				|  |  |             password = rsaService.decryptString(password);
 | 
	
		
			
				|  |  |             password = StringUtils.reverse(password);
 | 
	
		
			
				|  |  |             if(password.length()<6 || password.length()>20){
 | 
	
		
			
				|  |  |                 envelop.setMessage("密码长度需为6-20位");
 | 
	
		
			
				|  |  |                 envelop.setStatus(-1);
 | 
	
		
			
				|  |  |                 return envelop;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             patient.setPassword(MD5.GetMD5Code(password + salt));
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(!"undefined".equals(openid) && StringUtils.isNotBlank(openid)){
 | 
	
		
			
				|  |  |             patient.setOpenid(openid);
 | 
	
		
			
				|  |  |             patient.setOpenidTime(new Date());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         patient.setDel("1");
 | 
	
		
			
				|  |  |         patient.setPatientStatus("1");
 | 
	
		
			
				|  |  |         patientService.save(patient);
 | 
	
		
			
				|  |  |         envelop.setMessage("注册成功");
 | 
	
		
			
				|  |  |         envelop.setStatus(200);
 | 
	
		
			
				|  |  |         return envelop;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 患者微信登录接口
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param captcha  短信号
 | 
	
		
			
				|  |  |      * @param mobile   电话号码
 | 
	
		
			
				|  |  |      * @param password 登录密码
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |         @RequestMapping(value = "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) {
 | 
	
		
			
				|  |  |         Envelop envelop = new Envelop();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         boolean b = CommonUtils.isMobile(mobile);
 | 
	
		
			
				|  |  |         if(!b){
 | 
	
		
			
				|  |  |             envelop.setMessage("手机号码格式不正确");
 | 
	
		
			
				|  |  |             envelop.setStatus(-1);
 | 
	
		
			
				|  |  |             return envelop;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //验证手机是否被注册
 | 
	
		
			
				|  |  |         List<BasePatientDO> list = patientDao.findByMobileAndDel(mobile,"1");
 | 
	
		
			
				|  |  |         if(CollectionUtils.isEmpty(list)){
 | 
	
		
			
				|  |  |             envelop.setMessage("该手机未注册");
 | 
	
		
			
				|  |  |             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(StringUtils.isNotBlank(password)){
 | 
	
		
			
				|  |  |             password = rsaService.decryptString(password);
 | 
	
		
			
				|  |  |             password = StringUtils.reverse(password);
 | 
	
		
			
				|  |  |             //生成MD5
 | 
	
		
			
				|  |  |             String loginPassword = MD5.GetMD5Code(password + p.getSalt());
 | 
	
		
			
				|  |  |             if (loginPassword.equals(p.getPassword())) {
 | 
	
		
			
				|  |  |                 //使用密码登录成功
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 //使用密码登录失败
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |           //验证码登陆
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(isLogin && StringUtils.isNotBlank(openId) && !"undefined".equals(openId)){
 | 
	
		
			
				|  |  |             //更新openId
 | 
	
		
			
				|  |  |             if(!openId.equals(p.getOpenid())){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | //         String errorMessage;
 | 
	
		
			
				|  |  | //        try {
 | 
	
		
			
				|  |  | //            //账号登录 mobile可能是电话号也可能是身份证
 | 
	
		
			
				|  |  | //            if (StringUtils.isNoneEmpty(mobile) && StringUtils.isNoneEmpty(password)) {
 | 
	
		
			
				|  |  | //                BasePatientDO p = patientService.findByMobile(mobile);
 | 
	
		
			
				|  |  | //                //生成MD5
 | 
	
		
			
				|  |  | //                String loginPassword = MD5.GetMD5Code(password + p.getSalt());
 | 
	
		
			
				|  |  | //                //判断d登录密码是否正确
 | 
	
		
			
				|  |  | //                if (loginPassword.equals(p.getPassword())) {
 | 
	
		
			
				|  |  | //                    // 绑定用户手机号和openid
 | 
	
		
			
				|  |  | //                    if (StringUtils.isNotBlank(openId) && !"undefined".equals(openId)) {//undefined不更新数据库
 | 
	
		
			
				|  |  | //                        //patient.setOpenid(openId);
 | 
	
		
			
				|  |  | //                        //1.判斷居民OPenid是不是空
 | 
	
		
			
				|  |  | //                        if(StringUtils.isNotBlank(p.getOpenid())){
 | 
	
		
			
				|  |  | //                            //如果OPenid与原来用户不相等,则判断登录的openids是否被大于10人登录
 | 
	
		
			
				|  |  | //                            if(!p.getOpenid().equals(openId)){
 | 
	
		
			
				|  |  | //                                //判断登录的openids是否被大于10人登录
 | 
	
		
			
				|  |  | ////                                if(!patientService.checkOpenidCount(openId)){
 | 
	
		
			
				|  |  | ////                                    errorMessage ="您已超过系统允许登录的最大居民账号数量,当前不再允许使用该微信登录新的居民账号,请使用其他微信号进行登录";
 | 
	
		
			
				|  |  | ////                                    return error(-2, errorMessage);
 | 
	
		
			
				|  |  | ////                                }
 | 
	
		
			
				|  |  | //                            }
 | 
	
		
			
				|  |  | //                            patientService.updatePatient(p, openId);
 | 
	
		
			
				|  |  | //                        }else{
 | 
	
		
			
				|  |  | //                            // 判断登录的openids是否被大于10人登录
 | 
	
		
			
				|  |  | //                            if(!patientService.checkOpenidCount(openId)){
 | 
	
		
			
				|  |  | ////                                errorMessage ="您已超过系统允许登录的最大居民账号数量,当前不再允许使用该微信登录新的居民账号,请使用其他微信号进行登录";
 | 
	
		
			
				|  |  | ////                                return error(-2, errorMessage);
 | 
	
		
			
				|  |  | //                            }else{
 | 
	
		
			
				|  |  | //                                //未达到上限更新用户openid
 | 
	
		
			
				|  |  | //                                patientService.updatePatient(p, openId);
 | 
	
		
			
				|  |  | //                            }
 | 
	
		
			
				|  |  | //                        }
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                    // 用户校验通过,生成token
 | 
	
		
			
				|  |  | //                    Token token = tokenService.newTxToken(p.getCode(), openId);
 | 
	
		
			
				|  |  | //                    Map<Object, Object> map = new HashMap<Object, Object>();
 | 
	
		
			
				|  |  | //                    map.put("id", p.getId());
 | 
	
		
			
				|  |  | //                    map.put("uid", p.getCode());
 | 
	
		
			
				|  |  | //                    map.put("name", p.getName());
 | 
	
		
			
				|  |  | //                    map.put("token", token.getToken());
 | 
	
		
			
				|  |  | //                    map.put("photo", p.getPhoto());
 | 
	
		
			
				|  |  | //                    if (StringUtils.isNoneEmpty(openId)) {
 | 
	
		
			
				|  |  | //                        //发送微信模板
 | 
	
		
			
				|  |  | //                        familyService.sendWXMessage(p);
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                    loginLog.setLoginType("1");
 | 
	
		
			
				|  |  | //                    loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //                    //判断是否打过标签
 | 
	
		
			
				|  |  | //                    //if (!(Patient.isWchatTage.yes.getValue() == p.getIsWxtag())) {
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                    //清空患者的微信标签
 | 
	
		
			
				|  |  | //                    weiXinTagUtil.deleteTagWithOpenid(p.getOpenid());
 | 
	
		
			
				|  |  | //                    //给患者打微信标签
 | 
	
		
			
				|  |  | //                    weiXinTagUtil.addTagWithOpenid(openId, p.getCode(), p.getName());
 | 
	
		
			
				|  |  | //                    //}
 | 
	
		
			
				|  |  | //                    return write(200, "登录成功", "data", map);
 | 
	
		
			
				|  |  | //                } else {
 | 
	
		
			
				|  |  | //                    errorMessage = "密码错误,登录失败";
 | 
	
		
			
				|  |  | //                    loginLog.setErrorMessage(errorMessage);
 | 
	
		
			
				|  |  | //                    loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //                    return error(-1, errorMessage);
 | 
	
		
			
				|  |  | //                }
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //            //短信登录
 | 
	
		
			
				|  |  | //            if (StringUtils.isNoneEmpty(mobile) && StringUtils.isNoneEmpty(captcha)) {
 | 
	
		
			
				|  |  | //                List<Patient> patients = patientService.findByMobile(mobile);
 | 
	
		
			
				|  |  | //                if (patients.size() > 1) {
 | 
	
		
			
				|  |  | //                    return error(-1, "此手机存在多个用户,请用身份证和密码登录!");
 | 
	
		
			
				|  |  | //                }
 | 
	
		
			
				|  |  | //                // 对验证码进行校验
 | 
	
		
			
				|  |  | //                int res = smsService.check(mobile, 4, captcha);
 | 
	
		
			
				|  |  | //                switch (res) {
 | 
	
		
			
				|  |  | //                    case -2: {
 | 
	
		
			
				|  |  | //                        errorMessage = "验证码已过期!";
 | 
	
		
			
				|  |  | //                        loginLog.setErrorMessage(errorMessage);
 | 
	
		
			
				|  |  | //                        loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //                        return error(-1, errorMessage);
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //                    case -1: {
 | 
	
		
			
				|  |  | //                        errorMessage = "请输入正确的验证码!";
 | 
	
		
			
				|  |  | //                        loginLog.setErrorMessage(errorMessage);
 | 
	
		
			
				|  |  | //                        loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //                        return error(-1, errorMessage);
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //                    case 0: {
 | 
	
		
			
				|  |  | //                        errorMessage = "验证码无效!";
 | 
	
		
			
				|  |  | //                        loginLog.setErrorMessage(errorMessage);
 | 
	
		
			
				|  |  | //                        loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //                        return error(-1, errorMessage);
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //                }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                loginLog.setLoginType("1");
 | 
	
		
			
				|  |  | //                if (patients == null || patients.size() == 0) {
 | 
	
		
			
				|  |  | //                    if (mobile.length() == 11) {
 | 
	
		
			
				|  |  | //                        errorMessage = "该手机号暂未注册账号,请确认后重新输入!";
 | 
	
		
			
				|  |  | //                    } else {
 | 
	
		
			
				|  |  | //                        errorMessage = "该身份证号暂未注册账号,请确认后重新输入!";
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //                    loginLog.setErrorMessage(errorMessage);
 | 
	
		
			
				|  |  | //                    loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //                    return error(-1, errorMessage);
 | 
	
		
			
				|  |  | //                } else {
 | 
	
		
			
				|  |  | //                    Patient p = null;
 | 
	
		
			
				|  |  | //                    if (patients.size() == 1) {
 | 
	
		
			
				|  |  | //                        p = patients.get(0);
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //                    if (p.getStatus() == 0) {
 | 
	
		
			
				|  |  | //                        if (mobile.length() == 11) {
 | 
	
		
			
				|  |  | //                            errorMessage = "该手机号已被禁止使用!";
 | 
	
		
			
				|  |  | //                        } else {
 | 
	
		
			
				|  |  | //                            errorMessage = "该身份证号已被禁止使用!";
 | 
	
		
			
				|  |  | //                        }
 | 
	
		
			
				|  |  | //                        loginLog.setErrorMessage(errorMessage);
 | 
	
		
			
				|  |  | //                        loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //                        return error(-1, errorMessage);
 | 
	
		
			
				|  |  | //                    } else if (p.getStatus() == 2) {
 | 
	
		
			
				|  |  | //                        errorMessage = "该账号正在审核中,请确认审核通过后再登录,“如有疑问,拨打400-6677-400转2人工客服”";
 | 
	
		
			
				|  |  | //                        loginLog.setErrorMessage(errorMessage);
 | 
	
		
			
				|  |  | //                        loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //                        return error(-1, errorMessage);
 | 
	
		
			
				|  |  | //                    } else if (StringUtils.isEmpty(openId)) {
 | 
	
		
			
				|  |  | //                        errorMessage = "无效的OpenID!";
 | 
	
		
			
				|  |  | //                        loginLog.setErrorMessage(errorMessage);
 | 
	
		
			
				|  |  | //                        loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //                        return error(-1, errorMessage);
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //                    loginLog.setUserCode(p.getCode());
 | 
	
		
			
				|  |  | //                    // 绑定用户手机号和openid
 | 
	
		
			
				|  |  | ////                    if (!StringUtils.equals(p.getOpenid(), openId) && !"undefined".equals(openId)) {//undefined不更新数据库
 | 
	
		
			
				|  |  | ////                        //patient.setOpenid(openId);
 | 
	
		
			
				|  |  | ////                        patientService.updatePatient(p, openId);
 | 
	
		
			
				|  |  | ////                    }
 | 
	
		
			
				|  |  | //                    if (StringUtils.isNotBlank(openId) && !"undefined".equals(openId)) {//undefined不更新数据库
 | 
	
		
			
				|  |  | //                        //patient.setOpenid(openId);
 | 
	
		
			
				|  |  | //                        //1.判斷居民OPenid是不是空
 | 
	
		
			
				|  |  | //                        if(StringUtils.isNotBlank(p.getOpenid())){
 | 
	
		
			
				|  |  | //                            //如果OPenid与原来用户不相等,则判断登录的openids是否被大于10人登录
 | 
	
		
			
				|  |  | //                            if(!p.getOpenid().equals(openId)){
 | 
	
		
			
				|  |  | //                                //判断登录的openids是否被大于10人登录
 | 
	
		
			
				|  |  | //                                if(!patientService.checkOpenidCount(openId)){
 | 
	
		
			
				|  |  | ////                                    errorMessage ="您已超过系统允许登录的最大居民账号数量,当前不再允许使用该微信登录新的居民账号,请使用其他微信号进行登录";
 | 
	
		
			
				|  |  | ////                                    return error(-2, errorMessage);
 | 
	
		
			
				|  |  | //                                }
 | 
	
		
			
				|  |  | //                            }
 | 
	
		
			
				|  |  | //                            patientService.updatePatient(p, openId);
 | 
	
		
			
				|  |  | //                        }else{
 | 
	
		
			
				|  |  | //                            // 判断登录的openids是否被大于10人登录
 | 
	
		
			
				|  |  | //                            if(!patientService.checkOpenidCount(openId)){
 | 
	
		
			
				|  |  | ////                                errorMessage ="您已超过系统允许登录的最大居民账号数量,当前不再允许使用该微信登录新的居民账号,请使用其他微信号进行登录";
 | 
	
		
			
				|  |  | ////                                return error(-2, errorMessage);
 | 
	
		
			
				|  |  | //                            }else{
 | 
	
		
			
				|  |  | //                                //未达到上限更新用户openid
 | 
	
		
			
				|  |  | //                                patientService.updatePatient(p, openId);
 | 
	
		
			
				|  |  | //                            }
 | 
	
		
			
				|  |  | //                        }
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //                    // 用户校验通过,生成token
 | 
	
		
			
				|  |  | //                    Token token = tokenService.newTxToken(p.getCode(), openId);
 | 
	
		
			
				|  |  | //                    Map<Object, Object> map = new HashMap<Object, Object>();
 | 
	
		
			
				|  |  | //                    map.put("id", p.getId());
 | 
	
		
			
				|  |  | //                    map.put("uid", p.getCode());
 | 
	
		
			
				|  |  | //                    map.put("name", p.getName());
 | 
	
		
			
				|  |  | //                    map.put("token", token.getToken());
 | 
	
		
			
				|  |  | //                    map.put("photo", p.getPhoto());
 | 
	
		
			
				|  |  | //                    if (StringUtils.isNoneEmpty(openId)) {
 | 
	
		
			
				|  |  | //                        //发送微信模板
 | 
	
		
			
				|  |  | //                        familyService.sendWXMessage(p);
 | 
	
		
			
				|  |  | //                    }
 | 
	
		
			
				|  |  | //                    loginLog.setType("1");
 | 
	
		
			
				|  |  | //                    loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //                    //判断是否打过标签
 | 
	
		
			
				|  |  | //                    //if (!(Patient.isWchatTage.yes.getValue() == p.getIsWxtag())) {
 | 
	
		
			
				|  |  | //                    //清空患者的微信标签
 | 
	
		
			
				|  |  | //                    weiXinTagUtil.deleteTagWithOpenid(p.getOpenid());
 | 
	
		
			
				|  |  | //                    //给患者打微信标签
 | 
	
		
			
				|  |  | //                    weiXinTagUtil.addTagWithOpenid(openId, p.getCode(), p.getName());
 | 
	
		
			
				|  |  | //                    //}
 | 
	
		
			
				|  |  | //                    return write(200, "登录成功", "data", map);
 | 
	
		
			
				|  |  | //                }
 | 
	
		
			
				|  |  | //            }
 | 
	
		
			
				|  |  | //            return error(-1, "登录失败");
 | 
	
		
			
				|  |  | //        } catch (Exception e) {
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //            errorMessage = "系统异常,登录失败";
 | 
	
		
			
				|  |  | //            loginLog.setErrorMessage(errorMessage);
 | 
	
		
			
				|  |  | //            loginLogService.saveLog(loginLog);
 | 
	
		
			
				|  |  | //            error(e);
 | 
	
		
			
				|  |  | //            return error(-1, "系统异常,登录失败");
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |