|
@ -10,6 +10,7 @@ import com.yihu.wlyy.service.common.account.PatientService;
|
|
import com.yihu.wlyy.service.common.account.RoleService;
|
|
import com.yihu.wlyy.service.common.account.RoleService;
|
|
import com.yihu.wlyy.service.common.account.TokenService;
|
|
import com.yihu.wlyy.service.common.account.TokenService;
|
|
import com.yihu.wlyy.util.DateUtil;
|
|
import com.yihu.wlyy.util.DateUtil;
|
|
|
|
import com.yihu.wlyy.util.MD5;
|
|
import com.yihu.wlyy.util.RSAUtils;
|
|
import com.yihu.wlyy.util.RSAUtils;
|
|
import com.yihu.wlyy.util.SystemData;
|
|
import com.yihu.wlyy.util.SystemData;
|
|
import com.yihu.wlyy.web.BaseController;
|
|
import com.yihu.wlyy.web.BaseController;
|
|
@ -125,50 +126,88 @@ public class LoginController extends BaseController {
|
|
/**
|
|
/**
|
|
* 医生登录接口
|
|
* 医生登录接口
|
|
*
|
|
*
|
|
* @param mobile 手机号
|
|
|
|
|
|
* @param mobile 手机号
|
|
* @param captcha 短信验证码
|
|
* @param captcha 短信验证码
|
|
|
|
* @param idcard 身份证号
|
|
|
|
* @param password 密码
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "doctor")
|
|
@RequestMapping(value = "doctor")
|
|
@ResponseBody
|
|
@ResponseBody
|
|
public String doctor(String mobile, String captcha) {
|
|
|
|
|
|
public String doctor(@RequestParam(required = false) String mobile,
|
|
|
|
@RequestParam(required = false) String captcha,
|
|
|
|
@RequestParam(required = false) String idcard,
|
|
|
|
@RequestParam(required = false) String password) {
|
|
try {
|
|
try {
|
|
if (StringUtils.isEmpty(getIMEI())) {
|
|
if (StringUtils.isEmpty(getIMEI())) {
|
|
return error(-1, "获取手机IMEI码失败!");
|
|
return error(-1, "获取手机IMEI码失败!");
|
|
}
|
|
}
|
|
// 对验证码进行校验
|
|
|
|
int res = smsService.check(mobile, 5, captcha);
|
|
|
|
switch (res) {
|
|
|
|
case -2:
|
|
|
|
return error(-1, "验证码已过期!");
|
|
|
|
case -1:
|
|
|
|
return error(-1, "请输入正确的验证码!");
|
|
|
|
case 0:
|
|
|
|
return error(-1, "验证码无效!");
|
|
|
|
|
|
//身份证登录
|
|
|
|
if(StringUtils.isNoneEmpty(idcard)&&StringUtils.isNoneEmpty(password)){
|
|
|
|
Doctor doctor=doctorService.findbyIdCard(idcard);
|
|
|
|
if(doctor==null){
|
|
|
|
return error(-1, "该身份证未注册!");
|
|
|
|
}
|
|
|
|
String loginPassword= MD5.GetMD5Code(password+doctor.getSalt());
|
|
|
|
if(loginPassword.equals(doctor.getPassword())){
|
|
|
|
// 用户校验通过,生成token
|
|
|
|
Token token = tokenService.newToken(doctor.getCode(), getIMEI(), 2);
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
map.put("id", doctor.getId());
|
|
|
|
map.put("uid", doctor.getCode());
|
|
|
|
map.put("token", token.getToken());
|
|
|
|
map.put("name", doctor.getName());
|
|
|
|
map.put("hospital", doctor.getHospital());
|
|
|
|
map.put("photo", doctor.getPhoto());
|
|
|
|
// 设置医生类型:1专科医生,2全科医生,3健康管理师
|
|
|
|
map.put("doctorType", doctor.getLevel());
|
|
|
|
//获取医生角色和区域权限
|
|
|
|
List<Map<String, String>> roleMap = roleService.getUserRoleAndArea(doctor.getCode());
|
|
|
|
map.put("userRole", roleMap);
|
|
|
|
if("10".equals(doctor.getLevel())&&roleMap.size()==0){
|
|
|
|
return error(-1, "改用户没有管理员权限");
|
|
|
|
}
|
|
|
|
return write(200, "登录成功", "data", map);
|
|
|
|
}else{
|
|
|
|
return error(-1, "密码错误,登录失败");
|
|
|
|
}
|
|
}
|
|
}
|
|
Doctor doctor = doctorService.findDoctorByMobile(mobile);
|
|
|
|
if (doctor == null) {
|
|
|
|
return error(-1, "该手机号未注册,请确认!");
|
|
|
|
} else {
|
|
|
|
// 用户校验通过,生成token
|
|
|
|
Token token = tokenService.newToken(doctor.getCode(), getIMEI(), 2);
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
map.put("id", doctor.getId());
|
|
|
|
map.put("uid", doctor.getCode());
|
|
|
|
map.put("token", token.getToken());
|
|
|
|
map.put("name", doctor.getName());
|
|
|
|
map.put("hospital", doctor.getHospital());
|
|
|
|
map.put("photo", doctor.getPhoto());
|
|
|
|
// 设置医生类型:1专科医生,2全科医生,3健康管理师
|
|
|
|
map.put("doctorType", doctor.getLevel());
|
|
|
|
//获取医生角色和区域权限
|
|
|
|
List<Map<String, String>> roleMap = roleService.getUserRoleAndArea(doctor.getCode());
|
|
|
|
map.put("userRole", roleMap);
|
|
|
|
if("10".equals(doctor.getLevel())&&roleMap.size()==0){
|
|
|
|
return error(-1, "改用户没有管理员权限");
|
|
|
|
|
|
if(StringUtils.isNoneEmpty(mobile)&&StringUtils.isNoneEmpty(captcha)){
|
|
|
|
// 对验证码进行校验
|
|
|
|
int res = smsService.check(mobile, 5, captcha);
|
|
|
|
switch (res) {
|
|
|
|
case -2:
|
|
|
|
return error(-1, "验证码已过期!");
|
|
|
|
case -1:
|
|
|
|
return error(-1, "请输入正确的验证码!");
|
|
|
|
case 0:
|
|
|
|
return error(-1, "验证码无效!");
|
|
|
|
}
|
|
|
|
Doctor doctor = doctorService.findDoctorByMobile(mobile);
|
|
|
|
if (doctor == null) {
|
|
|
|
return error(-1, "该手机号未注册,请确认!");
|
|
|
|
} else {
|
|
|
|
// 用户校验通过,生成token
|
|
|
|
Token token = tokenService.newToken(doctor.getCode(), getIMEI(), 2);
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
map.put("id", doctor.getId());
|
|
|
|
map.put("uid", doctor.getCode());
|
|
|
|
map.put("token", token.getToken());
|
|
|
|
map.put("name", doctor.getName());
|
|
|
|
map.put("hospital", doctor.getHospital());
|
|
|
|
map.put("photo", doctor.getPhoto());
|
|
|
|
// 设置医生类型:1专科医生,2全科医生,3健康管理师
|
|
|
|
map.put("doctorType", doctor.getLevel());
|
|
|
|
//获取医生角色和区域权限
|
|
|
|
List<Map<String, String>> roleMap = roleService.getUserRoleAndArea(doctor.getCode());
|
|
|
|
map.put("userRole", roleMap);
|
|
|
|
if("10".equals(doctor.getLevel())&&roleMap.size()==0){
|
|
|
|
return error(-1, "改用户没有管理员权限");
|
|
|
|
}
|
|
|
|
return write(200, "登录成功", "data", map);
|
|
}
|
|
}
|
|
return write(200, "登录成功", "data", map);
|
|
|
|
}
|
|
}
|
|
|
|
return error(-1, "登录信息不完整,请重新输入!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return error(-1, "系统异常,登录失败");
|
|
return error(-1, "系统异常,登录失败");
|
|
@ -180,49 +219,79 @@ public class LoginController extends BaseController {
|
|
*
|
|
*
|
|
* @param mobile 手机号
|
|
* @param mobile 手机号
|
|
* @param captcha 短信验证码
|
|
* @param captcha 短信验证码
|
|
|
|
* @param idcard 身份证号
|
|
|
|
* @param password 密码
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "patient")
|
|
@RequestMapping(value = "patient")
|
|
@ResponseBody
|
|
@ResponseBody
|
|
public String patient(String mobile, String captcha) {
|
|
|
|
|
|
public String patient(
|
|
|
|
@RequestParam(required = false) String mobile,
|
|
|
|
@RequestParam(required = false) String captcha,
|
|
|
|
@RequestParam(required = false) String idcard,
|
|
|
|
@RequestParam(required = false) String password) {
|
|
try {
|
|
try {
|
|
if (StringUtils.isEmpty(getIMEI())) {
|
|
if (StringUtils.isEmpty(getIMEI())) {
|
|
return error(-1, "获取手机IMEI码失败!");
|
|
return error(-1, "获取手机IMEI码失败!");
|
|
}
|
|
}
|
|
// 对验证码进行校验
|
|
|
|
int res = smsService.check(mobile, 4, captcha);
|
|
|
|
switch (res) {
|
|
|
|
case -2:
|
|
|
|
return error(-1, "验证码已过期!");
|
|
|
|
case -1:
|
|
|
|
return error(-1, "请输入正确的验证码!");
|
|
|
|
case 0:
|
|
|
|
return error(-1, "验证码无效!");
|
|
|
|
|
|
//身份证登录
|
|
|
|
if(StringUtils.isNoneEmpty(idcard)&&StringUtils.isNoneEmpty(password)){
|
|
|
|
Patient patient= patientService.findByIdcard(idcard);
|
|
|
|
if(patient==null){
|
|
|
|
return error(-1, "该身份证未注册!");
|
|
|
|
}
|
|
|
|
String loginPassword= MD5.GetMD5Code(password+patient.getSalt());
|
|
|
|
if(loginPassword.equals(patient.getPassword())){
|
|
|
|
Token token = tokenService.newToken(patient.getCode(), getIMEI(), 1);
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
map.put("id", patient.getId());
|
|
|
|
map.put("uid", patient.getCode());
|
|
|
|
map.put("name", URLEncoder.encode(patient.getName(), "UTF-8"));
|
|
|
|
map.put("token", token.getToken());
|
|
|
|
map.put("photo", patient.getPhoto());
|
|
|
|
return write(200, "登录成功", "data", map);
|
|
|
|
}else{
|
|
|
|
return error(-1, "密码错误,登录失败");
|
|
|
|
}
|
|
}
|
|
}
|
|
// password = RSAUtils.getInstance(doctorService).decryptString(password);
|
|
|
|
// password = URLDecoder.decode(password, "UTF-8");
|
|
|
|
// password = StringUtils.reverse(password);
|
|
|
|
// idcard = RSAUtils.getInstance(doctorService).decryptString(idcard);
|
|
|
|
// idcard = URLDecoder.decode(idcard, "UTF-8");
|
|
|
|
// idcard = StringUtils.reverse(idcard);
|
|
|
|
Patient patient = patientService.findByMobile(mobile);
|
|
|
|
if (patient == null) {
|
|
|
|
return error(-1, "该手机号暂未注册帐号,请确认后重新输入!");
|
|
|
|
} else if (patient.getStatus() == 0) {
|
|
|
|
return error(-1, "该手机号已被禁止使用!");
|
|
|
|
} else if (patient.getStatus() == 2) {
|
|
|
|
return error(-1, "该帐号正在审核中,请确认审核通过后再登录,“如有疑问,拨打400-6677-400转2人工客服”");
|
|
|
|
} else {
|
|
|
|
// 用户校验通过,生成token
|
|
|
|
Token token = tokenService.newToken(patient.getCode(), getIMEI(), 1);
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
map.put("id", patient.getId());
|
|
|
|
map.put("uid", patient.getCode());
|
|
|
|
map.put("name", URLEncoder.encode(patient.getName(), "UTF-8"));
|
|
|
|
map.put("token", token.getToken());
|
|
|
|
map.put("photo", patient.getPhoto());
|
|
|
|
return write(200, "登录成功", "data", map);
|
|
|
|
|
|
//短信登录
|
|
|
|
if(StringUtils.isNoneEmpty(mobile)&&StringUtils.isNoneEmpty(captcha)){
|
|
|
|
// 对验证码进行校验
|
|
|
|
int res = smsService.check(mobile, 4, captcha);
|
|
|
|
switch (res) {
|
|
|
|
case -2:
|
|
|
|
return error(-1, "验证码已过期!");
|
|
|
|
case -1:
|
|
|
|
return error(-1, "请输入正确的验证码!");
|
|
|
|
case 0:
|
|
|
|
return error(-1, "验证码无效!");
|
|
|
|
}
|
|
|
|
// password = RSAUtils.getInstance(doctorService).decryptString(password);
|
|
|
|
// password = URLDecoder.decode(password, "UTF-8");
|
|
|
|
// password = StringUtils.reverse(password);
|
|
|
|
// idcard = RSAUtils.getInstance(doctorService).decryptString(idcard);
|
|
|
|
// idcard = URLDecoder.decode(idcard, "UTF-8");
|
|
|
|
// idcard = StringUtils.reverse(idcard);
|
|
|
|
Patient patient = patientService.findByMobile(mobile);
|
|
|
|
if (patient == null) {
|
|
|
|
return error(-1, "该手机号暂未注册帐号,请确认后重新输入!");
|
|
|
|
} else if (patient.getStatus() == 0) {
|
|
|
|
return error(-1, "该手机号已被禁止使用!");
|
|
|
|
} else if (patient.getStatus() == 2) {
|
|
|
|
return error(-1, "该帐号正在审核中,请确认审核通过后再登录,“如有疑问,拨打400-6677-400转2人工客服”");
|
|
|
|
} else {
|
|
|
|
// 用户校验通过,生成token
|
|
|
|
Token token = tokenService.newToken(patient.getCode(), getIMEI(), 1);
|
|
|
|
Map<Object, Object> map = new HashMap<Object, Object>();
|
|
|
|
map.put("id", patient.getId());
|
|
|
|
map.put("uid", patient.getCode());
|
|
|
|
map.put("name", URLEncoder.encode(patient.getName(), "UTF-8"));
|
|
|
|
map.put("token", token.getToken());
|
|
|
|
map.put("photo", patient.getPhoto());
|
|
|
|
return write(200, "登录成功", "data", map);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
return error(-1, "登录信息不完整,请重新输入!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return error(-1, "系统异常,登录失败");
|
|
return error(-1, "系统异常,登录失败");
|