diff --git a/order/order-application/pom.xml b/order/order-application/pom.xml index 0d5e8e2d..1c07a316 100644 --- a/order/order-application/pom.xml +++ b/order/order-application/pom.xml @@ -109,29 +109,13 @@ org.apache.maven.plugins maven-compiler-plugin - 3.5.1 - - 1.8 - 1.8 - - - org.mapstruct - mapstruct-processor - ${org.mapstruct.version} - - - org.springframework.boot spring-boot-maven-plugin - - true - - diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/config/MVCConfiguration.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/config/MVCConfiguration.java index f9c72ca1..ff78f0ad 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/config/MVCConfiguration.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/config/MVCConfiguration.java @@ -33,4 +33,12 @@ public class MVCConfiguration implements WebMvcConfigurer { registry.addResourceHandler("webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } + // TODO 芋艿,允许跨域 + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedHeaders("*") + .allowedMethods("*") + .allowedOrigins("*"); + } } \ No newline at end of file diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/admins/AdminsOrderController.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/admins/AdminsOrderController.java index b5651d3a..09fc2154 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/admins/AdminsOrderController.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/admins/AdminsOrderController.java @@ -8,10 +8,10 @@ import cn.iocoder.mall.order.api.bo.OrderRecipientBO; import cn.iocoder.mall.order.api.dto.*; import cn.iocoder.mall.order.application.convert.OrderConvertAPP; import cn.iocoder.mall.order.application.convert.OrderDeliveryConvert; -import cn.iocoder.mall.order.application.po.OrderDeliverPO; -import cn.iocoder.mall.order.application.po.OrderItemUpdatePO; -import cn.iocoder.mall.order.application.po.OrderLogisticsPO; -import cn.iocoder.mall.order.application.po.OrderPageQueryPO; +import cn.iocoder.mall.order.application.po.admin.OrderDeliverPO; +import cn.iocoder.mall.order.application.po.admin.OrderItemUpdatePO; +import cn.iocoder.mall.order.application.po.admin.OrderLogisticsPO; +import cn.iocoder.mall.order.application.po.admin.OrderPageQueryPO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -37,7 +37,7 @@ public class AdminsOrderController { @GetMapping("page") @ApiOperation("订单列表") public CommonResult getOrderPage(@Validated OrderPageQueryPO orderPageQueryVO) { - OrderQueryDTO orderQueryDTO = OrderConvertAPP.INSTANCE.convertPageBO(orderPageQueryVO); + OrderQueryDTO orderQueryDTO = OrderConvertAPP.INSTANCE.convert(orderPageQueryVO); return orderService.getOrderPage(orderQueryDTO); } @@ -86,14 +86,14 @@ public class AdminsOrderController { @PutMapping("order_item/update") @ApiOperation("更新-订单item") public CommonResult updateOrderItem(@RequestBody @Validated OrderItemUpdatePO orderItemUpdateVO) { - OrderItemUpdateDTO dto = OrderConvertAPP.INSTANCE.convertPageBO(orderItemUpdateVO); + OrderItemUpdateDTO dto = OrderConvertAPP.INSTANCE.convert(orderItemUpdateVO); return orderService.updateOrderItem(dto); } @PutMapping("logistics/update") @ApiOperation("更新-订单物流") public CommonResult updateLogistics(@RequestBody @Validated OrderLogisticsPO orderLogisticsVO) { - OrderLogisticsUpdateDTO dto = OrderConvertAPP.INSTANCE.convertPageBO(orderLogisticsVO); + OrderLogisticsUpdateDTO dto = OrderConvertAPP.INSTANCE.convert(orderLogisticsVO); return orderService.updateLogistics(dto); } } diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/UsersOrderController.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/UsersOrderController.java index 482f2d48..ee74edeb 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/UsersOrderController.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/controller/users/UsersOrderController.java @@ -1,7 +1,18 @@ package cn.iocoder.mall.order.application.controller.users; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.iocoder.common.framework.vo.CommonResult; +import cn.iocoder.mall.order.api.OrderService; +import cn.iocoder.mall.order.api.bo.OrderCreateBO; +import cn.iocoder.mall.order.api.bo.OrderPageBO; +import cn.iocoder.mall.order.api.dto.OrderCreateDTO; +import cn.iocoder.mall.order.api.dto.OrderQueryDTO; +import cn.iocoder.mall.order.api.dto.OrderUserPageDTO; +import cn.iocoder.mall.order.application.convert.OrderConvertAPP; +import cn.iocoder.mall.order.application.po.user.OrderCreatePO; +import cn.iocoder.mall.user.sdk.context.UserSecurityContextHolder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; /** * 订单API(users) @@ -12,4 +23,22 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("users/order") public class UsersOrderController { + + @Autowired + private OrderService orderService; + + @GetMapping("order_page") + public CommonResult getOrderPage(@Validated OrderQueryDTO orderQueryDTO) { + Integer userId = UserSecurityContextHolder.getContext().getUserId(); + orderQueryDTO.setUserId(userId); + return orderService.getOrderPage(orderQueryDTO); + } + + @PostMapping("create_order") + public CommonResult createOrder(@RequestBody @Validated OrderCreatePO orderCreatePO) { + Integer userId = UserSecurityContextHolder.getContext().getUserId(); + OrderCreateDTO orderCreateDTO = OrderConvertAPP.INSTANCE.convert(orderCreatePO); + orderCreateDTO.setUserId(1); + return orderService.createOrder(orderCreateDTO); + } } diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/convert/OrderConvertAPP.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/convert/OrderConvertAPP.java index 99d1f1a9..031e02bc 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/convert/OrderConvertAPP.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/convert/OrderConvertAPP.java @@ -1,11 +1,13 @@ package cn.iocoder.mall.order.application.convert; +import cn.iocoder.mall.order.api.dto.OrderCreateDTO; import cn.iocoder.mall.order.api.dto.OrderItemUpdateDTO; import cn.iocoder.mall.order.api.dto.OrderLogisticsUpdateDTO; import cn.iocoder.mall.order.api.dto.OrderQueryDTO; -import cn.iocoder.mall.order.application.po.OrderItemUpdatePO; -import cn.iocoder.mall.order.application.po.OrderPageQueryPO; -import cn.iocoder.mall.order.application.po.OrderLogisticsPO; +import cn.iocoder.mall.order.application.po.admin.OrderItemUpdatePO; +import cn.iocoder.mall.order.application.po.admin.OrderLogisticsPO; +import cn.iocoder.mall.order.application.po.admin.OrderPageQueryPO; +import cn.iocoder.mall.order.application.po.user.OrderCreatePO; import org.mapstruct.Mapper; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; @@ -24,11 +26,14 @@ public interface OrderConvertAPP { OrderConvertAPP INSTANCE = Mappers.getMapper(OrderConvertAPP.class); @Mappings({}) - OrderQueryDTO convertPageBO(OrderPageQueryPO orderPageQueryVO); + OrderQueryDTO convert(OrderPageQueryPO orderPageQueryVO); @Mappings({}) - OrderLogisticsUpdateDTO convertPageBO(OrderLogisticsPO orderLogisticsVO); + OrderLogisticsUpdateDTO convert(OrderLogisticsPO orderLogisticsVO); @Mappings({}) - OrderItemUpdateDTO convertPageBO(OrderItemUpdatePO orderItemUpdateVO); + OrderItemUpdateDTO convert(OrderItemUpdatePO orderItemUpdateVO); + + @Mappings({}) + OrderCreateDTO convert(OrderCreatePO orderCreatePO); } diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/convert/OrderDeliveryConvert.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/convert/OrderDeliveryConvert.java index 4e16cfed..77712612 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/convert/OrderDeliveryConvert.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/convert/OrderDeliveryConvert.java @@ -1,7 +1,7 @@ package cn.iocoder.mall.order.application.convert; import cn.iocoder.mall.order.api.dto.OrderDeliveryDTO; -import cn.iocoder.mall.order.application.po.OrderDeliverPO; +import cn.iocoder.mall.order.application.po.admin.OrderDeliverPO; import org.mapstruct.Mapper; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderDeliverPO.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderDeliverPO.java similarity index 95% rename from order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderDeliverPO.java rename to order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderDeliverPO.java index 30640c77..f9126498 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderDeliverPO.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderDeliverPO.java @@ -1,4 +1,4 @@ -package cn.iocoder.mall.order.application.po; +package cn.iocoder.mall.order.application.po.admin; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderItemUpdatePO.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderItemUpdatePO.java similarity index 95% rename from order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderItemUpdatePO.java rename to order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderItemUpdatePO.java index a7be8da4..dac2b7e1 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderItemUpdatePO.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderItemUpdatePO.java @@ -1,4 +1,4 @@ -package cn.iocoder.mall.order.application.po; +package cn.iocoder.mall.order.application.po.admin; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderLogisticsPO.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderLogisticsPO.java similarity index 96% rename from order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderLogisticsPO.java rename to order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderLogisticsPO.java index 0fe5bac3..1661562f 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderLogisticsPO.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderLogisticsPO.java @@ -1,4 +1,4 @@ -package cn.iocoder.mall.order.application.po; +package cn.iocoder.mall.order.application.po.admin; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderPagePO.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderPagePO.java similarity index 93% rename from order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderPagePO.java rename to order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderPagePO.java index 75d8a97f..8a8a4a06 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderPagePO.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderPagePO.java @@ -1,4 +1,4 @@ -package cn.iocoder.mall.order.application.po; +package cn.iocoder.mall.order.application.po.admin; import cn.iocoder.mall.order.api.bo.OrderBO; import io.swagger.annotations.ApiModel; diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderPageQueryPO.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderPageQueryPO.java similarity index 97% rename from order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderPageQueryPO.java rename to order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderPageQueryPO.java index 1ef69a64..70ea5a0e 100644 --- a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/OrderPageQueryPO.java +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/admin/OrderPageQueryPO.java @@ -1,4 +1,4 @@ -package cn.iocoder.mall.order.application.po; +package cn.iocoder.mall.order.application.po.admin; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/user/OrderCreatePO.java b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/user/OrderCreatePO.java new file mode 100644 index 00000000..b7ada94b --- /dev/null +++ b/order/order-application/src/main/java/cn/iocoder/mall/order/application/po/user/OrderCreatePO.java @@ -0,0 +1,39 @@ +package cn.iocoder.mall.order.application.po.user; + +import cn.iocoder.mall.order.api.dto.OrderCreateItemDTO; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.io.Serializable; +import java.util.List; + +/** + * 订单创建 + * + * @author Sin + * @time 2019-03-16 14:42 + */ +@Data +@Accessors(chain = true) +public class OrderCreatePO implements Serializable { + + /** + * 收件手机号 + */ + @NotNull(message = "用户地址id不能为空!") + private Integer userAddressId; + /** + * 备注 + */ + private String remark; + + /// + /// order item + + @NotNull() + @Size(max = 1000, min = 1, message = "用户订单中没有商品!") + private List orderItems; + +} diff --git a/order/order-service-api/pom.xml b/order/order-service-api/pom.xml index e3f49d1d..62e74373 100644 --- a/order/order-service-api/pom.xml +++ b/order/order-service-api/pom.xml @@ -11,10 +11,6 @@ order-service-api - - 1.16.14 - - cn.iocoder.mall @@ -26,10 +22,17 @@ javax.validation validation-api + + org.mapstruct + mapstruct + + + org.mapstruct + mapstruct-jdk8 + org.projectlombok lombok - ${org.projectlombok.version} \ No newline at end of file diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/OrderService.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/OrderService.java index 07a11f3b..53e99e77 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/OrderService.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/OrderService.java @@ -44,11 +44,10 @@ public interface OrderService { /** * 订单 - 创建 * - * @param userId * @param orderCreateDTO * @return */ - CommonResult createOrder(Integer userId, OrderCreateDTO orderCreateDTO); + CommonResult createOrder(OrderCreateDTO orderCreateDTO); /** * 订单item - 更新 diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderPayBO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderPayBO.java new file mode 100644 index 00000000..410ccc6a --- /dev/null +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/bo/OrderPayBO.java @@ -0,0 +1,12 @@ +package cn.iocoder.mall.order.api.bo; + +import java.io.Serializable; + +/** + * 订单支付信息返回 + * + * @author Sin + * @time 2019-04-08 19:39 + */ +public class OrderPayBO implements Serializable { +} diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/OrderErrorCodeEnum.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/OrderErrorCodeEnum.java index 0e5a3df9..b2ac423a 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/OrderErrorCodeEnum.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/OrderErrorCodeEnum.java @@ -17,9 +17,16 @@ public enum OrderErrorCodeEnum { ORDER_PAY_AMOUNT_NOT_NEGATIVE(1008000003, "支付金额不能为负数!"), ORDER_STATUS_NOT_CANCEL(1008000004, "订单状态不能取消!"), ORDER_DELIVERY_INCORRECT_DATA(1008000005, "订单发货数据不正确!"), + ORDER_INSUFFICIENT_INVENTORY(1008000006, "库存不足!"), + ORDER_GOODS_AMOUNT_INCORRECT(1008000007, "商品金额非法!"), + ORDER_GET_GOODS_INFO_INCORRECT(1008000008, "获取额商品信息不正确!"), + ORDER_GET_USER_ADDRESS_FAIL(1008000009, "获取用户地址失败!"), + ORDER_GET_PAY_FAIL(1008000009, "调用pay失败!"), // order item ORDER_ITEM_ONLY_ONE(1008000004, "订单Item只有一个!"), + + ; private final int code; diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/OrderPayStatusEnum.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/OrderPayStatus.java similarity index 85% rename from order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/OrderPayStatusEnum.java rename to order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/OrderPayStatus.java index d26bdf19..b3338487 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/OrderPayStatusEnum.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/OrderPayStatus.java @@ -6,7 +6,7 @@ package cn.iocoder.mall.order.api.constant; * @author Sin * @time 2019-03-16 14:32 */ -public enum OrderPayStatusEnum { +public enum OrderPayStatus { WAITING_PAYMENT(0, "等待支付"), SUCCESSFUL_PAYMENT(1, "支付成功"), @@ -19,7 +19,7 @@ public enum OrderPayStatusEnum { private final String name; - OrderPayStatusEnum(int value, String name) { + OrderPayStatus(int value, String name) { this.value = value; this.name = name; } diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/PayAppId.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/PayAppId.java new file mode 100644 index 00000000..139d4783 --- /dev/null +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/constant/PayAppId.java @@ -0,0 +1,16 @@ +package cn.iocoder.mall.order.api.constant; + +/** + * 支付 AppId + * + * @author Sin + * @time 2019-04-08 19:54 + */ +public class PayAppId { + + /** + * 电商 + */ + public static final String APP_ID_1024 = "1024"; + +} diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCreateDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCreateDTO.java index 4b173b95..c8d51649 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCreateDTO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCreateDTO.java @@ -3,8 +3,6 @@ package cn.iocoder.mall.order.api.dto; import lombok.Data; import lombok.experimental.Accessors; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import java.io.Serializable; import java.util.List; @@ -23,34 +21,20 @@ public class OrderCreateDTO implements Serializable { */ private Integer userId; /** - * 收件区域编号 + * 用户地址 */ - @NotNull - private String areaNo; - /** - * 收件人名称 - */ - @NotNull - private String name; - /** - * 收件手机号 - */ - @NotNull - private String mobile; - /** - * 收件详细地址 - */ - @NotNull - private String address; + private Integer userAddressId; /** * 备注 */ private String remark; + /** + * ip信息 + */ + private String ip; /// /// order item - @NotNull - @Size(max = 1000, min = 1) private List orderItems; } diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCreateItemDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCreateItemDTO.java index 08815c1a..69ea7980 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCreateItemDTO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderCreateItemDTO.java @@ -1,5 +1,8 @@ package cn.iocoder.mall.order.api.dto; +import lombok.Data; +import lombok.experimental.Accessors; + import javax.validation.constraints.Max; import javax.validation.constraints.NotNull; @@ -7,6 +10,8 @@ import javax.validation.constraints.NotNull; * @author Sin * @time 2019-03-17 09:37 */ +@Data +@Accessors(chain = true) public class OrderCreateItemDTO { /** diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderDeliveryDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderDeliveryDTO.java index 8abff551..8cb8f634 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderDeliveryDTO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderDeliveryDTO.java @@ -1,5 +1,8 @@ package cn.iocoder.mall.order.api.dto; +import lombok.Data; +import lombok.experimental.Accessors; + import java.io.Serializable; import java.util.List; @@ -9,6 +12,8 @@ import java.util.List; * @author Sin * @time 2019-03-30 22:31 */ +@Data +@Accessors(chain = true) public class OrderDeliveryDTO implements Serializable { /** diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderItemDeletedDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderItemDeletedDTO.java index e76d4eb6..8486c186 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderItemDeletedDTO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderItemDeletedDTO.java @@ -1,5 +1,8 @@ package cn.iocoder.mall.order.api.dto; +import lombok.Data; +import lombok.experimental.Accessors; + import java.io.Serializable; import java.util.List; @@ -7,6 +10,8 @@ import java.util.List; * @author Sin * @time 2019-03-23 10:22 */ +@Data +@Accessors(chain = true) public class OrderItemDeletedDTO implements Serializable { /** diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderItemUpdateDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderItemUpdateDTO.java index c014c3ce..6748e5be 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderItemUpdateDTO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderItemUpdateDTO.java @@ -1,5 +1,8 @@ package cn.iocoder.mall.order.api.dto; +import lombok.Data; +import lombok.experimental.Accessors; + import javax.validation.constraints.NotNull; import java.io.Serializable; @@ -9,6 +12,8 @@ import java.io.Serializable; * @author Sin * @time 2019-03-16 14:46 */ +@Data +@Accessors(chain = true) public class OrderItemUpdateDTO implements Serializable { /** diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderLogisticsUpdateDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderLogisticsUpdateDTO.java index b1b33fe6..246d2fc9 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderLogisticsUpdateDTO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderLogisticsUpdateDTO.java @@ -1,5 +1,8 @@ package cn.iocoder.mall.order.api.dto; +import lombok.Data; +import lombok.experimental.Accessors; + import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.io.Serializable; @@ -10,6 +13,8 @@ import java.io.Serializable; * @author Sin * @time 2019-03-17 20:22 */ +@Data +@Accessors(chain = true) public class OrderLogisticsUpdateDTO implements Serializable { /** diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderQueryDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderQueryDTO.java index 220ee7fc..069d29fc 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderQueryDTO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderQueryDTO.java @@ -1,5 +1,8 @@ package cn.iocoder.mall.order.api.dto; +import lombok.Data; +import lombok.experimental.Accessors; + import java.io.Serializable; import java.util.Date; @@ -9,6 +12,8 @@ import java.util.Date; * @author Sin * @time 2019-03-23 14:15 */ +@Data +@Accessors(chain = true) public class OrderQueryDTO implements Serializable { /** diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderReturnCreateDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderReturnCreateDTO.java index 6a990d74..a114be93 100644 --- a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderReturnCreateDTO.java +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderReturnCreateDTO.java @@ -1,5 +1,8 @@ package cn.iocoder.mall.order.api.dto; +import lombok.Data; +import lombok.experimental.Accessors; + import java.io.Serializable; /** @@ -8,6 +11,8 @@ import java.io.Serializable; * @author Sin * @time 2019-03-30 15:34 */ +@Data +@Accessors(chain = true) public class OrderReturnCreateDTO implements Serializable { /** diff --git a/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderUserPageDTO.java b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderUserPageDTO.java new file mode 100644 index 00000000..ae6bc177 --- /dev/null +++ b/order/order-service-api/src/main/java/cn/iocoder/mall/order/api/dto/OrderUserPageDTO.java @@ -0,0 +1,45 @@ +package cn.iocoder.mall.order.api.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * 用户订单 page + * + * @author Sin + * @time 2019-04-08 17:50 + */ +@Data +@Accessors(chain = true) +public class OrderUserPageDTO implements Serializable { + + /** + * id + */ + private Integer id; + /** + * 订单号 + */ + private String orderNo; + /** + * 用户 id + */ + private Integer userId; + /** + * 付款时间(待发货) + */ + private Date startPaymentTime; + private Date endPaymentTime; + /** + * 创建时间 + */ + private Date startCreateTime; + private Date endCreateTime; + /** + * 状态 + */ + private Integer status; +} diff --git a/order/order-service-impl/pom.xml b/order/order-service-impl/pom.xml index 27038197..5588a6cf 100644 --- a/order/order-service-impl/pom.xml +++ b/order/order-service-impl/pom.xml @@ -11,11 +11,6 @@ order-service-impl - - 1.3.0.Final - 1.16.14 - - cn.iocoder.mall @@ -28,6 +23,19 @@ 1.0-SNAPSHOT compile + + cn.iocoder.mall + pay-service-api + 1.0-SNAPSHOT + compile + + + cn.iocoder.mall + user-service-api + 1.0-SNAPSHOT + compile + + com.alibaba dubbo @@ -47,43 +55,27 @@ org.springframework.boot spring-boot-starter-jdbc - org.mybatis.spring.boot mybatis-spring-boot-starter 2.0.0 - - org.mapstruct - mapstruct - ${org.mapstruct.version} - - - - org.projectlombok - lombok - ${org.projectlombok.version} - - com.google.guava guava 27.0.1-jre - Pingplusplus pingpp-java 2.2.4 jar - com.xuxueli xxl-job-core 2.0.1 - org.apache.rocketmq rocketmq-spring-boot-starter @@ -108,6 +100,12 @@ 1.0-SNAPSHOT compile + + cn.iocoder.mall + pay-service-api + 1.0-SNAPSHOT + compile + @@ -116,23 +114,6 @@ org.apache.maven.plugins maven-compiler-plugin - 3.5.1 - - 1.8 - 1.8 - - - org.mapstruct - mapstruct-processor - ${org.mapstruct.version} - - - org.projectlombok - lombok - ${org.projectlombok.version} - - - diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderRecipientConvert.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderRecipientConvert.java index aa1c12eb..9e832df3 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderRecipientConvert.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/convert/OrderRecipientConvert.java @@ -3,6 +3,7 @@ package cn.iocoder.mall.order.biz.convert; import cn.iocoder.mall.order.api.bo.OrderRecipientBO; import cn.iocoder.mall.order.api.dto.OrderCreateDTO; import cn.iocoder.mall.order.biz.dataobject.OrderRecipientDO; +import cn.iocoder.mall.user.api.bo.UserAddressBO; import org.mapstruct.Mapper; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; @@ -23,6 +24,9 @@ public interface OrderRecipientConvert { @Mappings({}) OrderRecipientDO convert(OrderCreateDTO orderCreateDTO); + @Mappings({}) + OrderRecipientDO convert(UserAddressBO userAddressBO); + @Mappings({}) OrderRecipientBO convert(OrderRecipientDO orderRecipientDO); diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderItemDO.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderItemDO.java index b7b3933c..ad4338c9 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderItemDO.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderItemDO.java @@ -32,6 +32,10 @@ public class OrderItemDO extends DeletableDO { * 商品编号 */ private Integer skuId; + /** + * 物流id + */ + private Integer orderLogisticsId; /** * 商品名称 */ @@ -52,10 +56,6 @@ public class OrderItemDO extends DeletableDO { * 支付金额(实付金额) */ private Integer payAmount; - /** - * 物流id - */ - private Integer orderLogisticsId; /// /// 时间信息 diff --git a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderServiceImpl.java b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderServiceImpl.java index 26bfbaed..5c283945 100644 --- a/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderServiceImpl.java +++ b/order/order-service-impl/src/main/java/cn/iocoder/mall/order/biz/service/OrderServiceImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.mall.order.biz.service; import cn.iocoder.common.framework.constant.DeletedStatusEnum; +import cn.iocoder.common.framework.util.DateUtil; import cn.iocoder.common.framework.util.ServiceExceptionUtil; import cn.iocoder.common.framework.vo.CommonResult; import cn.iocoder.mall.order.api.OrderService; @@ -8,6 +9,7 @@ import cn.iocoder.mall.order.api.bo.*; import cn.iocoder.mall.order.api.constant.OrderErrorCodeEnum; import cn.iocoder.mall.order.api.constant.OrderHasReturnExchangeEnum; import cn.iocoder.mall.order.api.constant.OrderStatusEnum; +import cn.iocoder.mall.order.api.constant.PayAppId; import cn.iocoder.mall.order.api.dto.*; import cn.iocoder.mall.order.biz.OrderCommon; import cn.iocoder.mall.order.biz.constants.OrderDeliveryTypeEnum; @@ -18,10 +20,18 @@ import cn.iocoder.mall.order.biz.convert.OrderLogisticsConvert; import cn.iocoder.mall.order.biz.convert.OrderRecipientConvert; import cn.iocoder.mall.order.biz.dao.*; import cn.iocoder.mall.order.biz.dataobject.*; +import cn.iocoder.mall.pay.api.PayTransactionService; +import cn.iocoder.mall.pay.api.dto.PayTransactionCreateDTO; +import cn.iocoder.mall.product.api.ProductSpuService; +import cn.iocoder.mall.product.api.bo.ProductSpuBO; +import cn.iocoder.mall.user.api.UserAddressService; +import cn.iocoder.mall.user.api.bo.UserAddressBO; +import com.alibaba.dubbo.config.annotation.Reference; import com.google.common.collect.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.util.CollectionUtils; import java.util.*; @@ -37,6 +47,11 @@ import java.util.stream.Collectors; @com.alibaba.dubbo.config.annotation.Service(validation = "true") public class OrderServiceImpl implements OrderService { + /** + * 支付过期时间 15 分钟 + */ + public static final int PAY_EXPIRE_TIME = 15; + @Autowired private OrderMapper orderMapper; @Autowired @@ -50,6 +65,13 @@ public class OrderServiceImpl implements OrderService { @Autowired private OrderCommon orderCommon; + @Reference + private ProductSpuService productSpuService; + @Reference + private UserAddressService userAddressService; + @Reference + private PayTransactionService payTransactionService; + @Override public CommonResult getOrderPage(OrderQueryDTO orderQueryDTO) { @@ -61,6 +83,10 @@ public class OrderServiceImpl implements OrderService { // 获取订单数据 List orderDOList = orderMapper.selectPage(orderQueryDTO); + if (CollectionUtils.isEmpty(orderDOList)) { + return CommonResult.success(new OrderPageBO().setOrders(Collections.EMPTY_LIST).setTotal(totalCount)); + } + // 获取订单 id Set orderIds = orderDOList.stream() .map(orderDO -> orderDO.getId()) @@ -133,33 +159,59 @@ public class OrderServiceImpl implements OrderService { @Override @Transactional - public CommonResult createOrder(Integer userId, OrderCreateDTO orderCreateDTO) { + public CommonResult createOrder(OrderCreateDTO orderCreateDTO) { + Integer userId = orderCreateDTO.getUserId(); List orderItemDTOList = orderCreateDTO.getOrderItems(); - OrderRecipientDO orderRecipientDO = OrderRecipientConvert.INSTANCE.convert(orderCreateDTO); List orderItemDOList = OrderItemConvert.INSTANCE.convert(orderItemDTOList); - // TODO: 2019-03-24 sin 校验商品是否存在 -// for (OrderItemDO orderItemDO : orderItemDOList) { -// CommonResult result = productSpuService.getProductSpu(orderItemDO.getSkuId()); -// -// // 有任何商品获取失败,或者为 null,都直接返回失败。 -// if (result.isError()) { -// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GET_SKU_FAIL.getCode()); -// } -// -// if (result.getData() == null) { -// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GET_SKU_NOT_EXISTENT.getCode()); -// } -// -// ProductSpuDetailBO spuDetailBO = result.getData(); -// orderItemDO.setPrice(1000); -// } + // 获取商品信息 + Set skuIds = orderItemDOList.stream() + .map(orderItemDO -> orderItemDO.getSkuId()).collect(Collectors.toSet()); + + CommonResult> result = productSpuService.getProductSpuList(skuIds); + + // 校验商品信息 + if (result.isError()) { + return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GET_SKU_FAIL.getCode()); + } + + if (result.getData() == null) { + return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GET_SKU_NOT_EXISTENT.getCode()); + } + + if (orderItemDTOList.size() != result.getData().size()) { + return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GET_GOODS_INFO_INCORRECT.getCode()); + } + + // 设置 orderItem + + Map productSpuBOMap = result.getData() + .stream().collect(Collectors.toMap(o -> o.getId(), o -> o)); + + for (OrderItemDO orderItemDO : orderItemDOList) { + ProductSpuBO productSpuBO = productSpuBOMap.get(orderItemDO.getSkuId()); + if (productSpuBO.getQuantity() <= 0) { + return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_INSUFFICIENT_INVENTORY.getCode()); + } + + if (productSpuBO.getPrice() <= 0) { + return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GOODS_AMOUNT_INCORRECT.getCode()); + } + + orderItemDO.setSkuImage(Optional.ofNullable(productSpuBO.getPicUrls().get(0)).get()); + orderItemDO.setSkuName(productSpuBO.getName()); + orderItemDO.setPrice(productSpuBO.getPrice()); + + int payAmount = orderItemDO.getQuantity() * orderItemDO.getPrice(); + orderItemDO.setPayAmount(payAmount); + } // order + Integer totalAmount = orderCommon.calculatedAmount(orderItemDOList); OrderDO orderDO = new OrderDO() .setUserId(userId) .setOrderNo(UUID.randomUUID().toString().replace("-", "")) - .setPayAmount(-1) // 先设置一个默认值,金额在下面计算 + .setPayAmount(totalAmount) .setClosingTime(null) .setDeliveryTime(null) .setPaymentTime(null) @@ -173,6 +225,12 @@ public class OrderServiceImpl implements OrderService { orderMapper.insert(orderDO); // 收件人信息 + CommonResult userAddressResult = userAddressService.getAddress(userId, orderCreateDTO.getUserAddressId()); + if (userAddressResult.isError()) { + return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GET_USER_ADDRESS_FAIL.getCode()); + } + UserAddressBO userAddressBO = userAddressResult.getData(); + OrderRecipientDO orderRecipientDO = OrderRecipientConvert.INSTANCE.convert(userAddressBO); orderRecipientDO .setOrderId(orderDO.getId()) .setType(OrderRecipientTypeEnum.EXPRESS.getValue()) @@ -183,14 +241,9 @@ public class OrderServiceImpl implements OrderService { // order item orderItemDOList.forEach(orderItemDO -> { - int goodsPrice = 1000; // 商品单价 orderItemDO .setOrderId(orderDO.getId()) .setOrderNo(orderDO.getOrderNo()) - .setPrice(goodsPrice) - .setPayAmount(orderItemDO.getQuantity() * orderItemDO.getPrice()) - .setSkuName("夏季衣服-默认数据") - .setSkuImage("//img.alicdn.com/tps/i4/TB1TiGwKXXXXXXRXFXXqVMCNVXX-400-400.jpg_350x350q90.jpg_.webp") .setPaymentTime(null) .setDeliveryTime(null) .setReceiverTime(null) @@ -201,20 +254,31 @@ public class OrderServiceImpl implements OrderService { .setDeleted(DeletedStatusEnum.DELETED_NO.getValue()) .setCreateTime(new Date()) .setUpdateTime(null); - orderItemMapper.insert(orderItemDO); }); - // 更新订单金额 - Integer totalAmount = orderCommon.calculatedAmount(orderItemDOList); - orderMapper.updateById( - new OrderDO() - .setId(orderDO.getId()) - .setPayAmount(totalAmount) + // 创建预订单 + // TODO sin 支付订单 orderSubject 暂时取第一个子订单商品信息 + String orderSubject = orderItemDOList.get(0).getSkuName(); + Date expireTime = DateUtil.addDate(Calendar.MINUTE, PAY_EXPIRE_TIME); + CommonResult commonResult = payTransactionService.createTransaction( + new PayTransactionCreateDTO() + .setCreateIp(orderCreateDTO.getIp()) + .setAppId(PayAppId.APP_ID_1024) + .setExpireTime(expireTime) + .setPrice(orderDO.getPayAmount()) + .setOrderSubject(orderSubject) + .setOrderMemo(orderDO.getRemark()) + .setOrderDescription("") ); - // TODO: 2019-03-17 Sin 需要发送 创建成果 MQ 消息 + if (commonResult.isError()) { + //手动开启事务回滚 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GET_PAY_FAIL.getCode()); + } + // TODO: 2019-03-17 Sin 需要发送 创建成果 MQ 消息,业务扩展和统计 return CommonResult.success( new OrderCreateBO() .setId(orderDO.getId()) diff --git a/order/order-service-impl/src/main/resources/mapper/OrderItemMapper.xml b/order/order-service-impl/src/main/resources/mapper/OrderItemMapper.xml index d6ada983..24b30190 100644 --- a/order/order-service-impl/src/main/resources/mapper/OrderItemMapper.xml +++ b/order/order-service-impl/src/main/resources/mapper/OrderItemMapper.xml @@ -3,9 +3,11 @@ - id, order_id, order_no, sku_id, sku_name, sku_image, quantity, price, pay_amount, + id, order_id, order_no, sku_id, sku_name, sku_image, order_logistics_id, + quantity, price, pay_amount, payment_time, delivery_time, receiver_time, closing_time, - has_return_exchange, delivery_type, status, create_time, update_time, deleted + has_return_exchange, delivery_type, status, + create_time, update_time, deleted INSERT INTO `order_item` ( - order_id, order_no, sku_id, sku_name, sku_image, quantity, price, pay_amount, + order_id, order_no, sku_id, sku_name, sku_image, order_logistics_id, + quantity, price, pay_amount, payment_time, delivery_time, receiver_time, closing_time, - has_return_exchange, delivery_type, status, create_time, update_time, deleted + has_return_exchange, delivery_type, status, + create_time, update_time, deleted ) VALUES ( - #{orderId}, #{orderNo}, #{skuId}, #{quantity}, #{price}, + #{orderId}, #{orderNo}, #{skuId}, #{skuName}, #{skuImage}, #{orderLogisticsId}, + #{quantity}, #{price}, #{payAmount}, #{paymentTime}, #{deliveryTime}, #{receiverTime}, #{closingTime}, #{hasReturnExchange}, #{deliveryType}, #{status}, #{createTime}, #{updateTime}, #{deleted} diff --git a/order/order-service-impl/src/main/resources/mapper/OrderMapper.xml b/order/order-service-impl/src/main/resources/mapper/OrderMapper.xml index ee68a491..14dea171 100644 --- a/order/order-service-impl/src/main/resources/mapper/OrderMapper.xml +++ b/order/order-service-impl/src/main/resources/mapper/OrderMapper.xml @@ -14,15 +14,15 @@ --> INSERT INTO `order` ( - user_id, order_no, price, payment_time, + user_id, order_no, pay_amount, payment_time, delivery_time, receiver_time, closing_time, - has_return_exchange, status, remark, - create_time, update_time, `deleted` + has_return_exchange, + status, remark, create_time, update_time, `deleted` ) VALUES ( - #{userId}, #{orderNo}, #{price}, #{paymentTime}, + #{userId}, #{orderNo}, #{payAmount}, #{paymentTime}, #{deliveryTime}, #{receiverTime}, #{closingTime}, - #{hasReturnExchange}, #{status}, #{remark}, - #{createTime}, #{updateTime}, #{deleted} + #{hasReturnExchange}, + #{status}, #{remark}, #{createTime}, #{updateTime}, #{deleted} ) diff --git a/order/order-service-impl/src/test/java/cn/iocoder/mall/order/biz/service/OrderServiceImplTest.java b/order/order-service-impl/src/test/java/cn/iocoder/mall/order/biz/service/OrderServiceImplTest.java index 784a7ed2..4baed21b 100644 --- a/order/order-service-impl/src/test/java/cn/iocoder/mall/order/biz/service/OrderServiceImplTest.java +++ b/order/order-service-impl/src/test/java/cn/iocoder/mall/order/biz/service/OrderServiceImplTest.java @@ -36,24 +36,24 @@ public class OrderServiceImplTest { @Test public void createOrderTest() { - - Integer userId = 1; - OrderCreateItemDTO orderCreateItemDTO - = new OrderCreateItemDTO() - .setSkuId(1) - .setQuantity(1); - - CommonResult result = orderService.createOrder( - userId, - new OrderCreateDTO() - .setRemark("") - .setName("张三") - .setMobile("13301926050") - .setAddress("深圳市福田区") - .setAreaNo("1000100") - .setOrderItems(Arrays.asList(orderCreateItemDTO))); - - OrderDO orderDO = orderMapper.selectById(result.getData().getId()); - Assert.assertNotNull("创建的订单不存在!", orderDO); +// +// Integer userId = 1; +// OrderCreateItemDTO orderCreateItemDTO +// = new OrderCreateItemDTO() +// .setSkuId(1) +// .setQuantity(1); +// +// CommonResult result = orderService.createOrder( +// userId, +// new OrderCreateDTO() +// .setRemark("") +// .setName("张三") +// .setMobile("13301926050") +// .setAddress("深圳市福田区") +// .setAreaNo("1000100") +// .setOrderItems(Arrays.asList(orderCreateItemDTO))); +// +// OrderDO orderDO = orderMapper.selectById(result.getData().getId()); +// Assert.assertNotNull("创建的订单不存在!", orderDO); } } diff --git a/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserAddressBO.java b/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserAddressBO.java index 484e2faa..20c8fe82 100644 --- a/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserAddressBO.java +++ b/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserAddressBO.java @@ -3,13 +3,15 @@ package cn.iocoder.mall.user.api.bo; import lombok.Data; import lombok.experimental.Accessors; +import java.io.Serializable; + /** * @author Sin * @time 2019-04-06 13:28 */ @Data @Accessors(chain = true) -public class UserAddressBO { +public class UserAddressBO implements Serializable { /** diff --git a/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserBO.java b/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserBO.java index 3a2f7f13..576ddc89 100644 --- a/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserBO.java +++ b/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserBO.java @@ -3,11 +3,12 @@ package cn.iocoder.mall.user.api.bo; import lombok.Data; import lombok.experimental.Accessors; +import java.io.Serializable; import java.util.Date; @Data @Accessors(chain = true) -public class UserBO { +public class UserBO implements Serializable { /** * 用户编号 diff --git a/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserPageBO.java b/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserPageBO.java index 19aae5b6..2be29225 100644 --- a/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserPageBO.java +++ b/user/user-service-api/src/main/java/cn/iocoder/mall/user/api/bo/UserPageBO.java @@ -3,11 +3,12 @@ package cn.iocoder.mall.user.api.bo; import lombok.Data; import lombok.experimental.Accessors; +import java.io.Serializable; import java.util.List; @Data @Accessors(chain = true) -public class UserPageBO { +public class UserPageBO implements Serializable { /** * 用户数组 diff --git a/user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/service/UserAddressServiceImpl.java b/user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/service/UserAddressServiceImpl.java index 6529fa5c..70162c2f 100644 --- a/user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/service/UserAddressServiceImpl.java +++ b/user/user-service-impl/src/main/java/cn/iocoder/mall/user/biz/service/UserAddressServiceImpl.java @@ -24,6 +24,7 @@ import java.util.List; * @time 2019-04-06 13:26 */ @Service +@com.alibaba.dubbo.config.annotation.Service(validation = "true") public class UserAddressServiceImpl implements UserAddressService { @Autowired