|
@ -1,6 +1,7 @@
|
|
|
package com.yihu.wlyy.web.common.account;
|
|
|
|
|
|
import com.yihu.wlyy.entity.doctor.profile.Doctor;
|
|
|
import com.yihu.wlyy.entity.login.LoginLog;
|
|
|
import com.yihu.wlyy.entity.patient.Patient;
|
|
|
import com.yihu.wlyy.entity.security.Token;
|
|
|
import com.yihu.wlyy.repository.security.TokenDao;
|
|
@ -9,6 +10,7 @@ import com.yihu.wlyy.service.common.account.DoctorService;
|
|
|
import com.yihu.wlyy.service.common.account.PatientService;
|
|
|
import com.yihu.wlyy.service.common.account.RoleService;
|
|
|
import com.yihu.wlyy.service.common.account.TokenService;
|
|
|
import com.yihu.wlyy.service.common.login.LoginLogService;
|
|
|
import com.yihu.wlyy.util.DateUtil;
|
|
|
import com.yihu.wlyy.util.MD5;
|
|
|
import com.yihu.wlyy.util.RSAUtils;
|
|
@ -66,6 +68,8 @@ public class LoginController extends BaseController {
|
|
|
|
|
|
@Autowired
|
|
|
private RoleService roleService;
|
|
|
@Autowired
|
|
|
private LoginLogService loginLogService;
|
|
|
|
|
|
/**
|
|
|
* 公钥生成并返回接口
|
|
@ -138,21 +142,37 @@ public class LoginController extends BaseController {
|
|
|
@RequestParam(required = false) String captcha,
|
|
|
@RequestParam(required = false) String idcard,
|
|
|
@RequestParam(required = false) String password) {
|
|
|
String errorMessage;
|
|
|
LoginLog loginLog=new LoginLog();
|
|
|
loginLog.setCreateTime(new Date());
|
|
|
loginLog.setPhone(mobile);
|
|
|
loginLog.setType("2");
|
|
|
loginLog.setUserType("2");
|
|
|
try {
|
|
|
if (StringUtils.isEmpty(getIMEI())) {
|
|
|
return error(-1, "获取手机IMEI码失败!");
|
|
|
errorMessage="获取手机IMEI码失败!";
|
|
|
loginLog.setErrorMessage(errorMessage);
|
|
|
loginLogService.saveLog(loginLog);
|
|
|
return error(-1, errorMessage);
|
|
|
}
|
|
|
//身份证登录
|
|
|
if(StringUtils.isNoneEmpty(mobile)&&StringUtils.isNoneEmpty(password)){
|
|
|
password = RSAUtils.getInstance(doctorService).decryptString(password);
|
|
|
Doctor doctor=doctorService.findDoctorByMobile(mobile);
|
|
|
loginLog.setUserCode(doctor.getCode());
|
|
|
loginLog.setLoginType("2");
|
|
|
if(doctor==null){
|
|
|
return error(-1, "该身份证未注册!");
|
|
|
errorMessage="该身份证未注册!";
|
|
|
loginLog.setErrorMessage(errorMessage);
|
|
|
loginLogService.saveLog(loginLog);
|
|
|
return error(-1,errorMessage);
|
|
|
}
|
|
|
String loginPassword= MD5.GetMD5Code(password+doctor.getSalt());
|
|
|
if(loginPassword.equals(doctor.getPassword())){
|
|
|
// 用户校验通过,生成token
|
|
|
Token token = tokenService.newToken(doctor.getCode(), getIMEI(), 2);
|
|
|
loginLog.setTokenId(token.getId());
|
|
|
loginLog.setType("1");
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("id", doctor.getId());
|
|
|
map.put("uid", doctor.getCode());
|
|
@ -166,30 +186,53 @@ public class LoginController extends BaseController {
|
|
|
List<Map<String, String>> roleMap = roleService.getUserRoleAndArea(doctor.getCode());
|
|
|
map.put("userRole", roleMap);
|
|
|
if("10".equals(doctor.getLevel())&&roleMap.size()==0){
|
|
|
return error(-1, "改用户没有管理员权限");
|
|
|
errorMessage="改用户没有管理员权限";
|
|
|
loginLog.setErrorMessage(errorMessage);
|
|
|
loginLogService.saveLog(loginLog);
|
|
|
return error(-1, errorMessage);
|
|
|
}
|
|
|
loginLogService.saveLog(loginLog);
|
|
|
return write(200, "登录成功", "data", map);
|
|
|
}else{
|
|
|
return error(-1, "密码错误,登录失败");
|
|
|
errorMessage="密码错误,登录失败";
|
|
|
loginLog.setErrorMessage(errorMessage);
|
|
|
loginLogService.saveLog(loginLog);
|
|
|
return error(-1, errorMessage);
|
|
|
}
|
|
|
}
|
|
|
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, "验证码无效!");
|
|
|
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);}
|
|
|
}
|
|
|
Doctor doctor = doctorService.findDoctorByMobile(mobile);
|
|
|
loginLog.setUserCode(doctor.getCode());
|
|
|
loginLog.setLoginType("1");
|
|
|
if (doctor == null) {
|
|
|
return error(-1, "该手机号未注册,请确认!");
|
|
|
errorMessage="该手机号未注册,请确认!";
|
|
|
loginLog.setErrorMessage(errorMessage);
|
|
|
loginLogService.saveLog(loginLog);
|
|
|
return error(-1, errorMessage);
|
|
|
} else {
|
|
|
// 用户校验通过,生成token
|
|
|
Token token = tokenService.newToken(doctor.getCode(), getIMEI(), 2);
|
|
|
loginLog.setTokenId(token.getId());
|
|
|
loginLog.setType("1");
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
map.put("id", doctor.getId());
|
|
|
map.put("uid", doctor.getCode());
|
|
@ -203,13 +246,22 @@ public class LoginController extends BaseController {
|
|
|
List<Map<String, String>> roleMap = roleService.getUserRoleAndArea(doctor.getCode());
|
|
|
map.put("userRole", roleMap);
|
|
|
if("10".equals(doctor.getLevel())&&roleMap.size()==0){
|
|
|
return error(-1, "改用户没有管理员权限");
|
|
|
errorMessage="改用户没有管理员权限";
|
|
|
loginLog.setErrorMessage(errorMessage);
|
|
|
loginLogService.saveLog(loginLog);
|
|
|
return error(-1, errorMessage);
|
|
|
}
|
|
|
loginLogService.saveLog(loginLog);
|
|
|
return write(200, "登录成功", "data", map);
|
|
|
}
|
|
|
}
|
|
|
return error(-1, "登录信息不完整,请重新输入!");
|
|
|
errorMessage="登录信息不完整,请重新输入!";
|
|
|
loginLog.setErrorMessage(errorMessage);
|
|
|
loginLogService.saveLog(loginLog);
|
|
|
return error(-1,errorMessage);
|
|
|
} catch (Exception e) {
|
|
|
loginLog.setErrorMessage(e.getMessage());
|
|
|
loginLogService.saveLog(loginLog);
|
|
|
error(e);
|
|
|
return error(-1, "系统异常,登录失败");
|
|
|
}
|