diff --git a/order/order-application/pom.xml b/order/order-application/pom.xml
index 0d5e8e2df..1c07a316c 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
-
-
- 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 f9c72ca17..ff78f0adb 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 b5651d3a6..09fc21545 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 482f2d481..ee74edeb1 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 99d1f1a9f..031e02bcc 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 4e16cfeda..777126121 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 30640c77d..f91264987 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 a7be8da41..dac2b7e15 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 0fe5bac3b..1661562f4 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 75d8a97f4..8a8a4a068 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 1ef69a644..70ea5a0ee 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 000000000..b7ada94b1
--- /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 e3f49d1dc..62e743739 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 07a11f3bb..53e99e776 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 000000000..410ccc6a2
--- /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 0e5a3df9f..b2ac423a8 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 d26bdf190..b33384873 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 000000000..139d4783d
--- /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 4b173b953..c8d51649b 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 08815c1a9..69ea79808 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 8abff551a..8cb8f634e 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 e76d4eb64..8486c1865 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 c014c3ce4..6748e5be9 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 b1b33fe6a..246d2fc91 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 220ee7fc5..069d29fc1 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 6a990d74a..a114be939 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 000000000..ae6bc1779
--- /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 27038197c..5588a6cfd 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
-
-
- 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 aa1c12ebb..9e832df3a 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 b7b3933cf..ad4338c9a 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 26bfbaed3..5c283945f 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 d6ada983d..24b301906 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 ee68a4915..14dea1717 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 784a7ed20..4baed21ba 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 484e2faa5..20c8fe825 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 3a2f7f139..576ddc890 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 19aae5b65..2be292254 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 6529fa5c0..70162c2fd 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