|  | @ -1,182 +1,182 @@
 | 
	
		
			
				|  |  | //package com.yihu.jw.controller.base.login;
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //import com.fasterxml.jackson.core.JsonProcessingException;
 | 
	
		
			
				|  |  | //import com.fasterxml.jackson.databind.ObjectMapper;
 | 
	
		
			
				|  |  | //import com.yihu.base.security.properties.SecurityProperties;
 | 
	
		
			
				|  |  | //import com.yihu.base.security.sms.mobile.MobileCheck;
 | 
	
		
			
				|  |  | //import com.yihu.base.security.sms.process.SmsValidateCodeProcessor;
 | 
	
		
			
				|  |  | //import com.yihu.jw.base.user.BaseEmployDO;
 | 
	
		
			
				|  |  | //import com.yihu.jw.common.base.base.BaseContants;
 | 
	
		
			
				|  |  | //import com.yihu.jw.fegin.base.base.FunctionFeign;
 | 
	
		
			
				|  |  | //import com.yihu.jw.fegin.base.login.LoginFeign;
 | 
	
		
			
				|  |  | //import com.yihu.jw.fegin.base.user.EmployFeign;
 | 
	
		
			
				|  |  | //import com.yihu.jw.restmodel.common.Envelop;
 | 
	
		
			
				|  |  | //import com.yihu.jw.restmodel.common.base.BaseEnvelop;
 | 
	
		
			
				|  |  | //import com.yihu.jw.restmodel.common.base.BaseEnvelopStatus;
 | 
	
		
			
				|  |  | //import com.yihu.jw.rm.base.BaseLoginRequestMapping;
 | 
	
		
			
				|  |  | //import com.yihu.jw.rm.base.BaseUserRequestMapping;
 | 
	
		
			
				|  |  | //import com.yihu.jw.util.common.ConvertToSpellUtils;
 | 
	
		
			
				|  |  | //import com.yihu.jw.util.date.DateUtil;
 | 
	
		
			
				|  |  | //import com.yihu.jw.util.security.MD5;
 | 
	
		
			
				|  |  | //import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | //import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | //import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | //import org.bouncycastle.util.encoders.Base64;
 | 
	
		
			
				|  |  | //import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | //import org.springframework.beans.factory.annotation.Value;
 | 
	
		
			
				|  |  | //import org.springframework.http.HttpEntity;
 | 
	
		
			
				|  |  | //import org.springframework.http.HttpHeaders;
 | 
	
		
			
				|  |  | //import org.springframework.http.MediaType;
 | 
	
		
			
				|  |  | //import org.springframework.util.LinkedMultiValueMap;
 | 
	
		
			
				|  |  | //import org.springframework.util.MultiValueMap;
 | 
	
		
			
				|  |  | //import org.springframework.util.StringUtils;
 | 
	
		
			
				|  |  | //import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  | //import org.springframework.web.client.RestTemplate;
 | 
	
		
			
				|  |  | //import org.springframework.web.context.request.ServletWebRequest;
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //import javax.servlet.http.HttpServletRequest;
 | 
	
		
			
				|  |  | //import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  | //import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  | //import java.util.HashMap;
 | 
	
		
			
				|  |  | //import java.util.Map;
 | 
	
		
			
				|  |  | //import java.util.UUID;
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | ///**
 | 
	
		
			
				|  |  | // * Created by 刘文彬 on 2018/4/20.
 | 
	
		
			
				|  |  | // */
 | 
	
		
			
				|  |  | //@RestController
 | 
	
		
			
				|  |  | //@RequestMapping(BaseLoginRequestMapping.api_gateway_common)
 | 
	
		
			
				|  |  | //@Api(value = "登录模块", description = "登录模块")
 | 
	
		
			
				|  |  | //public class LoginContorller {
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //    @Autowired
 | 
	
		
			
				|  |  | //    private LoginFeign loginFeign;
 | 
	
		
			
				|  |  | //    @Autowired
 | 
	
		
			
				|  |  | //    private MobileCheck mobileCheck;
 | 
	
		
			
				|  |  | //    @Autowired
 | 
	
		
			
				|  |  | //    private SmsValidateCodeProcessor smsValidateCodeProcessor;
 | 
	
		
			
				|  |  | //    @Autowired
 | 
	
		
			
				|  |  | //    private EmployFeign employFeign;
 | 
	
		
			
				|  |  | //    @Value("${server.web-gateway-port}")
 | 
	
		
			
				|  |  | //    private String port;
 | 
	
		
			
				|  |  | //    @Autowired
 | 
	
		
			
				|  |  | //    private RestTemplate restTemplate ;
 | 
	
		
			
				|  |  | //    @Value("${spring.application.name}")
 | 
	
		
			
				|  |  | //    private String appName;
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_checkoutInfo, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
 | 
	
		
			
				|  |  | //    @ApiOperation(value = "注册校验信息", notes = "注册校验姓名、身份证、医保卡号信息")
 | 
	
		
			
				|  |  | //    public BaseEnvelop checkoutInfo(@ApiParam(name = "ssc", value = "医保卡号", required = true) @RequestParam(value = "ssc", required = true) String ssc,
 | 
	
		
			
				|  |  | //                                @ApiParam(name = "idcard", value = "身份证", required = true) @RequestParam(value = "idcard", required = true) String idcard){
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | ////        return loginFeign.checkoutInfo(ssc,idcard);
 | 
	
		
			
				|  |  | //        return null;
 | 
	
		
			
				|  |  | //    }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //    @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_accountSub, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
 | 
	
		
			
				|  |  | //    @ApiOperation(value = "注册账号", notes = "注册校验姓名、身份证、医保卡号信息")
 | 
	
		
			
				|  |  | //    public Envelop register(
 | 
	
		
			
				|  |  | //            @ApiParam(name = "mobilePhone", value = "电话号码(账号)", required = true) @RequestParam(value = "mobilePhone", required = true) String mobilePhone,
 | 
	
		
			
				|  |  | //            @ApiParam(name = "saasId", value = "saasID", required = true) @RequestParam(value = "saasId", required = true) String saasId,
 | 
	
		
			
				|  |  | //            @ApiParam(name = "type", value = "1微信端注册,2微信端找回密码,3医生端找回密码,4患者登录,5医生登录", required = true) @RequestParam(value = "type", required = true) int type,
 | 
	
		
			
				|  |  | //            @ApiParam(name = "captcha", value = "短信验证码", required = true) @RequestParam(value = "captcha", required = true) String captcha,
 | 
	
		
			
				|  |  | //            @ApiParam(name = "name", value = "姓名", required = true) @RequestParam(value = "name", required = true) String name,
 | 
	
		
			
				|  |  | //            @ApiParam(name = "password", value = "账户密码", required = true) @RequestParam(value = "password", required = true) String password,
 | 
	
		
			
				|  |  | //            @ApiParam(name = "idcard", value = "身份证", required = true) @RequestParam(value = "idcard", required = true) String idcard,
 | 
	
		
			
				|  |  | //            @ApiParam(name = "ssc", value = "医保卡号", required = true) @RequestParam(value = "ssc", required = true) String ssc) {
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        //判断账号是否重复
 | 
	
		
			
				|  |  | //        Envelop baseEmployDO = employFeign.getEmployeeByPhoneAndSaasId(mobilePhone,saasId);
 | 
	
		
			
				|  |  | //        if(baseEmployDO.getStatus()!=10100&&baseEmployDO.getObj()!=null){
 | 
	
		
			
				|  |  | //            return Envelop.getError(BaseEnvelopStatus.status_10106.getName(),BaseEnvelopStatus.status_10106.getCode());
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        //保存账户基础信息
 | 
	
		
			
				|  |  | //        BaseEmployDO employeeDO = new BaseEmployDO();
 | 
	
		
			
				|  |  | //        employeeDO.setId(UUID.randomUUID().toString().replaceAll("-", ""));
 | 
	
		
			
				|  |  | //        employeeDO.setSaasId(saasId);
 | 
	
		
			
				|  |  | //        employeeDO.setName(name);
 | 
	
		
			
				|  |  | //        employeeDO.setPyCode(ConvertToSpellUtils.changeToInitialPinYin(name));
 | 
	
		
			
				|  |  | //        employeeDO.setIdcard(idcard);
 | 
	
		
			
				|  |  | //        employeeDO.setSsc(ssc);
 | 
	
		
			
				|  |  | //        employeeDO.setPhone(mobilePhone);
 | 
	
		
			
				|  |  | //        String salt= UUID.randomUUID().toString().replace("-","");
 | 
	
		
			
				|  |  | //        employeeDO.setSalt(salt);
 | 
	
		
			
				|  |  | //        employeeDO.setPassword(MD5.GetMD5Code(password + salt));
 | 
	
		
			
				|  |  | //        ObjectMapper objectMapper = new ObjectMapper();
 | 
	
		
			
				|  |  | //        objectMapper.setDateFormat(new SimpleDateFormat(DateUtil.yyyy_MM_dd_HH_mm_ss));
 | 
	
		
			
				|  |  | //        try {
 | 
	
		
			
				|  |  | //            String entity = objectMapper.writeValueAsString(employeeDO);
 | 
	
		
			
				|  |  | //            employFeign.create(entity);
 | 
	
		
			
				|  |  | //        } catch (JsonProcessingException e) {
 | 
	
		
			
				|  |  | //            return Envelop.getError(BaseEnvelopStatus.system_error.getName(),BaseEnvelopStatus.system_error.getCode());
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        return login(employeeDO.getPhone(),employeeDO.getPassword(),saasId,"");
 | 
	
		
			
				|  |  | //    }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //    @PostMapping(BaseLoginRequestMapping.BaseLoginAccount.mobileSendSms)
 | 
	
		
			
				|  |  | //    @ApiOperation(value = "发送短信登录的验证码", notes = "不走校验框架")
 | 
	
		
			
				|  |  | //    public BaseEnvelop createCode(@ApiParam(name = "mobile", value = "手机号", required = true) @RequestParam(value = "mobile", required = true) String mobile,
 | 
	
		
			
				|  |  | //                                  HttpServletRequest request, HttpServletResponse response) throws Exception{
 | 
	
		
			
				|  |  | //        //验证手机号是否正确
 | 
	
		
			
				|  |  | //        String[] mobileSaas = mobile.split(",");
 | 
	
		
			
				|  |  | //        if (!mobileCheck.checkMobile(mobileSaas[0])) {
 | 
	
		
			
				|  |  | //            return BaseEnvelop.getError("手机格式错误!");
 | 
	
		
			
				|  |  | //        } else {
 | 
	
		
			
				|  |  | //            //发送短信验证码并且保存到redis中
 | 
	
		
			
				|  |  | //            smsValidateCodeProcessor.create(new ServletWebRequest(request, response));
 | 
	
		
			
				|  |  | //            return BaseEnvelop.getSuccess("发送成功!");
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //    }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //    @PostMapping(BaseLoginRequestMapping.BaseLoginAccount.api_login)
 | 
	
		
			
				|  |  | //    public Envelop login(@ApiParam(name = "mobilePhone", value = "电话号码(账号)", required = false) @RequestParam(value = "mobilePhone", required = false) String mobilePhone,
 | 
	
		
			
				|  |  | //                       @ApiParam(name = "password", value = "password", required = false) @RequestParam(value = "password", required = false) String password,
 | 
	
		
			
				|  |  | //                       @ApiParam(name = "saasId", value = "saasID", required = true) @RequestParam(value = "saasId", required = true) String saasId,
 | 
	
		
			
				|  |  | //                       @ApiParam(name = "captcha", value = "短信验证码", required = false) @RequestParam(value = "captcha", required = false) String captcha){
 | 
	
		
			
				|  |  | //        Envelop baseEmployDO = employFeign.getEmployeeByPhoneAndSaasId(mobilePhone,saasId);
 | 
	
		
			
				|  |  | //        if(baseEmployDO==null||((Map)baseEmployDO.getObj()).isEmpty()){
 | 
	
		
			
				|  |  | //            return Envelop.getError(BaseEnvelopStatus.status_10100.getName(),BaseEnvelopStatus.status_10100.getCode());
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        Map employMap = (Map)baseEmployDO.getObj();
 | 
	
		
			
				|  |  | //        HttpHeaders headers = new HttpHeaders();
 | 
	
		
			
				|  |  | //        headers.add("Accept", "*/*");
 | 
	
		
			
				|  |  | //        headers.add("Cache-Control", "no-cache");
 | 
	
		
			
				|  |  | //        //client_id:client_securt
 | 
	
		
			
				|  |  | //        byte[] a = Base64.encode((saasId+":").getBytes());
 | 
	
		
			
				|  |  | //        String client_id = new String(a);
 | 
	
		
			
				|  |  | //        headers.add("Authorization","Basic "+client_id);//MTox
 | 
	
		
			
				|  |  | //        String token = "";
 | 
	
		
			
				|  |  | //        //传参数JSON格式
 | 
	
		
			
				|  |  | //        //  封装参数,千万不要替换为Map与HashMap,否则参数无法传递
 | 
	
		
			
				|  |  | //        MultiValueMap<String, String> params= new LinkedMultiValueMap<String, String>();
 | 
	
		
			
				|  |  | //        //判断是短信登录还是账号密码登录
 | 
	
		
			
				|  |  | //        if(StringUtils.isEmpty(captcha)){
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //            //  也支持中文
 | 
	
		
			
				|  |  | //            params.add("username", mobilePhone+","+saasId);
 | 
	
		
			
				|  |  | //            params.add("password", MD5.GetMD5Code(password+employMap.get("salt")));
 | 
	
		
			
				|  |  | //            //设置http请求实体
 | 
	
		
			
				|  |  | //            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
 | 
	
		
			
				|  |  | //            token = restTemplate.postForObject("http://"+appName.toUpperCase()+"/authentication/form", requestEntity, String.class);
 | 
	
		
			
				|  |  | //        }else{
 | 
	
		
			
				|  |  | //            params.add("mobile", mobilePhone+","+saasId);
 | 
	
		
			
				|  |  | //            params.add("sms", captcha);
 | 
	
		
			
				|  |  | //            //设置http请求实体
 | 
	
		
			
				|  |  | //            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
 | 
	
		
			
				|  |  | //            token = restTemplate.postForObject("http://"+appName.toUpperCase()+"/authentication/mobile", requestEntity, String.class);
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        if(!StringUtils.isEmpty(token)){
 | 
	
		
			
				|  |  | //            Map<String,Object> map = new HashMap<>();
 | 
	
		
			
				|  |  | //            map.put("token",token);
 | 
	
		
			
				|  |  | //            map.put("employ",employMap);
 | 
	
		
			
				|  |  | //            return Envelop.getSuccess("登录成功!",map);
 | 
	
		
			
				|  |  | //        }else{
 | 
	
		
			
				|  |  | //            return Envelop.getError("登录失败!");
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | ////        return loginFeign.login(mobilePhone,password,saasId,captcha);
 | 
	
		
			
				|  |  | //    }
 | 
	
		
			
				|  |  | //}
 | 
	
		
			
				|  |  | package com.yihu.jw.controller.base.login;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.core.JsonProcessingException;
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.ObjectMapper;
 | 
	
		
			
				|  |  | import com.yihu.base.security.properties.SecurityProperties;
 | 
	
		
			
				|  |  | import com.yihu.base.security.sms.mobile.MobileCheck;
 | 
	
		
			
				|  |  | import com.yihu.base.security.sms.process.SmsValidateCodeProcessor;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.user.BaseEmployDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.common.base.base.BaseContants;
 | 
	
		
			
				|  |  | import com.yihu.jw.fegin.base.base.FunctionFeign;
 | 
	
		
			
				|  |  | import com.yihu.jw.fegin.base.login.LoginFeign;
 | 
	
		
			
				|  |  | import com.yihu.jw.fegin.base.user.EmployFeign;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.common.Envelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.common.base.BaseEnvelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.common.base.BaseEnvelopStatus;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.base.BaseLoginRequestMapping;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.base.BaseUserRequestMapping;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.common.ConvertToSpellUtils;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.date.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.security.MD5;
 | 
	
		
			
				|  |  | import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | import org.bouncycastle.util.encoders.Base64;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Value;
 | 
	
		
			
				|  |  | import org.springframework.http.HttpEntity;
 | 
	
		
			
				|  |  | import org.springframework.http.HttpHeaders;
 | 
	
		
			
				|  |  | import org.springframework.http.MediaType;
 | 
	
		
			
				|  |  | import org.springframework.util.LinkedMultiValueMap;
 | 
	
		
			
				|  |  | import org.springframework.util.MultiValueMap;
 | 
	
		
			
				|  |  | import org.springframework.util.StringUtils;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  | import org.springframework.web.client.RestTemplate;
 | 
	
		
			
				|  |  | import org.springframework.web.context.request.ServletWebRequest;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.servlet.http.HttpServletRequest;
 | 
	
		
			
				|  |  | import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  | import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  | import java.util.HashMap;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | import java.util.UUID;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
		
			
				|  |  |  * Created by 刘文彬 on 2018/4/20.
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @RestController
 | 
	
		
			
				|  |  | @RequestMapping(BaseLoginRequestMapping.api_gateway_common)
 | 
	
		
			
				|  |  | @Api(value = "登录模块", description = "登录模块")
 | 
	
		
			
				|  |  | public class LoginContorller {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private LoginFeign loginFeign;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private MobileCheck mobileCheck;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private SmsValidateCodeProcessor smsValidateCodeProcessor;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private EmployFeign employFeign;
 | 
	
		
			
				|  |  |     @Value("${server.web-gateway-port}")
 | 
	
		
			
				|  |  |     private String port;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private RestTemplate restTemplate ;
 | 
	
		
			
				|  |  |     @Value("${spring.application.name}")
 | 
	
		
			
				|  |  |     private String appName;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_checkoutInfo, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "注册校验信息", notes = "注册校验姓名、身份证、医保卡号信息")
 | 
	
		
			
				|  |  |     public BaseEnvelop checkoutInfo(@ApiParam(name = "ssc", value = "医保卡号", required = true) @RequestParam(value = "ssc", required = true) String ssc,
 | 
	
		
			
				|  |  |                                 @ApiParam(name = "idcard", value = "身份证", required = true) @RequestParam(value = "idcard", required = true) String idcard){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | //        return loginFeign.checkoutInfo(ssc,idcard);
 | 
	
		
			
				|  |  |         return null;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @PostMapping(value = BaseLoginRequestMapping.BaseLoginAccount.api_accountSub, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "注册账号", notes = "注册校验姓名、身份证、医保卡号信息")
 | 
	
		
			
				|  |  |     public Envelop register(
 | 
	
		
			
				|  |  |             @ApiParam(name = "mobilePhone", value = "电话号码(账号)", required = true) @RequestParam(value = "mobilePhone", required = true) String mobilePhone,
 | 
	
		
			
				|  |  |             @ApiParam(name = "saasId", value = "saasID", required = true) @RequestParam(value = "saasId", required = true) String saasId,
 | 
	
		
			
				|  |  |             @ApiParam(name = "type", value = "1微信端注册,2微信端找回密码,3医生端找回密码,4患者登录,5医生登录", required = true) @RequestParam(value = "type", required = true) int type,
 | 
	
		
			
				|  |  |             @ApiParam(name = "captcha", value = "短信验证码", required = true) @RequestParam(value = "captcha", required = true) String captcha,
 | 
	
		
			
				|  |  |             @ApiParam(name = "name", value = "姓名", required = true) @RequestParam(value = "name", required = true) String name,
 | 
	
		
			
				|  |  |             @ApiParam(name = "password", value = "账户密码", required = true) @RequestParam(value = "password", required = true) String password,
 | 
	
		
			
				|  |  |             @ApiParam(name = "idcard", value = "身份证", required = true) @RequestParam(value = "idcard", required = true) String idcard,
 | 
	
		
			
				|  |  |             @ApiParam(name = "ssc", value = "医保卡号", required = true) @RequestParam(value = "ssc", required = true) String ssc) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //判断账号是否重复
 | 
	
		
			
				|  |  |         Envelop baseEmployDO = employFeign.getEmployeeByPhoneAndSaasId(mobilePhone,saasId);
 | 
	
		
			
				|  |  |         if(baseEmployDO.getStatus()!=10100&&baseEmployDO.getObj()!=null){
 | 
	
		
			
				|  |  |             return Envelop.getError(BaseEnvelopStatus.status_10106.getName(),BaseEnvelopStatus.status_10106.getCode());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //保存账户基础信息
 | 
	
		
			
				|  |  |         BaseEmployDO employeeDO = new BaseEmployDO();
 | 
	
		
			
				|  |  |         employeeDO.setId(UUID.randomUUID().toString().replaceAll("-", ""));
 | 
	
		
			
				|  |  |         employeeDO.setSaasId(saasId);
 | 
	
		
			
				|  |  |         employeeDO.setName(name);
 | 
	
		
			
				|  |  |         employeeDO.setPyCode(ConvertToSpellUtils.changeToInitialPinYin(name));
 | 
	
		
			
				|  |  |         employeeDO.setIdcard(idcard);
 | 
	
		
			
				|  |  |         employeeDO.setSsc(ssc);
 | 
	
		
			
				|  |  |         employeeDO.setPhone(mobilePhone);
 | 
	
		
			
				|  |  |         String salt= UUID.randomUUID().toString().replace("-","");
 | 
	
		
			
				|  |  |         employeeDO.setSalt(salt);
 | 
	
		
			
				|  |  |         employeeDO.setPassword(MD5.GetMD5Code(password + salt));
 | 
	
		
			
				|  |  |         ObjectMapper objectMapper = new ObjectMapper();
 | 
	
		
			
				|  |  |         objectMapper.setDateFormat(new SimpleDateFormat(DateUtil.yyyy_MM_dd_HH_mm_ss));
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             String entity = objectMapper.writeValueAsString(employeeDO);
 | 
	
		
			
				|  |  |             employFeign.create(entity);
 | 
	
		
			
				|  |  |         } catch (JsonProcessingException e) {
 | 
	
		
			
				|  |  |             return Envelop.getError(BaseEnvelopStatus.system_error.getName(),BaseEnvelopStatus.system_error.getCode());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return login(employeeDO.getPhone(),employeeDO.getPassword(),saasId,"");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @PostMapping(BaseLoginRequestMapping.BaseLoginAccount.mobileSendSms)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "发送短信登录的验证码", notes = "不走校验框架")
 | 
	
		
			
				|  |  |     public BaseEnvelop createCode(@ApiParam(name = "mobile", value = "手机号", required = true) @RequestParam(value = "mobile", required = true) String mobile,
 | 
	
		
			
				|  |  |                                   HttpServletRequest request, HttpServletResponse response) throws Exception{
 | 
	
		
			
				|  |  |         //验证手机号是否正确
 | 
	
		
			
				|  |  |         String[] mobileSaas = mobile.split(",");
 | 
	
		
			
				|  |  |         if (!mobileCheck.checkMobile(mobileSaas[0])) {
 | 
	
		
			
				|  |  |             return BaseEnvelop.getError("手机格式错误!");
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //发送短信验证码并且保存到redis中
 | 
	
		
			
				|  |  |             smsValidateCodeProcessor.create(new ServletWebRequest(request, response));
 | 
	
		
			
				|  |  |             return BaseEnvelop.getSuccess("发送成功!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @PostMapping(BaseLoginRequestMapping.BaseLoginAccount.api_login)
 | 
	
		
			
				|  |  |     public Envelop login(@ApiParam(name = "mobilePhone", value = "电话号码(账号)", required = false) @RequestParam(value = "mobilePhone", required = false) String mobilePhone,
 | 
	
		
			
				|  |  |                        @ApiParam(name = "password", value = "password", required = false) @RequestParam(value = "password", required = false) String password,
 | 
	
		
			
				|  |  |                        @ApiParam(name = "saasId", value = "saasID", required = true) @RequestParam(value = "saasId", required = true) String saasId,
 | 
	
		
			
				|  |  |                        @ApiParam(name = "captcha", value = "短信验证码", required = false) @RequestParam(value = "captcha", required = false) String captcha){
 | 
	
		
			
				|  |  |         Envelop baseEmployDO = employFeign.getEmployeeByPhoneAndSaasId(mobilePhone,saasId);
 | 
	
		
			
				|  |  |         if(baseEmployDO==null||((Map)baseEmployDO.getObj()).isEmpty()){
 | 
	
		
			
				|  |  |             return Envelop.getError(BaseEnvelopStatus.status_10100.getName(),BaseEnvelopStatus.status_10100.getCode());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Map employMap = (Map)baseEmployDO.getObj();
 | 
	
		
			
				|  |  |         HttpHeaders headers = new HttpHeaders();
 | 
	
		
			
				|  |  |         headers.add("Accept", "*/*");
 | 
	
		
			
				|  |  |         headers.add("Cache-Control", "no-cache");
 | 
	
		
			
				|  |  |         //client_id:client_securt
 | 
	
		
			
				|  |  |         byte[] a = Base64.encode((saasId+":").getBytes());
 | 
	
		
			
				|  |  |         String client_id = new String(a);
 | 
	
		
			
				|  |  |         headers.add("Authorization","Basic "+client_id);//MTox
 | 
	
		
			
				|  |  |         String token = "";
 | 
	
		
			
				|  |  |         //传参数JSON格式
 | 
	
		
			
				|  |  |         //  封装参数,千万不要替换为Map与HashMap,否则参数无法传递
 | 
	
		
			
				|  |  |         MultiValueMap<String, String> params= new LinkedMultiValueMap<String, String>();
 | 
	
		
			
				|  |  |         //判断是短信登录还是账号密码登录
 | 
	
		
			
				|  |  |         if(StringUtils.isEmpty(captcha)){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //  也支持中文
 | 
	
		
			
				|  |  |             params.add("username", mobilePhone+","+saasId);
 | 
	
		
			
				|  |  |             params.add("password", MD5.GetMD5Code(password+employMap.get("salt")));
 | 
	
		
			
				|  |  |             //设置http请求实体
 | 
	
		
			
				|  |  |             HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
 | 
	
		
			
				|  |  |             token = restTemplate.postForObject("http://"+appName.toUpperCase()+"/authentication/form", requestEntity, String.class);
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             params.add("mobile", mobilePhone+","+saasId);
 | 
	
		
			
				|  |  |             params.add("sms", captcha);
 | 
	
		
			
				|  |  |             //设置http请求实体
 | 
	
		
			
				|  |  |             HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);
 | 
	
		
			
				|  |  |             token = restTemplate.postForObject("http://"+appName.toUpperCase()+"/authentication/mobile", requestEntity, String.class);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(!StringUtils.isEmpty(token)){
 | 
	
		
			
				|  |  |             Map<String,Object> map = new HashMap<>();
 | 
	
		
			
				|  |  |             map.put("token",token);
 | 
	
		
			
				|  |  |             map.put("employ",employMap);
 | 
	
		
			
				|  |  |             return Envelop.getSuccess("登录成功!",map);
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             return Envelop.getError("登录失败!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | //        return loginFeign.login(mobilePhone,password,saasId,captcha);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |