- 添加订单 创建、更新收件人信息 操作
parent
ba7669f3a2
commit
b1b70318dc
|
@ -2,6 +2,7 @@ package cn.iocoder.mall.order.api;
|
||||||
|
|
||||||
import cn.iocoder.mall.order.api.bo.OrderBO;
|
import cn.iocoder.mall.order.api.bo.OrderBO;
|
||||||
import cn.iocoder.mall.order.api.dto.OrderCreateDTO;
|
import cn.iocoder.mall.order.api.dto.OrderCreateDTO;
|
||||||
|
import cn.iocoder.mall.order.api.dto.OrderReceiverInformationDTO;
|
||||||
import cn.iocoder.mall.order.api.dto.OrderUpdateDTO;
|
import cn.iocoder.mall.order.api.dto.OrderUpdateDTO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -27,12 +28,23 @@ public interface OrderService {
|
||||||
*/
|
*/
|
||||||
void updateOrder(OrderUpdateDTO orderUpdateDTO);
|
void updateOrder(OrderUpdateDTO orderUpdateDTO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新订单 - 收件这信息
|
||||||
|
*
|
||||||
|
* 包含:
|
||||||
|
* - 详细地址
|
||||||
|
* - 区域编号
|
||||||
|
* - 联系人电话
|
||||||
|
* - 联系人姓名
|
||||||
|
*/
|
||||||
|
void updateOrderReceiverInformation(OrderReceiverInformationDTO orderReceiverInfoDTO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除订单
|
* 删除订单
|
||||||
*
|
*
|
||||||
* @param orderId
|
* @param id
|
||||||
*/
|
*/
|
||||||
void deleteOrder(String orderId);
|
void deleteOrder(Integer id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 监听支付动作
|
* 监听支付动作
|
||||||
|
|
|
@ -9,4 +9,53 @@ import java.io.Serializable;
|
||||||
* @time 2019-03-16 14:38
|
* @time 2019-03-16 14:38
|
||||||
*/
|
*/
|
||||||
public class OrderBO implements Serializable {
|
public class OrderBO implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
private Integer id;
|
||||||
|
/**
|
||||||
|
* 订单编号
|
||||||
|
*/
|
||||||
|
private String orderNo;
|
||||||
|
/**
|
||||||
|
* 交易金额
|
||||||
|
*/
|
||||||
|
private Integer price;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "OrderBO{" +
|
||||||
|
"id=" + id +
|
||||||
|
", orderNo='" + orderNo + '\'' +
|
||||||
|
", price=" + price +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderBO setId(Integer id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOrderNo() {
|
||||||
|
return orderNo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderBO setOrderNo(String orderNo) {
|
||||||
|
this.orderNo = orderNo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getPrice() {
|
||||||
|
return price;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderBO setPrice(Integer price) {
|
||||||
|
this.price = price;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package cn.iocoder.mall.order.api.constants;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单 deleteStatus
|
||||||
|
*
|
||||||
|
* @author Sin
|
||||||
|
* @time 2019-03-17 20:58
|
||||||
|
*/
|
||||||
|
public enum OrderDeleteStatusEnum {
|
||||||
|
|
||||||
|
DELETE_NO(0, "正常"),
|
||||||
|
DELETE_YES(1, "已删除")
|
||||||
|
;
|
||||||
|
|
||||||
|
private final int value;
|
||||||
|
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
OrderDeleteStatusEnum(int value, String name) {
|
||||||
|
this.value = value;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,10 +17,18 @@ public enum OrderPayStatusEnum {
|
||||||
|
|
||||||
private final int value;
|
private final int value;
|
||||||
|
|
||||||
private final String text;
|
private final String name;
|
||||||
|
|
||||||
OrderPayStatusEnum(int value, String text) {
|
OrderPayStatusEnum(int value, String name) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
this.text = text;
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,9 +28,18 @@ public enum OrderStatusEnum {
|
||||||
|
|
||||||
private final int value;
|
private final int value;
|
||||||
|
|
||||||
private final String text;
|
private final String name;
|
||||||
|
|
||||||
OrderStatusEnum(int value, String text) {
|
OrderStatusEnum(int value, String name) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
this.text = text;
|
this.name = name;
|
||||||
}}
|
}
|
||||||
|
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -18,6 +18,11 @@ public class OrderCreateDTO implements Serializable {
|
||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
private String receiverAreaNo;
|
private String receiverAreaNo;
|
||||||
|
/**
|
||||||
|
* 收件人名称
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private String receiverName;
|
||||||
/**
|
/**
|
||||||
* 收件手机号
|
* 收件手机号
|
||||||
*/
|
*/
|
||||||
|
@ -44,6 +49,7 @@ public class OrderCreateDTO implements Serializable {
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "OrderCreateDTO{" +
|
return "OrderCreateDTO{" +
|
||||||
"receiverAreaNo='" + receiverAreaNo + '\'' +
|
"receiverAreaNo='" + receiverAreaNo + '\'' +
|
||||||
|
", receiverName='" + receiverName + '\'' +
|
||||||
", receiverMobile='" + receiverMobile + '\'' +
|
", receiverMobile='" + receiverMobile + '\'' +
|
||||||
", receiverAddress='" + receiverAddress + '\'' +
|
", receiverAddress='" + receiverAddress + '\'' +
|
||||||
", remark='" + remark + '\'' +
|
", remark='" + remark + '\'' +
|
||||||
|
@ -60,6 +66,15 @@ public class OrderCreateDTO implements Serializable {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getReceiverName() {
|
||||||
|
return receiverName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderCreateDTO setReceiverName(String receiverName) {
|
||||||
|
this.receiverName = receiverName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getReceiverMobile() {
|
public String getReceiverMobile() {
|
||||||
return receiverMobile;
|
return receiverMobile;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,99 @@
|
||||||
|
package cn.iocoder.mall.order.api.dto;
|
||||||
|
|
||||||
|
import javax.validation.constraints.Max;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单收件人信息
|
||||||
|
*
|
||||||
|
* @author Sin
|
||||||
|
* @time 2019-03-17 20:22
|
||||||
|
*/
|
||||||
|
public class OrderReceiverInformationDTO implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单 id
|
||||||
|
*/
|
||||||
|
private Integer id;
|
||||||
|
/**
|
||||||
|
* 收件区域编号
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private String receiverAreaNo;
|
||||||
|
/**
|
||||||
|
* 收件人名称
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private String receiverName;
|
||||||
|
/**
|
||||||
|
* 收件手机号
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
@Size(max = 11, min = 11)
|
||||||
|
// TODO: 2019-03-17 Sin 此处需要添加 手机号校验,需要添加新的注解
|
||||||
|
private String receiverMobile;
|
||||||
|
/**
|
||||||
|
* 收件详细地址
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
@Size(max = 250, min = 10, message = "收件地址应该在 10 ~ 250 个字符之间")
|
||||||
|
private String receiverAddress;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "OrderReceiverInformationDTO{" +
|
||||||
|
"id=" + id +
|
||||||
|
", receiverAreaNo='" + receiverAreaNo + '\'' +
|
||||||
|
", receiverName='" + receiverName + '\'' +
|
||||||
|
", receiverMobile='" + receiverMobile + '\'' +
|
||||||
|
", receiverAddress='" + receiverAddress + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderReceiverInformationDTO setId(Integer id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReceiverAreaNo() {
|
||||||
|
return receiverAreaNo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderReceiverInformationDTO setReceiverAreaNo(String receiverAreaNo) {
|
||||||
|
this.receiverAreaNo = receiverAreaNo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReceiverName() {
|
||||||
|
return receiverName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderReceiverInformationDTO setReceiverName(String receiverName) {
|
||||||
|
this.receiverName = receiverName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReceiverMobile() {
|
||||||
|
return receiverMobile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderReceiverInformationDTO setReceiverMobile(String receiverMobile) {
|
||||||
|
this.receiverMobile = receiverMobile;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReceiverAddress() {
|
||||||
|
return receiverAddress;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderReceiverInformationDTO setReceiverAddress(String receiverAddress) {
|
||||||
|
this.receiverAddress = receiverAddress;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,4 +9,8 @@ import java.io.Serializable;
|
||||||
* @time 2019-03-16 14:46
|
* @time 2019-03-16 14:46
|
||||||
*/
|
*/
|
||||||
public class OrderUpdateDTO implements Serializable {
|
public class OrderUpdateDTO implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package cn.iocoder.mall.order.convert;
|
||||||
|
|
||||||
import cn.iocoder.mall.order.api.dto.OrderCreateDTO;
|
import cn.iocoder.mall.order.api.dto.OrderCreateDTO;
|
||||||
import cn.iocoder.mall.order.api.dto.OrderCreateItemDTO;
|
import cn.iocoder.mall.order.api.dto.OrderCreateItemDTO;
|
||||||
|
import cn.iocoder.mall.order.api.dto.OrderReceiverInformationDTO;
|
||||||
import cn.iocoder.mall.order.dataobject.OrderDO;
|
import cn.iocoder.mall.order.dataobject.OrderDO;
|
||||||
import cn.iocoder.mall.order.dataobject.OrderItemDO;
|
import cn.iocoder.mall.order.dataobject.OrderItemDO;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
|
@ -22,7 +23,7 @@ public interface OrderConvert {
|
||||||
OrderConvert INSTANCE = Mappers.getMapper(OrderConvert.class);
|
OrderConvert INSTANCE = Mappers.getMapper(OrderConvert.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 转换 OrderDO
|
* 转换 OrderDO - OrderCreateDTO
|
||||||
*
|
*
|
||||||
* @param orderCreateDTO
|
* @param orderCreateDTO
|
||||||
* @return
|
* @return
|
||||||
|
@ -31,11 +32,20 @@ public interface OrderConvert {
|
||||||
OrderDO convert(OrderCreateDTO orderCreateDTO);
|
OrderDO convert(OrderCreateDTO orderCreateDTO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 转换 OrderItemDO
|
* 转换 OrderItemDO - orderCreateItemDTOList
|
||||||
*
|
*
|
||||||
* @param orderCreateItemDTOList
|
* @param orderCreateItemDTOList
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Mappings({})
|
@Mappings({})
|
||||||
List<OrderItemDO> convert(List<OrderCreateItemDTO> orderCreateItemDTOList);
|
List<OrderItemDO> convert(List<OrderCreateItemDTO> orderCreateItemDTOList);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换 OrderDO - orderReceiverInformationDTO
|
||||||
|
*
|
||||||
|
* @param orderReceiverInformationDTO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Mappings({})
|
||||||
|
OrderDO convert(OrderReceiverInformationDTO orderReceiverInformationDTO);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
package cn.iocoder.mall.order.dao;
|
||||||
|
|
||||||
|
import cn.iocoder.mall.order.dataobject.OrderItemDO;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单 item mapper
|
||||||
|
*
|
||||||
|
* @author Sin
|
||||||
|
* @time 2019-03-16 15:09
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public interface OrderItemMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入数据
|
||||||
|
*
|
||||||
|
* @param orderItemDO
|
||||||
|
*/
|
||||||
|
void insert(OrderItemDO orderItemDO);
|
||||||
|
}
|
|
@ -18,4 +18,12 @@ public interface OrderMapper {
|
||||||
* @param orderDO
|
* @param orderDO
|
||||||
*/
|
*/
|
||||||
void insert(OrderDO orderDO);
|
void insert(OrderDO orderDO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新 - 根据 id 更新
|
||||||
|
*
|
||||||
|
* @param orderDO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int updateById(OrderDO orderDO);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ public class OrderDO implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 编号
|
* 编号
|
||||||
*/
|
*/
|
||||||
private String id;
|
private Integer id;
|
||||||
/**
|
/**
|
||||||
* 订单编号
|
* 订单编号
|
||||||
*/
|
*/
|
||||||
|
@ -27,6 +27,10 @@ public class OrderDO implements Serializable {
|
||||||
* 收件区域编号
|
* 收件区域编号
|
||||||
*/
|
*/
|
||||||
private String receiverAreaNo;
|
private String receiverAreaNo;
|
||||||
|
/**
|
||||||
|
* 收件人名称
|
||||||
|
*/
|
||||||
|
private String receiverName;
|
||||||
/**
|
/**
|
||||||
* 收件手机号
|
* 收件手机号
|
||||||
*/
|
*/
|
||||||
|
@ -55,6 +59,13 @@ public class OrderDO implements Serializable {
|
||||||
* - 2、已退款
|
* - 2、已退款
|
||||||
*/
|
*/
|
||||||
private Integer payStatus;
|
private Integer payStatus;
|
||||||
|
/**
|
||||||
|
* 删除状态
|
||||||
|
*
|
||||||
|
* - 0 未删除
|
||||||
|
* - 1 已删除
|
||||||
|
*/
|
||||||
|
private Integer deleteStatus;
|
||||||
/**
|
/**
|
||||||
* 订单创建时间
|
* 订单创建时间
|
||||||
*/
|
*/
|
||||||
|
@ -78,15 +89,17 @@ public class OrderDO implements Serializable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Order{" +
|
return "OrderDO{" +
|
||||||
"id='" + id + '\'' +
|
"id=" + id +
|
||||||
", orderNo='" + orderNo + '\'' +
|
", orderNo='" + orderNo + '\'' +
|
||||||
", price=" + price +
|
", price=" + price +
|
||||||
", receiverAreaNo='" + receiverAreaNo + '\'' +
|
", receiverAreaNo='" + receiverAreaNo + '\'' +
|
||||||
|
", receiverName='" + receiverName + '\'' +
|
||||||
", receiverMobile='" + receiverMobile + '\'' +
|
", receiverMobile='" + receiverMobile + '\'' +
|
||||||
", receiverAddress='" + receiverAddress + '\'' +
|
", receiverAddress='" + receiverAddress + '\'' +
|
||||||
", status=" + status +
|
", status=" + status +
|
||||||
", payStatus=" + payStatus +
|
", payStatus=" + payStatus +
|
||||||
|
", deleteStatus=" + deleteStatus +
|
||||||
", createTime=" + createTime +
|
", createTime=" + createTime +
|
||||||
", paymentTime=" + paymentTime +
|
", paymentTime=" + paymentTime +
|
||||||
", deliveryTime=" + deliveryTime +
|
", deliveryTime=" + deliveryTime +
|
||||||
|
@ -95,11 +108,11 @@ public class OrderDO implements Serializable {
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId() {
|
public Integer getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrderDO setId(String id) {
|
public OrderDO setId(Integer id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -131,6 +144,15 @@ public class OrderDO implements Serializable {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getReceiverName() {
|
||||||
|
return receiverName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderDO setReceiverName(String receiverName) {
|
||||||
|
this.receiverName = receiverName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getReceiverMobile() {
|
public String getReceiverMobile() {
|
||||||
return receiverMobile;
|
return receiverMobile;
|
||||||
}
|
}
|
||||||
|
@ -167,6 +189,15 @@ public class OrderDO implements Serializable {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getDeleteStatus() {
|
||||||
|
return deleteStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderDO setDeleteStatus(Integer deleteStatus) {
|
||||||
|
this.deleteStatus = deleteStatus;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public Date getCreateTime() {
|
public Date getCreateTime() {
|
||||||
return createTime;
|
return createTime;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package cn.iocoder.mall.order.dataobject;
|
package cn.iocoder.mall.order.dataobject;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单 item
|
* 订单 item
|
||||||
|
@ -13,11 +14,11 @@ public class OrderItemDO implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 编号
|
* 编号
|
||||||
*/
|
*/
|
||||||
private String id;
|
private Integer id;
|
||||||
/**
|
/**
|
||||||
* 订单编号
|
* 订单编号
|
||||||
*/
|
*/
|
||||||
private String orderId;
|
private Integer orderId;
|
||||||
/**
|
/**
|
||||||
* 商品编号
|
* 商品编号
|
||||||
*/
|
*/
|
||||||
|
@ -42,33 +43,38 @@ public class OrderItemDO implements Serializable {
|
||||||
* - 41、已退货
|
* - 41、已退货
|
||||||
*/
|
*/
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
/**
|
||||||
|
* 发货时间
|
||||||
|
*/
|
||||||
|
private Date deliveryTime;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "OrderItem{" +
|
return "OrderItemDO{" +
|
||||||
"id='" + id + '\'' +
|
"id=" + id +
|
||||||
", orderId='" + orderId + '\'' +
|
", orderId='" + orderId + '\'' +
|
||||||
", commodityId='" + commodityId + '\'' +
|
", commodityId='" + commodityId + '\'' +
|
||||||
", quantity=" + quantity +
|
", quantity=" + quantity +
|
||||||
", price=" + price +
|
", price=" + price +
|
||||||
", status=" + status +
|
", status=" + status +
|
||||||
|
", deliveryTime=" + deliveryTime +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId() {
|
public Integer getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrderItemDO setId(String id) {
|
public OrderItemDO setId(Integer id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getOrderId() {
|
public Integer getOrderId() {
|
||||||
return orderId;
|
return orderId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrderItemDO setOrderId(String orderId) {
|
public OrderItemDO setOrderId(Integer orderId) {
|
||||||
this.orderId = orderId;
|
this.orderId = orderId;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -108,4 +114,13 @@ public class OrderItemDO implements Serializable {
|
||||||
this.status = status;
|
this.status = status;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Date getDeliveryTime() {
|
||||||
|
return deliveryTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderItemDO setDeliveryTime(Date deliveryTime) {
|
||||||
|
this.deliveryTime = deliveryTime;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,17 +2,26 @@ package cn.iocoder.mall.order.service;
|
||||||
|
|
||||||
import cn.iocoder.mall.order.api.OrderService;
|
import cn.iocoder.mall.order.api.OrderService;
|
||||||
import cn.iocoder.mall.order.api.bo.OrderBO;
|
import cn.iocoder.mall.order.api.bo.OrderBO;
|
||||||
|
import cn.iocoder.mall.order.api.constants.OrderDeleteStatusEnum;
|
||||||
|
import cn.iocoder.mall.order.api.constants.OrderPayStatusEnum;
|
||||||
|
import cn.iocoder.mall.order.api.constants.OrderStatusEnum;
|
||||||
import cn.iocoder.mall.order.api.dto.OrderCreateDTO;
|
import cn.iocoder.mall.order.api.dto.OrderCreateDTO;
|
||||||
import cn.iocoder.mall.order.api.dto.OrderCreateItemDTO;
|
import cn.iocoder.mall.order.api.dto.OrderCreateItemDTO;
|
||||||
|
import cn.iocoder.mall.order.api.dto.OrderReceiverInformationDTO;
|
||||||
import cn.iocoder.mall.order.api.dto.OrderUpdateDTO;
|
import cn.iocoder.mall.order.api.dto.OrderUpdateDTO;
|
||||||
|
import cn.iocoder.mall.order.convert.OrderConvert;
|
||||||
|
import cn.iocoder.mall.order.dao.OrderItemMapper;
|
||||||
|
import cn.iocoder.mall.order.dao.OrderMapper;
|
||||||
import cn.iocoder.mall.order.dataobject.OrderDO;
|
import cn.iocoder.mall.order.dataobject.OrderDO;
|
||||||
import cn.iocoder.mall.order.dataobject.OrderItemDO;
|
import cn.iocoder.mall.order.dataobject.OrderItemDO;
|
||||||
import cn.iocoder.mall.order.convert.OrderConvert;
|
import org.checkerframework.checker.units.qual.A;
|
||||||
import cn.iocoder.mall.order.dao.OrderMapper;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单 service impl
|
* 订单 service impl
|
||||||
|
@ -26,26 +35,45 @@ public class OrderServiceImpl implements OrderService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private OrderMapper orderMapper;
|
private OrderMapper orderMapper;
|
||||||
|
@Autowired
|
||||||
|
private OrderItemMapper orderItemMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public OrderBO createOrder(OrderCreateDTO orderCreateDTO) {
|
public OrderBO createOrder(OrderCreateDTO orderCreateDTO) {
|
||||||
List<OrderCreateItemDTO> orderItemDTOList = orderCreateDTO.getOrderItems();
|
List<OrderCreateItemDTO> orderItemDTOList = orderCreateDTO.getOrderItems();
|
||||||
OrderDO orderDO = OrderConvert.INSTANCE.convert(orderCreateDTO);
|
OrderDO orderDO = OrderConvert.INSTANCE.convert(orderCreateDTO);
|
||||||
List<OrderItemDO> orderItemDOList = OrderConvert.INSTANCE.convert(orderItemDTOList);
|
List<OrderItemDO> orderItemDOList = OrderConvert.INSTANCE.convert(orderItemDTOList);
|
||||||
|
|
||||||
|
// order
|
||||||
|
orderDO.setOrderNo(UUID.randomUUID().toString().replace("-", ""));
|
||||||
|
orderDO.setPrice(1000);
|
||||||
|
orderDO.setCreateTime(new Date());
|
||||||
|
orderDO.setClosingTime(null);
|
||||||
|
orderDO.setDeliveryTime(null);
|
||||||
|
orderDO.setPaymentTime(null);
|
||||||
|
orderDO.setStatus(OrderStatusEnum.WAIT_SHIPMENT.getValue());
|
||||||
|
orderDO.setPayStatus(OrderPayStatusEnum.WAITING_PAYMENT.getValue());
|
||||||
|
orderDO.setDeleteStatus(OrderDeleteStatusEnum.DELETE_NO.getValue());
|
||||||
orderMapper.insert(orderDO);
|
orderMapper.insert(orderDO);
|
||||||
String a = "";
|
|
||||||
// orderConvert.con
|
// order item
|
||||||
// for (OrderCreateItemDTO orderCreateItemDTO : orderItemDTOList) {
|
int goodsPrice = 1000;
|
||||||
// OrderItemDO orderItemDO = new OrderItemDO();
|
orderItemDOList.forEach(orderItemDO -> {
|
||||||
// orderItemDO.setId();
|
int price = orderItemDO.getQuantity() * goodsPrice;
|
||||||
// orderItemDO.setCommodityId();
|
orderItemDO
|
||||||
// orderItemDO.setOrderId();
|
.setStatus(OrderStatusEnum.WAIT_SHIPMENT.getValue())
|
||||||
// orderItemDO.setPrice();
|
.setOrderId(orderDO.getId())
|
||||||
// orderItemDO.setQuantity();
|
.setPrice(price)
|
||||||
// orderItemDO.setStatus();
|
.setDeliveryTime(null);
|
||||||
// }
|
|
||||||
// orderMapper.insert();
|
orderItemMapper.insert(orderItemDO);
|
||||||
return null;
|
});
|
||||||
|
|
||||||
|
return new OrderBO()
|
||||||
|
.setId(orderDO.getId())
|
||||||
|
.setOrderNo(orderDO.getOrderNo())
|
||||||
|
.setPrice(orderDO.getPrice());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -54,8 +82,19 @@ public class OrderServiceImpl implements OrderService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteOrder(String orderId) {
|
public void updateOrderReceiverInformation(OrderReceiverInformationDTO orderReceiverInfoDTO) {
|
||||||
|
// TODO: 2019-03-17 需要做校验 手机号
|
||||||
|
OrderDO orderDO = OrderConvert.INSTANCE.convert(orderReceiverInfoDTO);
|
||||||
|
orderMapper.updateById(orderDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteOrder(Integer id) {
|
||||||
|
// 删除订单操作,一般用于 用户端删除,是否存在检查可以过掉
|
||||||
|
orderMapper.updateById(new OrderDO()
|
||||||
|
.setId(id)
|
||||||
|
.setDeleteStatus(OrderDeleteStatusEnum.DELETE_YES.getValue())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -22,4 +22,9 @@ dubbo:
|
||||||
port: -1
|
port: -1
|
||||||
name: dubbo
|
name: dubbo
|
||||||
scan:
|
scan:
|
||||||
base-packages: cn.iocoder.mall.order.service
|
base-packages: cn.iocoder.mall.order.service
|
||||||
|
|
||||||
|
# logging
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
cn.iocoder.mall.order.dao: debug
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="cn.iocoder.mall.order.dao.OrderItemMapper">
|
||||||
|
|
||||||
|
<sql id="FIELDS">
|
||||||
|
id, order_id, commodity_id, quantity, price,
|
||||||
|
status, deliveryTime
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
插入数据
|
||||||
|
-->
|
||||||
|
<insert id="insert" parameterType="OrderItemDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
|
||||||
|
INSERT INTO `order_item` (
|
||||||
|
order_id, commodity_id, quantity, price,
|
||||||
|
status, deliveryTime
|
||||||
|
) VALUES (
|
||||||
|
#{orderId}, #{commodityId}, #{quantity}, #{price},
|
||||||
|
#{status}, #{deliveryTime}
|
||||||
|
)
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -3,21 +3,79 @@
|
||||||
<mapper namespace="cn.iocoder.mall.order.dao.OrderMapper">
|
<mapper namespace="cn.iocoder.mall.order.dao.OrderMapper">
|
||||||
|
|
||||||
<sql id="FIELDS">
|
<sql id="FIELDS">
|
||||||
id, order_no, price, receiver_area_no, receiver_mobile,
|
order_no, price, receiver_area_no, receiver_mobile,
|
||||||
receiver_address, status, pay_status, create_time,
|
receiver_address, `status`, pay_status, create_time,
|
||||||
payment_time, delivery_time, closing_time, remark
|
payment_time, delivery_time, closing_time, remark
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
插入数据
|
||||||
|
-->
|
||||||
<insert id="insert" parameterType="OrderDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
|
<insert id="insert" parameterType="OrderDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
|
||||||
INSERT INTO order (
|
INSERT INTO `order` (
|
||||||
id, order_no, price, receiver_area_no, receiver_mobile,
|
order_no, price, receiver_area_no, receiver_mobile,
|
||||||
receiver_address, status, pay_status, create_time,
|
receiver_address, `status`, pay_status, create_time,
|
||||||
payment_time, delivery_time, closing_time, remark
|
payment_time, delivery_time, closing_time, remark
|
||||||
) VALUES (
|
) VALUES (
|
||||||
${orderNo}, ${price}, ${receiverAreaNo}, ${receiverMobile},
|
#{orderNo}, ${price}, #{receiverAreaNo}, #{receiverMobile},
|
||||||
${receiverAddress}, ${status}, ${payStatus}, ${createTime},
|
#{receiverAddress}, #{status}, #{payStatus}, #{createTime},
|
||||||
${paymentTime}, ${deliveryTime}, ${closingTime}, ${remark}
|
#{paymentTime}, #{deliveryTime}, #{closingTime}, #{remark}
|
||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
更新 - 可更新的字段
|
||||||
|
-->
|
||||||
|
<sql id="updateSql" >
|
||||||
|
<set>
|
||||||
|
<if test="orderNo != null">
|
||||||
|
, order_no = #{orderNo}
|
||||||
|
</if>
|
||||||
|
<if test="price != null">
|
||||||
|
, price = #{price}
|
||||||
|
</if>
|
||||||
|
<if test="receiverAreaNo != null">
|
||||||
|
, receiver_area_no = #{receiverAreaNo}
|
||||||
|
</if>
|
||||||
|
<if test="receiverMobile != null">
|
||||||
|
, receiver_mobile = #{receiverMobile}
|
||||||
|
</if>
|
||||||
|
<if test="receiverAddress != null">
|
||||||
|
, receiver_address = #{receiverAddress}
|
||||||
|
</if>
|
||||||
|
<if test="status != null">
|
||||||
|
, status = #{status}
|
||||||
|
</if>
|
||||||
|
<if test="payStatus != null">
|
||||||
|
, pay_status = #{payStatus}
|
||||||
|
</if>
|
||||||
|
<if test="deleteStatus != null">
|
||||||
|
, delete_status = #{deleteStatus}
|
||||||
|
</if>
|
||||||
|
<if test="createTime != null">
|
||||||
|
, create_time = #{createTime}
|
||||||
|
</if>
|
||||||
|
<if test="paymentTime != null">
|
||||||
|
, payment_time = #{paymentTime}
|
||||||
|
</if>
|
||||||
|
<if test="deliveryTime != null">
|
||||||
|
, delivery_time = #{deliveryTime}
|
||||||
|
</if>
|
||||||
|
<if test="closingTime != null">
|
||||||
|
, closing_time = #{closingTime}
|
||||||
|
</if>
|
||||||
|
<if test="remark != null">
|
||||||
|
, remark = #{remark}
|
||||||
|
</if>
|
||||||
|
</set>
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
更新 - 根据 id 更新
|
||||||
|
-->
|
||||||
|
<update id="updateById" parameterType="OrderDO">
|
||||||
|
UPDATE `order`
|
||||||
|
<include refid="updateSql" />
|
||||||
|
WHERE id = #{id}
|
||||||
|
</update>
|
||||||
</mapper>
|
</mapper>
|
|
@ -8,8 +8,8 @@ import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
@ -26,9 +26,18 @@ public class OrderServiceImplTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private OrderService orderService;
|
private OrderService orderService;
|
||||||
|
@Autowired
|
||||||
|
private Environment environment;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createOrderTest() {
|
public void createOrderTest() {
|
||||||
|
// Properties properties = System.getProperties();
|
||||||
|
// String url = properties.getProperty("spring.datasource.url");
|
||||||
|
// System.err.println(url);
|
||||||
|
|
||||||
|
String url = environment.getProperty("spring.datasource.url");
|
||||||
|
System.err.println(url);
|
||||||
|
|
||||||
|
|
||||||
OrderCreateItemDTO orderCreateItemDTO
|
OrderCreateItemDTO orderCreateItemDTO
|
||||||
= new OrderCreateItemDTO()
|
= new OrderCreateItemDTO()
|
||||||
|
|
Loading…
Reference in New Issue