Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
966375be
提交
966375be
authored
5月 11, 2020
作者:
xiaofeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
迁移order service 代码
上级
ee735c0e
隐藏空白字符变更
内嵌
并排
正在显示
131 个修改的文件
包含
8765 行增加
和
16 行删除
+8765
-16
CartItemStatusEnum.java
...iocoder/mall/order/biz/enums/cart/CartItemStatusEnum.java
+46
-0
OrderCommentRelpyTypeEnum.java
...ll/order/biz/enums/comment/OrderCommentRelpyTypeEnum.java
+35
-0
OrderCommentStatusEnum.java
.../mall/order/biz/enums/comment/OrderCommentStatusEnum.java
+34
-0
OrderReplyUserTypeEnum.java
.../mall/order/biz/enums/comment/OrderReplyUserTypeEnum.java
+36
-0
DictKeyConstants.java
.../iocoder/mall/order/biz/enums/order/DictKeyConstants.java
+27
-0
ErrorCodeInterval.java
...iocoder/mall/order/biz/enums/order/ErrorCodeInterval.java
+17
-0
LogisticsEnum.java
.../cn/iocoder/mall/order/biz/enums/order/LogisticsEnum.java
+41
-0
MQConstants.java
...va/cn/iocoder/mall/order/biz/enums/order/MQConstants.java
+15
-0
OrderCancelReasonsEnum.java
...er/mall/order/biz/enums/order/OrderCancelReasonsEnum.java
+54
-0
OrderDeliveryTypeEnum.java
...der/mall/order/biz/enums/order/OrderDeliveryTypeEnum.java
+41
-0
OrderErrorCodeEnum.java
...ocoder/mall/order/biz/enums/order/OrderErrorCodeEnum.java
+68
-0
OrderExchangeReasonEnum.java
...r/mall/order/biz/enums/order/OrderExchangeReasonEnum.java
+40
-0
OrderHasReturnExchangeEnum.java
...all/order/biz/enums/order/OrderHasReturnExchangeEnum.java
+37
-0
OrderPayStatus.java
...cn/iocoder/mall/order/biz/enums/order/OrderPayStatus.java
+34
-0
OrderRecipientTypeEnum.java
...er/mall/order/biz/enums/order/OrderRecipientTypeEnum.java
+39
-0
OrderReturnReasonEnum.java
...der/mall/order/biz/enums/order/OrderReturnReasonEnum.java
+52
-0
OrderReturnServiceTypeEnum.java
...all/order/biz/enums/order/OrderReturnServiceTypeEnum.java
+36
-0
OrderReturnStatusEnum.java
...der/mall/order/biz/enums/order/OrderReturnStatusEnum.java
+45
-0
OrderReturnTypeEnum.java
...coder/mall/order/biz/enums/order/OrderReturnTypeEnum.java
+31
-0
OrderStatusEnum.java
...n/iocoder/mall/order/biz/enums/order/OrderStatusEnum.java
+38
-0
PayAppId.java
.../java/cn/iocoder/mall/order/biz/enums/order/PayAppId.java
+16
-0
OrderCommentBO.java
.../cn/iocoder/mall/order/biz/bo/comment/OrderCommentBO.java
+86
-0
OrderCommentCreateBO.java
...coder/mall/order/biz/bo/comment/OrderCommentCreateBO.java
+25
-0
OrderCommentInfoAndMerchantReplyBO.java
...er/biz/bo/comment/OrderCommentInfoAndMerchantReplyBO.java
+29
-0
OrderCommentInfoBO.java
...iocoder/mall/order/biz/bo/comment/OrderCommentInfoBO.java
+84
-0
OrderCommentMerchantReplyBO.java
...all/order/biz/bo/comment/OrderCommentMerchantReplyBO.java
+21
-0
OrderCommentPageBO.java
...iocoder/mall/order/biz/bo/comment/OrderCommentPageBO.java
+107
-0
OrderCommentReplyCreateBO.java
.../mall/order/biz/bo/comment/OrderCommentReplyCreateBO.java
+24
-0
OrderCommentReplyPageBO.java
...er/mall/order/biz/bo/comment/OrderCommentReplyPageBO.java
+83
-0
OrderCommentStateInfoPageBO.java
...all/order/biz/bo/comment/OrderCommentStateInfoPageBO.java
+87
-0
OrderCommentTimeOutBO.java
...oder/mall/order/biz/bo/comment/OrderCommentTimeOutBO.java
+25
-0
CalcOrderPriceBO.java
.../cn/iocoder/mall/order/biz/bo/order/CalcOrderPriceBO.java
+180
-0
CalcSkuPriceBO.java
...va/cn/iocoder/mall/order/biz/bo/order/CalcSkuPriceBO.java
+33
-0
CartItemBO.java
...n/java/cn/iocoder/mall/order/biz/bo/order/CartItemBO.java
+100
-0
OrderBO.java
...main/java/cn/iocoder/mall/order/biz/bo/order/OrderBO.java
+115
-0
OrderCreateBO.java
...ava/cn/iocoder/mall/order/biz/bo/order/OrderCreateBO.java
+30
-0
OrderInfoBO.java
.../java/cn/iocoder/mall/order/biz/bo/order/OrderInfoBO.java
+233
-0
OrderItemBO.java
.../java/cn/iocoder/mall/order/biz/bo/order/OrderItemBO.java
+143
-0
OrderLastLogisticsInfoBO.java
...der/mall/order/biz/bo/order/OrderLastLogisticsInfoBO.java
+85
-0
OrderLogisticsBO.java
.../cn/iocoder/mall/order/biz/bo/order/OrderLogisticsBO.java
+41
-0
OrderLogisticsInfoBO.java
...iocoder/mall/order/biz/bo/order/OrderLogisticsInfoBO.java
+82
-0
OrderLogisticsInfoWithOrderBO.java
...all/order/biz/bo/order/OrderLogisticsInfoWithOrderBO.java
+100
-0
OrderPageBO.java
.../java/cn/iocoder/mall/order/biz/bo/order/OrderPageBO.java
+28
-0
OrderPayBO.java
...n/java/cn/iocoder/mall/order/biz/bo/order/OrderPayBO.java
+12
-0
OrderRecipientBO.java
.../cn/iocoder/mall/order/biz/bo/order/OrderRecipientBO.java
+45
-0
OrderReturnInfoBO.java
...cn/iocoder/mall/order/biz/bo/order/OrderReturnInfoBO.java
+141
-0
OrderReturnListBO.java
...cn/iocoder/mall/order/biz/bo/order/OrderReturnListBO.java
+124
-0
PostageDetailBO.java
...a/cn/iocoder/mall/order/biz/bo/order/PostageDetailBO.java
+14
-0
DatabaseConfiguration.java
.../iocoder/mall/order/biz/config/DatabaseConfiguration.java
+28
-0
CartConvert.java
...n/java/cn/iocoder/mall/order/biz/convert/CartConvert.java
+15
-0
OrderCommentConvert.java
...n/iocoder/mall/order/biz/convert/OrderCommentConvert.java
+44
-0
OrderCommentReplyConvert.java
...oder/mall/order/biz/convert/OrderCommentReplyConvert.java
+30
-0
OrderConvert.java
.../java/cn/iocoder/mall/order/biz/convert/OrderConvert.java
+22
-0
OrderItemConvert.java
...a/cn/iocoder/mall/order/biz/convert/OrderItemConvert.java
+31
-0
OrderLogisticsConvert.java
...iocoder/mall/order/biz/convert/OrderLogisticsConvert.java
+48
-0
OrderLogisticsDetailConvert.java
...r/mall/order/biz/convert/OrderLogisticsDetailConvert.java
+20
-0
OrderRecipientConvert.java
...iocoder/mall/order/biz/convert/OrderRecipientConvert.java
+31
-0
OrderReturnConvert.java
...cn/iocoder/mall/order/biz/convert/OrderReturnConvert.java
+31
-0
CartMapper.java
...n/java/cn/iocoder/mall/order/biz/dao/cart/CartMapper.java
+46
-0
OrderCommentMapper.java
...ocoder/mall/order/biz/dao/comment/OrderCommentMapper.java
+84
-0
OrderCommentReplayMapper.java
.../mall/order/biz/dao/comment/OrderCommentReplayMapper.java
+58
-0
OrderCancelMapper.java
...n/iocoder/mall/order/biz/dao/order/OrderCancelMapper.java
+17
-0
OrderItemMapper.java
.../cn/iocoder/mall/order/biz/dao/order/OrderItemMapper.java
+84
-0
OrderLogisticsDetailMapper.java
.../mall/order/biz/dao/order/OrderLogisticsDetailMapper.java
+66
-0
OrderLogisticsMapper.java
...ocoder/mall/order/biz/dao/order/OrderLogisticsMapper.java
+53
-0
OrderMapper.java
...java/cn/iocoder/mall/order/biz/dao/order/OrderMapper.java
+53
-0
OrderRecipientMapper.java
...ocoder/mall/order/biz/dao/order/OrderRecipientMapper.java
+47
-0
OrderReturnMapper.java
...n/iocoder/mall/order/biz/dao/order/OrderReturnMapper.java
+68
-0
CartItemDO.java
...java/cn/iocoder/mall/order/biz/dataobject/CartItemDO.java
+95
-0
OrderCancelDO.java
...a/cn/iocoder/mall/order/biz/dataobject/OrderCancelDO.java
+41
-0
OrderCommentDO.java
.../cn/iocoder/mall/order/biz/dataobject/OrderCommentDO.java
+125
-0
OrderCommentReplyDO.java
...ocoder/mall/order/biz/dataobject/OrderCommentReplyDO.java
+87
-0
OrderDO.java
...in/java/cn/iocoder/mall/order/biz/dataobject/OrderDO.java
+104
-0
OrderExchangeDO.java
...cn/iocoder/mall/order/biz/dataobject/OrderExchangeDO.java
+113
-0
OrderItemDO.java
...ava/cn/iocoder/mall/order/biz/dataobject/OrderItemDO.java
+143
-0
OrderLogisticsDO.java
...n/iocoder/mall/order/biz/dataobject/OrderLogisticsDO.java
+46
-0
OrderLogisticsDetailDO.java
...der/mall/order/biz/dataobject/OrderLogisticsDetailDO.java
+37
-0
OrderPreferentialDO.java
...ocoder/mall/order/biz/dataobject/OrderPreferentialDO.java
+46
-0
OrderRecipientDO.java
...n/iocoder/mall/order/biz/dataobject/OrderRecipientDO.java
+48
-0
OrderReturnDO.java
...a/cn/iocoder/mall/order/biz/dataobject/OrderReturnDO.java
+102
-0
README.md
.../main/java/cn/iocoder/mall/order/biz/dataobject/README.md
+22
-0
OrderCommentCreateDTO.java
...der/mall/order/biz/dto/comment/OrderCommentCreateDTO.java
+84
-0
OrderCommentPageDTO.java
...coder/mall/order/biz/dto/comment/OrderCommentPageDTO.java
+32
-0
OrderCommentReplyCreateDTO.java
...all/order/biz/dto/comment/OrderCommentReplyCreateDTO.java
+70
-0
OrderCommentReplyPageDTO.java
.../mall/order/biz/dto/comment/OrderCommentReplyPageDTO.java
+41
-0
OrderCommentStateInfoPageDTO.java
...l/order/biz/dto/comment/OrderCommentStateInfoPageDTO.java
+38
-0
OrderCommentTimeOutPageDTO.java
...all/order/biz/dto/comment/OrderCommentTimeOutPageDTO.java
+36
-0
CalcOrderPriceDTO.java
...n/iocoder/mall/order/biz/dto/order/CalcOrderPriceDTO.java
+56
-0
OrderCreateDTO.java
...a/cn/iocoder/mall/order/biz/dto/order/OrderCreateDTO.java
+64
-0
OrderDeliveryDTO.java
...cn/iocoder/mall/order/biz/dto/order/OrderDeliveryDTO.java
+41
-0
OrderItemDeletedDTO.java
...iocoder/mall/order/biz/dto/order/OrderItemDeletedDTO.java
+25
-0
OrderItemUpdateDTO.java
.../iocoder/mall/order/biz/dto/order/OrderItemUpdateDTO.java
+40
-0
OrderLogisticsUpdateDTO.java
...der/mall/order/biz/dto/order/OrderLogisticsUpdateDTO.java
+51
-0
OrderQueryDTO.java
...va/cn/iocoder/mall/order/biz/dto/order/OrderQueryDTO.java
+59
-0
OrderReturnApplyDTO.java
...iocoder/mall/order/biz/dto/order/OrderReturnApplyDTO.java
+37
-0
OrderReturnCreateDTO.java
...ocoder/mall/order/biz/dto/order/OrderReturnCreateDTO.java
+41
-0
OrderReturnQueryDTO.java
...iocoder/mall/order/biz/dto/order/OrderReturnQueryDTO.java
+56
-0
OrderUserPageDTO.java
...cn/iocoder/mall/order/biz/dto/order/OrderUserPageDTO.java
+45
-0
CartService.java
...n/java/cn/iocoder/mall/order/biz/service/CartService.java
+177
-0
OrderCommentReplyService.java
...oder/mall/order/biz/service/OrderCommentReplyService.java
+40
-0
OrderCommentService.java
...n/iocoder/mall/order/biz/service/OrderCommentService.java
+61
-0
OrderLogisticsService.java
...iocoder/mall/order/biz/service/OrderLogisticsService.java
+39
-0
OrderReturnService.java
...cn/iocoder/mall/order/biz/service/OrderReturnService.java
+79
-0
OrderService.java
.../java/cn/iocoder/mall/order/biz/service/OrderService.java
+156
-0
CartServiceImpl.java
.../iocoder/mall/order/biz/service/impl/CartServiceImpl.java
+488
-0
OrderCommentReplyServiceImpl.java
.../order/biz/service/impl/OrderCommentReplyServiceImpl.java
+72
-0
OrderCommentServiceImpl.java
.../mall/order/biz/service/impl/OrderCommentServiceImpl.java
+93
-0
OrderLogisticsServiceImpl.java
...all/order/biz/service/impl/OrderLogisticsServiceImpl.java
+131
-0
OrderReturnServiceImpl.java
...r/mall/order/biz/service/impl/OrderReturnServiceImpl.java
+235
-0
OrderServiceImpl.java
...iocoder/mall/order/biz/service/impl/OrderServiceImpl.java
+604
-0
biz.yaml
order/order-biz/src/main/resources/biz.yaml
+2
-2
CartMapper.xml
order/order-biz/src/main/resources/mapper/CartMapper.xml
+129
-0
OrderCancelMapper.xml
...order-biz/src/main/resources/mapper/OrderCancelMapper.xml
+22
-0
OrderCommentMapper.xml
...rder-biz/src/main/resources/mapper/OrderCommentMapper.xml
+104
-0
OrderCommentReplayMapper.xml
...iz/src/main/resources/mapper/OrderCommentReplayMapper.xml
+81
-0
OrderItemMapper.xml
...r/order-biz/src/main/resources/mapper/OrderItemMapper.xml
+172
-0
OrderLogisticsDetailMapper.xml
.../src/main/resources/mapper/OrderLogisticsDetailMapper.xml
+76
-0
OrderLogisticsMapper.xml
...er-biz/src/main/resources/mapper/OrderLogisticsMapper.xml
+80
-0
OrderMapper.xml
order/order-biz/src/main/resources/mapper/OrderMapper.xml
+141
-0
OrderRecipientMapper.xml
...er-biz/src/main/resources/mapper/OrderRecipientMapper.xml
+46
-0
OrderReturnMapper.xml
...order-biz/src/main/resources/mapper/OrderReturnMapper.xml
+165
-0
CartMapper.xml
...der-service-impl/src/main/resources/mapper/CartMapper.xml
+1
-1
OrderCancelMapper.xml
...vice-impl/src/main/resources/mapper/OrderCancelMapper.xml
+1
-1
OrderCommentMapper.xml
...ice-impl/src/main/resources/mapper/OrderCommentMapper.xml
+2
-3
OrderCommentReplayMapper.xml
...pl/src/main/resources/mapper/OrderCommentReplayMapper.xml
+1
-1
OrderItemMapper.xml
...ervice-impl/src/main/resources/mapper/OrderItemMapper.xml
+1
-1
OrderLogisticsDetailMapper.xml
.../src/main/resources/mapper/OrderLogisticsDetailMapper.xml
+1
-1
OrderLogisticsMapper.xml
...e-impl/src/main/resources/mapper/OrderLogisticsMapper.xml
+2
-3
OrderMapper.xml
...er-service-impl/src/main/resources/mapper/OrderMapper.xml
+1
-1
OrderRecipientMapper.xml
...e-impl/src/main/resources/mapper/OrderRecipientMapper.xml
+1
-1
OrderReturnMapper.xml
...vice-impl/src/main/resources/mapper/OrderReturnMapper.xml
+1
-1
没有找到文件。
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/cart/CartItemStatusEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
cart
;
import
java.util.Arrays
;
public
enum
CartItemStatusEnum
{
ENABLE
(
1
,
"正常"
),
DELETE_BY_MANUAL
(
2
,
"主动删除"
),
DELETE_BY_ORDER
(
3
,
"下单删除"
),
;
public
static
final
int
[]
ARRAYS
=
Arrays
.
stream
(
values
()).
mapToInt
(
CartItemStatusEnum:
:
getValue
).
toArray
();
/**
* 状态值
*/
private
Integer
value
;
/**
* 状态名
*/
private
String
name
;
CartItemStatusEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
Integer
getValue
()
{
return
value
;
}
public
CartItemStatusEnum
setValue
(
Integer
value
)
{
this
.
value
=
value
;
return
this
;
}
public
String
getName
()
{
return
name
;
}
public
CartItemStatusEnum
setName
(
String
name
)
{
this
.
name
=
name
;
return
this
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/comment/OrderCommentRelpyTypeEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
comment
;
/**
*
* 评论回复类型
*
* @author wtz
* @time 2019-06-01 10:30:00
*/
public
enum
OrderCommentRelpyTypeEnum
{
REPLY_REPLY
(
0
,
"回复的回复"
),
COMMENT_REPLY
(
1
,
"评论的回复"
);
/**
* 状态值
*/
private
Integer
value
;
/**
* 状态名
*/
private
String
name
;
OrderCommentRelpyTypeEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/comment/OrderCommentStatusEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
comment
;
/**
* 订单评论状态
*
* @author wtz
* @time 2019-06-15 14:26
*/
public
enum
OrderCommentStatusEnum
{
WAIT_COMMENT
(
0
,
"待评论"
),
SUCCESS_COMMENT
(
1
,
"评论成功"
);
/**
* 状态值
*/
private
Integer
value
;
/**
* 状态名
*/
private
String
name
;
OrderCommentStatusEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/comment/OrderReplyUserTypeEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
comment
;
/**
*
* 评论回复 - 回复的用户的类型
*
* @author wtz
* @time 2019-05-19 15:19
*/
public
enum
OrderReplyUserTypeEnum
{
USER
(
0
,
"普通用户"
),
MERCHANT
(
1
,
"商家"
);
/**
* 状态值
*/
private
Integer
value
;
/**
* 状态名
*/
private
String
name
;
OrderReplyUserTypeEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/DictKeyConstants.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 字典 keys 定义
*
* @author Sin
* @time 2019-04-14 17:46
*/
public
class
DictKeyConstants
{
/**
* 订单 - status
*/
public
static
final
String
ORDER_STATUS
=
"order_status"
;
/**
* 订单 - 物流商家
*/
public
static
final
String
ORDER_LOGISTICS_COMPANY
=
"logistics_company"
;
/**
* 订单 - 退货原因
*/
public
static
final
String
ORDER_RETURN_REASON
=
"order_return_reason"
;
/**
* 订单退货 - 退货类型
*/
public
static
final
String
ORDER_RETURN_SERVICE_TYPE
=
"order_return_service_type"
;
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/ErrorCodeInterval.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
import
cn.iocoder.common.framework.constant.ModuleErrorCodeInterval
;
/**
* 错误码区间
*
* 当前模块化区间:[1-008-000-000 ~ 1-008-000-000]
*
* @author Sin
* @time 2019-03-23 11:35
*/
public
class
ErrorCodeInterval
extends
ModuleErrorCodeInterval
{
// OrderErrorCodeEnum 错误码区间 [1-008-000-000 ~ 1-008-000-000]
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/LogisticsEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 物流信息
*
* @author Sin
* @time 2019-03-30 22:33
*/
public
enum
LogisticsEnum
{
LOGISTICS_1
(
1
,
"顺丰快递"
),
LOGISTICS_2
(
2
,
"圆通快递"
),
LOGISTICS_3
(
3
,
"申通快递"
),
LOGISTICS_4
(
4
,
"韵答快递"
),
LOGISTICS_5
(
5
,
"天天快递"
),
LOGISTICS_6
(
6
,
"EMS中国邮政"
),
;
/**
* 状态值
*/
private
Integer
value
;
/**
* 状态名
*/
private
String
name
;
LogisticsEnum
(
int
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
int
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/MQConstants.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* MQ 订阅消息
*
* @author Sin
* @time 2019-03-16 15:04
*/
public
class
MQConstants
{
/**
* 订单 - 创建成功 消息
*/
public
static
final
String
ORDER_CREATE_SUCCESS
=
"order.orderCreateSuccess"
;
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderCancelReasonsEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单取消原因
* order_cancel_reasons
* @author Sin
* @time 2019-03-30 15:08
*/
public
enum
OrderCancelReasonsEnum
{
CANCEL_1
(
1
,
"无法联系上买家"
),
CANCEL_2
(
2
,
"买家误拍或重拍了"
),
CANCEL_3
(
3
,
"买家无诚意完成交易"
),
CANCEL_4
(
4
,
"已通过银行线下汇款"
),
CANCEL_5
(
5
,
"已通过同城见面交易"
),
CANCEL_6
(
6
,
"已通过货到付款交易"
),
CANCEL_7
(
7
,
"已通过网上银行直接汇款"
),
CANCEL_8
(
8
,
"已经缺货无法交易"
),
CANCEL_20
(
20
,
"其他"
),
;
// 无法联系上买家
// 买家误拍或重拍了
// 买家无诚意完成交易
// 已通过银行线下汇款
// 已通过同城见面交易
// 已通过货到付款交易
// 已通过网上银行直接汇款
// 已经缺货无法交易
private
final
int
code
;
private
final
String
message
;
OrderCancelReasonsEnum
(
int
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
@Override
public
String
toString
()
{
return
"OrderCancelEnum{"
+
"code="
+
code
+
", message='"
+
message
+
'\''
+
'}'
;
}
public
int
getCode
()
{
return
code
;
}
public
String
getMessage
()
{
return
message
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderDeliveryTypeEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 发货类型/发货方式
*
* @author Sin
* @time 2019-04-05 16:03
*/
public
enum
OrderDeliveryTypeEnum
{
NONE
(
1
,
"未选择"
),
ORDER_ONLINE
(
2
,
"快递"
),
CONTACT_YOURSELF
(
3
,
"自己联系"
),
NO_DELIVERY
(
4
,
"无物流信息"
),
;
private
Integer
value
;
private
String
name
;
OrderDeliveryTypeEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
@Override
public
String
toString
()
{
return
"OrderRecipientTypeEnum{"
+
"value="
+
value
+
", name='"
+
name
+
'\''
+
'}'
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderErrorCodeEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单错误码
*
* 错误码区间 [1-008-000-000 ~ 1-008-000-000]
*
* @author Sin
* @time 2019-03-23 11:23
*/
public
enum
OrderErrorCodeEnum
{
// order
ORDER_NOT_EXISTENT
(
1008000000
,
"获取订单不存在!"
),
ORDER_GET_SKU_FAIL
(
1008000001
,
"获取商品失败!"
),
ORDER_GET_SKU_NOT_EXISTENT
(
1008000002
,
"获取的商品不存在!"
),
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
(
1008000010
,
"调用pay失败!"
),
ORDER_NOT_USER_ORDER
(
1008000011
,
"不是该用户的订单!"
),
ORDER_UNABLE_CONFIRM_ORDER
(
1008000012
,
"状态不对不能确认订单!"
),
ORDER_CREATE_CART_IS_EMPTY
(
1008000013
,
"购物车无选中的商品,无法创建订单"
),
ORDER_STATUS_NOT_WAITING_PAYMENT
(
1008000014
,
"订单不处于等待支付状态"
),
ORDER_PAY_AMOUNT_ERROR
(
1008000015
,
"订单金额不正确"
),
// order item
ORDER_ITEM_ONLY_ONE
(
1008000200
,
"订单Item只有一个!"
),
ORDER_ITEM_SOME_NOT_EXISTS
(
1008000201
,
"有不存在的商品!"
),
// 订单退货
ORDER_RETURN_NO_RETURN_APPLY
(
1008000400
,
"未退货申请"
),
ORDER_RETURN_NOT_EXISTENT
(
1008000401
,
"退货订单不存在"
),
ORDER_RETURN_REFUND_FAILED
(
1008000402
,
"退款失败"
),
// ========== 购物车 ==========
CARD_ITEM_NOT_FOUND
(
1008003000
,
"购物车项不存在"
),
CARD_ITEM_SKU_NOT_FOUND
(
1008003001
,
"商品不存在"
),
CARD_ITEM_SKU_QUANTITY_NOT_ENOUGH
(
1008003002
,
"商品库存不足"
),
// 工具类服务 1008004000
DICT_SERVER_INVOKING_FAIL
(
1008004000
,
"字典服务调用失败!"
),
ORDER_LOGISTICS_INVOKING_FAIL
(
1008004001
,
"订单物流调用失败!"
),
;
private
final
int
code
;
private
final
String
message
;
OrderErrorCodeEnum
(
int
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
int
getCode
()
{
return
code
;
}
public
String
getMessage
()
{
return
message
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderExchangeReasonEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单换货原因
*
* @author Sin
* @time 2019-03-20 21:17
*/
public
enum
OrderExchangeReasonEnum
{
REASON_000
(
0
,
"其他"
),
REASON_001
(
1
,
"尺码不合适"
),
REASON_002
(
2
,
"质量问题"
),
REASON_003
(
3
,
"不喜欢"
),
;
private
Integer
value
;
private
String
name
;
OrderExchangeReasonEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
@Override
public
String
toString
()
{
return
"OrderCommonReasonEnum{"
+
"value="
+
value
+
", name="
+
name
+
'}'
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderHasReturnExchangeEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单 - 是否退换货状态
*
* @author Sin
* @time 2019-03-22 21:34
*/
public
enum
OrderHasReturnExchangeEnum
{
NO
(
1
,
"没有"
),
RETURN_GOODS
(
2
,
"退货"
),
EXCHANGE_GOODS
(
3
,
"换货"
),
RETURN_EXCHANGE_GOODS
(
4
,
"退换货"
);
/**
* 状态值
*/
private
Integer
value
;
/**
* 状态名
*/
private
String
name
;
OrderHasReturnExchangeEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderPayStatus.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单状态 status
*
* @author Sin
* @time 2019-03-16 14:32
*/
public
enum
OrderPayStatus
{
WAITING_PAYMENT
(
0
,
"等待支付"
),
SUCCESSFUL_PAYMENT
(
1
,
"支付成功"
),
REFUND_PAYMENT
(
2
,
"退款成功"
),
;
private
final
int
value
;
private
final
String
name
;
OrderPayStatus
(
int
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
int
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderRecipientTypeEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单收件信息 type(配送信息)
*
* @author Sin
* @time 2019-04-05 16:03
*/
public
enum
OrderRecipientTypeEnum
{
EXPRESS
(
1
,
"快递"
)
;
private
Integer
value
;
private
String
name
;
OrderRecipientTypeEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
@Override
public
String
toString
()
{
return
"OrderRecipientTypeEnum{"
+
"value="
+
value
+
", name='"
+
name
+
'\''
+
'}'
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderReturnReasonEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单退货原因
*
* @author Sin
* @time 2019-03-20 21:17
*/
public
enum
OrderReturnReasonEnum
{
///
/// 未发货情况
REASON_000
(
0
,
"其他"
),
REASON_001
(
1
,
"拍错/勿拍/多拍"
),
REASON_002
(
2
,
"缺货"
),
///
/// 已发货情况
REASON_020
(
20
,
"七天无理由"
),
REASON_021
(
21
,
"质量问题"
),
REASON_022
(
22
,
"不想要了"
),
;
// TODO: 2019-03-20 Sin 已发货情况 补全,需要对照一下 淘宝
private
Integer
value
;
private
String
name
;
OrderReturnReasonEnum
(
Integer
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
@Override
public
String
toString
()
{
return
"OrderCommonReasonEnum{"
+
"value="
+
value
+
", name="
+
name
+
'}'
;
}
public
Integer
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderReturnServiceTypeEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单退货 - returnType
*
* @author Sin
* @time 2019-04-27 11:53
*/
public
enum
OrderReturnServiceTypeEnum
{
/**
* 状态
*
* - 1、退货退款
* - 2、退款
*/
RETURN_REFUND
(
1
,
"退货退款"
),
REFUND
(
2
,
"退款"
)
;
private
final
int
value
;
private
final
String
name
;
OrderReturnServiceTypeEnum
(
int
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
int
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderReturnStatusEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单退货 status
*
* @author Sin
* @time 2019-03-30 15:56
*/
public
enum
OrderReturnStatusEnum
{
/**
* 状态
*
* - 1、退货申请
* - 2、申请成功
* - 3、申请失败
* - 4、退货中
* - 5、已收货
* - 6、拒绝退款
*/
RETURN_APPLICATION
(
1
,
"退货申请"
),
APPLICATION_SUCCESSFUL
(
2
,
"申请成功"
),
APPLICATION_FAIL
(
3
,
"申请失败"
),
RETURN_IN
(
4
,
"退货中"
),
ORDER_RECEIPT
(
5
,
"确认收货"
),
RETURN_SUCCESS
(
6
,
"退货成功"
),
;
private
final
int
value
;
private
final
String
name
;
OrderReturnStatusEnum
(
int
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
int
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderReturnTypeEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单退货 类型
*
* @author Sin
* @time 2019-03-30 15:42
*/
public
enum
OrderReturnTypeEnum
{
ORDER
(
1
,
"订单"
),
ORDER_ITEM
(
2
,
"订单item"
),
;
private
final
int
value
;
private
final
String
name
;
OrderReturnTypeEnum
(
int
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
int
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/OrderStatusEnum.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 订单 - status
*
* @author Sin
* @time 2019-03-16 14:06
*/
public
enum
OrderStatusEnum
{
WAITING_PAYMENT
(
1
,
"等待付款"
),
WAIT_SHIPMENT
(
2
,
"等待发货"
),
ALREADY_SHIPMENT
(
3
,
"已发货"
),
COMPLETED
(
4
,
"已完成"
),
CLOSED
(
5
,
"已关闭"
);
/**
* 状态值
*/
private
Integer
value
;
/**
* 状态名
*/
private
String
name
;
OrderStatusEnum
(
int
value
,
String
name
)
{
this
.
value
=
value
;
this
.
name
=
name
;
}
public
int
getValue
()
{
return
value
;
}
public
String
getName
()
{
return
name
;
}
}
order/order-biz-api/src/main/java/cn/iocoder/mall/order/biz/enums/order/PayAppId.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
enums
.
order
;
/**
* 支付 AppId
*
* @author Sin
* @time 2019-04-08 19:54
*/
public
class
PayAppId
{
/**
* 电商
*/
public
static
final
String
APP_ID_SHOP_ORDER
=
"POd4RC6a"
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/comment/OrderCommentBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
*
* 订单评价
*
* @author wtz
* @time 2019-05-14 20:00:00
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentBO
implements
Serializable
{
/**
* 总条数
*/
private
Integer
total
;
/**
* 好评
*/
private
Integer
positiveTotal
;
/**
* 中评
*/
private
Integer
moderateTotal
;
/**
* 差评
*/
private
Integer
negativeTotal
;
/**
* 评论 id
*/
private
Integer
id
;
/**
* 用户头像
*/
private
String
userAvatar
;
/**
* 用户的真实姓名
*/
private
String
userNickName
;
/**
* 评价星
*/
private
Integer
star
;
/**
* 评论的内容
*/
private
String
commentContent
;
/**
* 评论的图片地址
*/
private
String
commentPics
;
/**
* 回复条数
*/
private
Integer
replayCount
;
/**
* 点赞数
*/
private
Integer
collectCount
;
/**
* 创建时间
*/
private
Date
createTime
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/comment/OrderCommentCreateBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
*
* 订单评论创建
*
* @author wtz
* @time 2019-05-19 18:32
*
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentCreateBO
implements
Serializable
{
/**
* 订单评论 id
*/
private
Integer
id
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/comment/OrderCommentInfoAndMerchantReplyBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.List
;
/**
*
* 评论详情和商家评论回复
*
* @author wtz
* @time 2019-06-03 20:30
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentInfoAndMerchantReplyBO
{
/**
* 评论详情
*/
private
OrderCommentInfoBO
orderCommentInfoBO
;
/**
* 商家评论回复
*/
private
List
<
OrderCommentMerchantReplyBO
>
orderCommentMerchantReplyBOS
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/comment/OrderCommentInfoBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
*
* 订单回复评价详情
*
* @author wtz
* @time 2019-05-16 18:40
*
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentInfoBO
implements
Serializable
{
/**
* 评论 id
*/
private
Integer
id
;
/**
* 用户头像
*/
private
String
userAvatar
;
/**
* 用户昵称
*/
private
String
userNickName
;
/**
* 评价星
*/
private
Integer
star
;
/**
* 评论的内容
*/
private
String
commentContent
;
/**
* 评论的图片地址
*/
private
String
commentPics
;
/**
* 点赞数
*/
private
Integer
likeCount
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 商品 sku id
*/
private
int
productSkuId
;
/**
* 商品 sku 属性
*/
private
String
productSkuAttrs
;
/**
* 商品 sku 价格
*/
private
String
productSkuPrice
;
/**
* 商品 sku 地址
*/
private
String
productSkuPicUrl
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/comment/OrderCommentMerchantReplyBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
*
* 商家评论回复
*
* @author wtz
* @time 2019-06-03 19:30
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentMerchantReplyBO
{
/**
* 商家评论回复
*/
private
String
replyContent
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/comment/OrderCommentPageBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
comment
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
*
* 订单评论分页展示
*
* @author wtz
* @time 2019-05-14 20:00:00
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentPageBO
implements
Serializable
{
/**
* 总条数
*/
private
Integer
total
;
// 评论标签化等等在做
// /**
// * 好评
// */
// private Integer positiveTotal;
//
// /**
// * 中评
// */
// private Integer moderateTotal;
//
// /**
// * 差评
// */
// private Integer negativeTotal;
/**
* 评论列表
*/
private
List
<
OrderCommentItem
>
orderCommentItems
;
@Data
@Accessors
(
chain
=
true
)
@AllArgsConstructor
public
static
class
OrderCommentItem
{
/**
* 评论 id
*/
private
Integer
id
;
/**
* 用户头像
*/
private
String
userAvatar
;
/**
* 用户的真实姓名
*/
private
String
userNickName
;
/**
* 评价星
*/
private
Integer
star
;
/**
* 评论的内容
*/
private
String
commentContent
;
/**
* 评论的图片地址
*/
private
String
commentPics
;
/**
* 回复条数
*/
private
Integer
replayCount
;
/**
* 点赞数
*/
private
Integer
likeCount
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 商家回复列表
* 只展示最近的一条
*/
private
String
replyContent
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/comment/OrderCommentReplyCreateBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
*
* 订单回复创建
*
* @author wtz
* @time 2019-05-19 18:35
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentReplyCreateBO
implements
Serializable
{
/**
* 评论回复 id
*/
private
Integer
id
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/comment/OrderCommentReplyPageBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
*
* 评论回复分页展示
*
* @author wtz
* @time 2019-05-19 14:19
*
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentReplyPageBO
implements
Serializable
{
/**
* 评论回复总数
*/
private
Integer
total
;
/**
* 用户回复
*/
List
<
OrderCommentReplayItem
>
orderCommentReplayItems
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
OrderCommentReplayItem
{
/**
* 回复 id
*/
private
Integer
id
;
/**
* 回复的类型
*/
private
Integer
replyType
;
/**
* 回复的内容
*/
private
String
replyContent
;
/**
* 回复的用户 id
*/
private
int
replyUserId
;
/**
* 回复用户的真实姓名
*/
private
String
replyUserNickName
;
/**
* 回复用户的头像
*/
private
String
replyUserAvatar
;
/**
* 回复的点赞数
*/
private
int
replyCollectCount
;
/**
* 回复目标用户昵称
*/
private
String
parentUserNickName
;
/**
* 创建时间
*/
private
Date
createTime
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/comment/OrderCommentStateInfoPageBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
*
* 订单评论状态详情分页(这么设计因为这个接口需要登陆以后才能看到所以与订单分页接口分开)
*
* @author wtz
* @time 2019-06-07 10:39
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentStateInfoPageBO
implements
Serializable
{
/**
* (待/已)评论总数
*/
private
Integer
total
;
/**
* 评论状态
*/
private
List
<
OrderCommentStateInfoItem
>
orderCommentStateInfoItems
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
OrderCommentStateInfoItem
{
/**
* 订单 id
*/
private
Integer
orderId
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 商品 id
*/
private
Integer
productSpuId
;
/**
* 商品名称
*/
private
String
productSpuName
;
/**
* 商品 sku id
*/
private
Integer
productSkuId
;
/**
* 商品 sku 属性
*/
private
String
productSkuAttrs
;
/**
* 商品 sku 价格
*/
private
Integer
productSkuPrice
;
/**
* 商品 sku url
*/
private
String
productSkuPicUrl
;
/**
* 订单评论状态
*/
private
Integer
commentState
;
/**
* 创建时间
*/
private
Date
createTime
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/comment/OrderCommentTimeOutBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.io.Serializable
;
/**
* 订单评论超时
*
* @author wtz
* @time 2019-06-15 13:52
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentTimeOutBO
implements
Serializable
{
/**
* 评论 id
*/
private
Integer
id
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/CalcOrderPriceBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
cn.iocoder.mall.product.api.bo.ProductSkuDetailBO
;
import
cn.iocoder.mall.promotion.api.bo.PromotionActivityBO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.List
;
/**
* 计算订单价格结果 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CalcOrderPriceBO
{
/**
* 商品分组数组
*/
private
List
<
ItemGroup
>
itemGroups
;
/**
* 优惠劵编号
*/
private
Integer
couponCardId
;
/**
* 优惠劵减少的金额
*
* 1. 若未使用优惠劵,返回 null
* 2. 该金额,已经分摊到每个 Item 的 discountTotal ,需要注意。
*/
private
Integer
couponCardDiscountTotal
;
/**
* 邮费信息
*
* TODO 芋艿,暂时未弄
*/
private
Postage
postage
;
/**
* 费用
*/
private
Fee
fee
;
/**
* 商品分组
*
* 多个商品,参加同一个活动,从而形成分组。
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
ItemGroup
{
/**
* 优惠活动
*/
// TODO 芋艿,目前只会有【满减送】的情况,未来有新的促销方式,可能需要改成数组
private
PromotionActivityBO
activity
;
/**
* 促销减少的金额
*
* 1. 若未参与促销活动,或不满足促销条件,返回 null
* 2. 该金额,已经分摊到每个 Item 的 discountTotal ,需要注意。
*/
private
Integer
activityDiscountTotal
;
/**
* 商品数组
*/
private
List
<
Item
>
items
;
// /**
// * 费用
// *
// * TODO 芋艿,这里先偷懒,postageTotal 字段用不到。
// */
// private Fee fee; // 注释原因,不用这里了
}
@Data
@Accessors
(
chain
=
true
)
public
static
class
Item
extends
ProductSkuDetailBO
{
// TODO 芋艿,此处先偷懒继承
/**
* 是否选中
*/
private
Boolean
selected
;
/**
* 购买数量
*/
private
Integer
buyQuantity
;
/**
* 优惠活动
*/
private
PromotionActivityBO
activity
;
/**
* 原始单价,单位:分。
*/
private
Integer
originPrice
;
/**
* 购买单价,单位:分
*/
private
Integer
buyPrice
;
/**
* 最终价格,单位:分。
*/
private
Integer
presentPrice
;
/**
* 购买总金额,单位:分
*
* 用途类似 {@link #presentTotal}
*/
private
Integer
buyTotal
;
/**
* 优惠总金额,单位:分。
*/
private
Integer
discountTotal
;
/**
* 最终总金额,单位:分。
*
* 注意,presentPrice * quantity 不一定等于 presentTotal 。
* 因为,存在无法整除的情况。
* 举个例子,presentPrice = 8.33 ,quantity = 3 的情况,presentTotal 有可能是 24.99 ,也可能是 25 。
* 所以,需要存储一个该字段。
*/
private
Integer
presentTotal
;
}
/**
* 费用(合计)
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Fee
{
/**
* 购买总价
*/
private
Integer
buyTotal
;
/**
* 优惠总价
*
* 注意,满多少元包邮,不算在优惠中。
*/
private
Integer
discountTotal
;
/**
* 邮费 TODO 芋艿,将 postage 改成 logistics
*/
private
Integer
postageTotal
;
/**
* 最终价格
*
* 计算公式 = 总价 - 优惠总价 + 邮费
*/
private
Integer
presentTotal
;
public
Fee
()
{
}
public
Fee
(
Integer
buyTotal
,
Integer
discountTotal
,
Integer
postageTotal
,
Integer
presentTotal
)
{
this
.
buyTotal
=
buyTotal
;
this
.
discountTotal
=
discountTotal
;
this
.
postageTotal
=
postageTotal
;
this
.
presentTotal
=
presentTotal
;
}
}
/**
* 邮费信息
*/
@Data
@Accessors
(
chain
=
true
)
public
static
class
Postage
{
/**
* 需要满足多少钱,可以包邮。单位:分
*/
private
Integer
threshold
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/CalcSkuPriceBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
cn.iocoder.mall.promotion.api.bo.PromotionActivityBO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* 计算商品 SKU 价格结果 BO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CalcSkuPriceBO
implements
Serializable
{
/**
* 满减送促销活动
*/
private
PromotionActivityBO
fullPrivilege
;
/**
* 限时折扣促销活动
*/
private
PromotionActivityBO
timeLimitedDiscount
;
/**
* 原价格,单位:分。
*/
private
Integer
originalPrice
;
/**
* 购买价格,单位:分。
*/
private
Integer
buyPrice
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/CartItemBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.util.Date
;
/**
* 购物车的商品信息 DO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CartItemBO
{
// ========= 基础字段 BEGIN =========
/**
* 编号,唯一自增。
*/
private
Integer
id
;
/**
* 状态
*
* 1-正常
* 2-主动删除
* 3-下单删除
*/
private
Integer
status
;
/**
* 是否选中
*/
private
Boolean
selected
;
// ========= 基础字段 END =========
// ========= 买家信息 BEGIN =========
/**
* 用户编号
*/
private
Integer
userId
;
// /**
// * 会话 key
// */
// private String nobody;
// ========= 买家信息 END =========
// ========= 商品信息 BEGIN =========
/**
* 商品 SPU 编号
*/
private
Integer
spuId
;
/**
* 商品 SKU 编号
*/
private
Integer
skuId
;
/**
* 商品购买数量
*/
private
Integer
quantity
;
// TODO 冗余字段
// ========= 商品信息 END =========
// ========= 交易信息 BEGIN =========
/**
* 订单编号
*/
private
Integer
orderId
;
/**
* 订单创建时间
*/
private
Date
orderCreateTime
;
// ========= 交易信息 BEGIN =========
// ========= 优惠信息 BEGIN =========
// /**
// * 商品营销活动编号
// */
// private Integer activityId;
// /**
// * 商品营销活动类型
// */
// private Integer activityType;
// ========= 优惠信息 END =========
/**
* 创建时间
*/
private
Date
createTime
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 订单 page
*
* @author Sin
* @time 2019-03-23 14:30
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderBO
implements
Serializable
{
/**
* id
*/
private
Integer
id
;
/**
* 用户编号
*/
private
Integer
userId
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 购买(商品)总金额,单位:分
*/
private
Integer
buyPrice
;
/**
* 优惠总金额,单位:分。
*/
private
Integer
discountPrice
;
/**
* 物流金额 (分)
*/
private
Integer
logisticsPrice
;
/**
* 最终金额,单位:分
*
* buyPrice + logisticsPrice - discountPrice = presentPrice
*/
private
Integer
presentPrice
;
/**
* 实际已支付金额,单位:分
*
* 初始时,金额为 0 。等到支付成功后,会进行更新。
*/
private
Integer
payAmount
;
///
/// 时间信息
/**
* 付款时间(待发货)
*/
private
Date
paymentTime
;
/**
* 发货时间(待收货)
*/
private
Date
deliveryTime
;
/**
* 收货时间(已签收)
*/
private
Date
receiverTime
;
/**
* 成交时间(用户确认收货 -> status = 已完成)
*/
private
Date
closingTime
;
///
/// 其他
/**
* 是否退货
*
* - 0、没有
* - 1、换货
* - 2、退货
* - 3、换货 + 退货
*/
private
Integer
hasReturnExchange
;
/**
* 状态(如果有多个商品分开发货需要全部商品发完才会改变状态)
*
* - 0、待付款
* - 1、待发货
* - 2、待收获
* - 3、已完成
* - 4、已关闭
*/
private
Integer
status
;
/**
* 备注
*/
private
String
remark
;
///
/// 关联信息
/**
* orderItem
*/
private
List
<
OrderItemBO
>
orderItems
;
/**
* 订单物流信息
*/
private
OrderRecipientBO
orderRecipient
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderCreateBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* 订单创建 BO
*
* @author Sin
* @time 2019-03-16 14:38
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCreateBO
implements
Serializable
{
/**
* 编号
*/
private
Integer
id
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 订单金额
*/
private
Integer
payAmount
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderInfoBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 订单 info
*
* @author Sin
* @time 2019-04-14 15:36
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderInfoBO
implements
Serializable
{
/**
* id
*/
private
Integer
id
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 购买(商品)总金额,单位:分
*/
private
Integer
buyPrice
;
/**
* 优惠总金额,单位:分。
*/
private
Integer
discountPrice
;
/**
* 物流金额 (分)
*/
private
Integer
logisticsPrice
;
/**
* 最终金额,单位:分
*
* buyPrice + logisticsPrice - discountPrice = presentPrice
*/
private
Integer
presentPrice
;
/**
* 实际已支付金额,单位:分
*
* 初始时,金额为 0 。等到支付成功后,会进行更新。
*/
private
Integer
payAmount
;
/**
* 付款时间(待发货)
*/
private
Date
paymentTime
;
/**
* 发货时间(待收货)
*/
private
Date
deliveryTime
;
/**
* 收货时间(已签收)
*/
private
Date
receiverTime
;
/**
* 成交时间(用户确认收货 -> status = 已完成)
*/
private
Date
closingTime
;
/**
* 是否退货
*
* - 1、没有
* - 2、换货
* - 3、退货
* - 4、换货 + 退货
*/
private
Integer
hasReturnExchange
;
/**
* 状态(如果有多个商品分开发货需要全部商品发完才会改变状态)
*
* - 1、待付款
* - 2、待发货
* - 3、待收获
* - 4、已完成
* - 5、已关闭
*/
private
Integer
status
;
/**
* 转换的字典值
*/
private
String
statusText
;
/**
* 备注
*/
private
String
remark
;
///
/// 其他信息
/**
* 手机人信息
*/
private
Recipient
recipient
;
/**
* 最新物流信息
*/
private
LogisticsDetail
latestLogisticsDetail
;
/**
* 订单 item
*/
private
List
<
OrderItem
>
orderItems
;
///
/// 其他字段
/**
* 是否退货
*/
private
Integer
hasOrderReturn
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
OrderItem
{
/**
* 商品编号
*/
private
Integer
skuId
;
/**
* 商品名称
*/
private
String
skuName
;
/**
* 商品图片
*/
private
String
skuImage
;
/**
* 数量
*/
private
Integer
quantity
;
/**
* 原始单价,单位:分。
*/
private
Integer
originPrice
;
/**
* 购买单价,单位:分
*/
private
Integer
buyPrice
;
/**
* 最终价格,单位:分。
*/
private
Integer
presentPrice
;
/**
* 购买总金额,单位:分
*
* 用途类似 {@link #presentTotal}
*/
private
Integer
buyTotal
;
/**
* 优惠总金额,单位:分。
*/
private
Integer
discountTotal
;
/**
* 最终总金额,单位:分。
*
* 注意,presentPrice * quantity 不一定等于 presentTotal 。
* 因为,存在无法整除的情况。
* 举个例子,presentPrice = 8.33 ,quantity = 3 的情况,presentTotal 有可能是 24.99 ,也可能是 25 。
* 所以,需要存储一个该字段。
*/
private
Integer
presentTotal
;
}
@Data
@Accessors
(
chain
=
true
)
public
static
class
Recipient
{
/**
* 编号
*/
private
Integer
id
;
/**
* 订单id
*/
private
Integer
orderId
;
/**
* 收件区域编号
*/
private
String
areaNo
;
/**
* 收件人名称
*/
private
String
name
;
/**
* 收件手机号
*/
private
String
mobile
;
/**
* 配送类型
*
* - 1 快递
*/
private
Integer
type
;
/**
* 收件详细地址
*/
private
String
address
;
}
@Data
@Accessors
(
chain
=
true
)
public
static
class
LogisticsDetail
{
/**
* id
*/
private
Integer
id
;
/**
* 物流id
*/
private
Integer
orderLogisticsId
;
/**
* 物流时间
*/
private
Date
logisticsTime
;
/**
* 物流信息
*/
private
String
logisticsInformation
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderItemBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 订单 item
*
* @author Sin
* @time 2019-03-28 21:11
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderItemBO
implements
Serializable
{
/**
* 编号
*/
private
Integer
id
;
/**
* 订单编号
*/
private
Integer
orderId
;
/**
* 订单号
*/
private
String
orderNo
;
/**
* 商品编号
*/
private
Integer
skuId
;
/**
* 商品名称
*/
private
String
skuName
;
/**
* 商品图片
*/
private
String
skuImage
;
/**
* 数量
*/
private
Integer
quantity
;
/**
* 原始单价,单位:分。
*/
private
Integer
originPrice
;
/**
* 购买单价,单位:分
*/
private
Integer
buyPrice
;
/**
* 最终价格,单位:分。
*/
private
Integer
presentPrice
;
/**
* 购买总金额,单位:分
*
* 用途类似 {@link #presentTotal}
*/
private
Integer
buyTotal
;
/**
* 优惠总金额,单位:分。
*/
private
Integer
discountTotal
;
/**
* 最终总金额,单位:分。
*
* 注意,presentPrice * quantity 不一定等于 presentTotal 。
* 因为,存在无法整除的情况。
* 举个例子,presentPrice = 8.33 ,quantity = 3 的情况,presentTotal 有可能是 24.99 ,也可能是 25 。
* 所以,需要存储一个该字段。
*/
private
Integer
presentTotal
;
///
/// 时间信息
/**
* 付款时间
*/
private
Date
paymentTime
;
/**
* 发货时间
*/
private
Date
deliveryTime
;
/**
* 收货时间
*/
private
Date
receiverTime
;
/**
* 成交时间
*/
private
Date
closingTime
;
///
/// 其他
/**
* 是否退货
*
* - 1、没有
* - 2、换货
* - 3、退货
* - 4、换货 + 退货
*/
private
Integer
hasReturnExchange
;
/**
* 发货方式
*
* - 1 未选择
* - 2 在线下单
* - 3 自己联系快递
* - 4 无物流
*/
private
Integer
deliveryType
;
/**
* 状态
*
* - 1、待付款
* - 2、待发货
* - 3、已发货
* - 4、已完成
* - 5、已关闭
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 删除状态
*/
private
Integer
deleted
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderLastLogisticsInfoBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 订单物流 - 最后一个物流信息
*
* @author Sin
* @time 2019-04-12 22:03
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderLastLogisticsInfoBO
implements
Serializable
{
/**
* id
*/
private
Integer
id
;
/**
* 收件区域编号
*/
private
String
areaNo
;
/**
* 收件人名称
*/
private
String
name
;
/**
* 收件手机号
*/
private
String
mobile
;
/**
* 收件详细地址
*/
private
String
address
;
/**
* 物流 (字典)
*/
private
Integer
logistics
;
/**
* 物流 (字典) 转换后的值
*/
private
String
logisticsText
;
/**
* 物流编号
*/
private
String
logisticsNo
;
///
/// 物流信息
/**
* 最后一个物流信息
*/
private
LogisticsDetail
lastLogisticsDetail
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
LogisticsDetail
{
/**
* id
*/
private
Integer
id
;
/**
* 物流id
*/
private
Integer
orderLogisticsId
;
/**
* 物流时间
*/
private
Date
logisticsTime
;
/**
* 物流时间 text
*/
private
String
logisticsTimeText
;
/**
* 物流信息
*/
private
String
logisticsInformation
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderLogisticsBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
cn.iocoder.common.framework.dataobject.BaseDO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 订单物流信息
*
* @author Sin
* @time 2019-03-19 20:47
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderLogisticsBO
extends
BaseDO
{
/**
* id
*/
private
Integer
id
;
/**
* 收件区域编号
*/
private
String
areaNo
;
/**
* 收件人名称
*/
private
String
name
;
/**
* 收件手机号
*/
private
String
mobile
;
/**
* 收件详细地址
*/
private
String
address
;
/**
* 物流编号
*/
private
String
logisticsNo
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderLogisticsInfoBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 订单物流 - 详细信息
*
* @author Sin
* @time 2019-04-12 22:03
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderLogisticsInfoBO
implements
Serializable
{
/**
* id
*/
private
Integer
id
;
/**
* 收件区域编号
*/
private
String
areaNo
;
/**
* 收件人名称
*/
private
String
name
;
/**
* 收件手机号
*/
private
String
mobile
;
/**
* 收件详细地址
*/
private
String
address
;
/**
* 物流 (字典)
*/
private
Integer
logistics
;
/**
* 物流 (字典) 转换后的值
*/
private
String
logisticsText
;
/**
* 物流编号
*/
private
String
logisticsNo
;
///
/// 物流信息
private
List
<
LogisticsDetail
>
details
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
LogisticsDetail
{
/**
* id
*/
private
Integer
id
;
/**
* 物流id
*/
private
Integer
orderLogisticsId
;
/**
* 物流时间
*/
private
Date
logisticsTime
;
/**
* 物流时间 text
*/
private
String
logisticsTimeText
;
/**
* 物流信息
*/
private
String
logisticsInformation
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderLogisticsInfoWithOrderBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 订单物流 - 详细信息
*
* @author Sin
* @time 2019-04-12 22:03
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderLogisticsInfoWithOrderBO
implements
Serializable
{
/**
* 订单id
*/
private
Integer
orderId
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 物流信息
*/
private
List
<
Logistics
>
logistics
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
Logistics
{
/**
* id
*/
private
Integer
id
;
/**
* 收件区域编号
*/
private
String
areaNo
;
/**
* 收件人名称
*/
private
String
name
;
/**
* 收件手机号
*/
private
String
mobile
;
/**
* 收件详细地址
*/
private
String
address
;
/**
* 物流 (字典)
*/
private
Integer
logistics
;
/**
* 物流 (字典) 转换后的值
*/
private
String
logisticsText
;
/**
* 物流编号
*/
private
String
logisticsNo
;
///
/// 物流信息
private
List
<
LogisticsDetail
>
details
;
}
@Data
@Accessors
(
chain
=
true
)
public
static
class
LogisticsDetail
{
/**
* id
*/
private
Integer
id
;
/**
* 物流id
*/
private
Integer
orderLogisticsId
;
/**
* 物流时间
*/
private
Date
logisticsTime
;
/**
* 物流时间 text
*/
private
String
logisticsTimeText
;
/**
* 物流信息
*/
private
String
logisticsInformation
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderPageBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 订单分页
*
* @author Sin
* @time 2019-03-27 21:27
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderPageBO
implements
Serializable
{
/**
* 总条数
*/
private
Integer
total
;
/**
* 订单列表
*/
private
List
<
OrderBO
>
orders
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderPayBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
java.io.Serializable
;
/**
* 订单支付信息返回
*
* @author Sin
* @time 2019-04-08 19:39
*/
public
class
OrderPayBO
implements
Serializable
{
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderRecipientBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
cn.iocoder.common.framework.dataobject.BaseDO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 订单收件人信息 order_recipient
*
* @author Sin
* @time 2019-03-31 11:37
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderRecipientBO
extends
BaseDO
{
// TODO FROM 芋艿 TO 小范,不要继承 BaseDO
/**
* 编号
*/
private
Integer
id
;
/**
* 订单id
*/
private
Integer
orderId
;
/**
* 收件区域编号
*/
private
String
areaNo
;
/**
* 收件人名称
*/
private
String
name
;
/**
* 收件手机号
*/
private
String
mobile
;
/**
* 手机方式
*/
private
Integer
type
;
/**
* 收件详细地址
*/
private
String
address
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderReturnInfoBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 订单退货 info
*
* @author Sin
* @time 2019-04-27 10:19
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderReturnInfoBO
implements
Serializable
{
/**
* 退货信息
*/
private
ReturnInfo
returnInfo
;
/**
* 订单 item
*/
private
List
<
OrderItem
>
orderItems
;
/**
* 最后一个物流信息/最新物流信息
*/
private
OrderLastLogisticsInfoBO
lastLogisticsInfo
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
OrderItem
{
/**
* 商品编号
*/
private
Integer
skuId
;
/**
* 商品名称
*/
private
String
skuName
;
/**
* 商品图片
*/
private
String
skuImage
;
/**
* 数量
*/
private
Integer
quantity
;
/**
* 最终总金额,单位:分。
*/
private
Integer
presentTotal
;
}
@Data
@Accessors
(
chain
=
true
)
public
static
class
ReturnInfo
{
/**
* 编号自动增长
*/
private
Integer
id
;
/**
* 服务号
*/
private
String
serviceNumber
;
/**
* 订单编号
*/
private
Integer
orderId
;
/**
* 订单号 (保存一个冗余)
*/
private
String
orderNo
;
/**
* 物流id
*/
private
Integer
orderLogisticsId
;
///
/// 退货原因
/**
* 退货金额
*/
private
Integer
refundPrice
;
/**
* 退货原因(字典值)
*/
private
Integer
reason
;
/**
* 问题描述
*/
private
String
describe
;
///
/// 时间信息
/**
* 同意时间
*/
private
Date
approvalTime
;
/**
* 物流时间(填写物流单号时间)
*/
private
Date
logisticsTime
;
/**
* 收货时间
*/
private
Date
receiverTime
;
/**
* 成交时间(确认时间)
*/
private
Date
closingTime
;
/**
* 退款类型
*
* - 1、退货退款
* - 2、退款
*/
private
Integer
serviceType
;
/**
* 退款类型 转换值
*/
private
String
serviceTypeText
;
/**
* 状态
*
* - 1、退货申请
* - 2、申请成功
* - 3、申请失败
* - 4、退货中
* - 5、退货成功
*/
private
Integer
status
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/OrderReturnListBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
import
cn.iocoder.common.framework.dataobject.BaseDO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 订单退货 list
*
* @author Sin
* @time 2019-05-06 21:54
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderReturnListBO
implements
Serializable
{
/**
* 分页当前 index
*/
private
Integer
index
;
/**
* pageSize
*/
private
Integer
pageSize
;
/**
* totalCount
*/
private
Integer
totalCount
;
/**
* data
*/
private
List
<
OrderReturn
>
data
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
OrderReturn
{
/**
* 编号自动增长
*/
private
Integer
id
;
/**
* 服务号
*/
private
String
serviceNumber
;
/**
* 订单编号
*/
private
Integer
orderId
;
/**
* 订单号 (保存一个冗余)
*/
private
String
orderNo
;
/**
* 物流id
*/
private
Integer
orderLogisticsId
;
///
/// 退货原因
/**
* 退货金额
*/
private
Integer
refundPrice
;
/**
* 退货原因(字典值)
*/
private
Integer
reason
;
/**
* 问题描述
*/
private
String
describe
;
///
/// 时间信息
/**
* 同意时间
*/
private
Date
approvalTime
;
/**
* 物流时间(填写物流单号时间)
*/
private
Date
logisticsTime
;
/**
* 收货时间
*/
private
Date
receiverTime
;
/**
* 成交时间(确认时间)
*/
private
Date
closingTime
;
/**
* 服务类型
*
* - 1、退货退款
* - 2、退款
*/
private
Integer
serviceType
;
/**
* 状态
*
* - 1、退货申请
* - 2、申请成功
* - 3、申请失败
* - 4、退货中
* - 5、退货成功
*/
private
Integer
status
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/bo/order/PostageDetailBO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
bo
.
order
;
public
class
PostageDetailBO
{
// "description": "有品甄选商品,即有品配送和第三方商家发货的商品,2018年1月1日起,单笔订单满99元免运费,不满99元收10元运费。",
// "leftTotal": "0.00",
// "merchantName": "有品配送",
// "postFee": "0.00",
// "postage": "10.00",
// "postageType": 0,
// "selCount": 14,
// "threshold": "99.00"
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/config/DatabaseConfiguration.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
config
;
import
com.baomidou.mybatisplus.core.injector.DefaultSqlInjector
;
import
com.baomidou.mybatisplus.core.injector.ISqlInjector
;
import
com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
@Configuration
@MapperScan
(
"cn.iocoder.mall.order.biz.dao"
)
// 扫描对应的 Mapper 接口
@EnableTransactionManagement
(
proxyTargetClass
=
true
)
// 启动事务管理。为什么使用 proxyTargetClass 参数,参见 https://blog.csdn.net/huang_550/article/details/76492600
public
class
DatabaseConfiguration
{
// 数据库连接池 Druid
@Bean
public
ISqlInjector
sqlInjector
()
{
return
new
DefaultSqlInjector
();
// MyBatis Plus 逻辑删除
}
@Bean
public
PaginationInterceptor
paginationInterceptor
()
{
return
new
PaginationInterceptor
();
// MyBatis Plus 分页插件
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/convert/CartConvert.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
convert
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
@Mapper
public
interface
CartConvert
{
CartConvert
INSTANCE
=
Mappers
.
getMapper
(
CartConvert
.
class
);
// CalcOrderPriceBO.Item convert(ProductSkuDetailBO sku);
//
// List<CartItemBO> convert(List<CartItemDO> items);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/convert/OrderCommentConvert.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
convert
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
/**
*
* 订单评论 convert
*
* @author wtz
* @time 2019-05-31 18:30
*/
@Mapper
public
interface
OrderCommentConvert
{
OrderCommentConvert
INSTANCE
=
Mappers
.
getMapper
(
OrderCommentConvert
.
class
);
// @Mappings({})
// OrderCommentStateInfoPageBO.OrderCommentStateInfoItem convertOrderCommentStateInfoItem(
// OrderCommentDO orderCommentDO);
//
// @Mappings({})
// List<OrderCommentStateInfoPageBO.OrderCommentStateInfoItem> convertOrderCommentStateInfoItems(
// List<OrderCommentDO> orderCommentDOList);
//
// @Mappings({})
// OrderCommentDO convertOrderCommentDO(OrderCommentCreateDTO orderCommentCreateDTO);
//
// @Mappings({})
// OrderCommentCreateBO convertOrderCommentCreateBO(OrderCommentDO orderCommentDO);
//
// @Mappings({})
// OrderCommentInfoBO convertOrderCommentInfoBO(OrderCommentDO orderCommentDO);
//
// @Mappings({})
// OrderCommentTimeOutBO convertOrderCommentTimeOutBO(OrderCommentDO orderCommentDO);
//
// @Mappings({})
// List<OrderCommentTimeOutBO> convertOrderCommentTimeOutBOList(
// List<OrderCommentDO> orderCommentDOList);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/convert/OrderCommentReplyConvert.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
convert
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
/**
*
* 评论回复 convert
*
* @author wtz
* @time 2019-05-31 18:30
*/
@Mapper
public
interface
OrderCommentReplyConvert
{
OrderCommentReplyConvert
INSTANCE
=
Mappers
.
getMapper
(
OrderCommentReplyConvert
.
class
);
// @Mappings({})
// OrderCommentReplyDO convert(OrderCommentReplyCreateDTO orderCommentReplyCreateDTO);
//
// @Mappings({})
// OrderCommentReplyCreateBO convert(OrderCommentReplyDO orderCommentReplyDO);
//
// @Mappings({})
// List<OrderCommentMerchantReplyBO> convert(List<OrderCommentReplyDO> orderCommentReplyDOList);
//
// @Mappings({})
// List<OrderCommentReplyPageBO.OrderCommentReplayItem> convertOrderCommentReplayItem(
// List<OrderCommentReplyDO> orderCommentReplyDOList);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/convert/OrderConvert.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
convert
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
/**
* 订单 convert
*
* @author Sin
* @time 2019-03-17 10:14
*/
@Mapper
public
interface
OrderConvert
{
OrderConvert
INSTANCE
=
Mappers
.
getMapper
(
OrderConvert
.
class
);
// @Mappings({})
// List<OrderBO> convertPageBO(List<OrderDO> orderDOList);
//
// @Mappings({})
// OrderInfoBO convert(OrderDO orderDO);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/convert/OrderItemConvert.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
convert
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
/**
* 订单 item convert
*
* @author Sin
* @time 2019-03-23 14:34
*/
@Mapper
public
interface
OrderItemConvert
{
OrderItemConvert
INSTANCE
=
Mappers
.
getMapper
(
OrderItemConvert
.
class
);
// @Mappings({})
// OrderItemDO convert(OrderItemUpdateDTO orderItemUpdateDTO);
//
// @Mappings({})
// List<OrderItemBO> convertOrderItemBO(List<OrderItemDO> orderItemDOList);
//
// @Mappings({})
// List<OrderItemDO> convert(List<OrderCreateDTO.OrderItem> orderCreateItemDTOList);
//
// @Mappings({})
// List<OrderItemBO> convertOrderItemDO(List<OrderItemDO> orderItemDOList);
//
// @Mappings({})
// List<OrderInfoBO.OrderItem> convertOrderInfoWithOrderItem(List<OrderItemDO> orderItemDOList);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/convert/OrderLogisticsConvert.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
convert
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
/**
* 订单物流 convert
*
* @author Sin
* @time 2019-03-23 14:39
*/
@Mapper
public
interface
OrderLogisticsConvert
{
OrderLogisticsConvert
INSTANCE
=
Mappers
.
getMapper
(
OrderLogisticsConvert
.
class
);
// @Mappings({})
// OrderLogisticsDO convert(OrderDeliveryDTO orderDelivery);
//
// @Mappings({})
// OrderLogisticsDO convert(OrderLogisticsUpdateDTO orderLogisticsDTO);
//
// @Mappings({})
// OrderLogisticsDO convert(OrderRecipientDO orderRecipientDO);
//
// @Mappings({})
// List<OrderLogisticsInfoWithOrderBO.Logistics> convertLogistics(
// List<OrderLogisticsDO> orderLogisticsDOList);
//
// @Mappings({})
// List<OrderLogisticsInfoWithOrderBO.LogisticsDetail> convertLogisticsDetail(
// List<OrderLogisticsDetailDO> orderLogisticsDOList);
//
// @Mappings({})
// OrderLogisticsInfoBO convert(OrderLogisticsDO orderLogisticsDO);
//
// @Mappings({})
// List<OrderLogisticsInfoBO.LogisticsDetail> convert(
// List<OrderLogisticsDetailDO> orderLogisticsDetailDOList);
//
// @Mappings({})
// @Named(value = "orderLastLogisticsInfoBO")
// OrderLastLogisticsInfoBO convertOrderLastLogisticsInfoBO(OrderLogisticsDO orderLogisticsDO);
//
// @Mappings({})
// OrderLastLogisticsInfoBO.LogisticsDetail convertLastLogisticsDetail(
// OrderLogisticsDetailDO orderLogisticsDetailDO);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/convert/OrderLogisticsDetailConvert.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
convert
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
/**
* 订单物流 convert
*
* @author Sin
* @time 2019-03-23 14:39
*/
@Mapper
public
interface
OrderLogisticsDetailConvert
{
OrderLogisticsDetailConvert
INSTANCE
=
Mappers
.
getMapper
(
OrderLogisticsDetailConvert
.
class
);
// @Mappings({})
// OrderInfoBO.LogisticsDetail convertLogisticsDetail(
// OrderLogisticsDetailDO orderLogisticsDetailDO);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/convert/OrderRecipientConvert.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
convert
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
/**
* 订单收件人信息
*
* @author Sin
* @time 2019-03-31 12:50
*/
@Mapper
public
interface
OrderRecipientConvert
{
OrderRecipientConvert
INSTANCE
=
Mappers
.
getMapper
(
OrderRecipientConvert
.
class
);
// @Mappings({})
// OrderRecipientDO convert(OrderCreateDTO orderCreateDTO);
//
// @Mappings({})
// OrderRecipientDO convert(UserAddressBO userAddressBO);
//
// @Mappings({})
// OrderRecipientBO convert(OrderRecipientDO orderRecipientDO);
//
// @Mappings({})
// List<OrderRecipientBO> convert(List<OrderRecipientDO> orderRecipientDOList);
//
// @Mappings({})
// OrderInfoBO.Recipient convertOrderInfoRecipient(OrderRecipientDO orderRecipientDO);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/convert/OrderReturnConvert.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
convert
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.factory.Mappers
;
/**
* 订单 return
*
* @author Sin
* @time 2019-03-30 15:46
*/
@Mapper
public
interface
OrderReturnConvert
{
OrderReturnConvert
INSTANCE
=
Mappers
.
getMapper
(
OrderReturnConvert
.
class
);
// @Mappings({})
// OrderReturnDO convert(OrderReturnCreateDTO orderReturnCreate);
//
// @Mappings({})
// OrderReturnDO convert(OrderReturnApplyDTO orderReturnApplyDTO);
//
// @Mappings({})
// OrderReturnInfoBO.ReturnInfo convert(OrderReturnDO orderReturnDO);
//
// @Mappings({})
// List<OrderReturnInfoBO.OrderItem> convert(List<OrderItemDO> orderItemDOList);
//
// @Mappings({})
// List<OrderReturnListBO.OrderReturn> convertListBO(List<OrderReturnDO> orderReturnDOList);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dao/cart/CartMapper.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dao
.
cart
;
import
cn.iocoder.mall.order.biz.dataobject.CartItemDO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.Collection
;
import
java.util.List
;
@Repository
public
interface
CartMapper
{
//
// CartItemDO selectById(@Param("id") Integer id);
//
// List<CartItemDO> selectByIds(@Param("ids") Collection<Integer> ids);
//
// CartItemDO selectByUserIdAndSkuIdAndStatus(@Param("userId") Integer userId,
// @Param("skuId") Integer skuId,
// @Param("status") Integer status);
//
// Integer selectQuantitySumByUserIdAndStatus(@Param("userId") Integer userId,
// @Param("status") Integer status);
//
// List<CartItemDO> selectByUserIdAndStatusAndSelected(@Param("userId") Integer userId,
// @Param("status") Integer status,
// @Param("selected") Boolean selected);
////
//// List<CartItemDO> selectListByTitleLike(@Param("title") String title,
//// @Param("offset") Integer offset,
//// @Param("limit") Integer limit);
//
//// Integer selectCountByTitleLike(@Param("title") String title);
//
// void insert(CartItemDO cartItemDO);
//
// int update(CartItemDO cartItemDO);
//
// int updateQuantity(@Param("id") Integer id,
// @Param("quantityIncr") Integer quantityIncr);
//
// int updateListByUserIdAndSkuId(@Param("userId") Integer userId,
// @Param("skuIds") Collection<Integer> skuIds,
// @Param("selected") Boolean selected,
// @Param("status") Integer status);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dao/comment/OrderCommentMapper.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dao
.
comment
;
import
org.springframework.stereotype.Repository
;
/**
*
* 订单评论 mapper
*
* @author wtz
* @time 2019-05-16 20:52
*/
@Repository
public
interface
OrderCommentMapper
{
// /**
// * 插入订单评论
// * @param orderCommentDO
// * @return
// */
// void insert(OrderCommentDO orderCommentDO);
//
//
// /**
// * 根据 sku id 查询评论总条数
// * @param productSkuId
// * @return
// */
// int selectCommentTotalCountByProductSkuId(@Param("productSkuId") Integer productSkuId);
//
//
// /**
// * 分页获取评论
// * @param orderCommentPageDTO
// * @return
// */
// List<OrderCommentDO> selectCommentPage(OrderCommentPageDTO orderCommentPageDTO);
//
//
// /**
// * 根据评论 id 查询评论详情
// * @param id
// * @return
// */
// OrderCommentDO selectCommentInfoByCommentId(@Param("id") Integer id);
//
//
// /**
// * 订单评论状态信息详情
// * @param orderCommentStateInfoPageDTO
// * @return
// */
//// List<OrderCommentDO> selectOrderCommentStateInfoPage(
//// OrderCommentStateInfoPageDTO orderCommentStateInfoPageDTO);
//
//
// /**
// * 订单评论状态总数
// * @param userId,commentState
// * @return
// */
// int selectOrderCommentStateInfoTotal(@Param("userId") Integer userId,
// @Param("commentState") Integer commentState);
//
//
// /**
// * 订单评论超时分页
// * @param orderCommentTimeOutPageDTO
// * @return
// */
// List<OrderCommentDO> selectOrderCommentTimeOutPage(
// @Param("commentTimeOut") OrderCommentTimeOutPageDTO orderCommentTimeOutPageDTO);
//
// /**
// * 批量更新订单评论状态
// * @param orderCommentTimeOutBOList
// * @param commentState
// */
// void updateBatchOrderCommentState(@Param("commentState") Integer commentState,
// @Param("list") List<OrderCommentTimeOutBO> orderCommentTimeOutBOList);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dao/comment/OrderCommentReplayMapper.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dao
.
comment
;
import
org.springframework.stereotype.Repository
;
/**
* 订单评论回复 mapper
*
* @author wtz
* @time 2019-05-16 21:33
*/
@Repository
public
interface
OrderCommentReplayMapper
{
// /**
// * 插入订单评论回复
// * @param orderCommentReplyDO
// * @return
// */
// void insert(OrderCommentReplyDO orderCommentReplyDO);
//
// /**
// * 根据评论 id 和用户类型获取商家回复
// * @param commentId,userType
// * @return
// */
// List<OrderCommentReplyDO> selectCommentMerchantReplyByCommentIdAndUserType(
// @Param("commentId") Integer commentId,
// @Param("userType") Integer userType);
//
//
// /**
// * 分页获取评论回复
// * @param orderCommentReplyPageDTO
// * @return
// */
// List<OrderCommentReplyDO> selectCommentReplyPage(
// OrderCommentReplyPageDTO orderCommentReplyPageDTO);
//
//
// /**
// * 根据评论 id 和用户类型获取评论回复总数
// * @param commentId,userType
// * @return
// */
// int selectCommentReplyTotalCountByCommentId(@Param("commentId") Integer commentId,
// @Param("userType") Integer userType);
//
//
// /**
// * 根据评论 id 查询最新的商家回复
// * @param commentIds
// * @return
// */
// List<OrderCommentReplyDO> selectCommentNewMerchantReplyByCommentIds(
// @Param("commentIds") Collection<Integer> commentIds,
// @Param("userType") Integer userType);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dao/order/OrderCancelMapper.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dao
.
order
;
import
cn.iocoder.mall.order.biz.dataobject.OrderCancelDO
;
import
org.springframework.stereotype.Repository
;
/**
* 订单取消 mapper
*
* @author Sin
* @time 2019-03-30 16:27
*/
@Repository
public
interface
OrderCancelMapper
{
int
insert
(
OrderCancelDO
orderCancelDO
);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dao/order/OrderItemMapper.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dao
.
order
;
import
cn.iocoder.mall.order.biz.dataobject.OrderItemDO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.Collection
;
import
java.util.List
;
/**
* 订单 item mapper
*
* @author Sin
* @time 2019-03-16 15:09
*/
@Repository
public
interface
OrderItemMapper
{
/**
* 插入数据
*
* @param orderItemDOList
*/
void
insert
(
@Param
(
"list"
)
List
<
OrderItemDO
>
orderItemDOList
);
/**
* 更新 - 根据Id
*
* @param orderItemDO
*/
void
updateById
(
@Param
(
"orderItemDO"
)
OrderItemDO
orderItemDO
);
/**
* 更新 - 根据 orderId
* @param orderId
* @param orderItemDO
*/
void
updateByOrderId
(
@Param
(
"orderId"
)
Integer
orderId
,
@Param
(
"orderItemDO"
)
OrderItemDO
orderItemDO
);
/**
* 更新 - 根据Ids
*
* @param ids
* @param orderItemDO
*/
void
updateByIds
(
@Param
(
"ids"
)
List
<
Integer
>
ids
,
@Param
(
"orderItemDO"
)
OrderItemDO
orderItemDO
);
/**
* 获取 - 根据 ids 查询
*
* @param ids
* @return
*/
List
<
OrderItemDO
>
selectByIds
(
@Param
(
"ids"
)
Collection
<
Integer
>
ids
);
/**
* 查询 - 根据 orderIds 和 status
*
* @param orderIds
* @param deleted
* @return
*/
List
<
OrderItemDO
>
selectByDeletedAndOrderIds
(
@Param
(
"orderIds"
)
Collection
<
Integer
>
orderIds
,
@Param
(
"deleted"
)
Integer
deleted
);
/**
* 查询 - 根据 orderId 下的 item
*
* @param orderId
* @return
*/
List
<
OrderItemDO
>
selectByDeletedAndOrderId
(
@Param
(
"deleted"
)
Integer
deleted
,
@Param
(
"orderId"
)
Integer
orderId
);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dao/order/OrderLogisticsDetailMapper.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dao
.
order
;
import
cn.iocoder.mall.order.biz.dataobject.OrderLogisticsDetailDO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.Collection
;
import
java.util.List
;
/**
* 订单物流 - 物流详细信息
*
* @author Sin
* @time 2019-04-12 21:35
*/
@Repository
public
interface
OrderLogisticsDetailMapper
{
/**
* 插入
*
* @param orderLogisticsDetailDO
* @return
*/
int
insert
(
OrderLogisticsDetailDO
orderLogisticsDetailDO
);
/**
* 查询 - 根据 物流id
*
* @param orderLogisticsId
* @return
*/
List
<
OrderLogisticsDetailDO
>
selectByOrderLogisticsId
(
@Param
(
"orderLogisticsId"
)
Integer
orderLogisticsId
);
/**
* 查询 - 根据 物流ids
*
* @param orderLogisticsIds
* @return
*/
List
<
OrderLogisticsDetailDO
>
selectByOrderLogisticsIds
(
@Param
(
"orderLogisticsIds"
)
Collection
<
Integer
>
orderLogisticsIds
);
/**
* 查询 - 获取最新的物流信息
*
* @param orderLogisticsIds
* @return
*/
OrderLogisticsDetailDO
selectLast
(
@Param
(
"orderLogisticsIds"
)
Collection
<
Integer
>
orderLogisticsIds
);
/**
* 查询 - 根据 last 根据物理id
*
* @param orderLogisticsId
* @return
*/
OrderLogisticsDetailDO
selectLastByLogisticsId
(
@Param
(
"orderLogisticsId"
)
Integer
orderLogisticsId
);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dao/order/OrderLogisticsMapper.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dao
.
order
;
import
cn.iocoder.mall.order.biz.dataobject.OrderLogisticsDO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.Collection
;
import
java.util.List
;
/**
* 订单 item mapper
*
* @author Sin
* @time 2019-03-16 15:09
*/
@Repository
public
interface
OrderLogisticsMapper
{
/**
* 插入数据
*
* @param orderLogisticsDO
*/
void
insert
(
OrderLogisticsDO
orderLogisticsDO
);
/**
* 更新 - 根据id
*
* @param orderLogisticsDO
*/
void
updateById
(
OrderLogisticsDO
orderLogisticsDO
);
/**
* 查询 - 根据 ids
*
* @param id
* @return
*/
OrderLogisticsDO
selectById
(
@Param
(
"id"
)
Integer
id
);
/**
* 查询 - 根据 ids
*
* @param ids
* @return
*/
List
<
OrderLogisticsDO
>
selectByIds
(
@Param
(
"ids"
)
Collection
<
Integer
>
ids
);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dao/order/OrderMapper.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dao
.
order
;
import
cn.iocoder.mall.order.biz.dataobject.OrderDO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.springframework.stereotype.Repository
;
/**
* 订单 mapper
*
* @author Sin
* @time 2019-03-16 15:09
*/
@Repository
public
interface
OrderMapper
extends
BaseMapper
<
OrderDO
>
{
// /**
// * 更新 - 根据 id 更新
// *
// * @param orderDO
// * @return
// */
// int updateById(OrderDO orderDO);
//
// int updateByIdAndStatus(@Param("id") Integer id,
// @Param("status") Integer status,
// @Param("updateObj") OrderDO updateObj);
//
// /**
// * 查询 - 根据id 查询
// *
// * @param id
// * @return
// */
// OrderDO selectById(
// @Param("id") Integer id
// );
//
// /**
// * 查询 - 后台分页page
// *
// * @param orderQueryDTO
// * @return
// */
// int selectPageCount(OrderQueryDTO orderQueryDTO);
//
// /**
// * 查询 - 后台分页page
// *
// * @param orderQueryDTO
// * @return
// */
// List<OrderDO> selectPage(OrderQueryDTO orderQueryDTO);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dao/order/OrderRecipientMapper.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dao
.
order
;
import
cn.iocoder.mall.order.biz.dataobject.OrderRecipientDO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.Collection
;
import
java.util.List
;
/**
* 订单收件人 信息
*
* @author Sin
* @time 2019-03-31 12:16
*/
@Repository
public
interface
OrderRecipientMapper
{
/**
* 插入 - 订单收件人
*
* @param orderRecipient
* @return
*/
int
insert
(
OrderRecipientDO
orderRecipient
);
/**
* 查询 - 根据 orderId
*
* @param orderId
* @return
*/
OrderRecipientDO
selectByOrderId
(
@Param
(
"orderId"
)
Integer
orderId
);
/**
* 查询 - 根据 orderIds
*
* @param orderIds
* @return
*/
List
<
OrderRecipientDO
>
selectByOrderIds
(
@Param
(
"orderIds"
)
Collection
<
Integer
>
orderIds
);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dao/order/OrderReturnMapper.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dao
.
order
;
import
cn.iocoder.mall.order.api.dto.OrderReturnQueryDTO
;
import
cn.iocoder.mall.order.biz.dataobject.OrderReturnDO
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 订单退货 mapper
*
* @author Sin
* @time 2019-03-30 15:36
*/
@Repository
public
interface
OrderReturnMapper
{
/**
* 插入 - 退货信息
*
* @param orderReturnDO
* @return
*/
int
insert
(
OrderReturnDO
orderReturnDO
);
/**
* 更新 - 根据 orderId
*
* @param orderReturnDO
* @return
*/
int
updateById
(
OrderReturnDO
orderReturnDO
);
/**
* 查询 - 根据 orderId
*
* @param orderId
* @return
*/
OrderReturnDO
selectByOrderId
(
@Param
(
"orderId"
)
Integer
orderId
);
/**
* 列表查询 - queryDTO
*
* @param queryDTO
* @return
*/
int
selectListCount
(
OrderReturnQueryDTO
queryDTO
);
/**
* 列表查询 - queryDTO
*
* @param queryDTO
* @return
*/
List
<
OrderReturnDO
>
selectList
(
OrderReturnQueryDTO
queryDTO
);
/**
* 查询 - 根据 id 查询
*
* @param id
* @return
*/
OrderReturnDO
selectById
(
Integer
id
);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/CartItemDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.BaseDO
;
import
java.util.Date
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 购物车的商品信息
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CartItemDO
extends
BaseDO
{
// ========= 基础字段 BEGIN =========
/**
* 编号,唯一自增。
*/
private
Integer
id
;
/**
* 状态
*
* 1-正常
* 2-主动删除
* 3-下单删除
*/
private
Integer
status
;
/**
* 商品在购物车中的删除时间
*/
private
Date
deleteTime
;
/**
* 是否选中
*/
private
Boolean
selected
;
// ========= 基础字段 END =========
// ========= 买家信息 BEGIN =========
/**
* 用户编号
*/
private
Integer
userId
;
// ========= 买家信息 END =========
// ========= 商品信息 BEGIN =========
/**
* 商品 SPU 编号
*/
private
Integer
spuId
;
/**
* 商品 SKU 编号
*/
private
Integer
skuId
;
/**
* 商品购买数量
*/
private
Integer
quantity
;
// TODO 冗余字段
// ========= 商品信息 END =========
// ========= 交易信息 BEGIN =========
/**
* 订单编号
*/
private
Integer
orderId
;
/**
* 订单创建时间
*/
private
Date
orderCreateTime
;
// ========= 交易信息 BEGIN =========
// ========= 优惠信息 BEGIN =========
// /**
// * 商品营销活动编号
// */
// private Integer activityId;
// /**
// * 商品营销活动类型
// */
// private Integer activityType;
// ========= 优惠信息 END =========
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderCancelDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.BaseDO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 订单关闭
*
* - 注意:订单只有在用户为付款前取消。
*
* - 取消订单,这里是取消整个订单,不能对订单 item 单独做取消
*
* @author Sin
* @time 2019-03-30 16:20
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCancelDO
extends
BaseDO
{
/**
* id
*/
private
Integer
id
;
/**
* 订单id
*/
private
Integer
orderId
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 关闭订单原因(字典)
*/
private
Integer
reason
;
/**
* 原因(如果选择其他,原因保存在这)
*/
private
String
otherReason
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderCommentDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.BaseDO
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 订单评论表
*
* @author wtz
* @time 2019-05-14 20:48
*
*/
@Data
@Accessors
(
chain
=
true
)
@TableName
(
value
=
"order_comment"
)
public
class
OrderCommentDO
extends
BaseDO
{
/**
* 评论 id // TODO FROM 芋艿 TO wtz 中英文之间,要有空格
*/
private
Integer
id
;
/**
* 订单 id
*/
private
Integer
orderId
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 商品 id
*/
private
Integer
productSpuId
;
/**
* 商品名称
*/
private
String
productSpuName
;
/**
* 商品 sku id
*/
private
Integer
productSkuId
;
/**
* 商品 sku 属性
*/
private
String
productSkuAttrs
;
/**
* 商品 sku 价格
*/
private
Integer
productSkuPrice
;
/**
* 商品 sku url
*/
private
String
productSkuPicUrl
;
/**
* 用户id
*/
private
Integer
userId
;
/**
* 用户头像
*/
private
String
userAvatar
;
/**
* 用户的真实姓名
*/
private
String
userNickName
;
/**
* 评价星
*/
private
Integer
star
;
/**
* 商品描述
*/
private
Integer
productDescriptionStar
;
/**
* 物流评价
*/
private
Integer
logisticsStar
;
/**
* 商家评价
*/
private
Integer
merchantStar
;
/**
* 回复条数
*/
private
Integer
replayCount
;
/**
* 点赞数 // TODO FROM 芋艿 TO wtz collect 是收藏的意思,最好换个单词噢。
*/
private
Integer
likeCount
;
/**
* 评论的内容
*/
private
String
commentContent
;
/**
* 评论的图片地址
*/
private
String
commentPics
;
/**
* 订单评论状态
*/
private
Integer
commentState
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderCommentReplyDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.BaseDO
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 商品评价回复表
*
* // TODO FROM 芋艿 TO wtz 商品评价回复表 =》订单评论回复表
*
* @author wtz
* @time 2019-05-14 21:00
*
*/
@Data
@Accessors
(
chain
=
true
)
@TableName
(
value
=
"order_comment_replay"
)
public
class
OrderCommentReplyDO
extends
BaseDO
{
/**
* 回复 id
*/
private
Integer
id
;
/**
* 评论 id
*/
private
Integer
commentId
;
/**
* 回复的类型 // TODO FROM 芋艿 TO wtz 记得加下枚举类
*/
private
Integer
replyType
;
/**
* 父 id
*/
private
Integer
parentId
;
/**
* 回复目标用户 id
*/
private
Integer
parentUserId
;
/**
* 回复目标用户昵称
*/
private
String
parentUserNickName
;
/**
* 回复目标用户头像
*/
private
String
parentUserAvatar
;
/**
* 回复的内容
*/
private
String
replyContent
;
/**
* 回复用户 id
*/
private
Integer
replyUserId
;
/**
* 回复用户昵称
*/
private
String
replyUserNickName
;
/**
* 回复用户头像
*/
private
String
replyUserAvatar
;
/**
* 回复用户身份 // TODO FROM 芋艿 TO wtz 【提示】userType 和 UserTypeEnum 记录保持一致。
*/
private
Integer
userType
;
/**
* 回复点赞数
*/
private
Integer
replyLikeCount
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.DeletableDO
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.util.Date
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 订单
*
* @author Sin
* @time 2019-03-16 13:49
*/
@Data
@Accessors
(
chain
=
true
)
@TableName
(
value
=
"orders"
)
public
class
OrderDO
extends
DeletableDO
{
/**
* id
*/
private
Integer
id
;
/**
* 用户编号
*/
private
Integer
userId
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 购买(商品)总金额,单位:分
*/
private
Integer
buyPrice
;
/**
* 优惠总金额,单位:分。
*/
private
Integer
discountPrice
;
/**
* 物流金额 (分)
*/
private
Integer
logisticsPrice
;
/**
* 最终金额,单位:分
*
* buyPrice + logisticsPrice - discountPrice = presentPrice
*/
private
Integer
presentPrice
;
/**
* 实际已支付金额,单位:分
*
* 初始时,金额为 0 。等到支付成功后,会进行更新。
*/
private
Integer
payAmount
;
///
/// 时间信息
/**
* 付款时间(待发货)
*/
private
Date
paymentTime
;
/**
* 发货时间(待收货)
*/
private
Date
deliveryTime
;
/**
* 收货时间(已签收)
*/
private
Date
receiverTime
;
/**
* 成交时间(用户确认收货 -> status = 已完成)
*/
private
Date
closingTime
;
///
/// 其他
/**
* 是否退货
*
* - 1、没有
* - 2、换货
* - 3、退货
* - 4、换货 + 退货
*/
private
Integer
hasReturnExchange
;
/**
* 状态(如果有多个商品分开发货需要全部商品发完才会改变状态)
*
* - 1、待付款
* - 2、待发货
* - 3、待收获
* - 4、已完成
* - 5、已关闭
*/
private
Integer
status
;
/**
* 备注
*/
private
String
remark
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderExchangeDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.DeletableDO
;
import
java.util.Date
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 换货订单
*
* @author Sin
* @time 2019-03-19 19:48
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderExchangeDO
extends
DeletableDO
{
/**
* id
*/
private
Integer
id
;
/**
* 订单id
*/
private
Integer
orderId
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 订单 item 编号
*/
private
Integer
orderItemId
;
/**
* 商品id(保存一个冗余,如果一个订单下存在多个商品,会有很大的作用)
*/
private
String
skuId
;
/**
* 换货商品id
*/
private
String
exchangeSkuId
;
/**
* 换货物流id
*/
private
Integer
exchangeOrderLogisticsId
;
/**
* 收件物流id
*/
private
Integer
receiverOrderLogisticsId
;
///
/// 原因
/**
* 原因 (关联字典)
*
* {@link cn.iocoder.mall.order.biz.constants.OrderExchangeReasonEnum}
*/
private
Integer
orderReasonId
;
/**
* 原因(如果选择其他,原因保存在这)
*
* {@link cn.iocoder.mall.order.biz.constants.OrderExchangeReasonEnum#REASON_000}
*/
private
String
reason
;
///
/// 时间信息
/**
* 创建时间
* supper baseDO
*/
// private Date createTime;
/**
* 付款时间
*/
private
Date
paymentTime
;
/**
* 发货时间
*/
private
Date
deliveryTime
;
/**
* 收货时间
*/
private
Date
receiverTime
;
/**
* 成交时间
*/
private
Date
closingTime
;
///
/// 其他
/**
* 订单类型
*
* - 0、为 Order 订单 (对整个订单退货)
* - 1、为 OrderItem 订单 (对订单某一个商品退货)
*/
private
Integer
orderType
;
/**
* 状态
*
* - 申请换货
* - 申请成功
* - 申请失败
* - 换货中
* - 换货成功
*/
private
Integer
status
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderItemDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.DeletableDO
;
import
java.util.Date
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 订单 item
*
* @author Sin
* @time 2019-03-16 14:03
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderItemDO
extends
DeletableDO
{
/**
* 编号
*/
private
Integer
id
;
/**
* 订单编号
*/
private
Integer
orderId
;
/**
* 订单号
*/
private
String
orderNo
;
/**
* 商品编号
*/
private
Integer
skuId
;
/**
* 物流id
*/
private
Integer
orderLogisticsId
;
/**
* 商品名称
*/
private
String
skuName
;
/**
* 商品图片
*/
private
String
skuImage
;
/**
* 数量
*/
private
Integer
quantity
;
/**
* 原始单价,单位:分。
*/
private
Integer
originPrice
;
/**
* 购买单价,单位:分
*/
private
Integer
buyPrice
;
/**
* 最终价格,单位:分。
*/
private
Integer
presentPrice
;
/**
* 购买总金额,单位:分
*
* 用途类似 {@link #presentTotal}
*/
private
Integer
buyTotal
;
/**
* 优惠总金额,单位:分。
*/
private
Integer
discountTotal
;
/**
* 最终总金额,单位:分。
*
* 注意,presentPrice * quantity 不一定等于 presentTotal 。
* 因为,存在无法整除的情况。
* 举个例子,presentPrice = 8.33 ,quantity = 3 的情况,presentTotal 有可能是 24.99 ,也可能是 25 。
* 所以,需要存储一个该字段。
*/
private
Integer
presentTotal
;
// 如上字段,举个例子:
// 假设购买三个,即 quantity = 3 。
// originPrice = 15
// 使用限时折扣(单品优惠)8 折,buyPrice = 12
// 开始算总的价格
// buyTotal = buyPrice * quantity = 12 * 3 = 36
// discountTotal ,假设有满减送(分组优惠)满 20 减 10 ,并且使用优惠劵满 1.01 减 1 ,则 discountTotal = 10 + 1 = 11
// presentTotal = buyTotal - discountTotal = 24 - 11 = 13
// 最终 presentPrice = presentTotal / quantity = 13 / 3 = 4.33
///
/// 时间信息
/**
* 付款时间
*/
private
Date
paymentTime
;
/**
* 发货时间
*/
private
Date
deliveryTime
;
/**
* 收货时间
*/
private
Date
receiverTime
;
/**
* 成交时间
*/
private
Date
closingTime
;
///
/// 其他
/**
* 是否退货
*
* - 1、没有
* - 2、换货
* - 3、退货
* - 4、换货 + 退货
*/
private
Integer
hasReturnExchange
;
/**
* 发货方式
*
* - 1 未选择
* - 2 在线下单
* - 3 自己联系快递
* - 4 无物流
*/
private
Integer
deliveryType
;
/**
* 状态
*
* - 1、待付款
* - 2、待发货
* - 3、已发货
* - 4、已完成
* - 5、已关闭
*/
private
Integer
status
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderLogisticsDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.BaseDO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 订单物流信息
*
* @author Sin
* @time 2019-03-19 20:47
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderLogisticsDO
extends
BaseDO
{
/**
* id
*/
private
Integer
id
;
/**
* 收件区域编号
*/
private
String
areaNo
;
/**
* 收件人名称
*/
private
String
name
;
/**
* 收件手机号
*/
private
String
mobile
;
/**
* 收件详细地址
*/
private
String
address
;
/**
* 物流 (字典)
*/
private
Integer
logistics
;
/**
* 物流编号
*/
private
String
logisticsNo
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderLogisticsDetailDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.DeletableDO
;
import
java.util.Date
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 订单物流 - 详细信息
*
* - 同步第三方物流信息
*
* @author Sin
* @time 2019-03-19 20:48
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderLogisticsDetailDO
extends
DeletableDO
{
/**
* id
*/
private
Integer
id
;
/**
* 物流id
*/
private
Integer
orderLogisticsId
;
/**
* 物流时间
*/
private
Date
logisticsTime
;
/**
* 物流信息
*/
private
String
logisticsInformation
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderPreferentialDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
/**
* 订单优惠明细
*/
// TODO 芋艿 后续在完善
public
class
OrderPreferentialDO
{
/**
* 编号
*/
private
Integer
id
;
/**
* 类型
*
* 1 - 促销活动
* 2 - 优惠劵
*/
private
Integer
type
;
// TODO 芋艿 优惠劵编号 or 促销活动编号
/**
* 订单编号
*/
private
Integer
orderId
;
/**
* 商品 SPU 编号
*/
private
Integer
spuId
;
/**
* 商品 SKU 编号
*/
private
Integer
skuId
;
/**
* 商品数量
*/
private
Integer
quantity
;
/**
* 传入时的价格
*/
private
Integer
originTotal
;
/**
* 总优惠价格
*/
private
Integer
discountTotal
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderRecipientDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.BaseDO
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 订单收件人信息 order_recipient (配送信息)
*
* @author Sin
* @time 2019-03-31 11:37
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderRecipientDO
extends
BaseDO
{
/**
* 编号
*/
private
Integer
id
;
/**
* 订单id
*/
private
Integer
orderId
;
/**
* 收件区域编号
*/
private
String
areaNo
;
/**
* 收件人名称
*/
private
String
name
;
/**
* 收件手机号
*/
private
String
mobile
;
/**
* 配送类型
*
* - 1 快递
*/
private
Integer
type
;
/**
* 收件详细地址
*/
private
String
address
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/OrderReturnDO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dataobject
;
import
cn.iocoder.mall.mybatis.dataobject.BaseDO
;
import
java.util.Date
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
/**
* 退货订单
*
* @author Sin
* @time 2019-03-19 19:48
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderReturnDO
extends
BaseDO
{
// TODO FROM 芋艿 TO 小范,存储下支付中心的退款单号
/**
* 编号自动增长
*/
private
Integer
id
;
/**
* 服务号
*/
// TODO FROM 芋艿 to 小范,换个名字,看着怪怪的 哈哈哈哈。
private
String
serviceNumber
;
/**
* 订单编号
*/
private
Integer
orderId
;
/**
* 订单号 (保存一个冗余)
*/
private
String
orderNo
;
/**
* 物流id
*/
private
Integer
orderLogisticsId
;
///
/// 退货原因
/**
* 退货金额
*/
private
Integer
refundPrice
;
/**
* 退货原因(字典值)
*
* {@link cn.iocoder.mall.order.biz.constants.OrderReturnReasonEnum}
*/
private
Integer
reason
;
/**
* 问题描述
*/
// TODO FROM 芋艿 to 小范,describe 是动词,换成名词 description
private
String
describe
;
///
/// 时间信息
/**
* 同意时间
*/
private
Date
approvalTime
;
/**
* 拒绝时间
*/
private
Date
refuseTime
;
/**
* 物流时间(填写物流单号时间)
*/
private
Date
logisticsTime
;
/**
* 收货时间
*/
private
Date
receiverTime
;
/**
* 成交时间(确认时间)
*/
private
Date
closingTime
;
/**
* 服务类型
*
* - 1、退货退款
* - 2、退款
*/
private
Integer
serviceType
;
/**
* 状态
*
* - 1、退货申请
* - 2、申请成功
* - 3、申请失败
* - 4、退货中
* - 5、已收货
* - 6、退货成功
*/
private
Integer
status
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dataobject/README.md
0 → 100644
浏览文件 @
966375be
## 订单
TODO
**退货**
1.
商家未发货,退货原因
- 拍错/勿拍/多拍
- 缺货
2.
商家已发货,退货原因
- 七天无理由
- 质量问题
- 不想要了
- 其他
\ No newline at end of file
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/comment/OrderCommentCreateDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
comment
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 订单评论创建
*
* @author wtz
* @time 2019-05-15 20:42
*
*/
@ApiModel
(
"订单创建 DTO"
)
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentCreateDTO
implements
Serializable
{
@ApiModelProperty
(
value
=
"订单 id"
,
required
=
true
)
@NotNull
(
message
=
"订单 id 不能为空"
)
private
Integer
orderId
;
@ApiModelProperty
(
value
=
"订单编号"
,
required
=
true
)
@NotEmpty
(
message
=
"订单编号不能为空"
)
private
String
orderNo
;
@ApiModelProperty
(
value
=
"商品 spu id"
,
required
=
true
)
@NotNull
(
message
=
"商品的 spu id 不能为空"
)
private
Integer
productSpuId
;
@ApiModelProperty
(
value
=
"商品 spu name"
,
required
=
true
)
@NotEmpty
(
message
=
"商品的 spu name 不能为空"
)
private
String
productSpuName
;
@ApiModelProperty
(
value
=
"商品 sku id"
,
required
=
true
)
@NotNull
(
message
=
"商品的 sku id 不能为空"
)
private
Integer
productSkuId
;
@ApiModelProperty
(
value
=
"商品 sku attrs"
,
required
=
true
)
@NotEmpty
(
message
=
"商品的 sku attrs 不能为空"
)
private
String
productSkuAttrs
;
@ApiModelProperty
(
value
=
"商品 sku price"
,
required
=
true
)
@NotNull
(
message
=
"商品的 sku price 不能为空"
)
private
Integer
productSkuPrice
;
@ApiModelProperty
(
value
=
"商品 sku url"
,
required
=
true
)
@NotEmpty
(
message
=
"商品的 sku url 不能为空"
)
private
String
productSkuPicUrl
;
@ApiModelProperty
(
value
=
"用户 id"
,
required
=
true
)
private
Integer
userId
;
@ApiModelProperty
(
value
=
"用户头像"
,
required
=
true
)
private
String
userAvatar
;
@ApiModelProperty
(
value
=
"用户昵称"
,
required
=
true
)
@NotEmpty
(
message
=
"用户昵称不能为空"
)
private
String
userNickName
;
@ApiModelProperty
(
value
=
"评价星级"
,
required
=
true
,
example
=
"1-5"
)
private
Integer
star
;
@ApiModelProperty
(
value
=
"商品描述星级"
,
required
=
true
,
example
=
"1-5"
)
private
Integer
productDescriptionStar
;
@ApiModelProperty
(
value
=
"物流评价星级"
,
required
=
true
,
example
=
"1-5"
)
private
Integer
logisticsStar
;
@ApiModelProperty
(
value
=
"商家评价星级"
,
required
=
true
,
example
=
"1-5"
)
private
Integer
merchantStar
;
@ApiModelProperty
(
value
=
"商家评价内容"
,
required
=
true
,
example
=
"1-5"
)
private
String
commentContent
;
@ApiModelProperty
(
value
=
"评价图片"
,
required
=
true
)
private
String
commentPics
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/comment/OrderCommentPageDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
*
* 订单评论 query
*
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentPageDTO
implements
Serializable
{
/**
* 商品 sku id
*/
private
Integer
productSkuId
;
/**
* 页码
*/
private
Integer
pageNo
;
/**
* 每页条数
*/
private
Integer
pageSize
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/comment/OrderCommentReplyCreateDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
*
* 订单回复评论创建
*
* @author wtz
* @time 2019-05-16 19:07
*
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentReplyCreateDTO
implements
Serializable
{
/**
* 评论 id
*/
private
Integer
commentId
;
/**
* 评论目标对象 id
*/
private
Integer
parentId
;
/**
* 评论目标用户 id
*/
private
Integer
parentUserId
;
/**
* 评论目标用户昵称
*/
private
String
parentUserNickName
;
/**
* 评论目标用户头像
*/
private
String
parentUserAvatar
;
/**
* 回复内容
*/
private
String
replyContent
;
/**
* 回复用户 id
*/
private
Integer
replyUserId
;
/**
* 回复用户昵称
*/
private
String
replyUserNickName
;
/**
* 回复用户头像
*/
private
String
replyUserAvatar
;
/**
* 回复用户类型
*/
private
Integer
userType
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/comment/OrderCommentReplyPageDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
*
* 订单评论信息详情 query
*
* @author wtz
* @time 2019-05-19 10:16
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentReplyPageDTO
implements
Serializable
{
/**
* 评论 id
*/
private
Integer
commentId
;
/**
* 用户类型
*/
private
Integer
userType
;
/**
* 页码
*/
private
Integer
pageNo
;
/**
* 每页条数
*/
private
Integer
pageSize
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/comment/OrderCommentStateInfoPageDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
*
* 订单评论状态分页信息 query
*
* @author wtz
* @time 2019-06-07 10:45
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentStateInfoPageDTO
implements
Serializable
{
/**
* 用户 id
*/
private
Integer
userId
;
/**
* 评论状态
*/
private
Integer
commentState
;
/**
* 页码
*/
private
Integer
pageNo
;
/**
* 每页条数
*/
private
Integer
pageSize
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/comment/OrderCommentTimeOutPageDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
comment
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* 订单评论超时
*
* @author wtz
* @time 2019-06-15 10:59
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCommentTimeOutPageDTO
implements
Serializable
{
/**
* 超过的天数
*/
private
Integer
overDay
;
/**
* 评论的状态
*/
private
Integer
commentState
;
/**
* 页码
*/
private
Integer
pageNo
;
/**
* 每页条数
*/
private
Integer
pageSize
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/CalcOrderPriceDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
/**
* 计算订单价格 DTO
*/
@Data
@Accessors
(
chain
=
true
)
public
class
CalcOrderPriceDTO
{
@NotNull
(
message
=
"用户编号不能为空"
)
private
Integer
userId
;
/**
* 优惠劵编号
*/
private
Integer
couponCardId
;
@NotNull
(
message
=
"商品数组不能为空"
)
private
List
<
Item
>
items
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
Item
{
/**
* SKU 编号
*/
private
Integer
skuId
;
/**
* 数量
*/
private
Integer
quantity
;
/**
* 是否选中
*
* 注意下,目前只有在购物车的时候,才可能出现该属性为 false 。其它情况下,都会为 true 为主。
*/
private
Boolean
selected
;
public
Item
()
{
}
public
Item
(
Integer
skuId
,
Integer
quantity
,
Boolean
selected
)
{
this
.
skuId
=
skuId
;
this
.
quantity
=
quantity
;
this
.
selected
=
selected
;
}
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/OrderCreateDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 订单创建
*
* @author Sin
* @time 2019-03-16 14:42
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderCreateDTO
implements
Serializable
{
/**
* 用户id
*/
private
Integer
userId
;
/**
* 用户地址
*/
private
Integer
userAddressId
;
/**
* 优惠劵编号
*/
private
Integer
couponCardId
;
/**
* 备注
*/
private
String
remark
;
/**
* ip信息
*/
private
String
ip
;
///
/// order item
private
List
<
OrderItem
>
orderItems
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
OrderItem
{
/**
* 商品编号
*/
@NotNull
private
Integer
skuId
;
/**
* 数量
*/
@NotNull
@Max
(
value
=
1000
)
private
Integer
quantity
;
}
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/OrderDeliveryDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 订单发货
*
* @author Sin
* @time 2019-03-30 22:31
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderDeliveryDTO
implements
Serializable
{
/**
* 订单id
*/
private
Integer
orderId
;
// TODO 芋艿,物流方式。会存在无需物流的情况
/**
* 物流公司 (字典)
*/
private
Integer
logistics
;
/**
* 物流单编号
*/
private
String
logisticsNo
;
///
/// 物理信息是跟 orderItem 走
/**
* 订单 orderItemId
*/
private
List
<
Integer
>
orderItemIds
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/OrderItemDeletedDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @author Sin
* @time 2019-03-23 10:22
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderItemDeletedDTO
implements
Serializable
{
/**
* 订单id
*/
private
Integer
orderId
;
/**
* 订单item id
*/
private
List
<
Integer
>
orderItemIds
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/OrderItemUpdateDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* 订单更新
*
* @author Sin
* @time 2019-03-16 14:46
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderItemUpdateDTO
implements
Serializable
{
/**
* 编号
*/
@NotNull
private
Integer
id
;
/**
* 商品编号
*/
@NotNull
private
Integer
skuId
;
/**
* 数量
*/
@NotNull
private
Integer
quantity
;
/**
* 金额(分)
*/
@NotNull
private
Integer
price
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/OrderLogisticsUpdateDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
import
java.io.Serializable
;
/**
* 订单收件人信息
*
* @author Sin
* @time 2019-03-17 20:22
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderLogisticsUpdateDTO
implements
Serializable
{
/**
* 订单 id
*/
private
Integer
id
;
/**
* 收件区域编号
*/
@NotNull
private
String
areaNo
;
/**
* 收件人名称
*/
@NotNull
private
String
name
;
/**
* 收件手机号
*/
@NotNull
@Size
(
max
=
11
,
min
=
11
)
// TODO: 2019-03-17 Sin 此处需要添加 手机号校验,需要添加新的注解
private
String
mobile
;
/**
* 收件详细地址
*/
@NotNull
@Size
(
max
=
250
,
min
=
10
,
message
=
"收件地址应该在 10 ~ 250 个字符之间"
)
private
String
address
;
/**
* 物流编号
*/
private
String
logisticsNo
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/OrderQueryDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 订单 query
*
* @author Sin
* @time 2019-03-23 14:15
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderQueryDTO
implements
Serializable
{
/**
* id
*/
private
Integer
id
;
/**
* 订单号
*/
private
String
orderNo
;
/**
* 用户 id
*/
private
Integer
userId
;
/**
* 物流id
*/
private
Integer
orderLogisticsId
;
/**
* 是否退换货
*/
private
Integer
hasReturnExchange
;
/**
* 付款时间(待发货)
*/
private
Date
startPaymentTime
;
private
Date
endPaymentTime
;
/**
* 创建时间
*/
private
Date
startCreateTime
;
private
Date
endCreateTime
;
/**
* 删除状态
*/
private
Integer
deleted
;
/**
* 状态
*/
private
Integer
status
;
private
Integer
pageNo
;
private
Integer
pageSize
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/OrderReturnApplyDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author Sin
* @time 2019-04-25 21:06
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderReturnApplyDTO
implements
Serializable
{
/**
* 订单编号
*/
private
Integer
orderId
;
/**
* 退货原因(字典值)
*/
private
Integer
reason
;
/**
* 问题描述
*/
private
String
describe
;
/**
* 退款类型
*
* - 1、退货退款
* - 2、退款
*/
private
Integer
returnType
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/OrderReturnCreateDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* 订单退货 - 创建
*
* @author Sin
* @time 2019-03-30 15:34
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderReturnCreateDTO
implements
Serializable
{
/**
* 订单编号
*/
private
Integer
orderId
;
/**
* 订单 item 编号
*/
private
Integer
orderItemId
;
/**
* 退货原因(字典值)
*/
private
Integer
orderReason
;
/**
* 原因(如果选择其他,原因保存在这)
*/
private
String
otherReasons
;
/**
* 订单类型
*
* - 0、为 Order 订单 (对整个订单退货)
* - 1、为 OrderItem 订单 (对订单某一个商品退货)
*/
private
Integer
orderType
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/OrderReturnQueryDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 订单退货 查询 po
*
* @author Sin
* @time 2019-05-06 21:36
*/
@Data
@Accessors
(
chain
=
true
)
public
class
OrderReturnQueryDTO
implements
Serializable
{
/**
*
* 订单id
*/
private
Integer
orderId
;
/**
* 订单编号
*/
private
Integer
orderNo
;
/**
* 服务号
*/
private
String
serviceNumber
;
/**
* 创建时间 - 开始
*/
private
Date
startCreateTime
;
/**
* 创建时间 - 结束
*/
private
Date
endCreateTime
;
/**
* 状态
*/
private
Integer
status
;
///
/// 分页信息
/**
* 分页 index
*/
private
Integer
index
;
/**
* 分页大小
*/
private
Integer
pageSize
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/dto/order/OrderUserPageDTO.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
dto
.
order
;
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
;
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/CartService.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
;
public
interface
CartService
{
// // ========== 购物车 Item 的逻辑 ==========
//
// /**
// * 添加商品至购物车
// *
// * @param userId 用户编号
// * @param skuId 商品 SKU 编号
// * @param quantity 数量
// * @return 是否成功
// */
// Boolean add(Integer userId, Integer skuId, Integer quantity);
//
// /**
// * 购物车更新商品数量
// *
// * @param userId 用户编号
// * @param skuId 商品 SKU 编号
// * @param quantity 数量
// * @return 是否成功
// */
// Boolean updateQuantity(Integer userId, Integer skuId, Integer quantity);
//
// /**
// * 购物车更新商品是否选中
// *
// * @param userId 用户编号
// * @param skuIds 商品 SKU 编号数组
// * @param selected 是否选中
// * @return 是否成功
// */
// Boolean updateSelected(Integer userId, Collection<Integer> skuIds, Boolean selected);
//
// /**
// * 购物车删除商品
// *
// * @param userId 用户编号
// * @param skuIds 商品 SKU 编号的数组
// *
// * @return 是否成功
// */
// Boolean deleteList(Integer userId, List<Integer> skuIds);
//
// /**
// * 清空购物车
// *
// * @param userId 用户编号
// * @return 是否成功
// */
// Boolean deleteAll(Integer userId);
//
// /**
// * 查询用户在购物车中的商品数量
// *
// * @param userId 用户编号
// * @return 商品数量
// */
// Integer count(Integer userId);
//
// /**
// * 显示买家购物车中的商品列表,并根据 selected 进行过滤。
// *
// * @param userId 用户编号
// * @param selected 是否选中。若为空,则不进行筛选
// * @return 购物车中商品列表信息
// */
// List<CartItemBO> list(Integer userId, @Nullable Boolean selected);
//
// // ========== 购物车与订单相关的逻辑 ==========
//
// /**
// * 计算订单金额,返回计算结果
// *
// * @param calcOrderPriceDTO 计算订单金额 DTO
// * @return 计算订单金额结果
// */
// CalcOrderPriceBO calcOrderPrice(CalcOrderPriceDTO calcOrderPriceDTO);
//
// /**
// * 计算指定商品 SKU 的金额,并返回计算结果
// *
// * TODO 芋艿,此处只会计算,限时折扣带来的价格变化。
// *
// * @param skuId 商品 SKU 编号
// * @return 计算订单金额结果
// */
// CalcSkuPriceBO calcSkuPrice(Integer skuId); // ========== 购物车 Item 的逻辑 ==========
//
// /**
// * 添加商品至购物车
// *
// * @param userId 用户编号
// * @param skuId 商品 SKU 编号
// * @param quantity 数量
// * @return 是否成功
// */
// Boolean add(Integer userId, Integer skuId, Integer quantity);
//
// /**
// * 购物车更新商品数量
// *
// * @param userId 用户编号
// * @param skuId 商品 SKU 编号
// * @param quantity 数量
// * @return 是否成功
// */
// Boolean updateQuantity(Integer userId, Integer skuId, Integer quantity);
//
// /**
// * 购物车更新商品是否选中
// *
// * @param userId 用户编号
// * @param skuIds 商品 SKU 编号数组
// * @param selected 是否选中
// * @return 是否成功
// */
// Boolean updateSelected(Integer userId, Collection<Integer> skuIds, Boolean selected);
//
// /**
// * 购物车删除商品
// *
// * @param userId 用户编号
// * @param skuIds 商品 SKU 编号的数组
// *
// * @return 是否成功
// */
// Boolean deleteList(Integer userId, List<Integer> skuIds);
//
// /**
// * 清空购物车
// *
// * @param userId 用户编号
// * @return 是否成功
// */
// Boolean deleteAll(Integer userId);
//
// /**
// * 查询用户在购物车中的商品数量
// *
// * @param userId 用户编号
// * @return 商品数量
// */
// Integer count(Integer userId);
//
// /**
// * 显示买家购物车中的商品列表,并根据 selected 进行过滤。
// *
// * @param userId 用户编号
// * @param selected 是否选中。若为空,则不进行筛选
// * @return 购物车中商品列表信息
// */
// List<CartItemBO> list(Integer userId, @Nullable Boolean selected);
//
// // ========== 购物车与订单相关的逻辑 ==========
//
// /**
// * 计算订单金额,返回计算结果
// *
// * @param calcOrderPriceDTO 计算订单金额 DTO
// * @return 计算订单金额结果
// */
// CalcOrderPriceBO calcOrderPrice(CalcOrderPriceDTO calcOrderPriceDTO);
//
// /**
// * 计算指定商品 SKU 的金额,并返回计算结果
// *
// * TODO 芋艿,此处只会计算,限时折扣带来的价格变化。
// *
// * @param skuId 商品 SKU 编号
// * @return 计算订单金额结果
// */
// CalcSkuPriceBO calcSkuPrice(Integer skuId);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/OrderCommentReplyService.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
;
/**
*
* 订单评论回复模块
*
* @author wtz
* @time 2019-05-29 14:30
*
*/
public
interface
OrderCommentReplyService
{
// /**
// * 分页获取评论回复
// * @param orderCommentReplyPageDTO
// * @return
// */
// OrderCommentReplyPageBO getOrderCommentReplyPage(
// OrderCommentReplyPageDTO orderCommentReplyPageDTO);
//
//
// /**
// * 评论回复创建
// * @param orderCommentReplyCreateDTO
// * @return
// */
// OrderCommentReplyCreateBO createOrderCommentReply(
// OrderCommentReplyCreateDTO orderCommentReplyCreateDTO);
//
//
// /**
// * 获取商家评论回复
// * @param commentId
// * @return
// */
// List<OrderCommentMerchantReplyBO> getOrderCommentMerchantReply(Integer commentId);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/OrderCommentService.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
;
/**
* 订单评论模块
*
* @author wtz
* @time 2019-05-14 22:10
*/
public
interface
OrderCommentService
{
// /**
// * 评论创建
// * @param orderCommentCreateDTO
// * @return
// */
// OrderCommentCreateBO createOrderComment(OrderCommentCreateDTO orderCommentCreateDTO);
//
//
//
// /**
// * 获取评论列表的分页
// * @param orderCommentPageDTO
// * @return
// */
// OrderCommentPageBO getOrderCommentPage(OrderCommentPageDTO orderCommentPageDTO);
//
//
// /**
// * 获取评论详情
// * @param commentId
// * @return
// */
// OrderCommentInfoBO getOrderCommentInfo(Integer commentId);
//
//
// /**
// * 获取订单评论状态详情
// * @param orderCommentStateInfoPageDTO
// * @return
// */
// OrderCommentStateInfoPageBO getOrderCommentStateInfoPage(
// OrderCommentStateInfoPageDTO orderCommentStateInfoPageDTO);
//
// /**
// * 获取订单评论超时分页
// * @param orderCommentTimeOutPageDTO
// * @return
// */
// List<OrderCommentTimeOutBO> getOrderCommentTimeOutPage(
// OrderCommentTimeOutPageDTO orderCommentTimeOutPageDTO);
//
//
// /**
// * 批量更新订单评论状态
// * @param orderCommentTimeOutBOList
// */
// void updateBatchOrderCommentState(List<OrderCommentTimeOutBO> orderCommentTimeOutBOList);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/OrderLogisticsService.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
;
/**
* 订单物流信息
*
* @author Sin
* @time 2019-04-12 21:29
*/
public
interface
OrderLogisticsService
{
// /**
// * 获取物流信息 - 根据id
// *
// * @param id
// * @return
// */
// CommonResult<OrderLogisticsInfoBO> getLogisticsInfo(Integer id);
//
//
// /**
// * 获取 last 物流信息 - 根据id
// *
// * @param id
// * @return
// */
// CommonResult<OrderLastLogisticsInfoBO> getLastLogisticsInfo(Integer id);
//
// /**
// * 获取物流信息 - 根据 orderId
// *
// * @param userId
// * @param orderId
// * @return
// */
// CommonResult<OrderLogisticsInfoWithOrderBO> getOrderLogisticsInfo(Integer userId,
// Integer orderId);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/OrderReturnService.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
;
/**
* 订单退货
*
* @author Sin
* @time 2019-03-30 15:33
*/
public
interface
OrderReturnService
{
// /**
// * 订单 - 退货
// *
// * @param orderReturnApplyDTO
// * @return
// */
// CommonResult orderReturnApply(OrderReturnApplyDTO orderReturnApplyDTO);
//
// /**
// * 更新退款成功
// *
// * 如果成功,则返回 success
// * 如果失败,则返回具体原因
// *
// * @param orderId 订单编号
// * @param refundPrice 退款金额
// * @return 支付结果
// */
// String updateRefundSuccess(String orderId, Integer refundPrice);
//
// /**
// * 订单申请信息
// *
// * @param orderId
// * @return
// */
// CommonResult<OrderReturnInfoBO> orderApplyInfo(Integer orderId);
//
// /**
// * 订单退货 - 列表
// *
// * @param queryDTO
// * @return
// */
// CommonResult<OrderReturnListBO> orderReturnList(OrderReturnQueryDTO queryDTO);
//
// /**
// * 订单退货 - 接受
// *
// * @param id
// * @return
// */
// CommonResult orderReturnAgree(Integer id);
//
// /**
// * 订单退货 - 拒绝
// *
// * @param id
// * @return
// */
// CommonResult orderReturnRefuse(Integer id);
//
// /**
// * 订单退货 - 确认收货
// *
// * @param id
// * @return
// */
// CommonResult confirmReceipt(Integer id);
//
// /**
// * 订单退货 - 确认订单
// *
// * @param id
// * @return
// */
// CommonResult refund(Integer id, String ip);
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/OrderService.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
;
/**
* 订单 service
*
* @author Sin
* @time 2019-03-16 13:15
*/
public
interface
OrderService
{
// /**
// * 订单 page
// *
// * @param orderQueryDTO
// * @return
// */
// CommonResult<OrderPageBO> getOrderPage(OrderQueryDTO orderQueryDTO);
//
// /**
// * 获取订单items
// *
// * @param orderId
// * @return
// */
// CommonResult<List<OrderItemBO>> getOrderItems(Integer orderId);
//
// /**
// * 订单收件人信息
// *
// * @param orderId
// * @return
// */
// CommonResult<OrderRecipientBO> getOrderRecipientBO(Integer orderId);
//
// /**
// * 订单info
// *
// * @param userId
// * @param orderId
// * @return
// */
// CommonResult<OrderInfoBO> info(Integer userId, Integer orderId);
//
// /**
// * 订单 - 创建
// *
// * @param orderCreateDTO
// * @return
// */
// CommonResult<OrderCreateBO> createOrder(OrderCreateDTO orderCreateDTO);
//
// /**
// * 订单item - 更新
// *
// * @param orderItemUpdateDTO
// *
// */
// CommonResult updateOrderItem(OrderItemUpdateDTO orderItemUpdateDTO);
//
// /**
// * 更新订单item - payAmount(实付金额)
// *
// * @param orderId
// * @param orderItemId
// * @param payAmount
// * @return
// */
// CommonResult updateOrderItemPayAmount(Integer orderId, Integer orderItemId, Integer payAmount);
//
// /**
// * 订单 - 取消订单
// *
// * @param orderId
// * @return
// */
// CommonResult cancelOrder(Integer orderId, Integer reasons, String otherReasons);
//
// /**
// * 订单发货
// *
// * @param orderDelivery
// * @return
// */
// CommonResult<OrderRecipientBO> orderDelivery(OrderDeliveryDTO orderDelivery);
//
// /**
// * 更新订单 - 备注
// *
// * @param orderId
// * @param remake
// * @return
// */
// CommonResult updateOrderRemake(Integer orderId, String remake);
//
// /**
// * 删除订单item
// *
// * @param orderItemDeletedDTO
// * @return
// */
// CommonResult deleteOrderItem(OrderItemDeletedDTO orderItemDeletedDTO);
//
// /**
// * 用户确认订单
// *
// * @param userId
// * @param orderId
// * @return
// */
// CommonResult confirmReceiving(Integer userId, Integer orderId);
//
// /**
// * 更新订单 - 收件这信息
// *
// * 包含:
// * - 详细地址
// * - 区域编号
// * - 联系人电话
// * - 联系人姓名
// */
// CommonResult updateLogistics(OrderLogisticsUpdateDTO orderLogisticsDTO);
//
// /**
// * 删除订单 // TODO FROM 芋艿 to 小范。删除订单,不要使用 deleted 字段,对于用户是删除,实际是隐藏。
// *
// * @param id
// */
// CommonResult deleteOrder(Integer id);
//
// /**
// * 更新订单支付成功
// *
// * 如果成功,则返回 success
// * 如果失败,则返回具体原因
// *
// * @param orderId 订单编号
// * @param payAmount 支付的订单金额
// * @return 支付结果
// */
// String updatePaySuccess(String orderId, Integer payAmount);
//
// /**
// * 监听确认收货
// *
// * mq 更新 status
// */
// CommonResult listenerConfirmGoods();
//
// /**
// * 监听换货
// *
// * mq 更新 status
// */
// CommonResult listenerExchangeGoods();
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/impl/CartServiceImpl.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
.
impl
;
import
cn.iocoder.mall.order.biz.service.CartService
;
import
org.springframework.stereotype.Service
;
/**
* 购物车服务 Service 实现类
*/
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.CartService.version}"
)
public
class
CartServiceImpl
implements
CartService
{
// @Reference(validation = "true", version = "${dubbo.consumer.PromotionActivityService.version}")
// private ProductSpuService productSpuService;
// @Reference(validation = "true", version = "${dubbo.consumer.PromotionActivityService.version}")
// private PromotionActivityService promotionActivityService;
// @Reference(validation = "true", version = "${dubbo.consumer.CouponService.version}")
// private CouponService couponService;
//
// @Autowired
// private CartMapper cartMapper;
//
// @Override
// @SuppressWarnings("Duplicates")
// public Boolean add(Integer userId, Integer skuId, Integer quantity) {
// // 查询 SKU 是否合法
// ProductSkuBO sku = productSpuService.getProductSku(skuId);
// if (sku == null
// || CommonStatusEnum.DISABLE.getValue().equals(sku.getStatus())) { // sku 被禁用
// throw ServiceExceptionUtil.exception(OrderErrorCodeEnum.CARD_ITEM_SKU_NOT_FOUND.getCode());
// }
// // TODO 芋艿,后续基于商品是否上下架进一步完善。
// // 查询 CartItemDO
// CartItemDO item = cartMapper.selectByUserIdAndSkuIdAndStatus(userId, skuId, CartItemStatusEnum.ENABLE.getValue());
// // 存在,则进行数量更新
// if (item != null) {
// return updateQuantity0(item, sku, quantity);
// }
// // 不存在,则进行插入
// return add0(userId, sku, quantity);
// }
//
// private Boolean add0(Integer userId, ProductSkuBO sku, Integer quantity) {
// // 校验库存
// if (quantity > sku.getQuantity()) {
// throw ServiceExceptionUtil.exception(OrderErrorCodeEnum.CARD_ITEM_SKU_NOT_FOUND.getCode());
// }
// // 创建 CartItemDO 对象,并进行保存。
// CartItemDO item = new CartItemDO()
// // 基础字段
// .setStatus(CartItemStatusEnum.ENABLE.getValue()).setSelected(true)
// // 买家信息
// .setUserId(userId)
// // 商品信息
// .setSpuId(sku.getSpuId()).setSkuId(sku.getId()).setQuantity(quantity);
// item.setCreateTime(new Date());
// cartMapper.insert(item);
// // 返回成功
// return true;
// }
//
// @Override
// @SuppressWarnings("Duplicates")
// public Boolean updateQuantity(Integer userId, Integer skuId, Integer quantity) {
// // 查询 SKU 是否合法
// ProductSkuBO sku = productSpuService.getProductSku(skuId);
// if (sku == null
// || CommonStatusEnum.DISABLE.getValue().equals(sku.getStatus())) { // sku 被禁用
// throw ServiceExceptionUtil.exception(OrderErrorCodeEnum.CARD_ITEM_SKU_NOT_FOUND.getCode());
// }
// // 查询 CartItemDO
// CartItemDO item = cartMapper.selectByUserIdAndSkuIdAndStatus(userId, skuId, CartItemStatusEnum.ENABLE.getValue());
// if (item == null) {
// throw ServiceExceptionUtil.exception(OrderErrorCodeEnum.CARD_ITEM_NOT_FOUND.getCode());
// }
// // TODO 芋艿,后续基于商品是否上下架进一步完善。
// return updateQuantity0(item, sku, quantity);
// }
//
// private Boolean updateQuantity0(CartItemDO item, ProductSkuBO sku, Integer quantity) {
// // 校验库存
// if (item.getQuantity() + quantity > sku.getQuantity()) {
// throw ServiceExceptionUtil.exception(OrderErrorCodeEnum.CARD_ITEM_SKU_NOT_FOUND.getCode());
// }
// // 更新 CartItemDO
// cartMapper.updateQuantity(item.getId(), quantity);
// // 返回成功
// return true;
// }
//
// @Override
// public Boolean updateSelected(Integer userId, Collection<Integer> skuIds, Boolean selected) {
// // 更新 CartItemDO 们
// cartMapper.updateListByUserIdAndSkuId(userId, skuIds, selected, null);
// // 返回成功
// return true;
// }
//
// @Override
// public Boolean deleteList(Integer userId, List<Integer> skuIds) {
// // 更新 CartItemDO 们
// cartMapper.updateListByUserIdAndSkuId(userId, skuIds, null, CartItemStatusEnum.DELETE_BY_MANUAL.getValue());
// // 返回成功
// return true;
// }
//
// @Override
// public Boolean deleteAll(Integer userId) {
// return null;
// }
//
// @Override
// public Integer count(Integer userId) {
// return cartMapper.selectQuantitySumByUserIdAndStatus(userId, CartItemStatusEnum.ENABLE.getValue());
// }
//
// @Override
// public List<CartItemBO> list(Integer userId, Boolean selected) {
// List<CartItemDO> items = cartMapper.selectByUserIdAndStatusAndSelected(userId, CartItemStatusEnum.ENABLE.getValue(), selected);
// return CartConvert.INSTANCE.convert(items);
// }
//
// @Override
// public CalcOrderPriceBO calcOrderPrice(CalcOrderPriceDTO calcOrderPriceDTO) {
// // TODO 芋艿,补充一些表单校验。例如说,需要传入用户编号。
// // 校验商品都存在
// Map<Integer, CalcOrderPriceDTO.Item> calcOrderItemMap = calcOrderPriceDTO.getItems().stream()
// .collect(Collectors.toMap(CalcOrderPriceDTO.Item::getSkuId, item -> item)); // KEY:skuId
// List<ProductSkuDetailBO> skus = productSpuService.getProductSkuDetailList(calcOrderItemMap.keySet());
// if (skus.size() != calcOrderPriceDTO.getItems().size()) {
// throw ServiceExceptionUtil.exception(OrderErrorCodeEnum.ORDER_ITEM_SOME_NOT_EXISTS.getCode());
// }
// // TODO 库存相关
// // 查询促销活动
// List<PromotionActivityBO> activityList = promotionActivityService.getPromotionActivityListBySpuIds(
// skus.stream().map(sku -> sku.getSpu().getId()).collect(Collectors.toSet()),
// Collections.singletonList(PromotionActivityStatusEnum.RUN.getValue()));
// // 拼装结果(主要是计算价格)
// CalcOrderPriceBO calcOrderPriceBO = new CalcOrderPriceBO();
// // 1. 创建初始的每一项的数组
// List<CalcOrderPriceBO.Item> items = initCalcOrderPriceItems(skus, calcOrderItemMap);
// // 2. 计算【限时折扣】促销
// modifyPriceByTimeLimitDiscount(items, activityList);
// // 3. 计算【满减送】促销
// List<CalcOrderPriceBO.ItemGroup> itemGroups = groupByFullPrivilege(items, activityList);
// calcOrderPriceBO.setItemGroups(itemGroups);
// // 4. 计算优惠劵
// if (calcOrderPriceDTO.getCouponCardId() != null) {
// Integer result = modifyPriceByCouponCard(calcOrderPriceDTO.getUserId(), calcOrderPriceDTO.getCouponCardId(), itemGroups);
// calcOrderPriceBO.setCouponCardDiscountTotal(result);
// }
// // 5. 计算最终的价格
// int buyTotal = 0;
// int discountTotal = 0;
// int presentTotal = 0;
// for (CalcOrderPriceBO.ItemGroup itemGroup : calcOrderPriceBO.getItemGroups()) {
// buyTotal += itemGroup.getItems().stream().mapToInt(item -> item.getSelected() ? item.getBuyTotal() : 0).sum();
// discountTotal += itemGroup.getItems().stream().mapToInt(item -> item.getSelected() ? item.getDiscountTotal() : 0).sum();
// presentTotal += itemGroup.getItems().stream().mapToInt(item -> item.getSelected() ? item.getPresentTotal() : 0).sum();
// }
// Assert.isTrue(buyTotal - discountTotal == presentTotal,
// String.format("价格合计( %d - %d == %d )不正确", buyTotal, discountTotal, presentTotal));
// calcOrderPriceBO.setFee(new CalcOrderPriceBO.Fee(buyTotal, discountTotal, 0, presentTotal));
// // 返回
// return calcOrderPriceBO;
// }
//
// @Override
// @SuppressWarnings("Duplicates")
// public CalcSkuPriceBO calcSkuPrice(Integer skuId) {
// // 查询 SKU 是否合法
// ProductSkuBO sku = productSpuService.getProductSku(skuId);
// if (sku == null
// || CommonStatusEnum.DISABLE.getValue().equals(sku.getStatus())) { // sku 被禁用
// throw ServiceExceptionUtil.exception(OrderErrorCodeEnum.CARD_ITEM_SKU_NOT_FOUND.getCode());
// }
// // 查询促销活动
// List<PromotionActivityBO> activityList = promotionActivityService.getPromotionActivityListBySpuId(sku.getSpuId(),
// Arrays.asList(PromotionActivityStatusEnum.WAIT.getValue(), PromotionActivityStatusEnum.RUN.getValue()));
// if (activityList.isEmpty()) { // 如果无促销活动,则直接返回默认结果即可
// return new CalcSkuPriceBO().setOriginalPrice(sku.getPrice()).setBuyPrice(sku.getPrice());
// }
// // 如果有促销活动,则开始做计算 TODO 芋艿,因为现在暂时只有限时折扣 + 满减送。所以写的比较简单先
// PromotionActivityBO fullPrivilege = findPromotionActivityByType(activityList, PromotionActivityTypeEnum.FULL_PRIVILEGE);
// PromotionActivityBO timeLimitedDiscount = findPromotionActivityByType(activityList, PromotionActivityTypeEnum.TIME_LIMITED_DISCOUNT);
// Integer presentPrice = calcSkuPriceByTimeLimitDiscount(sku, timeLimitedDiscount);
// // 返回结果
// return new CalcSkuPriceBO().setFullPrivilege(fullPrivilege).setTimeLimitedDiscount(timeLimitedDiscount)
// .setOriginalPrice(sku.getPrice()).setBuyPrice(presentPrice);
// }
//
// private List<CalcOrderPriceBO.Item> initCalcOrderPriceItems(List<ProductSkuDetailBO> skus,
// Map<Integer, CalcOrderPriceDTO.Item> calcOrderItemMap) {
// List<CalcOrderPriceBO.Item> items = new ArrayList<>();
// for (ProductSkuDetailBO sku : skus) {
// CalcOrderPriceBO.Item item = CartConvert.INSTANCE.convert(sku);
// items.add(item);
// // 将是否选中,购物数量,复制到 item 中
// CalcOrderPriceDTO.Item calcOrderItem = calcOrderItemMap.get(sku.getId());
// item.setSelected(calcOrderItem.getSelected());
// item.setBuyQuantity(calcOrderItem.getQuantity());
// // 计算初始价格
// item.setOriginPrice(sku.getPrice());
// item.setBuyPrice(sku.getPrice());
// item.setPresentPrice(sku.getPrice());
// item.setBuyTotal(sku.getPrice() * calcOrderItem.getQuantity());
// item.setDiscountTotal(0);
// item.setPresentTotal(item.getBuyTotal());
// }
// return items;
// }
//
// private void modifyPriceByTimeLimitDiscount(List<CalcOrderPriceBO.Item> items, List<PromotionActivityBO> activityList) {
// for (CalcOrderPriceBO.Item item : items) {
// // 获得符合条件的限时折扣
// PromotionActivityBO timeLimitedDiscount = activityList.stream()
// .filter(activity -> PromotionActivityTypeEnum.TIME_LIMITED_DISCOUNT.getValue().equals(activity.getActivityType())
// && activity.getTimeLimitedDiscount().getItems().stream().anyMatch(item0 -> item0.getSpuId().equals(item.getSpu().getId())))
// .findFirst().orElse(null);
// if (timeLimitedDiscount == null) {
// continue;
// }
// // 计算价格
// ProductSkuBO sku = new ProductSkuBO().setId(item.getId()).setSpuId(item.getSpu().getId()).setPrice(item.getPrice());
// Integer newPrice = calcSkuPriceByTimeLimitDiscount(sku, timeLimitedDiscount);
// if (newPrice.equals(item.getPrice())) {
// continue;
// }
// // 设置优惠
// item.setActivity(timeLimitedDiscount);
// // 设置价格
// item.setBuyPrice(newPrice);
// item.setBuyTotal(newPrice * item.getBuyQuantity());
// item.setPresentTotal(item.getBuyTotal() - item.getDiscountTotal());
// item.setPresentPrice(item.getPresentTotal() / item.getBuyQuantity());
// }
// }
//
// private List<CalcOrderPriceBO.ItemGroup> groupByFullPrivilege(List<CalcOrderPriceBO.Item> items, List<PromotionActivityBO> activityList) {
// List<CalcOrderPriceBO.ItemGroup> itemGroups = new ArrayList<>();
// // 获得所有满减送促销
// List<PromotionActivityBO> fullPrivileges = activityList.stream()
// .filter(activity -> PromotionActivityTypeEnum.FULL_PRIVILEGE.getValue().equals(activity.getActivityType()))
// .collect(Collectors.toList());
// // 基于满减送促销,进行分组
// if (!fullPrivileges.isEmpty()) {
// items = new ArrayList<>(items); // 因为下面会修改数组,进行浅拷贝,避免影响传入的 items 。
// for (PromotionActivityBO fullPrivilege : fullPrivileges) {
// // 创建 fullPrivilege 对应的分组
// CalcOrderPriceBO.ItemGroup itemGroup = new CalcOrderPriceBO.ItemGroup()
// .setActivity(fullPrivilege)
// .setItems(new ArrayList<>());
// // 筛选商品到分组中
// for (Iterator<CalcOrderPriceBO.Item> iterator = items.iterator(); iterator.hasNext(); ) {
// CalcOrderPriceBO.Item item = iterator.next();
// if (!isSpuMatchFullPrivilege(item.getSpu().getId(), fullPrivilege)) {
// continue;
// }
// itemGroup.getItems().add(item);
// iterator.remove();
// }
// // 如果匹配到,则添加到 itemGroups 中
// if (!itemGroup.getItems().isEmpty()) {
// itemGroups.add(itemGroup);
// }
// }
// }
// // 处理未参加活动的商品,形成一个分组
// if (!items.isEmpty()) {
// itemGroups.add(new CalcOrderPriceBO.ItemGroup().setItems(items));
// }
// // 计算每个分组的价格
// for (CalcOrderPriceBO.ItemGroup itemGroup : itemGroups) {
// itemGroup.setActivityDiscountTotal(calcSkuPriceByFullPrivilege(itemGroup));
// }
// // 返回结果
// return itemGroups;
// }
//
// private Integer modifyPriceByCouponCard(Integer userId, Integer couponCardId, List<CalcOrderPriceBO.ItemGroup> itemGroups) {
// Assert.isTrue(couponCardId != null, "优惠劵编号不能为空");
// // 查询优惠劵
// CouponCardDetailBO couponCard = couponService.getCouponCardDetail(userId, couponCardId);
// // 获得匹配的商品
// List<CalcOrderPriceBO.Item> items = new ArrayList<>();
// if (RangeTypeEnum.ALL.getValue().equals(couponCard.getRangeType())) {
//// totalPrice = spus.stream().mapToInt(spu -> spu.getPrice() * spu.getQuantity()).sum();
// itemGroups.forEach(itemGroup -> items.addAll(itemGroup.getItems()));
// } else if (RangeTypeEnum.PRODUCT_INCLUDE_PART.getValue().equals(couponCard.getRangeType())) {
// itemGroups.forEach(itemGroup -> items.forEach(item -> {
// if (couponCard.getRangeValues().contains(item.getSpu().getId())) {
// items.add(item);
// }
// }));
// } else if (RangeTypeEnum.PRODUCT_EXCLUDE_PART.getValue().equals(couponCard.getRangeType())) {
// itemGroups.forEach(itemGroup -> items.forEach(item -> {
// if (!couponCard.getRangeValues().contains(item.getSpu().getId())) {
// items.add(item);
// }
// }));
// } else if (RangeTypeEnum.CATEGORY_INCLUDE_PART.getValue().equals(couponCard.getRangeType())) {
// itemGroups.forEach(itemGroup -> items.forEach(item -> {
// if (couponCard.getRangeValues().contains(item.getSpu().getCid())) {
// items.add(item);
// }
// }));
// } else if (RangeTypeEnum.CATEGORY_EXCLUDE_PART.getValue().equals(couponCard.getRangeType())) {
// itemGroups.forEach(itemGroup -> items.forEach(item -> {
// if (!couponCard.getRangeValues().contains(item.getSpu().getCid())) {
// items.add(item);
// }
// }));
// }
// // 判断是否符合条件
// int originalTotal = items.stream().mapToInt(CalcOrderPriceBO.Item::getPresentTotal).sum(); // 此处,指的是以优惠劵视角的原价
// if (originalTotal == 0 || originalTotal < couponCard.getPriceAvailable()) {
// throw ServiceExceptionUtil.exception(PromotionErrorCodeEnum.COUPON_CARD_NOT_MATCH.getCode()); // TODO 芋艿,这种情况,会出现错误码的提示,无法格式化出来。另外,这块的最佳实践,找人讨论下。
// }
// // 计算价格
// // 获得到优惠信息,进行价格计算
// int presentTotal;
// if (PreferentialTypeEnum.PRICE.getValue().equals(couponCard.getPreferentialType())) { // 减价
// // 计算循环次数。这样,后续优惠的金额就是相乘了
// presentTotal = originalTotal - couponCard.getPriceOff();
// Assert.isTrue(presentTotal > 0, "计算后,价格为负数:" + presentTotal);
// } else if (PreferentialTypeEnum.DISCOUNT.getValue().equals(couponCard.getPreferentialType())) { // 打折
// presentTotal = originalTotal * couponCard.getPercentOff() / 100;
// if (couponCard.getDiscountPriceLimit() != null // 空,代表不限制优惠上限
// && originalTotal - presentTotal > couponCard.getDiscountPriceLimit()) {
// presentTotal = originalTotal - couponCard.getDiscountPriceLimit();
// }
// } else {
// throw new IllegalArgumentException(String.format("优惠劵(%s) 的优惠类型不正确", couponCard.toString()));
// }
// int discountTotal = originalTotal - presentTotal;
// Assert.isTrue(discountTotal > 0, "计算后,不产生优惠:" + discountTotal);
// // 按比例,拆分 presentTotal
// splitDiscountPriceToItems(items, discountTotal, presentTotal);
// // 返回优惠金额
// return originalTotal - presentTotal;
// }
//
// /**
// * 计算指定 SKU 在限时折扣下的价格
// *
// * @param sku SKU
// * @param timeLimitedDiscount 限时折扣促销。
// * 传入的该活动,要保证该 SKU 在该促销下一定有优惠。
// * @return 计算后的价格
// */
// private Integer calcSkuPriceByTimeLimitDiscount(ProductSkuBO sku, PromotionActivityBO timeLimitedDiscount) {
// if (timeLimitedDiscount == null) {
// return sku.getPrice();
// }
// // 获得对应的优惠项
// PromotionActivityBO.TimeLimitedDiscount.Item item = timeLimitedDiscount.getTimeLimitedDiscount().getItems().stream()
// .filter(item0 -> item0.getSpuId().equals(sku.getSpuId()))
// .findFirst().orElse(null);
// if (item == null) {
// throw new IllegalArgumentException(String.format("折扣活动(%s) 不存在商品(%s) 的优惠配置",
// timeLimitedDiscount.toString(), sku.toString()));
// }
// // 计算价格
// if (PreferentialTypeEnum.PRICE.getValue().equals(item.getPreferentialType())) { // 减价
// int presentPrice = sku.getPrice() - item.getPreferentialValue();
// return presentPrice >= 0 ? presentPrice : sku.getPrice(); // 如果计算优惠价格小于 0 ,则说明无法使用优惠。
// }
// if (PreferentialTypeEnum.DISCOUNT.getValue().equals(item.getPreferentialType())) { // 打折
// return sku.getPrice() * item.getPreferentialValue() / 100;
// }
// throw new IllegalArgumentException(String.format("折扣活动(%s) 的优惠类型不正确", timeLimitedDiscount.toString()));
// }
//
// private Integer calcSkuPriceByFullPrivilege(CalcOrderPriceBO.ItemGroup itemGroup) {
// if (itemGroup.getActivity() == null) {
// return null;
// }
// PromotionActivityBO activity = itemGroup.getActivity();
// Assert.isTrue(PromotionActivityTypeEnum.FULL_PRIVILEGE.getValue().equals(activity.getActivityType()),
// "传入的必须的满减送活动必须是满减送");
// // 获得优惠信息
// List<CalcOrderPriceBO.Item> items = itemGroup.getItems().stream().filter(CalcOrderPriceBO.Item::getSelected)
// .collect(Collectors.toList());
// Integer itemCnt = items.stream().mapToInt(CalcOrderPriceBO.Item::getBuyQuantity).sum();
// Integer originalTotal = items.stream().mapToInt(CalcOrderPriceBO.Item::getPresentTotal).sum();
// List<PromotionActivityBO.FullPrivilege.Privilege> privileges = activity.getFullPrivilege().getPrivileges().stream()
// .filter(privilege -> {
// if (MeetTypeEnum.PRICE.getValue().equals(privilege.getMeetType())) {
// return originalTotal >= privilege.getMeetValue();
// }
// if (MeetTypeEnum.QUANTITY.getValue().equals(privilege.getMeetType())) {
// return itemCnt >= privilege.getMeetValue();
// }
// throw new IllegalArgumentException(String.format("满减送活动(%s) 的匹配(%s)不正确", itemGroup.getActivity().toString(), privilege.toString()));
// }).collect(Collectors.toList());
// // 获得不到优惠信息,返回原始价格
// if (privileges.isEmpty()) {
// return null;
// }
// // 获得到优惠信息,进行价格计算
// PromotionActivityBO.FullPrivilege.Privilege privilege = privileges.get(privileges.size() - 1);
// Integer presentTotal;
// if (PreferentialTypeEnum.PRICE.getValue().equals(privilege.getPreferentialType())) { // 减价
// // 计算循环次数。这样,后续优惠的金额就是相乘了
// Integer cycleCount = 1;
// if (activity.getFullPrivilege().getCycled()) {
// if (MeetTypeEnum.PRICE.getValue().equals(privilege.getMeetType())) {
// cycleCount = originalTotal / privilege.getMeetValue();
// } else if (MeetTypeEnum.QUANTITY.getValue().equals(privilege.getMeetType())) {
// cycleCount = itemCnt / privilege.getMeetValue();
// }
// }
// presentTotal = originalTotal - cycleCount * privilege.getMeetValue();
// if (presentTotal < 0) { // 如果计算优惠价格小于 0 ,则说明无法使用优惠。
// presentTotal = originalTotal;
// }
// } else if (PreferentialTypeEnum.DISCOUNT.getValue().equals(privilege.getPreferentialType())) { // 打折
// presentTotal = originalTotal * privilege.getPreferentialValue() / 100;
// } else {
// throw new IllegalArgumentException(String.format("满减送促销(%s) 的优惠类型不正确", activity.toString()));
// }
// int discountTotal = originalTotal - presentTotal;
// if (discountTotal == 0) {
// return null;
// }
// // 按比例,拆分 presentTotal
//// for (int i = 0; i < items.size(); i++) {
//// CalcOrderPriceBO.Item item = items.get(i);
//// Integer discountPart;
//// if (i < items.size() - 1) { // 减一的原因,是因为拆分时,如果按照比例,可能会出现.所以最后一个,使用反减
//// discountPart = (int) (discountTotal * (1.0D * item.getPresentTotal() / presentTotal));
//// discountTotal -= discountPart;
//// } else {
//// discountPart = discountTotal;
//// }
//// Assert.isTrue(discountPart > 0, "优惠金额必须大于 0");
//// item.setDiscountTotal(item.getDiscountTotal() + discountPart);
//// item.setPresentTotal(item.getBuyTotal() - item.getDiscountTotal());
//// item.setPresentPrice(item.getPresentTotal() / item.getBuyQuantity());
//// }
// splitDiscountPriceToItems(items, discountTotal, presentTotal);
// // 返回优惠金额
// return originalTotal - presentTotal;
// }
//
// private void splitDiscountPriceToItems(List<CalcOrderPriceBO.Item> items, Integer discountTotal, Integer presentTotal) {
// for (int i = 0; i < items.size(); i++) {
// CalcOrderPriceBO.Item item = items.get(i);
// Integer discountPart;
// if (i < items.size() - 1) { // 减一的原因,是因为拆分时,如果按照比例,可能会出现.所以最后一个,使用反减
// discountPart = (int) (discountTotal * (1.0D * item.getPresentTotal() / presentTotal));
// discountTotal -= discountPart;
// } else {
// discountPart = discountTotal;
// }
// Assert.isTrue(discountPart > 0, "优惠金额必须大于 0");
// item.setDiscountTotal(item.getDiscountTotal() + discountPart);
// item.setPresentTotal(item.getBuyTotal() - item.getDiscountTotal());
// item.setPresentPrice(item.getPresentTotal() / item.getBuyQuantity());
// }
// }
//
// private PromotionActivityBO findPromotionActivityByType(List<PromotionActivityBO> activityList, PromotionActivityTypeEnum type) {
// return activityList.stream()
// .filter(activity -> type.getValue().equals(activity.getActivityType()))
// .findFirst().orElse(null);
// }
//
// private List<PromotionActivityBO> findPromotionActivityListByType(List<PromotionActivityBO> activityList, PromotionActivityTypeEnum type) {
// return activityList.stream()
// .filter(activity -> type.getValue().equals(activity.getActivityType()))
// .collect(Collectors.toList());
// }
//
// private boolean isSpuMatchFullPrivilege(Integer spuId, PromotionActivityBO activity) {
// Assert.isTrue(PromotionActivityTypeEnum.FULL_PRIVILEGE.getValue().equals(activity.getActivityType()),
// "传入的必须的促销活动必须是满减送");
// PromotionActivityBO.FullPrivilege fullPrivilege = activity.getFullPrivilege();
// if (RangeTypeEnum.ALL.getValue().equals(fullPrivilege.getRangeType())) {
// return true;
// } else if (RangeTypeEnum.PRODUCT_INCLUDE_PART.getValue().equals(fullPrivilege.getRangeType())) {
// return fullPrivilege.getRangeValues().contains(spuId);
// } else {
// throw new IllegalArgumentException(String.format("促销活动(%s) 可用范围的类型是不正确", activity.toString()));
// }
// }
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/impl/OrderCommentReplyServiceImpl.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
.
impl
;
import
cn.iocoder.mall.order.biz.dao.comment.OrderCommentReplayMapper
;
import
cn.iocoder.mall.order.biz.service.OrderCommentReplyService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
*
* 订单评论回复 service impl
*
* @author wtz
* @time 2019-05-31 18:30
*/
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.OrderCommentReplyService.version}"
)
public
class
OrderCommentReplyServiceImpl
implements
OrderCommentReplyService
{
@Autowired
private
OrderCommentReplayMapper
orderCommentReplayMapper
;
// /**
// * 分页获取评论回复
// * @param orderCommentReplyPageDTO
// * @return
// */
// @Override
// public OrderCommentReplyPageBO getOrderCommentReplyPage(OrderCommentReplyPageDTO orderCommentReplyPageDTO) {
// OrderCommentReplyPageBO orderCommentReplyPageBO=new OrderCommentReplyPageBO();
// //评论回复总数
// Integer totalCount=orderCommentReplayMapper.selectCommentReplyTotalCountByCommentId(orderCommentReplyPageDTO.getCommentId(),
// orderCommentReplyPageDTO.getUserType());
// //分页获取评论回复
// List<OrderCommentReplyDO> orderCommentReplyDOList=orderCommentReplayMapper.selectCommentReplyPage(orderCommentReplyPageDTO);
// orderCommentReplyPageBO.setTotal(totalCount);
// orderCommentReplyPageBO.setOrderCommentReplayItems(OrderCommentReplyConvert.INSTANCE.convertOrderCommentReplayItem(orderCommentReplyDOList));
// return orderCommentReplyPageBO;
// }
//
//
// /**
// * 创建评论回复
// * @param orderCommentReplyCreateDTO
// * @return
// */
// @Override
// public OrderCommentReplyCreateBO createOrderCommentReply(OrderCommentReplyCreateDTO orderCommentReplyCreateDTO) {
// OrderCommentReplyDO orderCommentReplyDO=OrderCommentReplyConvert.INSTANCE.convert(orderCommentReplyCreateDTO);
// orderCommentReplyDO.setCreateTime(new Date());
//
// Integer replyType=orderCommentReplyCreateDTO.getCommentId()==orderCommentReplyCreateDTO.getParentId()?
// OrderCommentRelpyTypeEnum.COMMENT_REPLY.getValue():OrderCommentRelpyTypeEnum.REPLY_REPLY.getValue();
//
// orderCommentReplyDO.setReplyType(replyType);
//
// orderCommentReplayMapper.insert(orderCommentReplyDO);
//
// return OrderCommentReplyConvert.INSTANCE.convert(orderCommentReplyDO);
// }
//
// /**
// * 获取商家评论回复
// * @param commentId
// * @return
// */
// @Override
// public List<OrderCommentMerchantReplyBO> getOrderCommentMerchantReply(Integer commentId) {
// List<OrderCommentReplyDO> orderCommentReplyDOList=orderCommentReplayMapper.selectCommentMerchantReplyByCommentIdAndUserType(commentId,
// OrderReplyUserTypeEnum.MERCHANT.getValue());
// return OrderCommentReplyConvert.INSTANCE.convert(orderCommentReplyDOList);
// }
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/impl/OrderCommentServiceImpl.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
.
impl
;
import
cn.iocoder.mall.order.biz.dao.comment.OrderCommentMapper
;
import
cn.iocoder.mall.order.biz.dao.comment.OrderCommentReplayMapper
;
import
cn.iocoder.mall.order.biz.service.OrderCommentService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
*
* 订单评论 service impl
*
* @author wtz
* @time 2019
*/
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.OrderCommentService.version}"
)
public
class
OrderCommentServiceImpl
implements
OrderCommentService
{
@Autowired
private
OrderCommentMapper
orderCommentMapper
;
@Autowired
private
OrderCommentReplayMapper
orderCommentReplayMapper
;
// @Override
// public OrderCommentCreateBO createOrderComment(OrderCommentCreateDTO orderCommentCreateDTO) {
// OrderCommentDO orderCommentDO=OrderCommentConvert.INSTANCE.convertOrderCommentDO(orderCommentCreateDTO);
// orderCommentDO.setCreateTime(new Date());
// orderCommentMapper.insert(orderCommentDO);
// return OrderCommentConvert.INSTANCE.convertOrderCommentCreateBO(orderCommentDO);
// }
//
// @Override
// public OrderCommentPageBO getOrderCommentPage(OrderCommentPageDTO orderCommentPageDTO) {
// OrderCommentPageBO orderCommentPageBO=new OrderCommentPageBO();
// //分页内容
// List<OrderCommentDO> orderCommentDOList=orderCommentMapper.selectCommentPage(orderCommentPageDTO);
// //分页评论的 id
// List<Integer> commentIds=orderCommentDOList.stream().map(x->x.getId()).collect(Collectors.toList());
// //获取商家最新的评论回复
// List<OrderCommentReplyDO> orderCommentReplyDOList=orderCommentReplayMapper.selectCommentNewMerchantReplyByCommentIds(commentIds,
// OrderReplyUserTypeEnum.MERCHANT.getValue());
// //评论组装
// List<OrderCommentPageBO.OrderCommentItem> orderCommentItemList=orderCommentDOList.stream()
// .flatMap(x->orderCommentReplyDOList.stream()
// .filter(y->x.getId()==y.getCommentId())
// .map(y->new OrderCommentPageBO.OrderCommentItem(x.getId(),x.getUserAvatar(),x.getUserNickName(),x.getStar(),
// x.getCommentContent(),x.getCommentPics(),x.getReplayCount(),x.getLikeCount(),x.getCreateTime(),y.getReplyContent()))
// ).collect(Collectors.toList());
// //总数
// int totalCount=orderCommentMapper.selectCommentTotalCountByProductSkuId(orderCommentPageDTO.getProductSkuId());
// orderCommentPageBO.setOrderCommentItems(orderCommentItemList);
// orderCommentPageBO.setTotal(totalCount);
// return orderCommentPageBO;
// }
//
//
// @Override
// public OrderCommentInfoBO getOrderCommentInfo(Integer commentId) {
// //查询评论详情
// OrderCommentDO orderCommentDO=orderCommentMapper.selectCommentInfoByCommentId(commentId);
// return OrderCommentConvert.INSTANCE.convertOrderCommentInfoBO(orderCommentDO);
// }
//
// @Override
// public OrderCommentStateInfoPageBO getOrderCommentStateInfoPage(OrderCommentStateInfoPageDTO orderCommentStateInfoPageDTO) {
// OrderCommentStateInfoPageBO orderCommentStateInfoPageBO=new OrderCommentStateInfoPageBO();
// //总数
// int total=orderCommentMapper.selectOrderCommentStateInfoTotal(orderCommentStateInfoPageDTO.getUserId(),
// orderCommentStateInfoPageDTO.getCommentState());
// //查询评论状态详情
// List<OrderCommentDO> orderCommentDOList=orderCommentMapper.selectOrderCommentStateInfoPage(orderCommentStateInfoPageDTO);
// //转化评论状态详情
// List<OrderCommentStateInfoPageBO.OrderCommentStateInfoItem> orderCommentStateInfoItemList=
// OrderCommentConvert.INSTANCE.convertOrderCommentStateInfoItems(orderCommentDOList);
// orderCommentStateInfoPageBO.setTotal(total);
// orderCommentStateInfoPageBO.setOrderCommentStateInfoItems(orderCommentStateInfoItemList);
// return orderCommentStateInfoPageBO;
// }
//
// @Override
// public List<OrderCommentTimeOutBO> getOrderCommentTimeOutPage(OrderCommentTimeOutPageDTO orderCommentTimeOutPageDTO) {
// List<OrderCommentDO> orderCommentDOList=orderCommentMapper.selectOrderCommentTimeOutPage(orderCommentTimeOutPageDTO);
// return OrderCommentConvert.INSTANCE.convertOrderCommentTimeOutBOList(orderCommentDOList);
// }
//
// @Override
// public void updateBatchOrderCommentState(List<OrderCommentTimeOutBO> orderCommentTimeOutBOList) {
// orderCommentMapper.updateBatchOrderCommentState(OrderCommentStatusEnum.SUCCESS_COMMENT.getValue(),orderCommentTimeOutBOList);
// }
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/impl/OrderLogisticsServiceImpl.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
.
impl
;
import
cn.iocoder.mall.order.biz.service.OrderLogisticsService
;
import
org.springframework.stereotype.Service
;
/**
* 订单物流
*
* @author Sin
* @time 2019-04-12 21:32
*/
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.OrderLogisticsService.version}"
)
public
class
OrderLogisticsServiceImpl
implements
OrderLogisticsService
{
// @Autowired
// private OrderMapper orderMapper;
// @Autowired
// private OrderItemMapper orderItemMapper;
// @Autowired
// private OrderLogisticsMapper orderLogisticsMapper;
// @Autowired
// private OrderLogisticsDetailMapper orderLogisticsDetailMapper;
//
// @Override
// public CommonResult<OrderLogisticsInfoBO> getLogisticsInfo(Integer id) {
// OrderLogisticsDO orderLogisticsDO = orderLogisticsMapper.selectById(id);
// if (orderLogisticsDO == null) {
// return CommonResult.success(null);
// }
//
// List<OrderLogisticsDetailDO> orderLogisticsDetailDOList = orderLogisticsDetailMapper
// .selectByOrderLogisticsId(orderLogisticsDO.getId());
//
// // 转换数据结构
// List<OrderLogisticsInfoBO.LogisticsDetail> logisticsDetails
// = OrderLogisticsConvert.INSTANCE.convert(orderLogisticsDetailDOList);
//
// OrderLogisticsInfoBO orderLogisticsInfo2BO = OrderLogisticsConvert.INSTANCE.convert(orderLogisticsDO);
// orderLogisticsInfo2BO.setDetails(logisticsDetails);
// return CommonResult.success(orderLogisticsInfo2BO);
// }
//
// @Override
// public CommonResult<OrderLastLogisticsInfoBO> getLastLogisticsInfo(Integer id) {
// OrderLogisticsDO orderLogisticsDO = orderLogisticsMapper.selectById(id);
// if (orderLogisticsDO == null) {
// return CommonResult.success(null);
// }
//
// OrderLogisticsDetailDO orderLastLogisticsDetailDO = orderLogisticsDetailMapper.selectLastByLogisticsId(id);
//
// // 转换数据结构
// OrderLastLogisticsInfoBO.LogisticsDetail lastLogisticsDetail
// = OrderLogisticsConvert.INSTANCE.convertLastLogisticsDetail(orderLastLogisticsDetailDO);
//
// OrderLastLogisticsInfoBO lastLogisticsInfoBO = OrderLogisticsConvert
// .INSTANCE.convertOrderLastLogisticsInfoBO(orderLogisticsDO);
//
// lastLogisticsInfoBO.setLastLogisticsDetail(lastLogisticsDetail);
// return CommonResult.success(lastLogisticsInfoBO);
// }
//
// @Override
// public CommonResult<OrderLogisticsInfoWithOrderBO> getOrderLogisticsInfo(Integer userId, Integer orderId) {
// OrderDO orderDO = orderMapper.selectById(orderId);
//
// if (orderDO == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_EXISTENT.getCode());
// }
//
// if (!userId.equals(orderDO.getUserId())) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_USER_ORDER.getCode());
// }
//
// // 获取订单所发货的订单 id
// List<OrderItemDO> orderItemDOList = orderItemMapper.selectByDeletedAndOrderId(
// DeletedStatusEnum.DELETED_NO.getValue(), orderId);
//
// // 获取物流 信息
// Set<Integer> orderLogisticsIds = orderItemDOList.stream()
// .filter(o -> o.getOrderLogisticsId() != null)
// .map(o -> o.getOrderLogisticsId())
// .collect(Collectors.toSet());
//
// List<OrderLogisticsDO> orderLogisticsDOList = Collections.emptyList();
// List<OrderLogisticsDetailDO> orderLogisticsDetailDOList = Collections.emptyList();
// if (!CollectionUtils.isEmpty(orderLogisticsIds)) {
// orderLogisticsDOList = orderLogisticsMapper.selectByIds(orderLogisticsIds);
// orderLogisticsDetailDOList = orderLogisticsDetailMapper.selectByOrderLogisticsIds(orderLogisticsIds);
// }
//
// // 转换 return 的数据
// List<OrderLogisticsInfoWithOrderBO.Logistics> logistics
// = OrderLogisticsConvert.INSTANCE.convertLogistics(orderLogisticsDOList);
//
// List<OrderLogisticsInfoWithOrderBO.LogisticsDetail> logisticsDetails
// = OrderLogisticsConvert.INSTANCE.convertLogisticsDetail(orderLogisticsDetailDOList);
//
// logisticsDetails.stream().map(o -> {
// o.setLogisticsTimeText(DateUtil.format(o.getLogisticsTime(), "yyyy-MM-dd HH:mm"));
// return o;
// }).collect(Collectors.toList());
//
// Map<Integer, List<OrderLogisticsInfoWithOrderBO.LogisticsDetail>> logisticsDetailMultimap
// = logisticsDetails.stream().collect(
// Collectors.toMap(
// o -> o.getOrderLogisticsId(),
// item -> Lists.newArrayList(item),
// (oldVal, newVal) -> {
// oldVal.addAll(newVal);
// return oldVal;
// }
// )
// );
//
// logistics.stream().map(o -> {
// if (logisticsDetailMultimap.containsKey(o.getId())) {
// o.setDetails(logisticsDetailMultimap.get(o.getId()));
// }
// return o;
// }).collect(Collectors.toList());
//
// return CommonResult.success(
// new OrderLogisticsInfoWithOrderBO()
// .setOrderId(orderId)
// .setOrderNo(orderDO.getOrderNo())
// .setLogistics(logistics)
// );
// }
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/impl/OrderReturnServiceImpl.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
.
impl
;
import
cn.iocoder.mall.order.biz.service.OrderReturnService
;
import
org.springframework.stereotype.Service
;
/**
* 订单退货 service
*
* @author Sin
* @time 2019-03-30 15:35
*/
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.OrderReturnService.version}"
)
public
class
OrderReturnServiceImpl
implements
OrderReturnService
{
// @Autowired
// private OrderMapper orderMapper;
// @Autowired
// private OrderItemMapper orderItemMapper;
// @Autowired
// private OrderReturnMapper orderReturnMapper;
// @Autowired
// private OrderLogisticsService orderLogisticsService;
//
// @Reference(validation = "true", version = "${dubbo.consumer.PayRefundService.version}")
// private PayRefundService payRefundService;
// @Reference(validation = "true", version = "${dubbo.consumer.DataDictService.version}")
// private DataDictService dataDictService;
//
//
// @Override
// public CommonResult orderReturnApply(OrderReturnApplyDTO orderReturnDTO) {
// OrderDO checkOrder = orderMapper.selectById(orderReturnDTO.getOrderId());
//
// // 检查订单是否 存在
// if (checkOrder == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_EXISTENT.getCode());
// }
//
// // 转换 DO
// OrderReturnDO orderReturnDO = OrderReturnConvert.INSTANCE.convert(orderReturnDTO);
// orderReturnDO
// .setOrderId(checkOrder.getId())
// // TODO: 2019-04-27 Sin 服务号生成规则
// .setServiceNumber(UUID.randomUUID().toString().replaceAll("-", "").substring(0, 16))
// .setOrderNo(checkOrder.getOrderNo())
// .setStatus(OrderReturnStatusEnum.RETURN_APPLICATION.getValue())
// .setCreateTime(new Date());
//
// // 保存申请信息
// orderReturnMapper.insert(orderReturnDO);
// return CommonResult.success(null);
// }
//
// @Override
// public String updateRefundSuccess(String orderId, Integer refundPrice) {
// return "success";
// }
//
// @Override
// public CommonResult<OrderReturnInfoBO> orderApplyInfo(Integer orderId) {
//
// // 检查订单是否退货
// OrderReturnDO orderReturnDO = orderReturnMapper.selectByOrderId(orderId);
// if (orderReturnDO == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_RETURN_NO_RETURN_APPLY.getCode());
// }
//
// List<OrderItemDO> orderItemDOList = orderItemMapper
// .selectByDeletedAndOrderId(DeletedStatusEnum.DELETED_NO.getValue(), orderId);
//
// // 订单不存在
// if (CollectionUtils.isEmpty(orderItemDOList)) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_EXISTENT.getCode());
// }
//
// // 转换 returnInfo
// OrderReturnInfoBO.ReturnInfo returnInfo = OrderReturnConvert.INSTANCE.convert(orderReturnDO);
// List<OrderReturnInfoBO.OrderItem> itemList = OrderReturnConvert.INSTANCE.convert(orderItemDOList);
//
// // 物流信息
// CommonResult<OrderLastLogisticsInfoBO> lastLogisticsCommonResult = orderLogisticsService
// .getLastLogisticsInfo(orderReturnDO.getOrderLogisticsId());
//
// if (lastLogisticsCommonResult.isError()) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_LOGISTICS_INVOKING_FAIL.getCode());
// }
//
// OrderLastLogisticsInfoBO lastLogisticsInfoBO = lastLogisticsCommonResult.getData();
// OrderReturnInfoBO orderReturnInfoBO = new OrderReturnInfoBO()
// .setOrderItems(itemList)
// .setReturnInfo(returnInfo)
// .setLastLogisticsInfo(lastLogisticsInfoBO);
//
// return CommonResult.success(orderReturnInfoBO);
// }
//
// @Override
// public CommonResult<OrderReturnListBO> orderReturnList(OrderReturnQueryDTO queryDTO) {
// int totalCount = orderReturnMapper.selectListCount(queryDTO);
// if (totalCount <= 0) {
// return CommonResult.success(
// new OrderReturnListBO()
// .setData(Collections.EMPTY_LIST)
// .setIndex(queryDTO.getIndex())
// .setPageSize(queryDTO.getPageSize())
// .setTotalCount(0)
// );
// }
// List<OrderReturnDO> orderReturnDOList = orderReturnMapper.selectList(queryDTO);
// List<OrderReturnListBO.OrderReturn> orderReturnListBOList
// = OrderReturnConvert.INSTANCE.convertListBO(orderReturnDOList);
//
// return CommonResult.success(
// new OrderReturnListBO()
// .setData(orderReturnListBOList)
// .setIndex(queryDTO.getIndex())
// .setPageSize(queryDTO.getPageSize())
// .setTotalCount(totalCount)
// );
// }
//
// @Override
// public CommonResult orderReturnAgree(Integer id) {
// OrderReturnDO orderReturnDO = orderReturnMapper.selectById(id);
// if (orderReturnDO == null) {
// return ServiceExceptionUtil
// .error(OrderErrorCodeEnum.ORDER_RETURN_NOT_EXISTENT.getCode());
// }
//
// orderReturnMapper.updateById(
// new OrderReturnDO()
// .setId(id)
// .setApprovalTime(new Date())
// .setStatus(OrderReturnStatusEnum.APPLICATION_SUCCESSFUL.getValue())
// );
// return CommonResult.success(null);
// }
//
// @Override
// public CommonResult orderReturnRefuse(Integer id) {
// OrderReturnDO orderReturnDO = orderReturnMapper.selectById(id);
// if (orderReturnDO == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_RETURN_NOT_EXISTENT.getCode());
// }
//
// orderReturnMapper.updateById(
// new OrderReturnDO()
// .setId(id)
// .setRefuseTime(new Date())
// .setStatus(OrderReturnStatusEnum.APPLICATION_FAIL.getValue())
// );
// return CommonResult.success(null);
// }
//
// @Override
// public CommonResult confirmReceipt(Integer id) {
// OrderReturnDO orderReturnDO = orderReturnMapper.selectById(id);
// if (orderReturnDO == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_RETURN_NOT_EXISTENT.getCode());
// }
//
// orderReturnMapper.updateById(
// new OrderReturnDO()
// .setId(id)
// .setReceiverTime(new Date())
// .setStatus(OrderReturnStatusEnum.ORDER_RECEIPT.getValue())
// );
// return CommonResult.success(null);
// }
//
// @Override
// @Transactional
// public CommonResult refund(Integer id, String ip) {
// OrderReturnDO orderReturnDO = orderReturnMapper.selectById(id);
// if (orderReturnDO == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_RETURN_NOT_EXISTENT.getCode());
// }
//
// // TODO: 2019/5/8 sin, 发送 MQ 消息,申请退货成功!
// // TODO: 2019/5/8 sin 退款:支付系统退款
// // TODO: 2019/5/8 sin 退货+退款:退回商品签收后,支付系统退款
// // TODO: 2019/5/8 sin 事务一致性 [重要]
//
//
// CommonResult<DataDictBO> dataDictResult = dataDictService
// .getDataDict(DictKeyConstants.ORDER_RETURN_REASON, orderReturnDO.getReason());
//
// if (dataDictResult.isError()) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.DICT_SERVER_INVOKING_FAIL.getCode());
// }
//
// // 支付退款
// String orderDescription = dataDictResult.getData()
// .getDisplayName() + "(" + orderReturnDO.getDescribe() + ")";
//
// CommonResult payResult = payRefundService.submitRefund(
// new PayRefundSubmitDTO()
// .setAppId(PayAppId.APP_ID_SHOP_ORDER)
// .setOrderId(String.valueOf(orderReturnDO.getOrderId()))
// .setPrice(orderReturnDO.getRefundPrice())
// .setOrderDescription(orderDescription)
// .setCreateIp(ip)
// );
//
// if (!payResult.isSuccess()) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_RETURN_REFUND_FAILED.getCode());
// }
//
// // 更新 订单退货 信息
// orderReturnMapper.updateById(
// new OrderReturnDO()
// .setId(id)
// .setClosingTime(new Date())
// .setStatus(OrderReturnStatusEnum.RETURN_SUCCESS.getValue())
// );
//
// // 更新订单
// orderMapper.updateById(
// new OrderDO()
// .setId(orderReturnDO.getOrderId())
// .setClosingTime(new Date())
// .setStatus(OrderStatusEnum.COMPLETED.getValue())
// );
//
// // 更新订单
// orderItemMapper.updateByOrderId(
// orderReturnDO.getOrderId(),
// new OrderItemDO()
// .setClosingTime(new Date())
// .setStatus(OrderStatusEnum.COMPLETED.getValue())
// );
// return CommonResult.success(null);
// }
}
order/order-biz/src/main/java/cn/iocoder/mall/order/biz/service/impl/OrderServiceImpl.java
0 → 100644
浏览文件 @
966375be
package
cn
.
iocoder
.
mall
.
order
.
biz
.
service
.
impl
;
import
cn.iocoder.mall.order.biz.service.OrderService
;
import
org.springframework.stereotype.Service
;
/**
* 订单 service impl
*
* @author Sin
* @time 2019-03-16 15:08
*/
@Service
@org
.
apache
.
dubbo
.
config
.
annotation
.
Service
(
validation
=
"true"
,
version
=
"${dubbo.provider.OrderService.version}"
)
public
class
OrderServiceImpl
implements
OrderService
{
// /**
// * 支付过期时间 120 分钟
// */
// public static final int PAY_EXPIRE_TIME = 120;
//
// @Autowired
// private OrderMapper orderMapper;
// @Autowired
// private OrderItemMapper orderItemMapper;
// @Autowired
// private OrderLogisticsMapper orderLogisticsMapper;
// @Autowired
// private OrderLogisticsDetailMapper orderLogisticsDetailMapper;
// @Autowired
// private OrderRecipientMapper orderRecipientMapper;
// @Autowired
// private OrderCancelMapper orderCancelMapper;
// @Autowired
// private OrderReturnMapper orderReturnMapper;
//
// @Autowired
// private CartServiceImpl cartService;
//
// @Reference(validation = "true", version = "${dubbo.consumer.PromotionActivityService.version}")
// private ProductSpuService productSpuService;
// @Reference(validation = "true", version = "${dubbo.consumer.UserAddressService.version}")
// private UserAddressService userAddressService;
// @Reference(validation = "true", version = "${dubbo.consumer.PayTransactionService.version}")
// private PayTransactionService payTransactionService;
// @Reference(validation = "true", version = "${dubbo.consumer.CouponService.version}")
// private CouponService couponService;
//
// @Override
// public CommonResult<OrderPageBO> getOrderPage(OrderQueryDTO orderQueryDTO) {
//
// int totalCount = orderMapper.selectPageCount(orderQueryDTO);
// if (totalCount == 0) { // TODO FROM 芋艿 TO 小范 Collections.EMPTY_LIST 改成 Collections.emptyList()
// return CommonResult.success(new OrderPageBO().setOrders(Collections.EMPTY_LIST).setTotal(0));
// }
//
// // 获取订单数据
// List<OrderDO> orderDOList = orderMapper.selectPage(orderQueryDTO);
//
// if (CollectionUtils.isEmpty(orderDOList)) {
// return CommonResult.success(new OrderPageBO().setOrders(Collections.EMPTY_LIST).setTotal(totalCount));
// }
//
// // 获取订单 id
// Set<Integer> orderIds = orderDOList.stream()
// .map(orderDO -> orderDO.getId()) // TODO FROM 芋艿 to 小范,记得用 Lambda
// .collect(Collectors.toSet());
//
// // 获取配送信息
// List<OrderRecipientDO> orderRecipientDOList = orderRecipientMapper.selectByOrderIds(orderIds);
// List<OrderRecipientBO> orderRecipientBOList = OrderRecipientConvert.INSTANCE.convert(orderRecipientDOList);
// Map<Integer, OrderRecipientBO> orderRecipientBOMap
// = orderRecipientBOList.stream().collect(Collectors.toMap(OrderRecipientBO::getOrderId, obj -> obj));
//
// // 获取 订单的 items
// List<OrderItemDO> orderItemDOList = orderItemMapper
// .selectByDeletedAndOrderIds(orderIds, DeletedStatusEnum.DELETED_NO.getValue());
//
// List<OrderItemBO> orderItemBOList = OrderItemConvert.INSTANCE.convertOrderItemDO(orderItemDOList);
// Map<Integer, List<OrderItemBO>> orderItemBOMultimap = orderItemBOList.stream().collect(
// Collectors.toMap(
// OrderItemBO::getOrderId,
// item -> Lists.newArrayList(item),
// (oldVal, newVal) -> {
// oldVal.addAll(newVal);
// return oldVal;
// }
// )
// );
//
// // 转换 orderDO 为 OrderBO,并设置 item
// List<OrderBO> orderPageBOList = OrderConvert.INSTANCE.convertPageBO(orderDOList);
// List<OrderBO> result = orderPageBOList.stream().map(orderBO -> {
// if (orderItemBOMultimap.containsKey(orderBO.getId())) {
// orderBO.setOrderItems(orderItemBOMultimap.get(orderBO.getId()));
// }
// if (orderRecipientBOMap.containsKey(orderBO.getId())) {
// orderBO.setOrderRecipient(orderRecipientBOMap.get(orderBO.getId()));
// }
// return orderBO;
// }).collect(Collectors.toList());
// return CommonResult.success(
// new OrderPageBO()
// .setTotal(totalCount)
// .setOrders(result)
// );
// }
//
// @Override
// public CommonResult<List<OrderItemBO>> getOrderItems(Integer orderId) {
// if (orderMapper.selectById(orderId) == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_EXISTENT.getCode());
// }
//
// List<OrderItemDO> orderItemDOList = orderItemMapper
// .selectByDeletedAndOrderId(DeletedStatusEnum.DELETED_NO.getValue(), orderId);
//
// List<OrderItemBO> orderItemBOList = OrderItemConvert.INSTANCE.convertOrderItemBO(orderItemDOList);
// return CommonResult.success(orderItemBOList);
// }
//
// @Override
// public CommonResult<OrderRecipientBO> getOrderRecipientBO(Integer orderId) {
// if (orderMapper.selectById(orderId) == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_EXISTENT.getCode());
// }
//
// OrderRecipientDO orderRecipientDO = orderRecipientMapper.selectByOrderId(orderId);
// OrderRecipientBO orderRecipientBO = OrderRecipientConvert.INSTANCE.convert(orderRecipientDO);
// return CommonResult.success(orderRecipientBO);
// }
//
// @Override
// public CommonResult<OrderInfoBO> info(Integer userId, Integer orderId) {
// OrderDO orderDO = orderMapper.selectById(orderId);
// if (orderDO == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_EXISTENT.getCode());
// }
//
// List<OrderItemDO> itemDOList = orderItemMapper
// .selectByDeletedAndOrderId(DeletedStatusEnum.DELETED_NO.getValue(), orderId);
//
// List<OrderInfoBO.OrderItem> orderItems
// = OrderItemConvert.INSTANCE.convertOrderInfoWithOrderItem(itemDOList);
//
// Set<Integer> orderLogisticsIds = itemDOList.stream()
// .filter(o -> o.getOrderLogisticsId() != null)
// .map(o -> o.getOrderLogisticsId())
// .collect(Collectors.toSet());
//
//
//
// // 收件人信息
// OrderRecipientDO orderRecipientDO = orderRecipientMapper.selectByOrderId(orderId);
//
// // 订单物流信息
// OrderLogisticsDetailDO orderLogisticsDetailDO = null;
// if (!CollectionUtils.isEmpty(orderLogisticsIds)) {
// orderLogisticsDetailDO = orderLogisticsDetailMapper.selectLast(orderLogisticsIds);
// }
//
// // 检查是否申请退货
// OrderReturnDO orderReturnDO = orderReturnMapper.selectByOrderId(orderId);
//
// // convert 信息
// OrderInfoBO.LogisticsDetail logisticsDetail
// = OrderLogisticsDetailConvert.INSTANCE.convertLogisticsDetail(orderLogisticsDetailDO);
//
// OrderInfoBO.Recipient recipient = OrderRecipientConvert.INSTANCE.convertOrderInfoRecipient(orderRecipientDO);
// OrderInfoBO orderInfoBO = OrderConvert.INSTANCE.convert(orderDO);
// orderInfoBO.setRecipient(recipient);
// orderInfoBO.setOrderItems(orderItems);
// orderInfoBO.setLatestLogisticsDetail(logisticsDetail);
//
// // 是否退货
// if (orderReturnDO != null) {
// orderInfoBO.setHasOrderReturn(orderReturnDO.getStatus());
// } else {
// orderInfoBO.setHasOrderReturn(-1);
// }
// return CommonResult.success(orderInfoBO);
// }
//
// @Override
// @GlobalTransactional
//// @Transactional // 使用 Seata 分布事务后,无需在使用 @Transactional 注解。
// public CommonResult<OrderCreateBO> createOrder(OrderCreateDTO orderCreateDTO) {
// Integer userId = orderCreateDTO.getUserId();
// List<OrderCreateDTO.OrderItem> orderItemDTOList = orderCreateDTO.getOrderItems();
// List<OrderItemDO> orderItemDOList = OrderItemConvert.INSTANCE.convert(orderItemDTOList);
//
// // 获取商品信息
// Set<Integer> skuIds = orderItemDOList.stream().map(OrderItemDO::getSkuId).collect(Collectors.toSet());
// List<ProductSkuDetailBO> productList = productSpuService.getProductSkuDetailList(skuIds);
// if (orderItemDTOList.size() != productList.size()) { // 校验获得的数量,是否匹配
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GET_GOODS_INFO_INCORRECT.getCode());
// }
//
// // 价格计算
// CalcOrderPriceBO calcOrderPrice = calcOrderPrice(productList, orderCreateDTO);
//
// // 设置 orderItem
// Map<Integer, ProductSkuDetailBO> productSpuBOMap = productList
// .stream().collect(Collectors.toMap(ProductSkuDetailBO::getId, o -> o)); // 商品 SKU 信息的集合
// Map<Integer, CalcOrderPriceBO.Item> priceItemMap = new HashMap<>(); // 商品 SKU 价格的映射
// calcOrderPrice.getItemGroups().forEach(itemGroup ->
// itemGroup.getItems().forEach(item -> priceItemMap.put(item.getId(), item)));
// // 遍历 orderItemDOList 数组,将商品信息、商品价格,设置到其中
// for (OrderItemDO orderItemDO : orderItemDOList) {
// ProductSkuDetailBO productSkuDetailBO = productSpuBOMap.get(orderItemDO.getSkuId());
// if (productSkuDetailBO.getQuantity() <= 0) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_INSUFFICIENT_INVENTORY.getCode());
// }
// if (productSkuDetailBO.getPrice() <= 0) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GOODS_AMOUNT_INCORRECT.getCode());
// }
// // 设置 SKU 信息
// orderItemDO.setSkuImage(Optional.ofNullable(productSkuDetailBO.getSpu().getPicUrls().get(0)).get());
// orderItemDO.setSkuName(productSkuDetailBO.getSpu().getName());
// // 设置价格信息
// CalcOrderPriceBO.Item priceItem = priceItemMap.get(orderItemDO.getSkuId());
// Assert.notNull(priceItem, "商品计算价格为空");
// orderItemDO.setOriginPrice(priceItem.getOriginPrice())
// .setBuyPrice(priceItem.getBuyPrice())
// .setPresentPrice(priceItem.getPresentPrice())
// .setBuyTotal(priceItem.getBuyTotal())
// .setDiscountTotal(priceItem.getDiscountTotal())
// .setPresentTotal(priceItem.getPresentTotal());
// }
//
// // 标记优惠劵已使用
// if (orderCreateDTO.getCouponCardId() != null) {
// couponService.useCouponCard(userId, orderCreateDTO.getCouponCardId());
// }
//
// // TODO 芋艿,扣除库存
//
// // order
//
// // TODO: 2019-04-11 Sin 订单号需要生成规则
// // TODO FROM 芋艿 to 小范:可以考虑抽象成一个方法,下面几个也是。
// String orderNo = UUID.randomUUID().toString().replace("-", "").substring(0, 16);
//// Integer totalAmount = orderCommon.calculatedAmount(orderItemDOList);
//// Integer totalPrice = orderCommon.calculatedPrice(orderItemDOList);
//// Integer totalLogisticsPrice = orderCommon.calculatedLogisticsPrice(orderItemDOList);
// OrderDO orderDO = new OrderDO()
// .setUserId(userId)
// .setOrderNo(orderNo)
// .setBuyPrice(calcOrderPrice.getFee().getBuyTotal())
// .setDiscountPrice(calcOrderPrice.getFee().getDiscountTotal())
// .setLogisticsPrice(calcOrderPrice.getFee().getPostageTotal())
// .setPresentPrice(calcOrderPrice.getFee().getPresentTotal())
// .setPayAmount(0)
// .setClosingTime(null)
// .setDeliveryTime(null)
// .setPaymentTime(null)
// .setStatus(OrderStatusEnum.WAITING_PAYMENT.getValue())
// .setHasReturnExchange(OrderHasReturnExchangeEnum.NO.getValue())
// .setRemark(Optional.ofNullable(orderCreateDTO.getRemark()).orElse(""));
// orderDO.setDeleted(DeletedStatusEnum.DELETED_NO.getValue());
//// orderDO.setCreateTime(new Date());
//// orderDO.setUpdateTime(null);
// orderMapper.insert(orderDO);
//
// // 收件人信息
// CommonResult<UserAddressBO> 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())
// .setCreateTime(new Date())
// .setUpdateTime(null);
// orderRecipientMapper.insert(orderRecipientDO);
//
// // order item
// orderItemDOList.forEach(orderItemDO -> {
// orderItemDO
// .setOrderId(orderDO.getId())
// .setOrderNo(orderDO.getOrderNo())
// .setPaymentTime(null)
// .setDeliveryTime(null)
// .setReceiverTime(null)
// .setClosingTime(null)
// .setHasReturnExchange(OrderStatusEnum.WAITING_PAYMENT.getValue())
// .setDeliveryType(OrderDeliveryTypeEnum.NONE.getValue())
// .setStatus(OrderStatusEnum.WAITING_PAYMENT.getValue())
// .setDeleted(DeletedStatusEnum.DELETED_NO.getValue())
// .setCreateTime(new Date())
// .setUpdateTime(null);
// });
// // 一次性插入
// orderItemMapper.insert(orderItemDOList);
//
// // 创建预订单
// createPayTransaction(orderDO, orderItemDOList, orderCreateDTO.getIp());
//
//// if (commonResult.isError()) {
//// //手动开启事务回滚
//// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_GET_PAY_FAIL.getValue());
//// }
//
// // TODO: 2019-03-17 Sin 需要发送 创建成果 MQ 消息,业务扩展和统计
// return CommonResult.success(
// new OrderCreateBO()
// .setId(orderDO.getId())
// .setOrderNo(orderDO.getOrderNo())
// .setPayAmount(orderDO.getPayAmount())
// );
// }
//
// private CalcOrderPriceBO calcOrderPrice(List<ProductSkuDetailBO> skus, OrderCreateDTO orderCreateDTO) {
// // 创建计算的 DTO
// CalcOrderPriceDTO calcOrderPriceDTO = new CalcOrderPriceDTO()
// .setUserId(orderCreateDTO.getUserId())
// .setItems(new ArrayList<>(skus.size()))
// .setCouponCardId(orderCreateDTO.getCouponCardId());
// for (OrderCreateDTO.OrderItem item : orderCreateDTO.getOrderItems()) {
// calcOrderPriceDTO.getItems().add(new CalcOrderPriceDTO.Item(item.getSkuId(), item.getQuantity(), true));
// }
// // 执行计算
// return cartService.calcOrderPrice(calcOrderPriceDTO);
// }
//
// private PayTransactionBO createPayTransaction(OrderDO order, List<OrderItemDO> orderItems, String ip) {
// // TODO sin 支付订单 orderSubject 暂时取第一个子订单商品信息
// String orderSubject = orderItems.get(0).getSkuName();
// Date expireTime = DateUtil.addDate(Calendar.MINUTE, PAY_EXPIRE_TIME);
// return payTransactionService.createTransaction(
// new PayTransactionCreateDTO()
// .setCreateIp(ip)
// .setAppId(PayAppId.APP_ID_SHOP_ORDER)
// .setOrderId(order.getId().toString())
// .setExpireTime(expireTime)
// .setPrice(order.getPresentPrice())
// .setOrderSubject(orderSubject)
// .setOrderMemo("测试备注") // TODO 芋艿,后面补充
// .setOrderDescription("测试描述") // TODO 芋艿,后面补充
// );
// }
//
// @Override // TODO 芋艿,需要确认下这个方法的用途。因为涉及修改价格和数量。
// public CommonResult updateOrderItem(OrderItemUpdateDTO orderUpdateDTO) {
// OrderItemDO orderItemDO = OrderItemConvert.INSTANCE.convert(orderUpdateDTO);
// orderItemMapper.updateById(orderItemDO);
//
// // TODO: 2019-03-24 sin 需要重新计算金额
// // TODO: 2019-03-24 sin 需要记录日志
// return CommonResult.success(null);
// }
//
// @Override
// @Transactional
// public CommonResult updateOrderItemPayAmount(Integer orderId, Integer orderItemId, Integer payAmount) {
// OrderDO orderDO = orderMapper.selectById(orderId);
// if (orderDO == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_EXISTENT.getCode());
// }
// if (payAmount < 0) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_PAY_AMOUNT_NOT_NEGATIVE.getCode());
// }
//
// // 先更新金额
// orderItemMapper.updateById(new OrderItemDO().setId(orderItemId)
//// .setPayAmount(payAmount) TODO 芋艿,这里要修改
// );
//
// // 再重新计算订单金额
// List<OrderItemDO> orderItemDOList = orderItemMapper
// .selectByDeletedAndOrderId(DeletedStatusEnum.DELETED_NO.getValue(), orderId);
//// Integer price = orderCommon.calculatedPrice(orderItemDOList);
//// Integer amount = orderCommon.calculatedAmount(orderItemDOList);
// Integer price = -1; // TODO 芋艿,这里要修改,价格
// Integer amount = -1;
// orderMapper.updateById(
// new OrderDO()
// .setId(orderId)
//// .setPrice(price) TODO 芋艿,这里要修改
// .setPayAmount(amount)
// );
// return CommonResult.success(null);
// }
//
// @Override
// @Transactional // TODO 芋艿,要校验下 userId 。不然可以取消任何用户的订单列。
// public CommonResult cancelOrder(Integer orderId, Integer reason, String otherReason) {
// // 关闭订单,在用户还未付款的时候可操作
// OrderDO orderDO = orderMapper.selectById(orderId);
// if (orderDO == null) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_EXISTENT.getCode());
// }
//
// // 检查专题,只有待付款状态才能操作
// if (!orderDO.getStatus().equals(OrderStatusEnum.WAITING_PAYMENT.getValue())) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_STATUS_NOT_CANCEL.getCode());
// }
//
// OrderCancelDO orderCancelDO
// = (OrderCancelDO) new OrderCancelDO()
// .setOrderId(orderDO.getId())
// .setOrderNo(orderDO.getOrderNo())
// .setReason(reason)
// .setOtherReason(otherReason)
// .setCreateTime(new Date())
// .setUpdateTime(null);
//
// // 关闭订单,修改状态 item
// // TODO FROM 芋艿 TO 小范,更新的时候,where 里面带下 status 避免并发的问题
// orderItemMapper.updateByOrderId(
// orderId,
// new OrderItemDO().setStatus(OrderStatusEnum.CLOSED.getValue())
// );
//
// // 关闭订单,修改状态 order
// orderMapper.updateById(new OrderDO().setId(orderId).setStatus(OrderStatusEnum.CLOSED.getValue()));
// // 保存取消订单原因
// orderCancelMapper.insert(orderCancelDO);
// return CommonResult.success(null);
// }
//
// @Override
// @Transactional // TODO FROM 芋艿 TO 小范:泛型,一定要明确哈。
// public CommonResult orderDelivery(OrderDeliveryDTO orderDelivery) {
// List<Integer> orderItemIds = orderDelivery.getOrderItemIds();
//
// // 获取所有订单 items // TODO FROM 芋艿 TO 小范,deleted 是默认条件,所以 by 里面可以不带哈
// List<OrderItemDO> allOrderItems = orderItemMapper.selectByDeletedAndOrderId(orderDelivery.getOrderId(), DeletedStatusEnum.DELETED_NO.getValue());
//
// // 当前需要发货订单,检查 id 和 status
// List<OrderItemDO> needDeliveryOrderItems = allOrderItems.stream()
// .filter(orderItemDO -> orderItemIds.contains(orderItemDO.getId())
// && OrderStatusEnum.WAIT_SHIPMENT.getValue() == orderItemDO.getStatus())
// .collect(Collectors.toList()); // TODO 芋艿,如果这里只是比对数字,可以用 Lambda 求和,不需要弄成一个集合的
// // 发货订单,检查
// if (needDeliveryOrderItems.size() != orderItemIds.size()) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_DELIVERY_INCORRECT_DATA.getCode());
// }
//
// OrderRecipientDO orderRecipientDO = orderRecipientMapper.selectByOrderId(orderDelivery.getOrderId());
// OrderLogisticsDO orderLogisticsDO = OrderLogisticsConvert.INSTANCE.convert(orderRecipientDO);
// // 保存物流信息
// orderLogisticsDO
// .setLogisticsNo(orderDelivery.getLogisticsNo())
// .setLogistics(orderDelivery.getLogistics())
// .setCreateTime(new Date())
// .setUpdateTime(null);
// orderLogisticsMapper.insert(orderLogisticsDO);
//
// // 关联订单item 和 物流信息
// // TODO FROM 芋艿 TO 小范,更新的时候,where 里面带下 status 避免并发的问题,然后判断下更新数量,不对,就抛出异常。
// orderItemMapper.updateByIds(
// orderItemIds,
// new OrderItemDO()
// .setOrderLogisticsId(orderLogisticsDO.getId())
// .setStatus(OrderStatusEnum.ALREADY_SHIPMENT.getValue())
// );
//
// // 子订单是否全部发货,如果发完,就更新 order
// List<OrderItemDO> unShippedOrderItems = allOrderItems.stream()
// .filter(orderItemDO -> OrderStatusEnum.WAIT_SHIPMENT.getValue() == orderItemDO.getStatus()
// && !orderItemIds.contains(orderItemDO.getId()))
// .collect(Collectors.toList());
// if (unShippedOrderItems.size() <= 0) {
// // TODO FROM 芋艿 TO 小范,更新的时候,where 里面带下 status 避免并发的问题
// orderMapper.updateById(
// new OrderDO()
// .setId(orderDelivery.getOrderId())
// .setStatus(OrderStatusEnum.ALREADY_SHIPMENT.getValue())
// );
// }
// // 返回成功
// return CommonResult.success(null);
// }
//
// @Override
// public CommonResult updateOrderRemake(Integer orderId, String remake) {
// // 此处不做订单校验,直接设置备注即可
// orderMapper.updateById(new OrderDO().setId(orderId).setRemark(remake));
// return CommonResult.success(null);
// }
//
// @Override
// @Transactional // TODO FROM 芋艿 to 小范,先不做这个功能,电商一班不存在这个功能哈。
// public CommonResult deleteOrderItem(OrderItemDeletedDTO orderItemDeletedDTO) {
// Integer orderId = orderItemDeletedDTO.getOrderId();
// List<Integer> orderItemIds = orderItemDeletedDTO.getOrderItemIds();
//
// // 获取当前有效的订单 item
// List<OrderItemDO> orderItemDOList = orderItemMapper
// .selectByDeletedAndOrderId(DeletedStatusEnum.DELETED_NO.getValue(), orderId);
//
// List<OrderItemDO> effectiveOrderItems = orderItemDOList.stream()
// .filter(orderItemDO -> !orderItemIds.contains(orderItemDO.getId()))
// .collect(Collectors.toList());
//
// // 检查订单 item,必须要有一个 item
// if (CollectionUtils.isEmpty(effectiveOrderItems)) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_ITEM_ONLY_ONE.getCode());
// }
//
// // 更新订单 item
// orderItemMapper.updateByIds(
// orderItemIds,
// (OrderItemDO) new OrderItemDO()
// .setDeleted(DeletedStatusEnum.DELETED_YES.getValue())
// );
//
// // 更新订单 amount
//// Integer totalAmount = orderCommon.calculatedAmount(effectiveOrderItems);
// Integer totalAmount = -1; // TODO 芋艿,需要修改下,价格相关
// orderMapper.updateById(
// new OrderDO()
// .setId(orderId)
// .setPayAmount(totalAmount)
// );
// return CommonResult.success(null);
// }
//
// @Override
// public CommonResult confirmReceiving(Integer userId, Integer orderId) {
// OrderDO orderDO = orderMapper.selectById(orderId);
//
// // 是否该用户的订单
// if (!userId.equals(orderDO.getUserId())) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_USER_ORDER.getCode());
// }
//
// if (OrderStatusEnum.ALREADY_SHIPMENT.getValue() != orderDO.getStatus()) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_UNABLE_CONFIRM_ORDER.getCode());
// }
//
// // TODO FROM 芋艿 TO 小范,更新的时候,where 里面带下 status 避免并发的问题
// orderMapper.updateById(
// new OrderDO()
// .setId(orderId)
// .setReceiverTime(new Date())
// .setStatus(OrderStatusEnum.COMPLETED.getValue())
//
// );
//
// orderItemMapper.updateByOrderId(
// orderId,
// new OrderItemDO()
// .setStatus(OrderStatusEnum.COMPLETED.getValue())
// .setReceiverTime(new Date())
// );
// return CommonResult.success(null);
// }
//
// @Override
// public CommonResult updateLogistics(OrderLogisticsUpdateDTO orderLogisticsDTO) {
// OrderLogisticsDO orderLogisticsDO = OrderLogisticsConvert.INSTANCE.convert(orderLogisticsDTO);
// orderLogisticsMapper.updateById(orderLogisticsDO);
// return CommonResult.success(null);
// }
//
// @Override
// public CommonResult deleteOrder(Integer id) {
// // 删除订单操作,一般用于 用户端删除,是否存在检查可以过掉
// orderMapper.updateById((OrderDO) new OrderDO()
// .setId(id)
// .setDeleted(DeletedStatusEnum.DELETED_YES.getValue())
// );
// return CommonResult.success(null);
// }
//
// @Override
// public String updatePaySuccess(String orderId, Integer payAmount) {
// OrderDO order = orderMapper.selectById(Integer.valueOf(orderId));
// if (order == null) { // 订单不存在
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_EXISTENT.getCode()).getMessage();
// }
// if (!order.getStatus().equals(OrderStatusEnum.WAITING_PAYMENT.getValue())) { // 状态不处于等待支付
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_STATUS_NOT_WAITING_PAYMENT.getCode()).getMessage();
// }
// if (!order.getPresentPrice().equals(payAmount)) { // 支付金额不正确
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_PAY_AMOUNT_ERROR.getCode()).getMessage();
// }
// // 更新 OrderDO 状态为已支付,等待发货
// OrderDO updateOrderObj = new OrderDO()
// .setStatus(OrderStatusEnum.WAIT_SHIPMENT.getValue())
// .setPayAmount(payAmount)
// .setPaymentTime(new Date());
// int updateCount = orderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), updateOrderObj);
// if (updateCount <= 0) {
// return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_STATUS_NOT_WAITING_PAYMENT.getCode()).getMessage();
// }
// // TODO FROM 芋艿 to 小范,把更新 OrderItem 给补全。
// return "success";
// }
//
// @Override
// public CommonResult listenerConfirmGoods() {
// return null;
// }
//
// @Override
// public CommonResult listenerExchangeGoods() {
// return null;
// }
}
order/order-biz/src/main/resources/biz.yaml
浏览文件 @
966375be
spring
:
# 数据源配置项
datasource
:
url
:
jdbc:mysql://s1.iocoder.cn:3306/mall_
system
?useSSL=false&useUnicode=true&characterEncoding=UTF-8
url
:
jdbc:mysql://s1.iocoder.cn:3306/mall_
order
?useSSL=false&useUnicode=true&characterEncoding=UTF-8
driver-class-name
:
com.mysql.jdbc.Driver
username
:
root
password
:
3WLiVUBEwTbvAfsh
...
...
@@ -16,4 +16,4 @@ mybatis-plus:
logic-delete-value
:
1
# 逻辑已删除值(默认为 1)
logic-not-delete-value
:
0
# 逻辑未删除值(默认为 0)
mapper-locations
:
classpath*:mapper/*.xml
type-aliases-package
:
cn.iocoder.mall.
system
.biz.dataobject
type-aliases-package
:
cn.iocoder.mall.
order
.biz.dataobject
order/order-biz/src/main/resources/mapper/CartMapper.xml
0 → 100644
浏览文件 @
966375be
<?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.biz.dao.cart.CartMapper"
>
<sql
id=
"FIELDS"
>
id, status, delete_time, selected, user_id,
spu_id, sku_id, quantity, order_id, order_create_time,
create_time
</sql>
<select
id=
"selectById"
parameterType=
"Integer"
resultType=
"CartItemDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM cart_item
WHERE id = #{id}
-- AND deleted = 0
</select>
<select
id=
"selectByIds"
resultType=
"CartItemDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM cart_item
WHERE id IN
<foreach
item=
"id"
collection=
"ids"
separator=
","
open=
"("
close=
")"
index=
""
>
#{id}
</foreach>
-- AND deleted = 0
</select>
<select
id=
"selectByUserIdAndSkuIdAndStatus"
resultType=
"CartItemDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM cart_item
WHERE user_id = #{userId}
AND sku_id = #{skuId}
AND status = #{status}
-- AND deleted = 0
LIMIT 1
</select>
<select
id=
"selectByUserIdAndStatusAndSelected"
resultType=
"CartItemDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM cart_item
WHERE user_id = #{userId}
AND status = #{status}
<if
test=
"selected != null"
>
AND selected = #{selected}
</if>
-- AND deleted = 0
</select>
<select
id=
"selectQuantitySumByUserIdAndStatus"
resultType=
"Integer"
>
SELECT
SUM(quantity)
FROM cart_item
WHERE user_id = #{userId}
AND status = #{status}
-- AND deleted = 0
</select>
<insert
id=
"insert"
parameterType=
"CartItemDO"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO cart_item (
status, delete_time, selected, user_id,
spu_id, sku_id, quantity, order_id, order_create_time,
create_time
) VALUES (
#{status}, #{deleteTime}, #{selected}, #{userId},
#{spuId}, #{skuId}, #{quantity}, #{orderId}, #{orderCreateTime},
#{createTime}
)
</insert>
<update
id=
"update"
parameterType=
"CartItemDO"
>
UPDATE cart_item
<set>
<if
test=
"status != null"
>
status = #{status},
</if>
<if
test=
"deleteTime != null"
>
delete_time = #{deleteTime},
</if>
<if
test=
"selected != null"
>
selected = #{selected},
</if>
<if
test=
"quantity != null"
>
quantity = #{quantity},
</if>
<if
test=
"orderId != null"
>
order_id = #{orderId},
</if>
<if
test=
"orderCreateTime != null"
>
order_create_time = #{orderCreateTime},
</if>
<if
test=
"price != null"
>
price = #{price},
</if>
<if
test=
"quantity != null"
>
quantity = #{quantity},
</if>
</set>
WHERE id = #{id}
</update>
<update
id=
"updateQuantity"
parameterType=
"CartItemDO"
>
UPDATE cart_item
SET quantity = quantity + #{quantityIncr}
WHERE id = #{id}
</update>
<update
id=
"updateListByUserIdAndSkuId"
>
UPDATE cart_item
<set>
<if
test=
"selected != null"
>
selected = #{selected},
</if>
<if
test=
"status != null"
>
status = #{status},
</if>
</set>
WHERE user_id = #{userId}
AND sku_id IN
<foreach
item=
"skuId"
collection=
"skuIds"
separator=
","
open=
"("
close=
")"
index=
""
>
#{skuId}
</foreach>
-- AND deleted = 0
</update>
</mapper>
order/order-biz/src/main/resources/mapper/OrderCancelMapper.xml
0 → 100644
浏览文件 @
966375be
<?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.biz.dao.order.OrderCancelMapper"
>
<sql
id=
"FIELDS"
>
id, order_id, order_no, reason, other_reason,
create_time, update_time
</sql>
<!--
插入数据
-->
<insert
id=
"insert"
parameterType=
"OrderCancelDO"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO `order_cancel` (
order_id, order_no, reason, other_reason,
create_time, update_time
) VALUES (
#{orderId}, #{orderNo}, #{reason}, #{otherReason},
#{createTime}, #{updateTime}
)
</insert>
</mapper>
order/order-biz/src/main/resources/mapper/OrderCommentMapper.xml
0 → 100644
浏览文件 @
966375be
<?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.biz.dao.comment.OrderCommentMapper"
>
<sql
id=
"FIELDS"
>
id,order_id,order_no,product_spu_id,product_spu_name,product_sku_id,product_sku_attrs,product_sku_price,product_sku_pic_url,
user_id,user_avatar,user_nick_name,star,product_description_star,logistics_star,merchant_star,replay_count,like_count,comment_content,
comment_pics,comment_state,create_time,update_time
</sql>
<!--插入-->
<insert
id=
"insert"
parameterType=
"OrderCommentDO"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO order_comment(order_id,order_no,product_spu_id,product_spu_name,product_sku_id,
product_sku_attrs,product_sku_price,product_sku_pic_url,user_id,user_avatar,user_nick_name,star,
product_description_star,logistics_star,merchant_star,comment_content,comment_pics,comment_state,create_time,update_time)
VALUES (#{orderId},#{orderNo},#{productSpuId},#{productSpuName},#{productSkuId},#{productSkuAttrs},
#{productSkuPrice},#{productSkuPicUrl},#{userId},#{userAvatar},#{userNickName},#{star},
#{productDescriptionStar},#{logisticsStar},#{merchantStar},#{commentContent},#{commentPics},#{commentState},#{createTime}, #{updateTime});
</insert>
<!--根据 sku id 获取评论总数-->
<select
id=
"selectCommentTotalCountByProductSkuId"
parameterType=
"Integer"
resultType=
"java.lang.Integer"
>
SELECT
COUNT(*)
FROM order_comment
WHERE
product_sku_id = #{productSkuId}
</select>
<!--分页获取评论分页-->
<select
id=
"selectCommentPage"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderCommentDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_comment
WHERE
product_sku_id = #{productSkuId}
ORDER BY create_time DESC
LIMIT ${pageNo*pageSize},${pageSize}
</select>
<!--根据评论 id 获取用户详情-->
<select
id=
"selectCommentInfoByCommentId"
parameterType=
"Integer"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderCommentDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_comment
WHERE
id = #{id}
</select>
<!--分页获取订单评论状态信息详情-->
<select
id=
"selectOrderCommentStateInfoPage"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderCommentDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_comment
WHERE
user_id = #{userId}
AND
comment_state = #{commentState}
ORDER BY create_time DESC
LIMIT ${pageNo*pageSize},${pageSize}
</select>
<!--获取订单评论状态信息详情总数-->
<select
id=
"selectOrderCommentStateInfoTotal"
resultType=
"java.lang.Integer"
>
SELECT
COUNT(*)
FROM order_comment
WHERE
user_id = #{userId}
AND
comment_state = #{commentState}
</select>
<!--订单评论超时分页-->
<select
id=
"selectOrderCommentTimeOutPage"
parameterType=
"cn.iocoder.mall.order.api.dto.OrderCommentTimeOutPageDTO"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderCommentDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_comment
WHERE
comment_state = #{commentTimeOut.commentState}
HAVING
TIMESTAMPDIFF(DAY,create_time,NOW()) > #{commentTimeOut.overDay}
LIMIT ${commentTimeOut.pageNo*commentTimeOut.pageSize},${commentTimeOut.pageSize}
</select>
<!--批量更新订单评论-->
<update
id=
"updateBatchOrderCommentState"
>
UPDATE order_comment
SET
comment_state = #{commentState}
WHERE
id
IN
<if
test=
"list !=null"
>
<foreach
collection=
"list"
index=
"index"
item=
"item"
open=
"("
separator=
","
close=
")"
>
#{item.id}
</foreach>
</if>
</update>
</mapper>
order/order-biz/src/main/resources/mapper/OrderCommentReplayMapper.xml
0 → 100644
浏览文件 @
966375be
<?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.biz.dao.comment.OrderCommentReplayMapper"
>
<sql
id=
"FIELDS"
>
id,comment_id,reply_type,parent_id,parent_user_id,parent_user_nick_name,parent_user_avatar,reply_content,
reply_user_id,reply_user_nick_name,reply_user_avatar,user_type,reply_like_count,create_time,update_time
</sql>
<!--插入-->
<insert
id=
"insert"
parameterType=
"OrderCommentReplyDO"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO order_comment_replay(comment_id,reply_type,parent_id,parent_user_id,parent_user_nick_name,parent_user_avatar,reply_content,reply_user_id,
reply_user_nick_name,reply_user_avatar,user_type,create_time,update_time)
VALUES (#{commentId},#{replyType},#{parentId},#{parentUserId},#{parentUserNickName},#{parentUserAvatar},#{replyContent},#{replyUserId},
#{replyUserNickName},#{replyUserAvatar},#{userType},#{createTime},#{updateTime})
</insert>
<!--根据评论 id 和用户类型获取商家回复列表-->
<select
id=
"selectCommentMerchantReplyByCommentIdAndUserType"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderCommentReplyDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_comment_replay
WHERE
comment_id = #{commentId}
AND
user_type = #{userType}
ORDER BY create_time DESC
</select>
<!--根据评论 id 和用户类型获取评论总数-->
<select
id=
"selectCommentReplyTotalCountByCommentId"
parameterType=
"Integer"
resultType=
"java.lang.Integer"
>
SELECT
COUNT(*)
FROM order_comment_replay
WHERE
comment_id = #{commentId}
AND
user_type = #{userType}
</select>
<!--分页用户回复-->
<select
id=
"selectCommentReplyPage"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderCommentReplyDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_comment_replay
WHERE
comment_id = #{commentId}
AND
user_type = #{userType}
ORDER BY create_time DESC
LIMIT ${pageNo*pageSize},${pageSize}
</select>
<!--根据评论 id 查询商家最新的评论列表-->
<select
id=
"selectCommentNewMerchantReplyByCommentIds"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderCommentReplyDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_comment_replay
WHERE
create_time=(SELECT
a.maxtime
FROM
(SELECT
MAX(create_time) AS maxtime,comment_id
FROM order_comment_replay
WHERE
comment_id IN
<foreach
collection=
"commentIds"
item=
"commentId"
separator=
","
open=
"("
close=
")"
>
#{commentId}
</foreach>
GROUP BY comment_id ) AS a)
AND
comment_id IN
<foreach
collection=
"commentIds"
item=
"commentId"
separator=
","
open=
"("
close=
")"
>
#{commentId}
</foreach>
AND
user_type = #{userType}
</select>
</mapper>
order/order-biz/src/main/resources/mapper/OrderItemMapper.xml
0 → 100644
浏览文件 @
966375be
<?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.biz.dao.order.OrderItemMapper"
>
<sql
id=
"FIELDS"
>
id, order_id, order_no, sku_id, sku_name, sku_image, order_logistics_id,
quantity, origin_price, buy_price, present_price, buy_total, discount_total, present_total,
payment_time, delivery_time, receiver_time, closing_time,
has_return_exchange, delivery_type, status,
create_time, update_time, deleted
</sql>
<!--
插入数据
-->
<insert
id=
"insert"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO `order_item` (
order_id, order_no, sku_id, sku_name, sku_image, order_logistics_id,
quantity, origin_price, buy_price, present_price, buy_total, discount_total, present_total,
payment_time, delivery_time, receiver_time, closing_time,
has_return_exchange, delivery_type, status,
create_time, update_time, deleted
) VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(#{item.orderId}, #{item.orderNo}, #{item.skuId}, #{item.skuName}, #{item.skuImage}, #{item.orderLogisticsId},
#{item.quantity}, #{item.originPrice}, #{item.buyPrice}, #{item.presentPrice}, #{item.buyTotal}, #{item.discountTotal}, #{item.presentTotal},
#{item.paymentTime}, #{item.deliveryTime}, #{item.receiverTime}, #{item.closingTime},
#{item.hasReturnExchange}, #{item.deliveryType}, #{item.status},
#{item.createTime}, #{item.updateTime}, #{item.deleted})
</foreach>
</insert>
<!--
更新 - 可更新的字段
-->
<sql
id=
"updateFieldSql"
>
<set>
<if
test=
"orderItemDO.orderId != null"
>
, order_id = #{orderItemDO.orderId}
</if>
<if
test=
"orderItemDO.orderNo != null"
>
, order_no = #{orderItemDO.orderNo}
</if>
<if
test=
"orderItemDO.orderLogisticsId != null"
>
, order_logistics_id = #{orderItemDO.orderLogisticsId}
</if>
<if
test=
"orderItemDO.skuId != null"
>
, sku_id = #{orderItemDO.skuId}
</if>
<if
test=
"orderItemDO.skuName != null"
>
, sku_name = #{orderItemDO.skuName}
</if>
<if
test=
"orderItemDO.skuImage != null"
>
, sku_image = #{orderItemDO.skuImage}
</if>
<if
test=
"orderItemDO.quantity != null"
>
, quantity = #{orderItemDO.quantity}
</if>
<!-- TODO 芋艿 需要改 -->
<!-- <if test="orderItemDO.price != null">-->
<!-- , price = #{orderItemDO.price}-->
<!-- </if>-->
<!-- <if test="orderItemDO.payAmount != null">-->
<!-- , pay_amount = #{orderItemDO.payAmount}-->
<!-- </if>-->
<if
test=
"orderItemDO.paymentTime != null"
>
, payment_time = #{orderItemDO.paymentTime}
</if>
<if
test=
"orderItemDO.deliveryTime != null"
>
, delivery_time = #{orderItemDO.deliveryTime}
</if>
<if
test=
"orderItemDO.receiverTime != null"
>
, receiver_time = #{orderItemDO.receiverTime}
</if>
<if
test=
"orderItemDO.closingTime != null"
>
, closing_time = #{orderItemDO.closingTime}
</if>
<if
test=
"orderItemDO.hasReturnExchange != null"
>
, has_return_exchange = #{orderItemDO.hasReturnExchange}
</if>
<if
test=
"orderItemDO.status != null"
>
, status = #{orderItemDO.status}
</if>
<if
test=
"orderItemDO.deliveryType != null"
>
, delivery_type = #{orderItemDO.deliveryType}
</if>
<if
test=
"orderItemDO.deleted != null"
>
, `deleted` = #{orderItemDO.deleted}
</if>
<if
test=
"orderItemDO.createTime != null"
>
, create_time = #{orderItemDO.createTime}
</if>
<if
test=
"orderItemDO.updateTime != null"
>
, update_time = #{orderItemDO.updateTime}
</if>
</set>
</sql>
<!--
更新 - 根据 id 更新
-->
<update
id=
"updateById"
parameterType=
"OrderDO"
>
UPDATE `order_item`
<include
refid=
"updateFieldSql"
/>
WHERE id = #{orderItemDO.id}
</update>
<!--
更新 - 根据 ids 更新
-->
<update
id=
"updateByIds"
>
UPDATE `order_item`
<include
refid=
"updateFieldSql"
/>
WHERE id IN
<foreach
collection=
"ids"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
</update>
<!--
更新 - 根据 orderId
-->
<update
id=
"updateByOrderId"
>
UPDATE `order_item`
<include
refid=
"updateFieldSql"
/>
WHERE order_id = #{orderId}
</update>
<!--
获取 - 根据 ids 查询
-->
<select
id=
"selectByIds"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderItemDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_item
WHERE `id` IN
<foreach
collection=
"ids"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
</select>
<!--
查询 - 根据 orderId 下的 item
-->
<select
id=
"selectByDeletedAndOrderId"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderItemDO"
>
SELECT * FROM `order_item`
WHERE 1=1
<if
test=
"deleted != null"
>
AND deleted = #{deleted}
</if>
<if
test=
"orderId != null"
>
AND order_id = #{orderId}
</if>
</select>
<!--
查询 - 根据 orderIds 和 status
-->
<select
id=
"selectByDeletedAndOrderIds"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderItemDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM `order_item`
WHERE `deleted` = #{deleted}
AND `order_id`
IN
<foreach
collection=
"orderIds"
item=
"orderId"
open=
"("
close=
")"
separator=
","
>
#{orderId}
</foreach>
</select>
</mapper>
order/order-biz/src/main/resources/mapper/OrderLogisticsDetailMapper.xml
0 → 100644
浏览文件 @
966375be
<?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.biz.dao.order.OrderLogisticsDetailMapper"
>
<sql
id=
"FIELDS"
>
id,
order_logistics_id,
logistics_time,
logistics_information,
create_time,
update_time
</sql>
<!--
插入
-->
<insert
id=
"insert"
parameterType=
"CartItemDO"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO cart_item (order_logistics_id, logistics_time, logistics_information,
create_time, update_time)
VALUES (#{orderLogisticsId}, #{logisticsTime}, #{logisticsInformation},
#{createTime}, #{updateTime})
</insert>
<!--
查询 - 根据 物流id
-->
<select
id=
"selectByOrderLogisticsId"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderLogisticsDetailDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_logistics_detail
WHERE order_logistics_id = #{orderLogisticsId}
</select>
<!--
查询 - 根据 物流ids
-->
<select
id=
"selectByOrderLogisticsIds"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderLogisticsDetailDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_logistics_detail
WHERE order_logistics_id IN
<foreach
collection=
"orderLogisticsIds"
item=
"orderLogisticsId"
separator=
","
open=
"("
close=
")"
>
#{orderLogisticsId}
</foreach>
</select>
<!--
查询 - 最新的物流信息
-->
<select
id=
"selectLast"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderLogisticsDetailDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_logistics_detail
WHERE order_logistics_id IN
<foreach
collection=
"orderLogisticsIds"
item=
"orderLogisticsId"
separator=
","
open=
"("
close=
")"
>
#{orderLogisticsId}
</foreach>
ORDER BY create_time DESC
LIMIT 0, 1
</select>
<!--
查询 - 根据 last 根据物理id
-->
<select
id=
"selectLastByLogisticsId"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderLogisticsDetailDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM order_logistics_detail
WHERE order_logistics_id = #{orderLogisticsId}
ORDER BY create_time DESC
LIMIT 1
</select>
</mapper>
order/order-biz/src/main/resources/mapper/OrderLogisticsMapper.xml
0 → 100644
浏览文件 @
966375be
<?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.biz.dao.order.OrderLogisticsMapper"
>
<sql
id=
"FIELDS"
>
id, area_no, `name`, mobile, address, logistics, logistics_no, create_time, update_time
</sql>
<!--
插入数据
-->
<insert
id=
"insert"
parameterType=
"OrderLogisticsDO"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO `order_logistics` (
area_no, `name`, mobile, address, logistics, logistics_no, create_time, update_time
) VALUES (
#{areaNo}, #{name}, #{mobile}, #{address},
#{logistics}, #{logisticsNo}, #{createTime}, #{updateTime}
)
</insert>
<!--
可更新字段
-->
<sql
id=
"updateFieldSql"
>
<set>
<if
test=
"areaNo != null"
>
, area_no = #{areaNo}
</if>
<if
test=
"name != null"
>
, `name` = #{name}
</if>
<if
test=
"mobile != null"
>
, mobile = #{mobile}
</if>
<if
test=
"address != null"
>
, address = #{address}
</if>
<if
test=
"logistics != null"
>
, logistics = #{logistics}
</if>
<if
test=
"logisticsNo != null"
>
, logistics_no = #{logisticsNo}
</if>
</set>
</sql>
<!--
更新 - 根据id
-->
<update
id=
"updateById"
>
UPDATE `order_logistics`
<include
refid=
"updateFieldSql"
/>
WHERE id = #{id}
</update>
<!--
查询 - 根据 ids
-->
<select
id=
"selectByIds"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderLogisticsDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM `order_logistics`
WHERE `id`
IN
<foreach
collection=
"ids"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
</select>
<!--
查询 - 根据 ids
-->
<select
id=
"selectById"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderLogisticsDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM `order_logistics`
WHERE `id` = #{id}
LIMIT 1
</select>
</mapper>
order/order-biz/src/main/resources/mapper/OrderMapper.xml
0 → 100644
浏览文件 @
966375be
<?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.biz.dao.order.OrderMapper"
>
<sql
id=
"FIELDS"
>
id, user_id, order_no, buy_price, discount_price, logistics_price, present_price, pay_amount,
payment_time, delivery_time, receiver_time, closing_time,
has_return_exchange,
status, remark, create_time, update_time, `deleted`
</sql>
<sql
id=
"updateFieldSql"
>
<set>
<if
test=
"orderNo != null"
>
, order_no = #{orderNo}
</if>
<if
test=
"buyPrice != null"
>
, buy_price = #{buyPrice}
</if>
<if
test=
"discountPrice != null"
>
, discount_price = #{discountPrice}
</if>
<if
test=
"logisticsPrice != null"
>
, logistics_price = #{logisticsPrice}
</if>
<if
test=
"logisticsPrice != null"
>
, logistics_price = #{logisticsPrice}
</if>
<if
test=
"presentPrice != null"
>
, present_price = #{presentPrice}
</if>
<if
test=
"payAmount != null"
>
, pay_amount = #{payAmount}
</if>
<if
test=
"deliveryTime != null"
>
, delivery_time = #{deliveryTime}
</if>
<if
test=
"paymentTime != null"
>
, payment_time = #{paymentTime}
</if>
<if
test=
"receiverTime != null"
>
, receiver_time = #{receiverTime}
</if>
<if
test=
"closingTime != null"
>
, closing_time = #{closingTime}
</if>
<if
test=
"hasReturnExchange != null"
>
, has_return_exchange = #{hasReturnExchange}
</if>
<if
test=
"status != null"
>
, status = #{status}
</if>
<if
test=
"remark != null"
>
, remark = #{remark}
</if>
<if
test=
"deleted != null"
>
, `deleted` = #{deleted}
</if>
<if
test=
"createTime != null"
>
, create_time = #{createTime}
</if>
<if
test=
"updateTime != null"
>
, update_time = #{updateTime}
</if>
</set>
</sql>
<update
id=
"updateById"
parameterType=
"OrderDO"
>
UPDATE `orders`
<include
refid=
"updateFieldSql"
/>
WHERE id = #{id}
</update>
<update
id=
"updateByIdAndStatus"
>
UPDATE `orders`
<set>
<if
test=
"updateObj.payAmount != null"
>
, pay_amount = #{updateObj.payAmount}
</if>
<if
test=
"updateObj.paymentTime != null"
>
, payment_time = #{updateObj.paymentTime}
</if>
<if
test=
"updateObj.status != null"
>
, status = #{updateObj.status}
</if>
</set>
WHERE id = #{id}
AND status = #{status}
</update>
<select
id=
"selectById"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM `orders`
WHERE id = #{id}
</select>
<sql
id=
"selectWhere"
>
<if
test=
"status != null"
>
AND `status` = #{status}
</if>
<if
test=
"userId != null"
>
AND `user_id` = #{userId}
</if>
<if
test=
"id != null"
>
AND `id` = #{id}
</if>
<if
test=
"orderNo != null"
>
AND `order_no` = #{orderNo}
</if>
<if
test=
"hasReturnExchange != null"
>
AND `has_return_exchange` = #{hasReturnExchange}
</if>
<if
test=
"startCreateTime != null and endCreateTime != null"
>
AND `create_time`
>
= #{startCreateTime}
AND `create_time`
<
= #{endCreateTime}
</if>
</sql>
<select
id=
"selectPageCount"
resultType=
"java.lang.Integer"
>
SELECT
COUNT(*)
FROM `orders`
<where>
<include
refid=
"selectWhere"
/>
</where>
</select>
<select
id=
"selectPage"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM `orders`
<where>
<include
refid=
"selectWhere"
/>
</where>
LIMIT ${pageNo * pageSize}, ${pageSize}
</select>
</mapper>
order/order-biz/src/main/resources/mapper/OrderRecipientMapper.xml
0 → 100644
浏览文件 @
966375be
<?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.biz.dao.order.OrderRecipientMapper"
>
<sql
id=
"FIELDS"
>
id, order_id, `area_no`, `name`, mobile, address, `type`,
create_time, update_time
</sql>
<!--
插入数据
-->
<insert
id=
"insert"
parameterType=
"OrderRecipientDO"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO `order_recipient` (
order_id, `area_no`, `name`, mobile, address,
`type`, create_time, update_time
) VALUES (
#{orderId}, #{areaNo}, #{name}, #{mobile}, #{address},
#{type}, #{createTime,jdbcType=TIMESTAMP} , #{updateTime}
)
</insert>
<!--
查询 - 根据 orderId
-->
<select
id=
"selectByOrderId"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderRecipientDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM `order_recipient`
WHERE order_id = #{orderId}
</select>
<!--
查询 - 根据 orderIds
-->
<select
id=
"selectByOrderIds"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderRecipientDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM `order_recipient`
WHERE order_id IN
<foreach
collection=
"orderIds"
item=
"orderId"
separator=
","
open=
"("
close=
")"
>
#{orderId}
</foreach>
</select>
</mapper>
order/order-biz/src/main/resources/mapper/OrderReturnMapper.xml
0 → 100644
浏览文件 @
966375be
<?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.biz.dao.order.OrderReturnMapper"
>
<sql
id=
"FIELDS"
>
id,
service_number,
order_id,
order_no,
order_logistics_id,
refund_price,
reason,
`describe`,
approval_time,
refuse_time,
logistics_time,
receiver_time,
closing_time,
service_type,
status,
create_time,
update_time
</sql>
<!--
插入数据
-->
<insert
id=
"insert"
parameterType=
"OrderReturnDO"
useGeneratedKeys=
"true"
keyColumn=
"id"
keyProperty=
"id"
>
INSERT INTO `order_return` (
service_number, order_id, order_no, order_logistics_id,
refund_price, reason, `describe`,
approval_time, refuse_time, logistics_time, receiver_time, closing_time,
service_type, status,
create_time, update_time)
VALUES (
#{serviceNumber}, #{orderId}, #{orderNo}, #{orderLogisticsId},
${refundPrice}, #{reason}, #{describe},
#{approvalTime}, #{refuse_time}, #{logisticsTime}, #{receiverTime}, #{closingTime},
#{serviceType}, #{status}, #{createTime}, #{updateTime})
</insert>
<!--
更新 - 可更新的字段
-->
<sql
id=
"updateFieldSql"
>
<set>
<if
test=
"orderLogisticsId != null"
>
, order_logistics_id = #{orderLogisticsId}
</if>
<if
test=
"refundPrice != null"
>
, refund_price = #{refundPrice}
</if>
<if
test=
"reason != null"
>
, reason = #{reason}
</if>
<if
test=
"describe != null"
>
, `describe` = #{describe}
</if>
<if
test=
"approvalTime != null"
>
, approval_time = #{approvalTime}
</if>
<if
test=
"refuseTime != null"
>
, refuse_time = #{refuseTime}
</if>
<if
test=
"logisticsTime != null"
>
, logistics_time = #{logisticsTime}
</if>
<if
test=
"receiverTime != null"
>
, receiver_time = #{receiverTime}
</if>
<if
test=
"closingTime != null"
>
, closing_time = #{closingTime}
</if>
<if
test=
"serviceType != null"
>
, service_type = #{serviceType}
</if>
<if
test=
"status != null"
>
, status = #{status}
</if>
<if
test=
"createTime != null"
>
, create_time = #{createTime}
</if>
<if
test=
"updateTime != null"
>
, update_time = #{updateTime}
</if>
</set>
</sql>
<!--
更新 - 根据 id 更新
-->
<update
id=
"updateById"
parameterType=
"OrderReturnDO"
>
UPDATE `order_return`
<include
refid=
"updateFieldSql"
/>
WHERE id = #{id}
</update>
<!--
查询 - 根据id 查询
-->
<select
id=
"selectByOrderId"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderReturnDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM `order_return`
WHERE order_id = #{orderId}
LIMIT 1
</select>
<!--
列表查询 - where
-->
<sql
id=
"selectListWhere"
>
<if
test=
"status != null"
>
AND status = #{status}
</if>
<if
test=
"serviceNumber != null"
>
AND service_number = #{serviceNumber}
</if>
<if
test=
"orderId != null"
>
AND order_id = #{orderId}
</if>
<if
test=
"orderId != null"
>
AND order_no = #{orderNo}
</if>
<if
test=
"startCreateTime != null and endCreateTime != null"
>
AND create_time
>
= #{startCreateTime}
AND create_time
<
= #{endCreateTime}
</if>
</sql>
<!--
列表查询 - count
-->
<select
id=
"selectListCount"
resultType=
"java.lang.Integer"
>
SELECT
COUNT(*)
FROM `order_return`
WHERE 1 = 1
<include
refid=
"selectListWhere"
/>
</select>
<!--
列表查询 - queryDTO
-->
<select
id=
"selectList"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderReturnDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM `order_return`
WHERE 1 = 1
<include
refid=
"selectListWhere"
/>
<bind
name=
"limitIndex"
value=
"pageSize * (index - 1)"
/>
LIMIT #{limitIndex}, #{pageSize}
</select>
<!--
查询 - 根据 id 查询
-->
<select
id=
"selectById"
resultType=
"cn.iocoder.mall.order.biz.dataobject.OrderReturnDO"
>
SELECT
<include
refid=
"FIELDS"
/>
FROM `order_return`
WHERE id = #{id}
</select>
</mapper>
order/order-service-impl/src/main/resources/mapper/CartMapper.xml
浏览文件 @
966375be
<?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.biz.dao.CartMapper"
>
<mapper
namespace=
"cn.iocoder.mall.order.biz.dao.
cart.
CartMapper"
>
<sql
id=
"FIELDS"
>
id, status, delete_time, selected, user_id,
...
...
order/order-service-impl/src/main/resources/mapper/OrderCancelMapper.xml
浏览文件 @
966375be
<?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.biz.dao.OrderCancelMapper"
>
<mapper
namespace=
"cn.iocoder.mall.order.biz.dao.
order.
OrderCancelMapper"
>
<sql
id=
"FIELDS"
>
id, order_id, order_no, reason, other_reason,
...
...
order/order-service-impl/src/main/resources/mapper/OrderCommentMapper.xml
浏览文件 @
966375be
<?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.biz.dao.OrderCommentMapper"
>
<mapper
namespace=
"cn.iocoder.mall.order.biz.dao.
comment.
OrderCommentMapper"
>
<sql
id=
"FIELDS"
>
id,order_id,order_no,product_spu_id,product_spu_name,product_sku_id,product_sku_attrs,product_sku_price,product_sku_pic_url,
...
...
@@ -101,4 +101,4 @@
</mapper>
\ No newline at end of file
</mapper>
order/order-service-impl/src/main/resources/mapper/OrderCommentReplayMapper.xml
浏览文件 @
966375be
<?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.biz.dao.OrderCommentReplayMapper"
>
<mapper
namespace=
"cn.iocoder.mall.order.biz.dao.
comment.
OrderCommentReplayMapper"
>
<sql
id=
"FIELDS"
>
id,comment_id,reply_type,parent_id,parent_user_id,parent_user_nick_name,parent_user_avatar,reply_content,
...
...
order/order-service-impl/src/main/resources/mapper/OrderItemMapper.xml
浏览文件 @
966375be
<?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.biz.dao.OrderItemMapper"
>
<mapper
namespace=
"cn.iocoder.mall.order.biz.dao.
order.
OrderItemMapper"
>
<sql
id=
"FIELDS"
>
id, order_id, order_no, sku_id, sku_name, sku_image, order_logistics_id,
...
...
order/order-service-impl/src/main/resources/mapper/OrderLogisticsDetailMapper.xml
浏览文件 @
966375be
<?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.biz.dao.OrderLogisticsDetailMapper"
>
<mapper
namespace=
"cn.iocoder.mall.order.biz.dao.
order.
OrderLogisticsDetailMapper"
>
<sql
id=
"FIELDS"
>
id,
...
...
order/order-service-impl/src/main/resources/mapper/OrderLogisticsMapper.xml
浏览文件 @
966375be
<?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.biz.dao.OrderLogisticsMapper"
>
<mapper
namespace=
"cn.iocoder.mall.order.biz.dao.
order.
OrderLogisticsMapper"
>
<sql
id=
"FIELDS"
>
id, area_no, `name`, mobile, address, logistics, logistics_no, create_time, update_time
...
...
@@ -77,4 +77,4 @@
WHERE `id` = #{id}
LIMIT 1
</select>
</mapper>
\ No newline at end of file
</mapper>
order/order-service-impl/src/main/resources/mapper/OrderMapper.xml
浏览文件 @
966375be
<?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.biz.dao.OrderMapper"
>
<mapper
namespace=
"cn.iocoder.mall.order.biz.dao.
order.
OrderMapper"
>
<sql
id=
"FIELDS"
>
id, user_id, order_no, buy_price, discount_price, logistics_price, present_price, pay_amount,
...
...
order/order-service-impl/src/main/resources/mapper/OrderRecipientMapper.xml
浏览文件 @
966375be
<?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.biz.dao.OrderRecipientMapper"
>
<mapper
namespace=
"cn.iocoder.mall.order.biz.dao.
order.
OrderRecipientMapper"
>
<sql
id=
"FIELDS"
>
id, order_id, `area_no`, `name`, mobile, address, `type`,
...
...
order/order-service-impl/src/main/resources/mapper/OrderReturnMapper.xml
浏览文件 @
966375be
<?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.biz.dao.OrderReturnMapper"
>
<mapper
namespace=
"cn.iocoder.mall.order.biz.dao.
order.
OrderReturnMapper"
>
<sql
id=
"FIELDS"
>
id,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论