Merge remote-tracking branch 'origin/master'

master
邱飞云 4 years ago
commit 8a96c2cbac
  1. 15
      dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java
  2. 1
      dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/dao/UserLoginDao.java
  3. 16
      dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java
  4. 3
      dq-financial-hrms-auth/src/main/resources/mapper/hrmsauth/UserLoginMapper.xml
  5. 13
      dq-framework-common/src/main/java/com/daqing/framework/exception/ExceptionCatch.java
  6. 7
      dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/request/UserLoginRequest.java
  7. 11
      dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java

@ -9,6 +9,9 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/** /**
* @auther River * @auther River
* @date 2020/9/22 15:27 * @date 2020/9/22 15:27
@ -34,7 +37,7 @@ public class UserLoginController {
} }
@PostMapping("/getBackPwd") @PostMapping("/getBackPwd")
public ResponseResult getBackPwd(@RequestBody UserLoginRequest user){ public ResponseResult getBackPwd(@RequestBody @Valid UserLoginRequest user){
boolean result = userLoginService.getBackPwd(user); boolean result = userLoginService.getBackPwd(user);
return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL(); return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL();
} }
@ -42,17 +45,17 @@ public class UserLoginController {
@PostMapping(value = "/login") @PostMapping(value = "/login")
@ApiOperation(value = "用户登录") @ApiOperation(value = "用户登录")
public ResponseResult login( public ResponseResult login(
//@RequestBody LoginRequest loginRequest @RequestBody LoginRequest loginRequest
@RequestParam("password") String password, @RequestParam("phone") String phone, /* @RequestParam("password") String password, @RequestParam("phone") String phone,
@RequestParam("type")int type, @RequestParam("wechatId") String wechatId, @RequestParam("type")int type, @RequestParam("wechatId") String wechatId,
@RequestParam("tenDayEffective") int tenDayEffective @RequestParam("tenDayEffective") int tenDayEffective*/
){ ){
LoginRequest loginRequest = new LoginRequest(); /* LoginRequest loginRequest = new LoginRequest();
loginRequest.setTenDayEffective(tenDayEffective); loginRequest.setTenDayEffective(tenDayEffective);
loginRequest.setType(type); loginRequest.setType(type);
loginRequest.setWechatId(wechatId); loginRequest.setWechatId(wechatId);
loginRequest.setPassword(password); loginRequest.setPassword(password);
loginRequest.setPhone(phone); loginRequest.setPhone(phone);*/
return userLoginService.login(loginRequest); return userLoginService.login(loginRequest);
} }
} }

@ -18,4 +18,5 @@ public interface UserLoginDao extends BaseMapper<UserEntity> {
int updatePasswordByPhoneAccount(@Param("phoneAccount") String phoneAccount, @Param("password") String password); int updatePasswordByPhoneAccount(@Param("phoneAccount") String phoneAccount, @Param("password") String password);
UserEntity login(LoginRequest loginRequest); UserEntity login(LoginRequest loginRequest);
UserEntity selectByPhoneAccount(String phoneAccount);
} }

@ -14,12 +14,9 @@ import com.daqing.framework.model.response.CommonCode;
import com.daqing.framework.model.response.ResponseResult; import com.daqing.framework.model.response.ResponseResult;
import com.daqing.framework.util.Md5Util; import com.daqing.framework.util.Md5Util;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** /**
* @auther River * @auther River
@ -66,20 +63,17 @@ public class UserLoginServiceImpl extends ServiceImpl<UserLoginDao, UserEntity>
int count = userLoginDao.selectCount(user.getPhoneAccount()); int count = userLoginDao.selectCount(user.getPhoneAccount());
if (count == 0) { if (count == 0) {
ExceptionCast.cast(HrmsCode.PHNOE_ACCOUNT_NOT_EMPTY); ExceptionCast.cast(HrmsCode.PHNOE_ACCOUNT_NOT_EXIST);
} }
//根据手机号查询相关信息
UserEntity userEntity = baseMapper.selectByPhoneAccount(user.getPhoneAccount());
//判断验证码是否匹配 //判断验证码是否匹配
String verify = "123456"; String verify = "123456";
if(!verify.equals(user.getVerifyCode())){ if(!verify.equals(user.getVerifyCode())){
ExceptionCast.cast(HrmsCode.VERIFY_CODE_ILLEGAL); ExceptionCast.cast(HrmsCode.VERIFY_CODE_ILLEGAL);
} }
//密码格式校验
Pattern pattern = Pattern.compile("^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*).{6,20}$"); String newMD5 = Md5Util.md5(user.getNewPwd()+userEntity.getId());
Matcher match = pattern.matcher(user.getNewPwd());
if(!match.matches()){
ExceptionCast.cast(HrmsCode.NEW_PASSWORD_ILLEGAL);
}
String newMD5 = new BCryptPasswordEncoder().encode(user.getNewPwd());
//根据手机号码修改密码 //根据手机号码修改密码
int i = userLoginDao.updatePasswordByPhoneAccount(user.getPhoneAccount(),newMD5); int i = userLoginDao.updatePasswordByPhoneAccount(user.getPhoneAccount(),newMD5);
return i > 0; return i > 0;

@ -34,5 +34,8 @@
</if> </if>
</select> </select>
<select id="selectByPhoneAccount" resultType="com.daqing.framework.domain.hrms.UserEntity">
SELECT id,account FROM hrms_user WHERE phone_account = #{phoneAccount}
</select>
</mapper> </mapper>

@ -7,6 +7,7 @@ import com.google.common.collect.ImmutableMap;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
@ -60,4 +61,16 @@ public class ExceptionCatch {
ResultCode resultCode = customException.getResultCode(); ResultCode resultCode = customException.getResultCode();
return new ResponseResult(resultCode); return new ResponseResult(resultCode);
} }
@ExceptionHandler(MethodArgumentNotValidException.class)//捕获CustomException类型异常
@ResponseBody
public ResponseResult MethodArgumentNotValidException(MethodArgumentNotValidException customException) {
customException.printStackTrace();
//记录日志
LOGGER.error("catch exception:{}", customException.getMessage());
String message = customException.getBindingResult().getAllErrors().get(0).getDefaultMessage();
int code =402;
return ResponseResult.FAIL(code,message);
}
} }

@ -18,12 +18,8 @@ public class UserLoginRequest implements Serializable {
/** /**
* 手机账号 * 手机账号
*/ */
@Pattern(regexp = "^1(3([0-35-9]\\d|4[1-8])|4[14-9]\\d|5([0125689]\\d|7[1-79])|66\\d|7[2-35-8]\\d|8\\d{2}|9[13589]\\d)\\d{7}$",message = "手机号格式不正确!")
private String phoneAccount; private String phoneAccount;
/**A
* 密码
*/
@Pattern(regexp = "^[a-zA-Z0-9]{8,20}$")
private String password;
/** /**
* 验证码 * 验证码
@ -32,5 +28,6 @@ public class UserLoginRequest implements Serializable {
/** /**
* 新密码 * 新密码
*/ */
@Pattern(regexp = "^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*).{6,20}$",message = "密码格式不正确!")
private String newPwd; private String newPwd;
} }

@ -21,11 +21,12 @@ public enum HrmsCode implements ResultCode {
DEPT_EMP_EXSIT(false, 22004, "请将部门下所有员工移除后再执行删除操作!"), DEPT_EMP_EXSIT(false, 22004, "请将部门下所有员工移除后再执行删除操作!"),
DEPT_POSITION_EXSIT(false, 22005, "该部门下已存在该职位!"), DEPT_POSITION_EXSIT(false, 22005, "该部门下已存在该职位!"),
PHNOE_ACCOUNT_NOT_EMPTY(false,33001,"手机号码为空"), PHNOE_ACCOUNT_NOT_EMPTY(false,33001,"手机号码为空!"),
VERIFY_CODE_NOT_EMPTY(false,33002,"短信验证码为空"), VERIFY_CODE_NOT_EMPTY(false,33002,"短信验证码为空!"),
NEW_PASSWORD_NOT_EMPTY(false,33003,"新密码不能为空"), NEW_PASSWORD_NOT_EMPTY(false,33003,"新密码不能为空!"),
NEW_PASSWORD_ILLEGAL(false,33004,"新密码格式不正确"), NEW_PASSWORD_ILLEGAL(false,33004,"新密码格式不正确!"),
VERIFY_CODE_ILLEGAL(false,33005,"验证码不匹配"), VERIFY_CODE_ILLEGAL(false,33005,"验证码不匹配!"),
PHNOE_ACCOUNT_NOT_EXIST(false,33006,"手机号码不存在!"),
EMP_POSITION_EXSIT(false, 22006, "该职位下已关联员工!"); EMP_POSITION_EXSIT(false, 22006, "该职位下已关联员工!");

Loading…
Cancel
Save