feat(customer):增加机构重置密码的功能
This commit is contained in:
@@ -25,11 +25,15 @@ public class ServeProviderController {
|
||||
@Resource
|
||||
private IServeProviderService serveProviderService;
|
||||
|
||||
|
||||
@PostMapping("/institution/resetPassword")
|
||||
@ApiOperation("机构端忘记密码")
|
||||
public void institutionResetPassword(@RequestBody InstitutionResetPasswordReqDTO institutionResetPasswordReqDTO) {
|
||||
serveProviderService.institutionResetPassword(institutionResetPasswordReqDTO);
|
||||
}
|
||||
|
||||
@GetMapping("/currentUserInfo")
|
||||
@ApiOperation("获取当前用户信息")
|
||||
public ServeProviderInfoResDTO currentUserInfo() {
|
||||
return serveProviderService.currentUserInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import com.jzo2o.api.customer.dto.response.ServeProviderSimpleResDTO;
|
||||
import com.jzo2o.common.model.PageResult;
|
||||
import com.jzo2o.customer.model.domain.ServeProvider;
|
||||
import com.jzo2o.customer.model.dto.request.InstitutionRegisterReqDTO;
|
||||
import com.jzo2o.customer.model.dto.request.InstitutionResetPasswordReqDTO;
|
||||
import com.jzo2o.customer.model.dto.request.ServeProviderPageQueryReqDTO;
|
||||
import com.jzo2o.customer.model.dto.response.CertificationStatusDTO;
|
||||
import com.jzo2o.customer.model.dto.response.ServeProviderBasicInformationResDTO;
|
||||
@@ -125,4 +126,9 @@ public interface IServeProviderService extends IService<ServeProvider> {
|
||||
* 机构使用手机号等信息注册
|
||||
*/
|
||||
ServeProvider registerForInstitution(InstitutionRegisterReqDTO institutionRegisterReqDTO);
|
||||
|
||||
/**
|
||||
* 机构使用手机号重置密码
|
||||
*/
|
||||
void institutionResetPassword(InstitutionResetPasswordReqDTO institutionResetPasswordReqDTO);
|
||||
}
|
||||
@@ -15,12 +15,15 @@ import com.jzo2o.common.constants.UserType;
|
||||
import com.jzo2o.common.enums.EnableStatusEnum;
|
||||
import com.jzo2o.common.enums.SmsBusinessTypeEnum;
|
||||
import com.jzo2o.common.expcetions.BadRequestException;
|
||||
import com.jzo2o.common.expcetions.CommonException;
|
||||
import com.jzo2o.common.expcetions.ForbiddenOperationException;
|
||||
import com.jzo2o.common.model.PageResult;
|
||||
import com.jzo2o.common.utils.*;
|
||||
import com.jzo2o.customer.mapper.ServeProviderMapper;
|
||||
import com.jzo2o.customer.model.domain.*;
|
||||
import com.jzo2o.customer.model.dto.ServeSkillSimpleDTO;
|
||||
import com.jzo2o.customer.model.dto.request.InstitutionRegisterReqDTO;
|
||||
import com.jzo2o.customer.model.dto.request.InstitutionResetPasswordReqDTO;
|
||||
import com.jzo2o.customer.model.dto.request.ServeProviderPageQueryReqDTO;
|
||||
import com.jzo2o.customer.model.dto.response.CertificationStatusDTO;
|
||||
import com.jzo2o.customer.model.dto.response.ServeProviderBasicInformationResDTO;
|
||||
@@ -63,9 +66,6 @@ public class ServeProviderServiceImpl extends ServiceImpl<ServeProviderMapper, S
|
||||
private IAgencyCertificationService agencyCertificationService;
|
||||
@Resource
|
||||
private IWorkerCertificationService workerCertificationService;
|
||||
|
||||
@Resource
|
||||
private IServeProviderService owner;
|
||||
@Resource
|
||||
private SmsCodeApi smsCodeApi;
|
||||
|
||||
@@ -201,21 +201,26 @@ public class ServeProviderServiceImpl extends ServiceImpl<ServeProviderMapper, S
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ServeProvider registerForInstitution(InstitutionRegisterReqDTO institutionRegisterReqDTO) {
|
||||
private void checkVerifyCode(String verifyCode, String phone, SmsBusinessTypeEnum businessType) {
|
||||
// 数据校验
|
||||
String verifyCode = institutionRegisterReqDTO.getVerifyCode();
|
||||
if (StringUtils.isEmpty(verifyCode)) {
|
||||
if (StringUtils.isEmpty(verifyCode) || StringUtils.isEmpty(phone) || ObjectUtils.isEmpty(businessType)) {
|
||||
throw new BadRequestException("验证码错误,请重新获取");
|
||||
}
|
||||
|
||||
// 远程调用publics服务校验验证码是否正确
|
||||
String phone = institutionRegisterReqDTO.getPhone();
|
||||
if (!smsCodeApi.verify(phone, SmsBusinessTypeEnum.INSTITUTION_REGISTER, verifyCode)
|
||||
if (!smsCodeApi.verify(phone, businessType, verifyCode)
|
||||
.getIsSuccess()) {
|
||||
throw new BadRequestException("验证码错误,请重新获取");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ServeProvider registerForInstitution(InstitutionRegisterReqDTO institutionRegisterReqDTO) {
|
||||
// 数据校验
|
||||
String phone = institutionRegisterReqDTO.getPhone();
|
||||
checkVerifyCode(institutionRegisterReqDTO.getVerifyCode(),
|
||||
phone, SmsBusinessTypeEnum.INSTITUTION_REGISTER);
|
||||
|
||||
// 密码加密
|
||||
String password = passwordEncoder.encode(institutionRegisterReqDTO.getPassword());
|
||||
@@ -224,6 +229,33 @@ public class ServeProviderServiceImpl extends ServiceImpl<ServeProviderMapper, S
|
||||
return add(phone, UserType.INSTITUTION, password);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void institutionResetPassword(InstitutionResetPasswordReqDTO institutionResetPasswordReqDTO) {
|
||||
// 数据校验
|
||||
String phone = institutionResetPasswordReqDTO.getPhone();
|
||||
checkVerifyCode(institutionResetPasswordReqDTO.getVerifyCode(),
|
||||
phone, SmsBusinessTypeEnum.INSTITUTION_RESET_PASSWORD);
|
||||
|
||||
ServeProvider serveProvider = lambdaQuery().eq(ServeProvider::getPhone, phone).one();
|
||||
if (ObjectUtils.isEmpty(serveProvider)) {
|
||||
throw new ForbiddenOperationException("手机号对应用户不存在");
|
||||
}
|
||||
|
||||
String password = institutionResetPasswordReqDTO.getPassword();
|
||||
if (passwordEncoder.matches(password, serveProvider.getPassword())) {
|
||||
throw new ForbiddenOperationException("新密码和原密码相同无法修改");
|
||||
}
|
||||
|
||||
// 校验通过更新密码
|
||||
if (!lambdaUpdate()
|
||||
.eq(ServeProvider::getPhone, phone)
|
||||
.set(ServeProvider::getPassword, passwordEncoder.encode(password))
|
||||
.update()) {
|
||||
throw new CommonException("密码更新失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据服务人员/机构id查询基本信息
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user