feat(customer):增加机构注册账号的功能

This commit is contained in:
JIAN 2024-08-15 21:19:17 +08:00
parent 464df04806
commit 1b41879c42
3 changed files with 62 additions and 11 deletions

View File

@ -0,0 +1,29 @@
package com.jzo2o.customer.controller.open;
import com.jzo2o.customer.model.dto.request.InstitutionRegisterReqDTO;
import com.jzo2o.customer.service.IServeProviderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author JIAN
*/
@RestController("openServeProviderController")
@RequestMapping("/open/serve-provider")
@Api(tags = "机构端 - 服务人员或机构相关接口")
public class ServeProviderController {
@Resource
private IServeProviderService serveProviderService;
@PostMapping("/institution/register")
@ApiOperation("机构端注册接口")
public void institutionRegister(@RequestBody InstitutionRegisterReqDTO institutionRegisterReqDTO) {
serveProviderService.registerForInstitution(institutionRegisterReqDTO);
}
}

View File

@ -7,7 +7,6 @@ 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;
@ -121,4 +120,9 @@ public interface IServeProviderService extends IService<ServeProvider> {
* @return
*/
CertificationStatusDTO getCertificationStatus(Integer userType, Long providerId);
}
/**
* 机构使用手机号等信息注册
*/
ServeProvider registerForInstitution(InstitutionRegisterReqDTO institutionRegisterReqDTO);
}

View File

@ -13,20 +13,14 @@ import com.jzo2o.api.publics.SmsCodeApi;
import com.jzo2o.common.constants.CommonStatusConstants;
import com.jzo2o.common.constants.UserType;
import com.jzo2o.common.enums.EnableStatusEnum;
import com.jzo2o.common.enums.SmsBussinessTypeEnum;
import com.jzo2o.common.enums.SmsBusinessTypeEnum;
import com.jzo2o.common.expcetions.BadRequestException;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.common.utils.BeanUtils;
import com.jzo2o.common.utils.CollUtils;
import com.jzo2o.common.utils.IdUtils;
import com.jzo2o.common.utils.ObjectUtils;
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.ServePickUpReqDTO;
import com.jzo2o.customer.model.dto.request.ServeProviderPageQueryReqDTO;
import com.jzo2o.customer.model.dto.response.CertificationStatusDTO;
import com.jzo2o.customer.model.dto.response.ServeProviderBasicInformationResDTO;
@ -126,7 +120,8 @@ public class ServeProviderServiceImpl extends ServiceImpl<ServeProviderMapper, S
@Transactional(rollbackFor = Exception.class)
public ServeProvider add(String phone, Integer type, String password) {
// 校验手机号是否存在
ServeProvider existServeProvider = lambdaQuery().eq(ServeProvider::getPhone, phone)
ServeProvider existServeProvider = lambdaQuery()
.eq(ServeProvider::getPhone, phone)
.one();
if (existServeProvider != null) {
if(existServeProvider.getType().equals(UserType.WORKER)){
@ -206,6 +201,29 @@ public class ServeProviderServiceImpl extends ServiceImpl<ServeProviderMapper, S
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public ServeProvider registerForInstitution(InstitutionRegisterReqDTO institutionRegisterReqDTO) {
// 数据校验
String verifyCode = institutionRegisterReqDTO.getVerifyCode();
if (StringUtils.isEmpty(verifyCode)) {
throw new BadRequestException("验证码错误,请重新获取");
}
// 远程调用publics服务校验验证码是否正确
String phone = institutionRegisterReqDTO.getPhone();
if (!smsCodeApi.verify(phone, SmsBusinessTypeEnum.INSTITUTION_REGISTER, verifyCode)
.getIsSuccess()) {
throw new BadRequestException("验证码错误,请重新获取");
}
// 密码加密
String password = passwordEncoder.encode(institutionRegisterReqDTO.getPassword());
// 调用统一的添加方法追加数据
return add(phone, UserType.INSTITUTION, password);
}
/**
* 根据服务人员/机构id查询基本信息
*
@ -273,4 +291,4 @@ public class ServeProviderServiceImpl extends ServiceImpl<ServeProviderMapper, S
ServeProvider serveProvider = baseMapper.selectById(UserContext.currentUserId());
return BeanUtils.toBean(serveProvider,ServeProviderInfoResDTO.class);
}
}
}