|
@ -138,6 +138,14 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
|
|
|
if (users == null || users.size() == 0) {
|
|
|
throw new UsernameNotFoundException(username);
|
|
|
}
|
|
|
String loginType = getLogintype();
|
|
|
if("8".equals(loginType)){
|
|
|
int num = this.getJdbcTemplate().queryForObject("SELECT COUNT(*) from base_doctor_role WHERE doctor_code='"+users.get(0).getId()+"' and role_code in ('admin','hospitalAdmin')",Integer.class);
|
|
|
if(num == 0){
|
|
|
throw new UsernameNotFoundException(username);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (null != users.get(0).isLocked() && users.get(0).isLocked()) {
|
|
|
Date date = users.get(0).getLockedDate();
|
|
|
if (new Date().after(DateUtils.addMinutes(date, autoUnlockTime))) {
|
|
@ -164,7 +172,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
|
|
|
if (StringUtils.isBlank(loginType) || "1".equals(loginType)) { //1或默认查找user表,为平台管理员账号
|
|
|
//解除锁定
|
|
|
this.getJdbcTemplate().update("update base_user u set login_failure_count = 0, u.locked = 0 where u.username = ? or u.mobile = ? or u.idcard = ?", username, username, username);
|
|
|
} else if ("2".equals(loginType)) {//2.为医生账号
|
|
|
} else if ("2".equals(loginType)||"8".equals(loginType)) {//2.为医生账号
|
|
|
//解除锁定
|
|
|
this.getJdbcTemplate().update("update base_doctor d set d.login_failure_count = 0, d.locked = 0 where d.mobile = ? or d.idcard = ?", username, username);
|
|
|
} else if ("3".equals(loginType)) { //3.患者账号
|
|
@ -194,7 +202,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
|
|
|
* 用户登录判读接口
|
|
|
* 判断loginType查找用户信息
|
|
|
* 用户类型 1或默认为user,2:医生登录,3:患者登录,4:i健康系统-患者登录(i健康患者可以不注册直接登录互联网系统,首次使用,根据i健康居民code去i健康查询居民信息,然后保存到base.base_patient)
|
|
|
* 用户类型 5 中山医院支付宝-患者登录(可以不注册直接登录) 6医养项目家人登录
|
|
|
* 用户类型 5 中山医院支付宝-患者登录(可以不注册直接登录) 6医养项目家人登录 8医生管理员登录
|
|
|
* @param username
|
|
|
* @return
|
|
|
*/
|
|
@ -209,9 +217,12 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
|
|
|
users = this.getJdbcTemplate().query(DEFAULT_USER_DETAILS_STATEMENT, new BeanPropertyRowMapper(WlyyUserDetails.class), username, username, username);
|
|
|
//2.为医生登录账号
|
|
|
} else if ("2".equals(loginType)) {
|
|
|
users = this.getJdbcTemplate().query(DEFAULT_DOCTOR_DETAILS_STATEMENT, new BeanPropertyRowMapper(WlyyUserDetails.class), username, username);
|
|
|
//8.为医生管理员登录账号
|
|
|
}else if ("8".equals(loginType)) {
|
|
|
users = this.getJdbcTemplate().query(DEFAULT_DOCTOR_DETAILS_STATEMENT, new BeanPropertyRowMapper(WlyyUserDetails.class), username, username);
|
|
|
//3.患者登录
|
|
|
} else if ("3".equals(loginType)) {
|
|
|
} else if ("3".equals(loginType)) {
|
|
|
//查找是否存在预注册 用户
|
|
|
String userName = redisTemplate.opsForValue().get(BespeakRegist + username);
|
|
|
if (StringUtils.isNotBlank(userName)) {
|
|
@ -635,7 +646,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
|
|
|
String loginType = getLogintype();
|
|
|
if (StringUtils.isBlank(loginType) || "1".equals(loginType)) { //1或默认查找user表,为平台管理员账号
|
|
|
result = this.getJdbcTemplate().queryForMap("select u.login_failure_count,u.last_login_failure_time from base_user u where u.username = ? or u.mobile = ? or u.idcard = ?", username, username, username);
|
|
|
} else if ("2".equals(loginType)) {//2.为医生账号
|
|
|
} else if ("2".equals(loginType)||"8".equals(loginType)) {//2.为医生账号
|
|
|
result = this.getJdbcTemplate().queryForMap("select d.login_failure_count,d.last_login_failure_time from base_doctor d where d.mobile = ? or d.idcard = ? and d.del='1' limit 1", username, username);
|
|
|
} else if ("3".equals(loginType)) { //3.患者账号
|
|
|
result = this.getJdbcTemplate().queryForMap("select p.login_failure_count,p.last_login_failure_time from base_patient p where p.mobile = ? or p.idcard = ? limit 1", username, username);
|
|
@ -655,7 +666,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
|
|
|
if (StringUtils.isBlank(loginType) || "1".equals(loginType)) { //1或默认查找user表,为平台管理员账号
|
|
|
//账号锁定
|
|
|
this.getJdbcTemplate().update("update base_user u set u.login_failure_count = 5, u.locked = 1, u.locked_date = ? where u.username = ? or u.mobile = ? or u.idcard = ?", new Date(), username, username, username);
|
|
|
} else if ("2".equals(loginType)) {//2.为医生账号
|
|
|
} else if ("2".equals(loginType)||"8".equals(loginType)) {//2.为医生账号
|
|
|
//账号锁定
|
|
|
this.getJdbcTemplate().update("update base_doctor d set d.login_failure_count = 5, d.locked = 1, d.locked_date = ? where d.mobile = ? or d.idcard = ?", new Date(), username, username);
|
|
|
} else if ("3".equals(loginType)) { //3.患者账号
|
|
@ -678,7 +689,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
|
|
|
if (StringUtils.isBlank(loginType) || "1".equals(loginType)) { //1或默认查找user表,为平台管理员账号
|
|
|
//更新失败次数
|
|
|
this.getJdbcTemplate().update("update base_user u set u.login_failure_count = ? ,u.last_login_failure_time = ? where u.username = ? or u.mobile = ? or u.idcard = ?", loginFailureCount, new Date(), username, username, username);
|
|
|
} else if ("2".equals(loginType)) {//2.为医生账号
|
|
|
} else if ("2".equals(loginType)||"8".equals(loginType)) {//2.为医生账号
|
|
|
//更新失败次数
|
|
|
this.getJdbcTemplate().update("update base_doctor d set d.login_failure_count = ?, d.last_login_failure_time = ? where d.mobile = ? or d.idcard = ?", loginFailureCount, new Date(), username, username);
|
|
|
} else if ("3".equals(loginType)) { //3.患者账号
|
|
@ -826,7 +837,7 @@ public class WlyyUserDetailsService extends JdbcDaoSupport implements UserDetail
|
|
|
this.getJdbcTemplate().update("update base_user u set u.login_failure_count = 0, u.login_date = ? where u.username = ? or u.mobile = ? or u.idcard = ?", new Date(), username, username, username);
|
|
|
users = this.getJdbcTemplate().query(DEFAULT_USER_DETAILS_STATEMENT, new BeanPropertyRowMapper(WlyyUserSimple.class), username, username, username);
|
|
|
//2.为医生登录账号
|
|
|
} else if ("2".equals(loginType)) {
|
|
|
} else if ("2".equals(loginType)||"8".equals(loginType)) {
|
|
|
//更新登录时间
|
|
|
this.getJdbcTemplate().update("update base_doctor d set d.login_failure_count = 0, d.login_date = ? where d.mobile = ? or d.idcard = ?", new Date(), username, username);
|
|
|
users = this.getJdbcTemplate().query(DEFAULT_DOCTOR_DETAILS_STATEMENT, new BeanPropertyRowMapper(WlyyUserSimple.class), username, username);
|