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 34  
35 35 @PostMapping("/create")
36 36 @ApiOperation("创建用户收件地址")
37   -
38 37 public CommonResult<Long> createAddress(@Valid @RequestBody AppAddressCreateReqVO createReqVO) {
39 38 return success(addressService.createAddress(getLoginUserId(), createReqVO));
40 39 }
41 40  
42 41 @PutMapping("/update")
43 42 @ApiOperation("更新用户收件地址")
44   -
45 43 public CommonResult<Boolean> updateAddress(@Valid @RequestBody AppAddressUpdateReqVO updateReqVO) {
46 44 addressService.updateAddress(getLoginUserId(), updateReqVO);
47 45 return success(true);
... ... @@ -50,7 +48,6 @@ public class AppAddressController {
50 48 @DeleteMapping("/delete")
51 49 @ApiOperation("删除用户收件地址")
52 50 @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
53   -
54 51 public CommonResult<Boolean> deleteAddress(@RequestParam("id") Long id) {
55 52 addressService.deleteAddress(getLoginUserId(), id);
56 53 return success(true);
... ... @@ -59,7 +56,6 @@ public class AppAddressController {
59 56 @GetMapping("/get")
60 57 @ApiOperation("获得用户收件地址")
61 58 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
62   -
63 59 public CommonResult<AppAddressRespVO> getAddress(@RequestParam("id") Long id) {
64 60 AddressDO address = addressService.getAddress(getLoginUserId(), id);
65 61 return success(AddressConvert.INSTANCE.convert(address));
... ... @@ -67,7 +63,6 @@ public class AppAddressController {
67 63  
68 64 @GetMapping("/get-default")
69 65 @ApiOperation("获得默认的用户收件地址")
70   -
71 66 public CommonResult<AppAddressRespVO> getDefaultUserAddress() {
72 67 AddressDO address = addressService.getDefaultUserAddress(getLoginUserId());
73 68 return success(AddressConvert.INSTANCE.convert(address));
... ... @@ -75,7 +70,6 @@ public class AppAddressController {
75 70  
76 71 @GetMapping("/list")
77 72 @ApiOperation("获得用户收件地址列表")
78   -
79 73 public CommonResult<List<AppAddressRespVO>> getAddressList() {
80 74 List<AddressDO> list = addressService.getAddressList(getLoginUserId());
81 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 12 @Data
13 13 public class AppAddressBaseVO {
14 14  
  15 + // TODO @shuaidawang:swagger 注解的 example;其它 VO 类也要补充下
  16 +
15 17 @ApiModelProperty(value = "收件人名称", required = true)
16 18 @NotNull(message = "收件人名称不能为空")
17 19 private String name;
... ... @@ -28,7 +30,7 @@ public class AppAddressBaseVO {
28 30 @NotNull(message = "收件详细地址不能为空")
29 31 private String detailAddress;
30 32  
31   - @ApiModelProperty(value = "地址类型", required = true)
  33 + @ApiModelProperty(value = "地址类型", required = true) // TODO @shuaidawang:这个是枚举字段,最好说明下对应的枚举类
32 34 @NotNull(message = "地址类型不能为空")
33 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 46 */
47 47 private String detailAddress;
48 48 /**
49   - * 地址类型,主要分为默认地址,和普通地址
  49 + * 地址类型
50 50 *
51   - * 外键 {@link AddressTypeEnum}
  51 + * 枚举 {@link AddressTypeEnum}
52 52 */
53 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 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 public enum AddressTypeEnum {
12 12  
13 13 DEFAULT(1, "默认收件地址"),
14   - NORMAL(2, "普通收件地址"), // 即非默认收件笛之爱
  14 + NORMAL(2, "普通收件地址"), // 即非默认收件地址
15 15  
16 16 ;
17 17  
18 18 private final Integer type;
19 19 private final String desc;
20 20  
21   -}
22 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 54 * @return 用户收件地址列表
55 55 */
56 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 34 @Resource
35 35 private AddressMapper addressMapper;
36 36  
37   - @Override
  37 + @Override // TODO @shuaidawang:事务要加下哈
38 38 public Long createAddress(Long userId, AppAddressCreateReqVO createReqVO) {
39 39 // 如果添加的是默认收件地址,则将原默认地址修改为非默认
40 40 if (AddressTypeEnum.DEFAULT.getType().equals(createReqVO.getType())) {
  41 + // TODO @shuaidawang:查询到一个,然后进行 update
41 42 List<AddressDO> addressDOs = selectListByUserIdAndType(userId, AddressTypeEnum.DEFAULT.getType());
42 43 if (!CollectionUtils.isEmpty(addressDOs)) {
43 44 addressDOs.forEach(userAddressDO -> addressMapper.updateById(new AddressDO()
... ... @@ -52,12 +53,13 @@ public class AddressServiceImpl implements AddressService {
52 53 return address.getId();
53 54 }
54 55  
55   - @Override
  56 + @Override // TODO @shuaidawang:事务要加下哈
56 57 public void updateAddress(Long userId, AppAddressUpdateReqVO updateReqVO) {
57   - // 校验存在,校验是否能够操作
  58 + // 校验存在,校验是否能够操作 TODO shuaidawang:改成基于 id + userId 查询,以前的做法不太好;
58 59 check(userId, updateReqVO.getId());
59 60 // 如果修改的是默认收件地址,则将原默认地址修改为非默认
60 61 if (AddressTypeEnum.DEFAULT.getType().equals(updateReqVO.getType())) {
  62 + // TODO @shuaidawang:查询到一个,然后进行 update,需要排除自己哈
61 63 List<AddressDO> addressDOs = selectListByUserIdAndType(
62 64 userId, AddressTypeEnum.DEFAULT.getType());
63 65 if (!CollectionUtils.isEmpty(addressDOs)) {
... ... @@ -68,13 +70,13 @@ public class AddressServiceImpl implements AddressService {
68 70 }
69 71 // 更新
70 72 AddressDO updateObj = AddressConvert.INSTANCE.convert(updateReqVO);
71   - updateObj.setUserId(userId);
  73 + updateObj.setUserId(userId); // TODO @shuaidawang:不用加 userId
72 74 addressMapper.updateById(updateObj);
73 75 }
74 76  
75 77 @Override
76 78 public void deleteAddress(Long userId, Long id) {
77   - // 校验存在,校验是否能够操作
  79 + // 校验存在,校验是否能够操作 TODO shuaidawang:改成基于 id + userId 查询,以前的做法不太好;
78 80 check(userId, id);
79 81 // 删除
80 82 addressMapper.deleteById(id);
... ... @@ -107,18 +109,8 @@ public class AddressServiceImpl implements AddressService {
107 109 }
108 110  
109 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 112 public AddressDO getAddress(Long userId, Long id) {
121   - AddressDO address = getAddress(id);
  113 + AddressDO address = getAddress(id); // TODO shuaidawang:改成基于 id + userId 查询,以前的做法不太好;
122 114 check(userId, id);
123 115 return address;
124 116 }
... ... @@ -130,10 +122,12 @@ public class AddressServiceImpl implements AddressService {
130 122 */
131 123 @Override
132 124 public AddressDO getDefaultUserAddress(Long userId) {
  125 + // TODO @shuaidawang:查询,都抽到 mapper 中
133 126 List<AddressDO> addressDOList = selectListByUserIdAndType(userId, AddressTypeEnum.DEFAULT.getType());
134 127 return addressDOList.stream().findFirst().orElse(null);
135 128 }
136 129  
  130 + // TODO @shuaidawang:查询,都抽到 mapper 中
137 131 /**
138 132 * 根据类型获取地址列表
139 133 * @param userId
... ...