mirror of https://gitee.com/stylefeng/roses
【7.0.4】【c】新增更新用户信息接口
parent
a1dc5faff7
commit
9f755cc867
|
@ -24,6 +24,13 @@
|
|||
<version>${roses.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!--校验模块的api-->
|
||||
<dependency>
|
||||
<groupId>cn.stylefeng.roses</groupId>
|
||||
<artifactId>validator-api</artifactId>
|
||||
<version>${roses.version}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
|
@ -76,7 +76,12 @@ public enum CustomerExceptionEnum implements AbstractExceptionEnum {
|
|||
/**
|
||||
* 激活用户失败
|
||||
*/
|
||||
ACTIVE_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + CustomerConstants.CUSTOMER_EXCEPTION_STEP_CODE + "07", "激活用户失败!用户激活码无效!");
|
||||
ACTIVE_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + CustomerConstants.CUSTOMER_EXCEPTION_STEP_CODE + "07", "激活用户失败!用户激活码无效!"),
|
||||
|
||||
/**
|
||||
* 用户原密码错误
|
||||
*/
|
||||
PWD_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + CustomerConstants.CUSTOMER_EXCEPTION_STEP_CODE + "08", "更改密码失败,原密码错误!");
|
||||
|
||||
/**
|
||||
* 错误编码
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
package cn.stylefeng.roses.kernel.customer.api.pojo;
|
||||
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 用户信息修改的请求bean
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/6/18 16:37
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class CustomerInfoRequest extends BaseRequest {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@NotNull(message = "用户id不能为空", groups = {changeAvatar.class, changePassword.class})
|
||||
private Long customerId;
|
||||
|
||||
/**
|
||||
* 用户头像(文件表id)
|
||||
*/
|
||||
@NotNull(message = "用户头像", groups = changeAvatar.class)
|
||||
private Long avatar;
|
||||
|
||||
/**
|
||||
* 原密码
|
||||
*/
|
||||
@NotBlank(message = "原密码不能为空", groups = changePassword.class)
|
||||
private String oldPassword;
|
||||
|
||||
/**
|
||||
* 新密码
|
||||
*/
|
||||
@NotBlank(message = "新密码不能为空", groups = changePassword.class)
|
||||
private String newPassword;
|
||||
|
||||
/**
|
||||
* 修改密码
|
||||
*/
|
||||
public @interface changePassword {
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改头像
|
||||
*/
|
||||
public @interface changeAvatar {
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
package cn.stylefeng.roses.kernel.customer.modular.controller;
|
||||
|
||||
import cn.stylefeng.roses.kernel.customer.api.pojo.CustomerInfo;
|
||||
import cn.stylefeng.roses.kernel.customer.api.pojo.CustomerInfoRequest;
|
||||
import cn.stylefeng.roses.kernel.customer.modular.request.CustomerRequest;
|
||||
import cn.stylefeng.roses.kernel.customer.modular.service.CustomerService;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* C端用户个人信息修改
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/6/18 16:28
|
||||
*/
|
||||
@RestController
|
||||
@ApiResource(name = "C端用户个人信息修改")
|
||||
public class CustomerInfoController {
|
||||
|
||||
@Resource
|
||||
private CustomerService customerService;
|
||||
|
||||
/**
|
||||
* 获取个人信息
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/6/18 16:29
|
||||
*/
|
||||
@GetResource(name = "获取个人信息", path = "/customerInfo/getPersonInfo", requiredPermission = false)
|
||||
public ResponseData getPersonInfo(@RequestBody @Validated(CustomerInfoRequest.detail.class) CustomerRequest customerRequest) {
|
||||
CustomerInfo customerInfo = customerService.getCustomerInfoById(customerRequest.getCustomerId());
|
||||
return new SuccessResponseData(customerInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改个人密码
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/6/18 16:29
|
||||
*/
|
||||
@GetResource(name = "修改个人密码", path = "/customerInfo/updatePassword", requiredPermission = false)
|
||||
public ResponseData updatePassword(@RequestBody @Validated(CustomerInfoRequest.changePassword.class) CustomerInfoRequest customerInfoRequest) {
|
||||
this.customerService.updatePassword(customerInfoRequest);
|
||||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改个人头像
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/6/18 16:29
|
||||
*/
|
||||
@GetResource(name = "修改个人头像", path = "/customerInfo/updateAvatar", requiredPermission = false)
|
||||
public ResponseData updateAvatar(@RequestBody @Validated(CustomerInfoRequest.changeAvatar.class) CustomerInfoRequest customerInfoRequest) {
|
||||
this.customerService.updateAvatar(customerInfoRequest);
|
||||
return new SuccessResponseData();
|
||||
}
|
||||
|
||||
}
|
|
@ -21,7 +21,7 @@ public class CustomerRequest extends BaseRequest {
|
|||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@NotNull(message = "主键id不能为空", groups = {edit.class, delete.class})
|
||||
@NotNull(message = "主键id不能为空", groups = {edit.class, delete.class, detail.class})
|
||||
@ChineseDescription("主键id")
|
||||
private Long customerId;
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package cn.stylefeng.roses.kernel.customer.modular.service;
|
|||
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginRequest;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginResponse;
|
||||
import cn.stylefeng.roses.kernel.customer.api.CustomerApi;
|
||||
import cn.stylefeng.roses.kernel.customer.api.pojo.CustomerInfoRequest;
|
||||
import cn.stylefeng.roses.kernel.customer.modular.entity.Customer;
|
||||
import cn.stylefeng.roses.kernel.customer.modular.request.CustomerRequest;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
|
@ -106,4 +107,20 @@ public interface CustomerService extends IService<Customer>, CustomerApi {
|
|||
*/
|
||||
PageResult<Customer> findPage(CustomerRequest customerRequest);
|
||||
|
||||
/**
|
||||
* 更新密码
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/6/18 17:16
|
||||
*/
|
||||
void updatePassword(CustomerInfoRequest customerInfoRequest);
|
||||
|
||||
/**
|
||||
* 更新头像
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/6/18 17:16
|
||||
*/
|
||||
void updateAvatar(CustomerInfoRequest customerInfoRequest);
|
||||
|
||||
}
|
|
@ -16,6 +16,7 @@ import cn.stylefeng.roses.kernel.customer.api.exception.CustomerException;
|
|||
import cn.stylefeng.roses.kernel.customer.api.exception.enums.CustomerExceptionEnum;
|
||||
import cn.stylefeng.roses.kernel.customer.api.expander.CustomerConfigExpander;
|
||||
import cn.stylefeng.roses.kernel.customer.api.pojo.CustomerInfo;
|
||||
import cn.stylefeng.roses.kernel.customer.api.pojo.CustomerInfoRequest;
|
||||
import cn.stylefeng.roses.kernel.customer.modular.entity.Customer;
|
||||
import cn.stylefeng.roses.kernel.customer.modular.factory.CustomerFactory;
|
||||
import cn.stylefeng.roses.kernel.customer.modular.mapper.CustomerMapper;
|
||||
|
@ -26,7 +27,9 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
|||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.email.api.MailSenderApi;
|
||||
import cn.stylefeng.roses.kernel.email.api.pojo.SendMailParam;
|
||||
import cn.stylefeng.roses.kernel.file.api.FileInfoApi;
|
||||
import cn.stylefeng.roses.kernel.file.api.FileOperatorApi;
|
||||
import cn.stylefeng.roses.kernel.file.api.pojo.response.SysFileInfoResponse;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext;
|
||||
import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload;
|
||||
import cn.stylefeng.roses.kernel.log.api.LoginLogServiceApi;
|
||||
|
@ -85,6 +88,9 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
|
|||
@Resource
|
||||
private FileOperatorApi fileOperatorApi;
|
||||
|
||||
@Resource
|
||||
private FileInfoApi fileInfoApi;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void reg(CustomerRequest customerRequest) {
|
||||
|
@ -269,6 +275,41 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
|
|||
return this.list(wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePassword(CustomerInfoRequest customerInfoRequest) {
|
||||
|
||||
CustomerRequest customerRequest = new CustomerRequest();
|
||||
customerRequest.setCustomerId(customerInfoRequest.getCustomerId());
|
||||
Customer customer = this.detail(customerRequest);
|
||||
|
||||
// 校验旧密码是否正确
|
||||
Boolean passwordRightFlag = passwordStoredEncryptApi.checkPassword(customerInfoRequest.getOldPassword(), customer.getPassword());
|
||||
if (!passwordRightFlag) {
|
||||
throw new CustomerException(CustomerExceptionEnum.PWD_ERROR);
|
||||
}
|
||||
|
||||
// 更新密码
|
||||
String encryptPwd = passwordStoredEncryptApi.encrypt(customerInfoRequest.getNewPassword());
|
||||
customer.setPassword(encryptPwd);
|
||||
this.updateById(customer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAvatar(CustomerInfoRequest customerInfoRequest) {
|
||||
|
||||
CustomerRequest customerRequest = new CustomerRequest();
|
||||
customerRequest.setCustomerId(customerInfoRequest.getCustomerId());
|
||||
Customer customer = this.detail(customerRequest);
|
||||
|
||||
// 根据id查询文件obj名称
|
||||
SysFileInfoResponse fileInfo = fileInfoApi.getFileInfoWithoutContent(customerInfoRequest.getAvatar());
|
||||
|
||||
// 更新头像
|
||||
customer.setAvatar(customerInfoRequest.getAvatar());
|
||||
customer.setAvatarObjectName(fileInfo.getFileObjectName());
|
||||
this.updateById(customer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CustomerInfo getCustomerInfoById(Long customerId) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue