Commit 20546a37cc89fbdf530dbc4f7a9bc3598869311c

Authored by YunaiV
1 parent 8dd83f4a

mall:code review 收件地址

yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/AppAddressController.java
@@ -34,14 +34,12 @@ public class AppAddressController { @@ -34,14 +34,12 @@ public class AppAddressController {
34 34
35 @PostMapping("/create") 35 @PostMapping("/create")
36 @ApiOperation("创建用户收件地址") 36 @ApiOperation("创建用户收件地址")
37 -  
38 public CommonResult<Long> createAddress(@Valid @RequestBody AppAddressCreateReqVO createReqVO) { 37 public CommonResult<Long> createAddress(@Valid @RequestBody AppAddressCreateReqVO createReqVO) {
39 return success(addressService.createAddress(getLoginUserId(), createReqVO)); 38 return success(addressService.createAddress(getLoginUserId(), createReqVO));
40 } 39 }
41 40
42 @PutMapping("/update") 41 @PutMapping("/update")
43 @ApiOperation("更新用户收件地址") 42 @ApiOperation("更新用户收件地址")
44 -  
45 public CommonResult<Boolean> updateAddress(@Valid @RequestBody AppAddressUpdateReqVO updateReqVO) { 43 public CommonResult<Boolean> updateAddress(@Valid @RequestBody AppAddressUpdateReqVO updateReqVO) {
46 addressService.updateAddress(getLoginUserId(), updateReqVO); 44 addressService.updateAddress(getLoginUserId(), updateReqVO);
47 return success(true); 45 return success(true);
@@ -50,7 +48,6 @@ public class AppAddressController { @@ -50,7 +48,6 @@ public class AppAddressController {
50 @DeleteMapping("/delete") 48 @DeleteMapping("/delete")
51 @ApiOperation("删除用户收件地址") 49 @ApiOperation("删除用户收件地址")
52 @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) 50 @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
53 -  
54 public CommonResult<Boolean> deleteAddress(@RequestParam("id") Long id) { 51 public CommonResult<Boolean> deleteAddress(@RequestParam("id") Long id) {
55 addressService.deleteAddress(getLoginUserId(), id); 52 addressService.deleteAddress(getLoginUserId(), id);
56 return success(true); 53 return success(true);
@@ -59,7 +56,6 @@ public class AppAddressController { @@ -59,7 +56,6 @@ public class AppAddressController {
59 @GetMapping("/get") 56 @GetMapping("/get")
60 @ApiOperation("获得用户收件地址") 57 @ApiOperation("获得用户收件地址")
61 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) 58 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
62 -  
63 public CommonResult<AppAddressRespVO> getAddress(@RequestParam("id") Long id) { 59 public CommonResult<AppAddressRespVO> getAddress(@RequestParam("id") Long id) {
64 AddressDO address = addressService.getAddress(getLoginUserId(), id); 60 AddressDO address = addressService.getAddress(getLoginUserId(), id);
65 return success(AddressConvert.INSTANCE.convert(address)); 61 return success(AddressConvert.INSTANCE.convert(address));
@@ -67,7 +63,6 @@ public class AppAddressController { @@ -67,7 +63,6 @@ public class AppAddressController {
67 63
68 @GetMapping("/get-default") 64 @GetMapping("/get-default")
69 @ApiOperation("获得默认的用户收件地址") 65 @ApiOperation("获得默认的用户收件地址")
70 -  
71 public CommonResult<AppAddressRespVO> getDefaultUserAddress() { 66 public CommonResult<AppAddressRespVO> getDefaultUserAddress() {
72 AddressDO address = addressService.getDefaultUserAddress(getLoginUserId()); 67 AddressDO address = addressService.getDefaultUserAddress(getLoginUserId());
73 return success(AddressConvert.INSTANCE.convert(address)); 68 return success(AddressConvert.INSTANCE.convert(address));
@@ -75,7 +70,6 @@ public class AppAddressController { @@ -75,7 +70,6 @@ public class AppAddressController {
75 70
76 @GetMapping("/list") 71 @GetMapping("/list")
77 @ApiOperation("获得用户收件地址列表") 72 @ApiOperation("获得用户收件地址列表")
78 -  
79 public CommonResult<List<AppAddressRespVO>> getAddressList() { 73 public CommonResult<List<AppAddressRespVO>> getAddressList() {
80 List<AddressDO> list = addressService.getAddressList(getLoginUserId()); 74 List<AddressDO> list = addressService.getAddressList(getLoginUserId());
81 return success(AddressConvert.INSTANCE.convertList(list)); 75 return success(AddressConvert.INSTANCE.convertList(list));
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressBaseVO.java
@@ -12,6 +12,8 @@ import javax.validation.constraints.*; @@ -12,6 +12,8 @@ import javax.validation.constraints.*;
12 @Data 12 @Data
13 public class AppAddressBaseVO { 13 public class AppAddressBaseVO {
14 14
  15 + // TODO @shuaidawang:swagger 注解的 example;其它 VO 类也要补充下
  16 +
15 @ApiModelProperty(value = "收件人名称", required = true) 17 @ApiModelProperty(value = "收件人名称", required = true)
16 @NotNull(message = "收件人名称不能为空") 18 @NotNull(message = "收件人名称不能为空")
17 private String name; 19 private String name;
@@ -28,7 +30,7 @@ public class AppAddressBaseVO { @@ -28,7 +30,7 @@ public class AppAddressBaseVO {
28 @NotNull(message = "收件详细地址不能为空") 30 @NotNull(message = "收件详细地址不能为空")
29 private String detailAddress; 31 private String detailAddress;
30 32
31 - @ApiModelProperty(value = "地址类型", required = true) 33 + @ApiModelProperty(value = "地址类型", required = true) // TODO @shuaidawang:这个是枚举字段,最好说明下对应的枚举类
32 @NotNull(message = "地址类型不能为空") 34 @NotNull(message = "地址类型不能为空")
33 private Integer type; 35 private Integer type;
34 36
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressExportReqVO.java deleted
1 -package cn.iocoder.yudao.module.member.controller.app.address.vo;  
2 -  
3 -import lombok.*;  
4 -import java.util.*;  
5 -import io.swagger.annotations.*;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
7 -import org.springframework.format.annotation.DateTimeFormat;  
8 -  
9 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
10 -  
11 -@ApiModel(value = "用户 APP - 用户收件地址 Excel 导出 Request VO", description = "参数和 AddressPageReqVO 是一致的")  
12 -@Data  
13 -public class AppAddressExportReqVO {  
14 -  
15 - @ApiModelProperty(value = "用户编号")  
16 - private Long userId;  
17 -  
18 - @ApiModelProperty(value = "收件人名称")  
19 - private String name;  
20 -  
21 - @ApiModelProperty(value = "手机号")  
22 - private String mobile;  
23 -  
24 - @ApiModelProperty(value = "地区编码")  
25 - private Integer areaCode;  
26 -  
27 - @ApiModelProperty(value = "收件详细地址")  
28 - private String detailAddress;  
29 -  
30 - @ApiModelProperty(value = "地址类型")  
31 - private Integer type;  
32 -  
33 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
34 - @ApiModelProperty(value = "开始创建时间")  
35 - private Date beginCreateTime;  
36 -  
37 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
38 - @ApiModelProperty(value = "结束创建时间")  
39 - private Date endCreateTime;  
40 -  
41 -}  
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/address/vo/AppAddressPageReqVO.java deleted
1 -package cn.iocoder.yudao.module.member.controller.app.address.vo;  
2 -  
3 -import lombok.*;  
4 -import java.util.*;  
5 -import io.swagger.annotations.*;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
7 -import org.springframework.format.annotation.DateTimeFormat;  
8 -  
9 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
10 -  
11 -@ApiModel("用户 APP - 用户收件地址分页 Request VO")  
12 -@Data  
13 -@EqualsAndHashCode(callSuper = true)  
14 -@ToString(callSuper = true)  
15 -public class AppAddressPageReqVO extends PageParam {  
16 -  
17 - @ApiModelProperty(value = "用户编号")  
18 - private Long userId;  
19 -  
20 - @ApiModelProperty(value = "收件人名称")  
21 - private String name;  
22 -  
23 - @ApiModelProperty(value = "手机号")  
24 - private String mobile;  
25 -  
26 - @ApiModelProperty(value = "地区编码")  
27 - private Integer areaCode;  
28 -  
29 - @ApiModelProperty(value = "收件详细地址")  
30 - private String detailAddress;  
31 -  
32 - @ApiModelProperty(value = "地址类型")  
33 - private Integer type;  
34 -  
35 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
36 - @ApiModelProperty(value = "开始创建时间")  
37 - private Date beginCreateTime;  
38 -  
39 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
40 - @ApiModelProperty(value = "结束创建时间")  
41 - private Date endCreateTime;  
42 -  
43 -}  
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/address/AddressDO.java
@@ -46,9 +46,9 @@ public class AddressDO extends BaseDO { @@ -46,9 +46,9 @@ public class AddressDO extends BaseDO {
46 */ 46 */
47 private String detailAddress; 47 private String detailAddress;
48 /** 48 /**
49 - * 地址类型,主要分为默认地址,和普通地址 49 + * 地址类型
50 * 50 *
51 - * 外键 {@link AddressTypeEnum} 51 + * 枚举 {@link AddressTypeEnum}
52 */ 52 */
53 private Integer type; 53 private Integer type;
54 54
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/address/AddressMapper.java
@@ -29,16 +29,4 @@ public interface AddressMapper extends BaseMapperX&lt;AddressDO&gt; { @@ -29,16 +29,4 @@ public interface AddressMapper extends BaseMapperX&lt;AddressDO&gt; {
29 .orderByDesc(AddressDO::getId)); 29 .orderByDesc(AddressDO::getId));
30 } 30 }
31 31
32 - default List<AddressDO> selectList(AppAddressExportReqVO reqVO) {  
33 - return selectList(new LambdaQueryWrapperX<AddressDO>()  
34 - .eqIfPresent(AddressDO::getUserId, reqVO.getUserId())  
35 - .likeIfPresent(AddressDO::getName, reqVO.getName())  
36 - .eqIfPresent(AddressDO::getMobile, reqVO.getMobile())  
37 - .eqIfPresent(AddressDO::getAreaCode, reqVO.getAreaCode())  
38 - .eqIfPresent(AddressDO::getDetailAddress, reqVO.getDetailAddress())  
39 - .eqIfPresent(AddressDO::getType, reqVO.getType())  
40 - .betweenIfPresent(AddressDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())  
41 - .orderByDesc(AddressDO::getId));  
42 - }  
43 -  
44 } 32 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/enums/AddressTypeEnum.java
@@ -11,11 +11,11 @@ import lombok.Getter; @@ -11,11 +11,11 @@ import lombok.Getter;
11 public enum AddressTypeEnum { 11 public enum AddressTypeEnum {
12 12
13 DEFAULT(1, "默认收件地址"), 13 DEFAULT(1, "默认收件地址"),
14 - NORMAL(2, "普通收件地址"), // 即非默认收件笛之爱 14 + NORMAL(2, "普通收件地址"), // 即非默认收件地址
15 15
16 ; 16 ;
17 17
18 private final Integer type; 18 private final Integer type;
19 private final String desc; 19 private final String desc;
20 20
21 -}  
22 \ No newline at end of file 21 \ No newline at end of file
  22 +}
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/address/AddressService.java
@@ -54,23 +54,7 @@ public interface AddressService { @@ -54,23 +54,7 @@ public interface AddressService {
54 * @return 用户收件地址列表 54 * @return 用户收件地址列表
55 */ 55 */
56 List<AddressDO> getAddressList(Long userId); 56 List<AddressDO> getAddressList(Long userId);
57 -  
58 - /**  
59 - * 获得用户收件地址分页  
60 - *  
61 - * @param pageReqVO 分页查询  
62 - * @return 用户收件地址分页  
63 - */  
64 - PageResult<AddressDO> getAddressPage(AppAddressPageReqVO pageReqVO);  
65 -  
66 - /**  
67 - * 获得用户收件地址列表, 用于 Excel 导出  
68 - *  
69 - * @param exportReqVO 查询条件  
70 - * @return 用户收件地址列表  
71 - */  
72 - List<AddressDO> getAddressList(AppAddressExportReqVO exportReqVO);  
73 - 57 +
74 /** 58 /**
75 * 获得用户收件地址 59 * 获得用户收件地址
76 * 60 *
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/address/AddressServiceImpl.java
@@ -34,10 +34,11 @@ public class AddressServiceImpl implements AddressService { @@ -34,10 +34,11 @@ public class AddressServiceImpl implements AddressService {
34 @Resource 34 @Resource
35 private AddressMapper addressMapper; 35 private AddressMapper addressMapper;
36 36
37 - @Override 37 + @Override // TODO @shuaidawang:事务要加下哈
38 public Long createAddress(Long userId, AppAddressCreateReqVO createReqVO) { 38 public Long createAddress(Long userId, AppAddressCreateReqVO createReqVO) {
39 // 如果添加的是默认收件地址,则将原默认地址修改为非默认 39 // 如果添加的是默认收件地址,则将原默认地址修改为非默认
40 if (AddressTypeEnum.DEFAULT.getType().equals(createReqVO.getType())) { 40 if (AddressTypeEnum.DEFAULT.getType().equals(createReqVO.getType())) {
  41 + // TODO @shuaidawang:查询到一个,然后进行 update
41 List<AddressDO> addressDOs = selectListByUserIdAndType(userId, AddressTypeEnum.DEFAULT.getType()); 42 List<AddressDO> addressDOs = selectListByUserIdAndType(userId, AddressTypeEnum.DEFAULT.getType());
42 if (!CollectionUtils.isEmpty(addressDOs)) { 43 if (!CollectionUtils.isEmpty(addressDOs)) {
43 addressDOs.forEach(userAddressDO -> addressMapper.updateById(new AddressDO() 44 addressDOs.forEach(userAddressDO -> addressMapper.updateById(new AddressDO()
@@ -52,12 +53,13 @@ public class AddressServiceImpl implements AddressService { @@ -52,12 +53,13 @@ public class AddressServiceImpl implements AddressService {
52 return address.getId(); 53 return address.getId();
53 } 54 }
54 55
55 - @Override 56 + @Override // TODO @shuaidawang:事务要加下哈
56 public void updateAddress(Long userId, AppAddressUpdateReqVO updateReqVO) { 57 public void updateAddress(Long userId, AppAddressUpdateReqVO updateReqVO) {
57 - // 校验存在,校验是否能够操作 58 + // 校验存在,校验是否能够操作 TODO shuaidawang:改成基于 id + userId 查询,以前的做法不太好;
58 check(userId, updateReqVO.getId()); 59 check(userId, updateReqVO.getId());
59 // 如果修改的是默认收件地址,则将原默认地址修改为非默认 60 // 如果修改的是默认收件地址,则将原默认地址修改为非默认
60 if (AddressTypeEnum.DEFAULT.getType().equals(updateReqVO.getType())) { 61 if (AddressTypeEnum.DEFAULT.getType().equals(updateReqVO.getType())) {
  62 + // TODO @shuaidawang:查询到一个,然后进行 update,需要排除自己哈
61 List<AddressDO> addressDOs = selectListByUserIdAndType( 63 List<AddressDO> addressDOs = selectListByUserIdAndType(
62 userId, AddressTypeEnum.DEFAULT.getType()); 64 userId, AddressTypeEnum.DEFAULT.getType());
63 if (!CollectionUtils.isEmpty(addressDOs)) { 65 if (!CollectionUtils.isEmpty(addressDOs)) {
@@ -68,13 +70,13 @@ public class AddressServiceImpl implements AddressService { @@ -68,13 +70,13 @@ public class AddressServiceImpl implements AddressService {
68 } 70 }
69 // 更新 71 // 更新
70 AddressDO updateObj = AddressConvert.INSTANCE.convert(updateReqVO); 72 AddressDO updateObj = AddressConvert.INSTANCE.convert(updateReqVO);
71 - updateObj.setUserId(userId); 73 + updateObj.setUserId(userId); // TODO @shuaidawang:不用加 userId
72 addressMapper.updateById(updateObj); 74 addressMapper.updateById(updateObj);
73 } 75 }
74 76
75 @Override 77 @Override
76 public void deleteAddress(Long userId, Long id) { 78 public void deleteAddress(Long userId, Long id) {
77 - // 校验存在,校验是否能够操作 79 + // 校验存在,校验是否能够操作 TODO shuaidawang:改成基于 id + userId 查询,以前的做法不太好;
78 check(userId, id); 80 check(userId, id);
79 // 删除 81 // 删除
80 addressMapper.deleteById(id); 82 addressMapper.deleteById(id);
@@ -107,18 +109,8 @@ public class AddressServiceImpl implements AddressService { @@ -107,18 +109,8 @@ public class AddressServiceImpl implements AddressService {
107 } 109 }
108 110
109 @Override 111 @Override
110 - public PageResult<AddressDO> getAddressPage(AppAddressPageReqVO pageReqVO) {  
111 - return addressMapper.selectPage(pageReqVO);  
112 - }  
113 -  
114 - @Override  
115 - public List<AddressDO> getAddressList(AppAddressExportReqVO exportReqVO) {  
116 - return addressMapper.selectList(exportReqVO);  
117 - }  
118 -  
119 - @Override  
120 public AddressDO getAddress(Long userId, Long id) { 112 public AddressDO getAddress(Long userId, Long id) {
121 - AddressDO address = getAddress(id); 113 + AddressDO address = getAddress(id); // TODO shuaidawang:改成基于 id + userId 查询,以前的做法不太好;
122 check(userId, id); 114 check(userId, id);
123 return address; 115 return address;
124 } 116 }
@@ -130,10 +122,12 @@ public class AddressServiceImpl implements AddressService { @@ -130,10 +122,12 @@ public class AddressServiceImpl implements AddressService {
130 */ 122 */
131 @Override 123 @Override
132 public AddressDO getDefaultUserAddress(Long userId) { 124 public AddressDO getDefaultUserAddress(Long userId) {
  125 + // TODO @shuaidawang:查询,都抽到 mapper 中
133 List<AddressDO> addressDOList = selectListByUserIdAndType(userId, AddressTypeEnum.DEFAULT.getType()); 126 List<AddressDO> addressDOList = selectListByUserIdAndType(userId, AddressTypeEnum.DEFAULT.getType());
134 return addressDOList.stream().findFirst().orElse(null); 127 return addressDOList.stream().findFirst().orElse(null);
135 } 128 }
136 129
  130 + // TODO @shuaidawang:查询,都抽到 mapper 中
137 /** 131 /**
138 * 根据类型获取地址列表 132 * 根据类型获取地址列表
139 * @param userId 133 * @param userId