Commit 3750dc76c7689ba4b6454ceabe6115346a5d73a0
1 parent
ef656cf7
mall + trade:
1、获取订单结算信息,增加积分的 mock 返回
Showing
5 changed files
with
45 additions
and
34 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementReqVO.java
| 1 | package cn.iocoder.yudao.module.trade.controller.app.order.vo; | 1 | package cn.iocoder.yudao.module.trade.controller.app.order.vo; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.validation.InEnum; | 3 | import cn.iocoder.yudao.framework.common.validation.InEnum; |
| 4 | +import cn.iocoder.yudao.framework.common.validation.Mobile; | ||
| 5 | +import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum; | ||
| 4 | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum; | 6 | import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum; |
| 5 | import com.fasterxml.jackson.annotation.JsonIgnore; | 7 | import com.fasterxml.jackson.annotation.JsonIgnore; |
| 6 | import io.swagger.v3.oas.annotations.media.Schema; | 8 | import io.swagger.v3.oas.annotations.media.Schema; |
| @@ -9,6 +11,7 @@ import lombok.Data; | @@ -9,6 +11,7 @@ import lombok.Data; | ||
| 9 | import javax.validation.Valid; | 11 | import javax.validation.Valid; |
| 10 | import javax.validation.constraints.AssertTrue; | 12 | import javax.validation.constraints.AssertTrue; |
| 11 | import javax.validation.constraints.Min; | 13 | import javax.validation.constraints.Min; |
| 14 | +import javax.validation.constraints.NotEmpty; | ||
| 12 | import javax.validation.constraints.NotNull; | 15 | import javax.validation.constraints.NotNull; |
| 13 | import java.util.List; | 16 | import java.util.List; |
| 14 | 17 | ||
| @@ -19,17 +22,32 @@ public class AppTradeOrderSettlementReqVO { | @@ -19,17 +22,32 @@ public class AppTradeOrderSettlementReqVO { | ||
| 19 | @NotNull(message = "交易类型不能为空") | 22 | @NotNull(message = "交易类型不能为空") |
| 20 | @InEnum(value = TradeOrderTypeEnum.class, message = "交易类型必须是 {value}") | 23 | @InEnum(value = TradeOrderTypeEnum.class, message = "交易类型必须是 {value}") |
| 21 | @Deprecated // TODO 芋艿:后续干掉这个字段,对于前端不需要关注这个 | 24 | @Deprecated // TODO 芋艿:后续干掉这个字段,对于前端不需要关注这个 |
| 22 | - private Integer type; | 25 | + private Integer type = 1; |
| 23 | 26 | ||
| 24 | @Schema(description = "商品项数组", requiredMode = Schema.RequiredMode.REQUIRED) | 27 | @Schema(description = "商品项数组", requiredMode = Schema.RequiredMode.REQUIRED) |
| 25 | - @NotNull(message = "商品不能为空") | 28 | + @NotEmpty(message = "商品不能为空") |
| 26 | private List<Item> items; | 29 | private List<Item> items; |
| 27 | 30 | ||
| 31 | + @Schema(description = "优惠劵编号", example = "1024") | ||
| 32 | + private Long couponId; | ||
| 33 | + | ||
| 34 | + @Schema(description = "是否使用积分", required = true, example = "true") | ||
| 35 | + @NotNull(message = "是否使用积分不能为空") | ||
| 36 | + private Boolean pointStatus; | ||
| 37 | + | ||
| 38 | + // ========== 配送相关相关字段 ========== | ||
| 39 | + @Schema(description = "配送方式", required = true, example = "1") | ||
| 40 | + @InEnum(value = DeliveryTypeEnum.class, message = "配送方式不正确") | ||
| 41 | + private Integer deliveryType; | ||
| 42 | + | ||
| 28 | @Schema(description = "收件地址编号", example = "1") | 43 | @Schema(description = "收件地址编号", example = "1") |
| 29 | private Long addressId; | 44 | private Long addressId; |
| 30 | 45 | ||
| 31 | - @Schema(description = "优惠劵编号", example = "1024") | ||
| 32 | - private Long couponId; | 46 | + @Schema(description = "收件人名称", example = "芋艿") // 选择门店自提时,该字段为联系人名 |
| 47 | + private String receiverName; | ||
| 48 | + @Schema(description = "收件人手机", example = "15601691300") // 选择门店自提时,该字段为联系人手机 | ||
| 49 | + @Mobile(message = "收件人手机格式不正确") | ||
| 50 | + private String receiverMobile; | ||
| 33 | 51 | ||
| 34 | // ========== 秒杀活动相关字段 ========== | 52 | // ========== 秒杀活动相关字段 ========== |
| 35 | @Schema(description = "秒杀活动编号", example = "1024") | 53 | @Schema(description = "秒杀活动编号", example = "1024") |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementRespVO.java
| @@ -6,12 +6,16 @@ import lombok.AllArgsConstructor; | @@ -6,12 +6,16 @@ import lombok.AllArgsConstructor; | ||
| 6 | import lombok.Data; | 6 | import lombok.Data; |
| 7 | import lombok.NoArgsConstructor; | 7 | import lombok.NoArgsConstructor; |
| 8 | 8 | ||
| 9 | +import javax.validation.constraints.NotNull; | ||
| 9 | import java.util.List; | 10 | import java.util.List; |
| 10 | 11 | ||
| 11 | @Schema(description = "用户 App - 交易订单结算信息 Response VO") | 12 | @Schema(description = "用户 App - 交易订单结算信息 Response VO") |
| 12 | @Data | 13 | @Data |
| 13 | public class AppTradeOrderSettlementRespVO { | 14 | public class AppTradeOrderSettlementRespVO { |
| 14 | 15 | ||
| 16 | + @Schema(description = "交易类型", required = true, example = "1") // 对应 TradeOrderTypeEnum 枚举 | ||
| 17 | + private Integer type = 1; // TODO 芋艿:改成计算 | ||
| 18 | + | ||
| 15 | @Schema(description = "购物项数组", requiredMode = Schema.RequiredMode.REQUIRED) | 19 | @Schema(description = "购物项数组", requiredMode = Schema.RequiredMode.REQUIRED) |
| 16 | private List<Item> items; | 20 | private List<Item> items; |
| 17 | 21 | ||
| @@ -21,6 +25,12 @@ public class AppTradeOrderSettlementRespVO { | @@ -21,6 +25,12 @@ public class AppTradeOrderSettlementRespVO { | ||
| 21 | @Schema(description = "收件地址", requiredMode = Schema.RequiredMode.REQUIRED) | 25 | @Schema(description = "收件地址", requiredMode = Schema.RequiredMode.REQUIRED) |
| 22 | private Address address; | 26 | private Address address; |
| 23 | 27 | ||
| 28 | + @Schema(description = "已使用的积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") | ||
| 29 | + private Integer usedPoint; | ||
| 30 | + | ||
| 31 | + @Schema(description = "总积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") | ||
| 32 | + private Integer totalPoint; | ||
| 33 | + | ||
| 24 | @Schema(description = "购物项") | 34 | @Schema(description = "购物项") |
| 25 | @Data | 35 | @Data |
| 26 | public static class Item { | 36 | public static class Item { |
| @@ -90,26 +100,17 @@ public class AppTradeOrderSettlementRespVO { | @@ -90,26 +100,17 @@ public class AppTradeOrderSettlementRespVO { | ||
| 90 | @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300") | 100 | @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300") |
| 91 | private String mobile; | 101 | private String mobile; |
| 92 | 102 | ||
| 93 | - @Schema(description = "省份编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 94 | - private Integer provinceId; | ||
| 95 | - @Schema(description = "省份名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京") | ||
| 96 | - private String provinceName; | ||
| 97 | - | ||
| 98 | - @Schema(description = "城市编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 99 | - private Integer cityId; | ||
| 100 | - @Schema(description = "城市名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "北京") | ||
| 101 | - private String cityName; | ||
| 102 | - | ||
| 103 | - @Schema(description = "地区编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 104 | - private Integer districtId; | ||
| 105 | - @Schema(description = "地区名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "朝阳区") | ||
| 106 | - private String districtName; | 103 | + @Schema(description = "地区编号", requiredMode = Schema.RequiredMode.REQUIRED) |
| 104 | + @NotNull(message = "地区编号不能为空") | ||
| 105 | + private Long areaId; | ||
| 106 | + @Schema(description = "地区名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "上海上海市普陀区") | ||
| 107 | + private String areaName; | ||
| 107 | 108 | ||
| 108 | @Schema(description = "详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "望京悠乐汇 A 座") | 109 | @Schema(description = "详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "望京悠乐汇 A 座") |
| 109 | private String detailAddress; | 110 | private String detailAddress; |
| 110 | 111 | ||
| 111 | @Schema(description = "是否默认收件地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") | 112 | @Schema(description = "是否默认收件地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") |
| 112 | - private Boolean defaulted; | 113 | + private Boolean defaultStatus; |
| 113 | 114 | ||
| 114 | } | 115 | } |
| 115 | 116 |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java
| @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.trade.convert.order; | @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.trade.convert.order; | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | 5 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 6 | -import cn.iocoder.yudao.framework.ip.core.Area; | ||
| 7 | import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; | 6 | import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; |
| 8 | import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; | 7 | import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; |
| 9 | import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; | 8 | import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; |
| @@ -303,14 +302,11 @@ public interface TradeOrderConvert { | @@ -303,14 +302,11 @@ public interface TradeOrderConvert { | ||
| 303 | default AppTradeOrderSettlementRespVO convert(TradePriceCalculateRespBO calculate, AddressRespDTO address) { | 302 | default AppTradeOrderSettlementRespVO convert(TradePriceCalculateRespBO calculate, AddressRespDTO address) { |
| 304 | AppTradeOrderSettlementRespVO respVO = convert0(calculate, address); | 303 | AppTradeOrderSettlementRespVO respVO = convert0(calculate, address); |
| 305 | if (address != null) { | 304 | if (address != null) { |
| 306 | - Area area = AreaUtils.getArea(address.getAreaId()); | ||
| 307 | - respVO.getAddress().setDistrictId(area.getId()); | ||
| 308 | - respVO.getAddress().setDistrictName(area.getName()); | ||
| 309 | - respVO.getAddress().setCityId(area.getParent().getId()); | ||
| 310 | - respVO.getAddress().setCityName(area.getParent().getName()); | ||
| 311 | - respVO.getAddress().setProvinceId(area.getParent().getParent().getId()); | ||
| 312 | - respVO.getAddress().setProvinceName(area.getParent().getParent().getName()); | 305 | + respVO.getAddress().setAreaName(AreaUtils.format(address.getAreaId())); |
| 313 | } | 306 | } |
| 307 | + // TODO 芋艿:积分的接入; | ||
| 308 | + respVO.setUsedPoint(1); | ||
| 309 | + respVO.setTotalPoint(100); | ||
| 314 | return respVO; | 310 | return respVO; |
| 315 | } | 311 | } |
| 316 | 312 |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java
| @@ -176,6 +176,7 @@ public class TradeOrderDO extends BaseDO { | @@ -176,6 +176,7 @@ public class TradeOrderDO extends BaseDO { | ||
| 176 | * | 176 | * |
| 177 | * 关联 DeliveryTemplateDO 的 id 编号 | 177 | * 关联 DeliveryTemplateDO 的 id 编号 |
| 178 | */ | 178 | */ |
| 179 | + // TODO 芋艿:需要删除 | ||
| 179 | private Long deliveryTemplateId; | 180 | private Long deliveryTemplateId; |
| 180 | /** | 181 | /** |
| 181 | * 发货物流公司编号 | 182 | * 发货物流公司编号 |
| @@ -243,6 +244,7 @@ public class TradeOrderDO extends BaseDO { | @@ -243,6 +244,7 @@ public class TradeOrderDO extends BaseDO { | ||
| 243 | * 对应 taobao 的 trade.coupon_fee 字段 | 244 | * 对应 taobao 的 trade.coupon_fee 字段 |
| 244 | */ | 245 | */ |
| 245 | private Integer couponPrice; | 246 | private Integer couponPrice; |
| 247 | + // TODO 芋艿:需要记录使用的积分; | ||
| 246 | /** | 248 | /** |
| 247 | * 积分抵扣的金额,单位:分 | 249 | * 积分抵扣的金额,单位:分 |
| 248 | * | 250 | * |
yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/address/dto/AddressRespDTO.java
| @@ -31,18 +31,12 @@ public class AddressRespDTO { | @@ -31,18 +31,12 @@ public class AddressRespDTO { | ||
| 31 | */ | 31 | */ |
| 32 | private Integer areaId; | 32 | private Integer areaId; |
| 33 | /** | 33 | /** |
| 34 | - * 邮编 | ||
| 35 | - */ | ||
| 36 | - private String postCode; | ||
| 37 | - /** | ||
| 38 | * 收件详细地址 | 34 | * 收件详细地址 |
| 39 | */ | 35 | */ |
| 40 | private String detailAddress; | 36 | private String detailAddress; |
| 41 | /** | 37 | /** |
| 42 | * 是否默认 | 38 | * 是否默认 |
| 43 | - * | ||
| 44 | - * true - 默认收件地址 | ||
| 45 | */ | 39 | */ |
| 46 | - private Boolean defaulted; | 40 | + private Boolean defaultStatus; |
| 47 | 41 | ||
| 48 | } | 42 | } |