Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
62571423
Commit
62571423
authored
Oct 22, 2021
by
查志伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加收银买单的支持
parent
d2e9408b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
963 additions
and
108 deletions
+963
-108
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/OrderSourceType.java
+9
-0
order-application-service/src/main/java/cn/freemud/config/ApolloVariableConfig.java
+21
-0
order-application-service/src/main/java/cn/freemud/constant/RedisLockKey.java
+15
-0
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+15
-2
order-application-service/src/main/java/cn/freemud/entities/CashierOrderRefundConfigEntity.java
+25
-0
order-application-service/src/main/java/cn/freemud/entities/dto/order/CreateCashierOrderDto.java
+38
-0
order-application-service/src/main/java/cn/freemud/entities/dto/store/BusinessInfoDto.java
+276
-18
order-application-service/src/main/java/cn/freemud/entities/dto/store/OrgListTreeResponse.java
+47
-0
order-application-service/src/main/java/cn/freemud/entities/dto/store/SoreMixResponseDto.java
+0
-21
order-application-service/src/main/java/cn/freemud/entities/dto/store/StoreBusyTimeInfo.java
+43
-0
order-application-service/src/main/java/cn/freemud/entities/dto/store/StoreInfoRequestDto.java
+18
-6
order-application-service/src/main/java/cn/freemud/entities/dto/store/StoreMixResponseDto.java
+41
-0
order-application-service/src/main/java/cn/freemud/entities/vo/order/CreateCashierOrderVo.java
+52
-0
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+2
-0
order-application-service/src/main/java/cn/freemud/enums/UserLoginChannelEnum.java
+11
-2
order-application-service/src/main/java/cn/freemud/interceptor/BizExceptionHandler.java
+3
-1
order-application-service/src/main/java/cn/freemud/interceptor/ServiceException.java
+19
-0
order-application-service/src/main/java/cn/freemud/service/CashierOrderService.java
+38
-0
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/impl/CashierOrderServiceImpl.java
+182
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+8
-8
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+0
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+14
-26
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
+5
-5
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
+3
-3
order-application-service/src/main/java/cn/freemud/service/impl/SpellGroupOrderServiceImpl.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/store/StoreManager.java
+46
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/StoreClient.java
+2
-5
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/OrderClientType.java
+1
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/create/CreateOrderRequest.java
+27
-9
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/OrderSourceType.java
View file @
62571423
...
...
@@ -45,6 +45,7 @@ public enum OrderSourceType {
BEAUTIFUL
(
"beautiful"
,
"美业"
,
28
),
ASSISTANT
(
"assistant"
,
"非码小助手"
,
29
),
SHERPAS
(
"sherpas"
,
"食派士"
,
30
),
CASHIER
(
"cashier"
,
"收银单"
,
36
),
parkingmanual
(
"parkingmanual"
,
"农工商停车手工录单"
,
98
),
PARKING
(
"parking"
,
"农工商停车"
,
99
),
SDG
(
"sdg"
,
"闪电购"
,
1000
);
...
...
@@ -58,6 +59,14 @@ public enum OrderSourceType {
this
.
clientType
=
clientType
;
}
public
static
OrderSourceType
valueOfCode
(
String
code
)
{
for
(
OrderSourceType
e
:
values
())
{
if
(
e
.
getCode
().
equals
(
code
))
return
e
;
}
return
null
;
}
/**
* 字符串渠道码转对应数字类型渠道码
*
...
...
order-application-service/src/main/java/cn/freemud/config/ApolloVariableConfig.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
config
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
/**
* @author Clover.z
* @Date 2021/10/19
* @Desc 阿波罗配置的一些变量
*/
@Data
@Component
public
class
ApolloVariableConfig
{
/**
* 创单锁定的key的有效期 默认5秒
*/
@Value
(
"${create.order.key.expire:5}"
)
private
Long
createOrderKeyExpire
;
}
order-application-service/src/main/java/cn/freemud/constant/RedisLockKey.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
constant
;
/**
* @author Clover.z
* @Date 2021/10/19
* @Desc redis锁的 key 统计
*/
public
class
RedisLockKey
{
/**
* 下单时防止重复点击的并发锁key
* {0}: 会员id
*/
public
static
final
String
CREATE_ORDER
=
"create_order_key:{0}"
;
}
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
62571423
...
...
@@ -14,10 +14,12 @@ package cn.freemud.controller;
import
cn.freemud.annotations.IsConvertEN
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.order.CreateCashierOrderDto
;
import
cn.freemud.entities.dto.order.InvoiceCreateResponseVo
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.EncircleReserveBaseVo
;
import
cn.freemud.entities.vo.order.CreateCashierOrderVo
;
import
cn.freemud.entities.vo.order.CreateOrderInvoiceRequest
;
import
cn.freemud.entities.vo.order.OrderAppealVo
;
import
cn.freemud.handler.OrderReportJobHandler
;
...
...
@@ -31,6 +33,7 @@ import cn.freemud.xxljob.OrderCountJobHandler;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.annotation.Validated
;
...
...
@@ -53,8 +56,6 @@ public class OrderController {
@Autowired
private
MallOrderServiceImpl
mallOrderService
;
@Autowired
private
MCCafeOrderService
mcCafeOrderService
;
@Autowired
private
OrderReportJobHandler
orderReportJobHandler
;
@Autowired
private
OrderCountJobHandler
orderCountJobHandler
;
...
...
@@ -88,6 +89,18 @@ public class OrderController {
}
/**
* 创建收银订单(无商品单)
*/
@IsConvertEN
@ApiAnnotation
(
logMessage
=
"createCashierOrder"
)
@PostMapping
(
"/createCashierOrder"
)
public
BaseResponse
<
CreateOrderResponseVo
>
createCashierOrder
(
@Validated
@LogParams
@RequestBody
CreateCashierOrderVo
request
)
{
CreateCashierOrderDto
dto
=
new
CreateCashierOrderDto
();
BeanUtils
.
copyProperties
(
request
,
dto
);
return
ResponseUtil
.
success
(
orderAdapterService
.
createCashierOrder
(
dto
));
}
/**
* 通用创建订单
*/
@ApiAnnotation
(
logMessage
=
"createOrderUniversal"
)
...
...
order-application-service/src/main/java/cn/freemud/entities/CashierOrderRefundConfigEntity.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
entities
;
import
lombok.Data
;
/**
* @author Clover.z
* @Date 2021/10/19
* @Desc 无单收银类 订单退款配置
*/
@Data
public
class
CashierOrderRefundConfigEntity
{
/**
* 订单完成状态是否允许退款
* 0-不允许
* 1-允许
*/
private
Integer
allowRefund
;
/**
* 订单完成后,{refundDateRange} 天内可申请退款
*/
private
Integer
refundDateRange
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/order/CreateCashierOrderDto.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
entities
.
dto
.
order
;
import
lombok.Data
;
/**
* @author Clover.z
* @Date 2021/10/21
* @Desc
*/
@Data
public
class
CreateCashierOrderDto
{
/**
* 用户登陆的session
*/
private
String
sessionId
;
/**
* 商户号
*/
private
String
partnerId
;
/**
* 门店号
*/
private
String
storeCode
;
/**
* 订单金额(单位:分)
*/
private
Long
orderAmount
;
/**
* 小程序版本号
*/
private
String
version
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/store/BusinessInfoDto.java
View file @
62571423
...
...
@@ -2,43 +2,301 @@ package cn.freemud.entities.dto.store;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
BusinessInfoDto
{
private
String
autoSelfmentionTakeOrderWorkflowFinishTime
;
private
String
autoSelfmentionMakerWorkflowFinishTime
;
private
String
autoTakeOutTakeOrderWorkflowFinishTime
;
private
String
autoDeliveryTakeOrderWorkflowFinishTime
;
private
String
appointAutoSelfmentionTakeOrderWorkflowFinishTime
;
private
String
appointAutoSelfmentionMakerWorkflowFinishTime
;
private
String
appointAutoTakeOutTakeOrderWorkflowFinishTime
;
private
String
appointAutoDeliveryTakeOrderWorkflowFinishTime
;
private
Long
id
;
/**
* 模板名称
*/
private
String
templateName
;
/**
* 模板类型0:通用 1:个性化
*/
private
Integer
templateType
;
/**
* 所属商户
*/
private
String
partnerId
;
/**
* 预订单提醒时间{1:15分钟;2:30分钟;3:45分钟;4:60分钟;5:5分钟;6:10分钟}
*/
private
String
orderWarnTime
;
/**
* 外卖预订单提醒时间{1:15分钟;2:30分钟;3:45分钟;4:60分钟;5:5分钟;6:10分钟}
*/
private
String
deliveryOrderWarnTime
;
/**
* 预订单打印时间{1:提醒时打印;2:接单时打印}
*/
private
String
orderPrintConfig
;
/**
* 最大接单量,单位笔
*/
private
Integer
maxOrderQuantity
;
/**
* 是否支持自动接单(1是2否)
*/
private
Integer
isAutoTakeOrder
;
/**
* 自提-服务端自动接单时间 1:立即;2:1分钟;3:5分钟(顾客下单XX后,订单状态自动更改为已接单)
*/
private
Integer
pickupAutomaticOrderTime
;
/**
* 外卖-服务端自动接单时间 1:立即;2:1分钟;3:5分钟(顾客下单XX后,订单状态自动更改为已接单)
*/
private
Integer
takeoutAutomaticOrderTime
;
/**
* 退单模式 1手动退单 2自动退单
*/
private
Integer
autoChargebackOrderType
;
/**
* 自动退单时间
*/
private
Integer
autoChargebackOrderTime
;
/**
* 超时关单 1开启 2关闭
*/
private
Integer
overTimeCloseOrder
;
/**
* 接单超时关单时间,默认30分钟
*/
private
Integer
overTimeCloseOrderTime
;
/**
* 自提单接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
autoSelfmentionTakeOrderWorkflowFinishTime
;
/**
* 自提单制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
autoSelfmentionMakerWorkflowFinishTime
;
/**
* 自建外卖接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
autoTakeOutTakeOrderWorkflowFinishTime
;
/**
* 自建外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
autoDeliveryTakeOrderWorkflowFinishTime
;
/**
* 预约自提单接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
appointAutoSelfmentionTakeOrderWorkflowFinishTime
;
/**
* 预约自提单制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
appointAutoSelfmentionMakerWorkflowFinishTime
;
/**
* 预约自建外卖接单后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
appointAutoTakeOutTakeOrderWorkflowFinishTime
;
/**
* 预约自建外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;
*/
private
Integer
appointAutoDeliveryTakeOrderWorkflowFinishTime
;
/**
* 实时三方外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟
*/
private
Integer
autoThirdDeliveryTakeOrderWorkflowFinishTime
;
/**
* 预约三方外卖制作完成后自动流程时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟
*/
private
Integer
appointThirdDeliveryTakeOrderWorkflowFinishTime
;
private
String
autoChargebackOrderTime
;
private
String
autoChargebackOrderType
;
private
String
autoOrderPrintConfig
;
private
String
overTimeCloseOrder
;
private
String
overTimeCloseOrderTime
;
private
String
pickUpAutomaticOrderTime
;
private
String
takeOutAutomaticOrderTime
;
/**
* 点餐方式(,隔开):pickup,delivery
*/
private
String
orderType
;
/**
* 是否支持发票 1是 0否
*/
private
Integer
invoice
;
/**
* 外卖时间:00:00-23:59
*/
private
String
deliveryHours
;
/**
* 预计送达时间(分钟)
*/
private
Integer
expectedTime
;
/**
* 参与结算(1:是、2:否)
*/
private
Integer
takePartInSettleAccounts
;
/**
* 是否自动同意退款(同意:1,不同意:0)
*/
private
Integer
automaticRefund
;
/**
* 可开票的最小价格
*/
private
Integer
minPriceForInvoice
;
/**
* 发票特殊说明
*/
private
String
invoiceExplain
;
/**
* 外卖预约单开关(0:关闭,1:开启)
*/
private
Integer
deliveryAppoint
;
private
Integer
selfMentionSwitch
;
/**
* "外卖预约单时间(分钟) 65分钟、90分钟、120分钟"
*/
private
Integer
deliveryAppointTime
;
private
String
deliveryOrderWarnTime
;
/**
* 是否需要餐具 1 需要 0 不需要
*/
private
Integer
tableware
;
/**
* 自提预约单开关(0:关闭,1:开启)
*/
private
Integer
selfMentionSwitch
;
/**
* 三方外卖订单自动拣货完成时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟
*/
private
Integer
autoThirdDeliveryPickCompleteWorkflowFinishTime
;
/**
* 三方外卖预订单自动拣货完成时间 1:2小时;2:1小时;3:30分钟;4:15分钟;5:10分钟;6:5分钟;7:3分钟;8:2分钟;
*/
private
Integer
appointThirdDeliveryPickCompleteWorkflowFinishTime
;
private
String
timeOfRefund
;
private
Integer
timeTypeOfRefund
;
/**
* 开启制作时间 1 :是 , 2 :否
*/
private
Integer
turnOnTimeOfMaking
;
/**
* 商品平均制作时常 分钟
*/
private
Integer
goodsAvgTimeOfMaking
;
/**
* 自建外卖订单,商家自配送xx分钟后,订单状态更改为【已完成】
*/
private
Integer
deliveryFinishedAfterMinute
;
/**
* 自建外卖订单-实时单,商家自配送,门店接单xx分钟后,订单状态变更为配送中
*/
private
Integer
deliveryProcessingAfterMinute
;
/**
* 自建外卖订单-预约单,商家自配送,预约商家前xx分钟,订单更改为配送中
*/
private
Integer
deliveryProcessingBeforeMinute
;
/**
* 点餐进度条 1 开启,2 关闭
*/
private
Integer
orderProgressBarStatus
;
private
ExpandFields
expandFields
;
/**
* 收银买单开关 1 开启 2 关闭
*/
private
Integer
cashierPayType
;
/**
* 拓展字段定义
*/
private
ExpandInfo
expandFields
;
@Data
public
static
class
ExpandInfo
{
/**
* 月销量是否展示(1-是;0-否)
*/
private
Integer
monthlySalesShow
;
/**
* 月销量配置值
*/
private
Integer
monthlySalesConfigValue
;
/**
* 点赞数是否展示(1-是;0-否)
*/
private
Integer
likesShow
;
/**
* 点赞数配置值
*/
private
Integer
likesConfigValue
;
/**
* 高峰时间配送时间
*/
private
List
<
PeakTimeDelivery
>
peakTimeDelivery
;
/**
* 每增加一公里增加的时长(分钟)
*/
private
Integer
appendMinutePerKilometer
;
@Data
public
static
class
PeakTimeDelivery
{
/**
* 高峰期开始时间
*/
private
String
startTime
;
/**
* 高峰期结束时间
*/
private
String
endTime
;
/**
* 耗费时间
*/
private
Integer
costMinute
;
}
/**
* 扫桌码下单(1-开启;0-关闭)
*/
private
Integer
scanOrderSwitch
;
/**
* 爱马哥蛋糕预定单开关(1-开启;0-关闭)
*/
private
Integer
preOrderSwitch
;
}
}
order-application-service/src/main/java/cn/freemud/entities/dto/store/OrgListTreeResponse.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
entities
.
dto
.
store
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
java.util.List
;
/**
* Created with IntelliJ IDEA 2017.1 <br>
* User: dll [loverochy8@gmail.com] <br>
* Date: 2019/1/15 16:02 <br>
* To change this template use File | Settings | File Templates. <br>
* Description:
*/
@Data
public
class
OrgListTreeResponse
{
private
List
<
OrganizationVo
>
orgList
;
@Data
@Builder
public
static
class
OrganizationVo
{
@ApiModelProperty
(
"排序"
)
private
Integer
sort
;
@ApiModelProperty
(
"商户ID"
)
private
String
partnerId
;
@ApiModelProperty
(
"组织code"
)
private
String
organizationCode
;
@ApiModelProperty
(
"组织ID"
)
private
String
organizationId
;
@ApiModelProperty
(
"组织名称"
)
private
String
organizationName
;
@ApiModelProperty
(
"组织类型"
)
private
Integer
typeFlag
;
}
}
order-application-service/src/main/java/cn/freemud/entities/dto/store/SoreMixResponseDto.java
deleted
100644 → 0
View file @
d2e9408b
package
cn
.
freemud
.
entities
.
dto
.
store
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
lombok.Data
;
@Data
public
class
SoreMixResponseDto
{
private
StoreResponseDto
storeInfo
;
private
BusinessInfoDto
businessInfo
;
private
DeliveryInfoDTO
deliveryInfo
;
private
Object
parentUntilTop
;
private
Object
storeBusyTimeInfoList
;
private
Object
storeImageList
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/store/StoreBusyTimeInfo.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
entities
.
dto
.
store
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
StoreBusyTimeInfo
{
/**
* 渠道
*/
private
String
channel
;
/**
* 周期类型(0每日,1工作日,2双休日,默认每日)
*/
private
Integer
periodType
;
/**
* 时间段
*/
private
List
<
TimeInfo
>
timeInfoList
;
/**
* 文案
*/
private
String
detail
;
@Data
public
static
class
TimeInfo
{
/**
* 开始时间,格式HH:mm:ss,00:00:00-23:59:59
*/
private
String
startTime
;
/**
* 结束时间,格式HH:mm:ss,00:00:00-23:59:59
*/
private
String
endTime
;
}
}
order-application-service/src/main/java/cn/freemud/entities/dto/store/StoreInfoRequestDto.java
View file @
62571423
...
...
@@ -32,17 +32,29 @@ public class StoreInfoRequestDto {
@Data
public
static
class
QueryInfo
{
//查询门店基本信息
/**
* 查询门店基本信息
*/
private
Boolean
queryStoreInfo
;
// 查询门店的渠道上级列表
/**
* 查询门店的渠道上级列表
*/
private
Boolean
queryParentUntilTop
;
//查询配送设置信息
/**
* 查询配送设置信息
*/
private
Boolean
queryDeliveryInfo
;
//查询业务设置信息
/**
* 查询业务设置信息
*/
private
Boolean
queryBusinessInfo
;
//查询门店图片
/**
* 查询门店图片
*/
private
Boolean
queryStoreImage
;
//查询门店繁忙时间
/**
* 查询门店繁忙时间
*/
private
Boolean
queryStoreBusyTime
;
}
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/store/StoreMixResponseDto.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
entities
.
dto
.
store
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
StoreMixResponseDto
{
/**
* 门店基础信息
*/
private
StoreResponseDto
storeInfo
;
/**
* 门店业务配置信息
*/
private
BusinessInfoDto
businessInfo
;
/**
* 门店配送配置信息
*/
private
DeliveryInfoDTO
deliveryInfo
;
/**
* 门店的渠道+渠道的父渠道+父渠道的父渠道…… 直到总公司,计入一个list中
*/
private
OrgListTreeResponse
parentUntilTop
;
/**
* 门店繁忙时间列表
*/
private
List
<
StoreBusyTimeInfo
>
storeBusyTimeInfoList
;
/**
* 门店图片列表
*/
private
List
<
String
>
storeImageList
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/order/CreateCashierOrderVo.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
entities
.
vo
.
order
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* @author Clover.z
* @Date 2021/10/19
* @Desc 创建无单订单请求报文实体
*/
@Data
public
class
CreateCashierOrderVo
{
/**
* 用户登陆的session
*/
@ApiModelProperty
(
"用户登陆的session"
)
@NotEmpty
(
message
=
"请先授权登陆"
)
private
String
sessionId
;
/**
* 商户号
*/
@ApiModelProperty
(
"商户号"
)
@NotEmpty
(
message
=
"商户号必填"
)
private
String
partnerId
;
/**
* 门店号
*/
@ApiModelProperty
(
"门店号"
)
@NotEmpty
(
message
=
"门店号必填"
)
private
String
storeCode
;
/**
* 订单金额(单位:分)
*/
@ApiModelProperty
(
"订单金额(单位:分)"
)
@NotNull
(
message
=
"请输入订单金额"
)
@Min
(
value
=
1
,
message
=
"请输入有效的订单金额哟"
)
private
Long
orderAmount
;
/**
* 小程序版本号
*/
@ApiModelProperty
(
"小程序版本号"
)
private
String
version
;
}
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
62571423
...
...
@@ -17,6 +17,7 @@ public enum ResponseResult {
PARAMETER_MISSING
(
"40002"
,
"缺少必要参数"
,
"Missing required parameter"
),
OPERATE_TOO_OFTEN
(
"40003"
,
"忙不过来了,请稍后再试"
,
"The system is busy, please try again later"
),
LOGIN_STORE_ERROR
(
"40004"
,
"登录门店异常"
,
"Login store exception"
),
OPERATE_NOT_SUPPORT
(
"40005"
,
"该操作暂不支持"
,
"This operation is not support"
),
/**
* 用户信息状态码
...
...
@@ -72,6 +73,7 @@ public enum ResponseResult {
STORE_QUERYEXPECTARRIVETIME
(
"43022"
,
"获取门店计算预计送达时间失败"
,
""
),
STORE_DATE_ERROR
(
"43023"
,
"门店数据错误"
,
""
),
STORE_ITEM_NOT_ADVANCE
(
"43024"
,
"门店未开启预约单配置"
,
""
),
STORE_CASHIER_CONFIG_ERROR
(
"43025"
,
"请联系门店开启收银功能哦"
,
"Please contact the store to open the cashier function"
),
/**
* 购物车状态码
...
...
order-application-service/src/main/java/cn/freemud/enums/UserLoginChannelEnum.java
View file @
62571423
...
...
@@ -4,6 +4,7 @@ import lombok.Getter;
@Getter
public
enum
UserLoginChannelEnum
{
OTHER
(
"0"
,
"其他"
),
WEIXIN
(
"1"
,
"微信"
),
ALIPAY
(
"2"
,
"支付宝"
),
APP
(
"3"
,
"APP"
),
...
...
@@ -14,11 +15,19 @@ public enum UserLoginChannelEnum {
*/
TIKTOKPAY
(
"5"
,
"抖音小程序"
);
private
String
code
;
private
String
desc
;
private
final
String
code
;
private
final
String
desc
;
UserLoginChannelEnum
(
String
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
static
UserLoginChannelEnum
get
(
String
code
)
{
for
(
UserLoginChannelEnum
e
:
values
())
{
if
(
e
.
getCode
().
equals
(
code
))
return
e
;
}
return
UserLoginChannelEnum
.
OTHER
;
}
}
order-application-service/src/main/java/cn/freemud/interceptor/BizExceptionHandler.java
View file @
62571423
...
...
@@ -42,7 +42,9 @@ public class BizExceptionHandler {
@ExceptionHandler
(
ServiceException
.
class
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
BaseResponse
bindException
(
ServiceException
e
)
{
return
ResponseUtil
.
error
(
e
.
getResult
());
return
null
!=
e
.
getResult
()
?
ResponseUtil
.
error
(
e
.
getResult
())
:
ResponseUtil
.
error
(
e
.
getCode
(),
e
.
getMessage
());
}
@ExceptionHandler
(
ParameterException
.
class
)
...
...
order-application-service/src/main/java/cn/freemud/interceptor/ServiceException.java
View file @
62571423
...
...
@@ -13,6 +13,7 @@ public class ServiceException extends RuntimeException {
private
ResponseResult
result
;
private
String
code
;
private
String
message
;
private
String
enMessage
;
...
...
@@ -23,6 +24,16 @@ public class ServiceException extends RuntimeException {
this
.
enMessage
=
result
.
getEnMessage
();
}
public
ServiceException
(
String
message
)
{
this
.
code
=
ResponseResult
.
SYSTEM_BUSINESS_ERROR
.
getCode
();
this
.
message
=
message
;
}
public
ServiceException
(
String
code
,
String
message
)
{
this
.
code
=
code
;
this
.
message
=
message
;
}
public
ServiceException
(
ResponseResult
result
,
String
message
)
{
this
.
result
=
result
;
this
.
message
=
message
;
...
...
@@ -53,4 +64,12 @@ public class ServiceException extends RuntimeException {
public
void
setEnMessage
(
String
enMessage
)
{
this
.
enMessage
=
enMessage
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
}
order-application-service/src/main/java/cn/freemud/service/CashierOrderService.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
service
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.order.CreateCashierOrderDto
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
java.util.Map
;
/**
* @author Clover.z
* @Date 2021/10/20
* @Desc 收银订单 service
*/
public
interface
CashierOrderService
{
/**
* 创建无单收银订单
* 不需要查询购物车,没有商品,流程上 只需要创建一个订单然后唤起预支付就行了
* @param createOrderDto 请求数据
* @param member 会员信息
* @return 预支付信息
*/
CreateOrderResponseVo
createOrder
(
CreateCashierOrderDto
createOrderDto
,
AssortmentCustomerInfoVo
member
);
/**
* 支付成功回调处理
* @param message 支付消息
* @param confirmOrderDto 支付成功消息dto
* @param orderBeans 订单信息
* @return 处理结果json字符串
*/
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
OrderBeanV1
>
orderBeans
);
}
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
View file @
62571423
...
...
@@ -171,7 +171,7 @@ public class AppOrderServiceImpl implements AppOrderService {
cardCode
,
createPrepayVo
.
getPayCode
(),
createOrderOperateDto
.
getFatherOrderBean
(),
createOrderOperateDto
.
getProductOrderBean
(),
createOrderOperateDto
.
getTotalAmount
(),
createOrderOperateDto
.
getCardAmount
(),
extInfo
,
transId
,
OrderClientType
.
APP
);
redisService
.
savePaymentTransIdOrder
(
RedisUtil
.
getPaymentTransIdOrderKey
(
transId
),
productOrderBean
.
getOid
(),
60L
,
TimeUnit
.
MINUTES
);
return
payServiceimpl
.
createPrepayOrder
(
createPrepayRequestDto
);
return
ResponseUtil
.
success
(
payServiceimpl
.
createPrepayOrder
(
createPrepayRequestDto
)
);
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CashierOrderServiceImpl.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.adapter.LightApplicationConvertToAssortmentSdkAdapter
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.StoreResponseDto
;
import
cn.freemud.entities.dto.order.CreateCashierOrderDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.enums.OrderBeanType
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.UserLoginChannelEnum
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.CashierOrderService
;
import
cn.freemud.service.business.OrderBusinessService
;
import
cn.freemud.service.store.StoreManager
;
import
cn.freemud.utils.AppLogUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.NewOrderStatus
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderType
;
import
com.freemud.application.sdk.api.ordercenter.enums.PayChannelType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderChangeStateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.request.order.ConfirmOrderRequest
;
import
com.google.common.collect.Maps
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.Objects
;
/**
* @author Clover.z
* @Date 2021/10/20
* @Desc
*/
@Service
@RequiredArgsConstructor
public
class
CashierOrderServiceImpl
implements
CashierOrderService
{
private
final
StoreManager
storeManager
;
private
final
OrderSdkService
orderSdkService
;
private
final
PayServiceImpl
payService
;
private
final
OrderSdkAdapter
orderSdkAdapter
;
private
final
OrderBusinessService
orderBusinessService
;
/**
* 创建无单收银订单
* 不需要查询购物车,没有商品,流程上 只需要创建一个订单然后唤起预支付就行了
*
* @param createOrderDto 请求数据
* @param member 会员信息
* @return 预支付信息
*/
@Override
public
CreateOrderResponseVo
createOrder
(
CreateCashierOrderDto
createOrderDto
,
AssortmentCustomerInfoVo
member
)
{
// 查询门店和配置信息
StoreMixResponseDto
storeMix
=
storeManager
.
queryStoreMixInfo
(
createOrderDto
.
getPartnerId
(),
createOrderDto
.
getStoreCode
(),
query
->
{
query
.
setQueryBusinessInfo
(
true
);
query
.
setQueryStoreInfo
(
true
);
});
if
(
null
==
storeMix
.
getStoreInfo
()
||
null
==
storeMix
.
getBusinessInfo
())
throw
new
ServiceException
(
ResponseResult
.
STORE_DATE_ERROR
);
// 门店未配置收银买单开关或者未配置为 1-开启, 则不允许下单
if
(!
Objects
.
equals
(
storeMix
.
getBusinessInfo
().
getCashierPayType
(),
1
))
throw
new
ServiceException
(
ResponseResult
.
STORE_CASHIER_CONFIG_ERROR
);
//创建订单
CreateOrderRequest
request
=
this
.
generateCreateOrderRequest
(
storeMix
.
getStoreInfo
(),
createOrderDto
.
getOrderAmount
(),
member
);
OrderBaseResp
<
OrderInfoReqs
>
response
=
orderSdkService
.
createOrder
(
request
,
LogThreadLocal
.
getTrackingNo
());
if
(
null
==
response
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
response
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
ORDER_CREATE_ERROR
);
}
//创建预支付
CreatePrepayRequestDto
createPrepayRequestDto
=
new
CreatePrepayRequestDto
();
createPrepayRequestDto
.
setPartnerId
(
createOrderDto
.
getPartnerId
());
createPrepayRequestDto
.
setTransId
(
response
.
getResult
().
getOrderCode
());
createPrepayRequestDto
.
setWxAppId
(
member
.
getWxAppId
());
createPrepayRequestDto
.
setOpenId
(
member
.
getOpenId
());
createPrepayRequestDto
.
setTotalAmount
(
createOrderDto
.
getOrderAmount
());
createPrepayRequestDto
.
setChannel
(
Objects
.
requireNonNull
(
PayChannelType
.
getByIndex
(
request
.
getPayChannelType
())).
getEbcode
());
OrderBeanV1
orderBeanV1
=
orderSdkAdapter
.
convent2NEWOrderInfo
(
response
.
getResult
());
createPrepayRequestDto
.
setProductOrderBean
(
orderBeanV1
);
createPrepayRequestDto
.
setFatherOrderBean
(
orderBeanV1
);
return
payService
.
createPrepayOrder
(
createPrepayRequestDto
);
}
private
CreateOrderRequest
generateCreateOrderRequest
(
StoreResponseDto
storeInfo
,
Long
orderAmount
,
AssortmentCustomerInfoVo
member
)
{
CreateOrderRequest
request
=
new
CreateOrderRequest
();
request
.
setPartnerId
(
storeInfo
.
getPartnerId
());
request
.
setStoreId
(
storeInfo
.
getStoreCode
());
request
.
setStoreName
(
storeInfo
.
getStoreName
());
request
.
setUserId
(
member
.
getMemberId
());
request
.
setUserName
(
member
.
getNickName
());
request
.
setSettlementAmount
(
orderAmount
);
request
.
setActualPayAmount
(
orderAmount
);
request
.
setOriginalAmount
(
orderAmount
);
request
.
setOrderType
(
OrderType
.
GENERAL_DINE_IN
.
getIndex
());
request
.
setOrderClient
(
OrderClientType
.
CASHIER
.
getIndex
());
switch
(
UserLoginChannelEnum
.
get
(
member
.
getChannel
()))
{
case
ALIPAY:
request
.
setPayChannel
(
PayChannelType
.
ALIPAY
.
getIndex
().
toString
());
request
.
setPayChannelType
(
PayChannelType
.
ALIPAY
.
getIndex
());
break
;
case
WEIXIN:
request
.
setPayChannel
(
PayChannelType
.
WECHAT
.
getIndex
().
toString
());
request
.
setPayChannelType
(
PayChannelType
.
WECHAT
.
getIndex
());
break
;
default
:
throw
new
ServiceException
(
ResponseResult
.
OPERATE_NOT_SUPPORT
);
}
// 无单收银没有商品信息, 这里防止基础服务处理NPE,传一个空的商品集合
request
.
setOrderItemList
(
new
ArrayList
<>());
OrderExtendedReq
orderExtended
=
new
OrderExtendedReq
();
orderExtended
.
setOrderClientGroupCode
(
storeInfo
.
getParentCode
());
orderExtended
.
setOrderClientGroup
(
storeInfo
.
getParentName
());
request
.
setOrderExtended
(
orderExtended
);
request
.
setOperator
(
member
.
getNickName
());
request
.
setAppId
(
member
.
getWxAppId
());
return
request
;
}
/**
* 支付成功回调处理
*
* @param message 支付消息
* @param confirmOrderDto 支付成功消息dto
* @param orderBeans 订单信息
* @return 处理结果json字符串
*/
@Override
public
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
OrderBeanV1
>
orderBeans
)
{
OrderBeanV1
orderBean
=
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
ConfirmOrderRequest
var1
=
LightApplicationConvertToAssortmentSdkAdapter
.
confirmOrderDtoConvertToConfirmOrderRequest
(
confirmOrderDto
,
orderBeans
.
get
(
OrderBeanType
.
MERMBERORDER
.
getCode
()));
var1
.
setPartnerId
(
orderBean
.
getCompanyId
());
var1
.
setUserId
(
orderBean
.
getUserId
());
var1
.
setStoreId
(
orderBean
.
getShopId
());
var1
.
setOrderType
(
orderBean
.
getType
());
var1
.
setProductOrderCode
(
orderBean
.
getOid
());
var1
.
setPayDate
(
DateUtil
.
convert2String
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
var1
.
setPayTransId
(
message
.
getOut_trade_no
());
var1
.
setOperator
(
orderBean
.
getUserName
());
var1
.
setEndTransId
(
message
.
getEndTransId
());
var1
.
setExtInfo
(
orderBean
.
getExtInfo
());
if
(
orderBean
.
getGmtExpect
()
!=
null
&&
orderBean
.
getGmtExpect
()
!=
0
){
var1
.
setExpectTime
(
DateUtil
.
convert2String
(
new
Date
(
orderBean
.
getGmtExpect
()),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
}
try
{
// 订单支付成功
orderBusinessService
.
payAccess
(
var1
);
}
catch
(
Exception
e
){
AppLogUtil
.
errorLog
(
"sellCouponPayAccessError"
,
JSONObject
.
toJSONString
(
var1
),
null
,
e
);
}
//支付成功直接完成
OrderChangeStateReq
request
=
new
OrderChangeStateReq
();
request
.
setOrderCode
(
orderBean
.
getOid
());
request
.
setOrderState
(
NewOrderStatus
.
COMPLETE
.
getIndex
());
request
.
setOperator
(
orderBean
.
getUserName
());
request
.
setRemark
(
"已完成"
);
orderSdkService
.
updateOrderState
(
request
,
LogThreadLocal
.
getTrackingNo
());
Map
<
String
,
Object
>
map
=
Maps
.
newTreeMap
();
map
.
put
(
"code"
,
100
);
map
.
put
(
"message"
,
"success"
);
return
JSONObject
.
toJSONString
(
map
);
}
}
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
62571423
...
...
@@ -196,7 +196,7 @@ public class CheckOrder {
/**
* 查询门店信息新接口
*/
public
SoreMixResponseDto
getStoreInfoNew
(
String
partnerId
,
String
shopId
,
Boolean
queryBusinessInfo
)
{
public
S
t
oreMixResponseDto
getStoreInfoNew
(
String
partnerId
,
String
shopId
,
Boolean
queryBusinessInfo
)
{
// 获取门店信息
StoreInfoRequestDto
request
=
new
StoreInfoRequestDto
();
request
.
setPartnerId
(
partnerId
);
...
...
@@ -205,7 +205,7 @@ public class CheckOrder {
// query.setQueryStoreInfo(true);
query
.
setQueryBusinessInfo
(
queryBusinessInfo
);
request
.
setQuery
(
query
);
StoreBaseResponseDto
<
SoreMixResponseDto
>
storeInfoNew
=
storeClient
.
getStoreInfoNew
(
request
);
StoreBaseResponseDto
<
S
t
oreMixResponseDto
>
storeInfoNew
=
storeClient
.
getStoreInfoNew
(
request
);
if
(
storeInfoNew
==
null
||
storeInfoNew
.
getBizVO
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
...
...
@@ -219,13 +219,13 @@ public class CheckOrder {
/**
* 查询门店信息新接口
*/
public
S
oreMixResponseDto
getStoreInfoNew
(
String
partnerId
,
String
shopId
,
StoreInfoRequestDto
.
QueryInfo
query
)
{
public
S
toreMixResponseDto
getStoreInfoNew
(
String
partnerId
,
String
shopId
,
StoreInfoRequestDto
.
QueryInfo
query
)
{
// 获取门店信息
StoreInfoRequestDto
request
=
new
StoreInfoRequestDto
();
request
.
setPartnerId
(
partnerId
);
request
.
setStoreCode
(
shopId
);
request
.
setQuery
(
query
);
StoreBaseResponseDto
<
SoreMixResponseDto
>
storeInfoNew
=
storeClient
.
getStoreInfoNew
(
request
);
StoreBaseResponseDto
<
S
t
oreMixResponseDto
>
storeInfoNew
=
storeClient
.
getStoreInfoNew
(
request
);
if
(
storeInfoNew
==
null
||
storeInfoNew
.
getBizVO
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
STORE_NOT_FOUND
);
}
...
...
@@ -271,7 +271,7 @@ public class CheckOrder {
String
shopId
=
createOrderVo
.
getShopId
();
// 获取门店信息
SoreMixResponseDto
storeInfoNew
=
getStoreInfoNew
(
partnerId
,
shopId
,
true
);
S
t
oreMixResponseDto
storeInfoNew
=
getStoreInfoNew
(
partnerId
,
shopId
,
true
);
BusinessInfoDto
businessInfo
=
storeInfoNew
.
getBusinessInfo
();
return
businessInfo
;
...
...
@@ -284,9 +284,9 @@ public class CheckOrder {
* @param query
* @return
*/
public
SoreMixResponseDto
getStoremixDto
(
String
partnerId
,
String
shopId
,
StoreInfoRequestDto
.
QueryInfo
query
)
{
public
S
t
oreMixResponseDto
getStoremixDto
(
String
partnerId
,
String
shopId
,
StoreInfoRequestDto
.
QueryInfo
query
)
{
// 获取门店信息
SoreMixResponseDto
storeInfoNew
=
getStoreInfoNew
(
partnerId
,
shopId
,
query
);
S
t
oreMixResponseDto
storeInfoNew
=
getStoreInfoNew
(
partnerId
,
shopId
,
query
);
return
storeInfoNew
;
}
...
...
@@ -442,7 +442,7 @@ public class CheckOrder {
// 先暂时这么写, 到时候需要优化这一块 对于门店的请求操作
StoreInfoRequestDto
.
QueryInfo
query
=
new
StoreInfoRequestDto
.
QueryInfo
();
query
.
setQueryDeliveryInfo
(
Boolean
.
TRUE
);
SoreMixResponseDto
storemixDto
=
this
.
getStoremixDto
(
createOrderVo
.
getPartnerId
(),
createOrderVo
.
getShopId
(),
query
);
S
t
oreMixResponseDto
storemixDto
=
this
.
getStoremixDto
(
createOrderVo
.
getPartnerId
(),
createOrderVo
.
getShopId
(),
query
);
DeliveryInfoDTO
deliveryInfo
=
storemixDto
.
getDeliveryInfo
();
Long
deliveryLimitAmount
=
storeDeliveryInfoDto
.
getDeliveryLimitAmount
();
Long
totalAmount
=
shoppingCartGoodsDto
.
getTotalAmount
();
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
62571423
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
62571423
...
...
@@ -13,10 +13,6 @@
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.adapter.*
;
import
cn.freemud.amqp.Header
;
import
cn.freemud.amqp.MQAction
;
import
cn.freemud.amqp.MQMessage
;
import
cn.freemud.amqp.MQService
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.KgdRedisKeyConstant
;
...
...
@@ -30,10 +26,12 @@ import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj;
import
cn.freemud.entities.dto.activity.PayGitCheckAndJoinRequestDto
;
import
cn.freemud.entities.dto.delivery.*
;
import
cn.freemud.entities.dto.ecology.SendMessageRequest
;
import
cn.freemud.entities.dto.order.*
;
import
cn.freemud.entities.dto.pay.*
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto
;
import
cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.order.InvoiceCreateResponse
;
import
cn.freemud.entities.dto.order.InvoiceCreateResponseVo
;
import
cn.freemud.entities.dto.pay.InvoiceCreateRequest
;
import
cn.freemud.entities.dto.pay.OrderInvoiceRequest
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.GroupDetail
;
import
cn.freemud.entities.dto.product.ProductAttributeGroup
;
...
...
@@ -53,7 +51,6 @@ import cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request;
import
cn.freemud.management.entities.dto.response.activity.GroupWorkRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse
;
import
cn.freemud.management.service.handle.ActivityHandle
;
import
cn.freemud.management.thirdparty.MulitiPaymentClient
;
import
cn.freemud.manager.BuyProductOnceManager
;
import
cn.freemud.manager.OrderManager
;
import
cn.freemud.manager.OrderTackCodeManager
;
...
...
@@ -70,10 +67,15 @@ import cn.freemud.utils.*;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.db.*
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentCloudPrinter
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerConfig
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformWxappAuthorizer
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.enums.IappIdType
;
import
com.freemud.api.assortment.datamanager.manager.*
;
import
com.freemud.api.assortment.datamanager.manager.AssortmentCloudPrinterManager
;
import
com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerConfigManager
;
import
com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformWxappAuthorizerManager
;
import
com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.api.assortment.datamanager.meal.MealCacheManager
;
...
...
@@ -85,7 +87,6 @@ import com.freemud.application.sdk.api.log.ErrorLog;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.common.OrderAndShoppingCommonRedisKey
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.RefundBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.*
;
import
com.freemud.application.sdk.api.ordercenter.request.*
;
...
...
@@ -93,18 +94,10 @@ import com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderC
import
com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderCountResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.PaymentQueryRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.CodePayResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQueryResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.application.sdk.api.storecenter.request.GetListByCodesRequest
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.response.GetListByCodesResponse
;
...
...
@@ -122,13 +115,10 @@ import com.freemud.sdk.api.assortment.order.enums.NewOrderType;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderStatus
;
import
com.freemud.sdk.api.assortment.order.enums.QueryDeliveryType
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.freemud.sdk.api.assortment.order.vo.ProductGroupVo
;
import
com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest
;
import
com.freemud.sdk.api.assortment.payment.response.OrderRefundResponse
;
import
com.freemud.sdk.api.assortment.payment.response.UnifiedOrderResponse
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.gson.Gson
;
...
...
@@ -146,8 +136,6 @@ import tk.mybatis.mapper.util.StringUtil;
import
java.math.BigDecimal
;
import
java.text.MessageFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Function
;
...
...
@@ -412,7 +400,7 @@ public class OrderServiceImpl implements Orderservice {
CreateOrderOperateDto
createOrderOperateDto
=
(
CreateOrderOperateDto
)
createOrderOperateDtoResponse
.
getResult
();
//创建支付
CreatePrepayRequestDto
createPrepayRequestDto
=
orderAdapter
.
convertToCreatePrepayRequestDto
(
userLoginInfoDto
,
createOrderVo
,
createOrderOperateDto
,
extInfo
);
return
payServiceImpl
.
createPrepayOrder
(
createPrepayRequestDto
);
return
ResponseUtil
.
success
(
payServiceImpl
.
createPrepayOrder
(
createPrepayRequestDto
)
);
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
View file @
62571423
...
...
@@ -146,7 +146,7 @@ public class PayServiceImpl {
/**
* 创建预支付订单
*/
public
BaseResponse
createPrepayOrder
(
CreatePrepayRequestDto
createPrepayRequestDto
)
{
public
CreateOrderResponseVo
createPrepayOrder
(
CreatePrepayRequestDto
createPrepayRequestDto
)
{
CreateOrderResponseVo
createOrderResponse
;
OrderPayResponse
orderPayResponse
=
null
;
...
...
@@ -185,13 +185,13 @@ public class PayServiceImpl {
||
ResponseCodeConstant
.
NOT_SUFFICIENT_FUND
.
equals
(
orderPayResponse
.
getPayTransId
()))
?
orderPayResponse
.
getMsg
()
:
"支付失败"
);
}
return
baseResponse
;
throw
new
ServiceException
(
baseResponse
.
getCode
(),
baseResponse
.
getMessage
())
;
}
createOrderResponse
=
orderAdapter
.
convent2CreateFatherSonOrderResponseVo
(
orderPayResponse
,
createPrepayRequestDto
.
getProductOrderBean
());
//更新订单支付信息
BaseResponse
baseEditResponse
=
this
.
updateOrderInfo
(
orderPayResponse
,
createPrepayRequestDto
.
getOrderExtInfoDTO
(),
createPrepayRequestDto
.
getProductOrderBean
(),
LogThreadLocal
.
getTrackingNo
());
if
(
baseEditResponse
!=
null
)
{
return
baseEditResponse
;
throw
new
ServiceException
(
baseEditResponse
.
getCode
(),
baseEditResponse
.
getMessage
())
;
}
if
(
totalAmount
>
0
&&
StringUtils
.
isBlank
(
cardCode
)
&&
Objects
.
isNull
(
createPrepayRequestDto
.
getUnionPayCard
()))
{
createOrderResponse
.
setPaySuccess
(
false
);
...
...
@@ -203,7 +203,7 @@ public class PayServiceImpl {
createOrderResponse
.
setPaySuccess
(
true
);
}
if
(!
createOrderResponse
.
getPaySuccess
())
{
return
ResponseUtil
.
success
(
createOrderResponse
)
;
return
createOrderResponse
;
}
else
{
//如果是商品券支付0元,调用回调接口
/**
...
...
@@ -220,7 +220,7 @@ public class PayServiceImpl {
message
.
setMerchant_coupon
(
0
);
message
.
setSource
(
PaySuccessSource
.
OUTSIDE
.
getSource
());
orderAdapterService
.
paySuccessCallback
(
message
);
return
ResponseUtil
.
success
(
createOrderResponse
)
;
return
createOrderResponse
;
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
View file @
62571423
...
...
@@ -270,7 +270,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
orderExtInfoDto
.
setSaleCouponPhone
(
requestVo
.
getSaleCouponPhone
());
createPrepayRequestDto
.
setOrderExtInfoDTO
(
orderExtInfoDto
);
return
payService
.
createPrepayOrder
(
createPrepayRequestDto
);
return
ResponseUtil
.
success
(
payService
.
createPrepayOrder
(
createPrepayRequestDto
)
);
}
/**
...
...
@@ -416,7 +416,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
orderExtInfoDto
.
setFromAppId
(
userLoginInfoDto
.
getWxAppId
());
createPrepayRequestDto
.
setOrderExtInfoDTO
(
orderExtInfoDto
);
return
payService
.
createPrepayOrder
(
createPrepayRequestDto
);
return
ResponseUtil
.
success
(
payService
.
createPrepayOrder
(
createPrepayRequestDto
)
);
}
...
...
@@ -558,7 +558,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
orderExtInfoDto
.
setStationId
(
stationid
);
createPrepayRequestDto
.
setOrderExtInfoDTO
(
orderExtInfoDto
);
return
payService
.
createPrepayOrder
(
createPrepayRequestDto
);
return
ResponseUtil
.
success
(
payService
.
createPrepayOrder
(
createPrepayRequestDto
)
);
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/SpellGroupOrderServiceImpl.java
View file @
62571423
...
...
@@ -193,7 +193,7 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService {
}
/*创建支付*/
CreatePrepayRequestDto
createPrepayRequestDto
=
spellGroupOrderAdapter
.
convertToCreatePrepayRequest
(
userLoginInfoDto
,
createOrderResponse
.
getData
(),
trackingNo
,
createSpellGroupOrderDto
.
getProvince
());
return
payServiceimpl
.
createPrepayOrder
(
createPrepayRequestDto
);
return
ResponseUtil
.
success
(
payServiceimpl
.
createPrepayOrder
(
createPrepayRequestDto
)
);
}
/***
...
...
order-application-service/src/main/java/cn/freemud/service/store/StoreManager.java
0 → 100644
View file @
62571423
package
cn
.
freemud
.
service
.
store
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.dto.store.StoreBaseResponseDto
;
import
cn.freemud.entities.dto.store.StoreInfoRequestDto
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.thirdparty.StoreClient
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
java.util.function.Consumer
;
/**
* @author Clover.z
* @Date 2021/10/20
* @Desc
*/
@Service
@RequiredArgsConstructor
public
class
StoreManager
{
private
final
StoreClient
storeClient
;
/**
* 查询门店相关聚合信息
* @param partnerId 商户号
* @param storeCode 门店号
* @param q 设置查询数据的func
* @return
*/
public
StoreMixResponseDto
queryStoreMixInfo
(
String
partnerId
,
String
storeCode
,
Consumer
<
StoreInfoRequestDto
.
QueryInfo
>
q
)
{
StoreInfoRequestDto
request
=
new
StoreInfoRequestDto
(
partnerId
,
storeCode
);
StoreInfoRequestDto
.
QueryInfo
query
=
new
StoreInfoRequestDto
.
QueryInfo
();
q
.
accept
(
query
);
request
.
setQuery
(
query
);
StoreBaseResponseDto
<
StoreMixResponseDto
>
response
=
storeClient
.
getStoreInfoNew
(
request
);
if
(
null
==
response
||
!
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
response
.
getStatusCode
())
||
null
==
response
.
getBizVO
())
{
throw
new
ServiceException
(
ResponseResult
.
STORE_DATE_ERROR
);
}
return
response
.
getBizVO
();
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/StoreClient.java
View file @
62571423
...
...
@@ -12,12 +12,9 @@
*/
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.store.SoreMixResponseDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.dto.store.StoreBaseResponseDto
;
import
cn.freemud.entities.dto.store.StoreInfoRequestDto
;
import
com.freemud.application.sdk.api.storecenter.request.ChangeTableOrderStateRequest
;
import
com.freemud.application.sdk.api.storecenter.response.StoreBaseResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
@@ -63,5 +60,5 @@ public interface StoreClient {
* 查询门店信息
*/
@PostMapping
(
value
=
"/api/v2/organization/getStoreMix"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
,
consumes
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
StoreBaseResponseDto
<
SoreMixResponseDto
>
getStoreInfoNew
(
@RequestBody
StoreInfoRequestDto
request
);
StoreBaseResponseDto
<
S
t
oreMixResponseDto
>
getStoreInfoNew
(
@RequestBody
StoreInfoRequestDto
request
);
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/OrderClientType.java
View file @
62571423
...
...
@@ -41,6 +41,7 @@ public enum OrderClientType {
ASSISTANT
(
29
,
"非码小助手"
),
SHERPAS
(
30
,
"食派士"
),
PARKING
(
99
,
"农工商停车"
),
CASHIER
(
36
,
"收银买单"
),
;
...
...
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/create/CreateOrderRequest.java
View file @
62571423
...
...
@@ -12,6 +12,7 @@
*/
package
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
request
.
create
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.request.BaseRequest
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq
;
import
lombok.Data
;
...
...
@@ -59,17 +60,28 @@ public class CreateOrderRequest extends BaseRequest {
*/
private
Boolean
isParent
;
//默认为待支付状态,如需要则设置对应的值
/**
* 默认为待支付状态,如需要则设置对应的值订单状态 1:待支付 2:下单 3:已接单 4:制作完成(待发货) 5:配送中 6:已完 7:已关闭
*/
private
Integer
orderState
;
//正常情况下不要设置值,此字段仅在做订单同步时使用 订单子状态
private
Integer
orderSubState
;
//订单类型 店内自取实时-1常规堂食 店内自取预约-2预约堂食 店外快递实时-3常规外卖,
// 店外快递预约-4预约外卖 店外自取实时-5常规自取 店外自取预约-6预约自取
/**
* 订单类型
* 店内自取实时-1常规堂食
* 店内自取预约-2预约堂食
* 店外快递实时-3常规外卖,
* 店外快递预约-4预约外卖
* 店外自取实时-5常规自取
* 店外自取预约-6预约自取
*/
private
Integer
orderType
;
//正常情况下不要设置值,此字段仅在做订单同步时使用
/**
* 正常情况下不要设置值,此字段仅在做订单同步时使用 支付状态 1:未支付 2:已支付 3:已退款 4:部分退款
*/
private
Integer
payState
;
//1:线上支付 2:线下支付
...
...
@@ -90,16 +102,23 @@ public class CreateOrderRequest extends BaseRequest {
//订单原始金额,单位分
private
Long
originalAmount
;
//用户在界面上看到的支付金额
/**
* 用户在界面上看到的支付金额
*/
private
Long
settlementAmount
;
//实际支付现金金额,扣除支付自生优惠,单位分
/**
* 实际支付现金金额,扣除支付自生优惠,单位分
*/
private
Long
actualPayAmount
;
//是否需要开发票
private
Boolean
needInvoice
;
//下单渠道必填,根据此字段的值判断是自营或第三方,来走不同的状态机 详细见 orderClientType枚举
/**
* 下单渠道必填,根据此字段的值判断是自营或第三方,来走不同的状态机 详细见 orderClientType枚举
* @see OrderClientType
*/
private
Integer
orderClient
;
//商户自己生成的订单号
...
...
@@ -171,9 +190,8 @@ public class CreateOrderRequest extends BaseRequest {
//打印次数
private
Integer
printNum
;
//订单业务类型 1:普通订单 2:虚拟订单
/**
*
1: ; 2:
*
默认不填=1,订单业务类型 1:普通订单 2:虚拟订单 3:会员订单 4:积分商城订单 5:储值卡订单 6:卖券订单 97 农工商停车自助积分订单 98:农工商停车手工录单 99:农工商停车订单
*/
private
Integer
bizType
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment