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
293c0fd6
Commit
293c0fd6
authored
Jul 27, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
临时新增发券补偿接口
parent
28327a74
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
530 additions
and
23 deletions
+530
-23
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+247
-22
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/CreateCouponReq.java
+148
-0
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/CreateCouponResp.java
+54
-0
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/SendCouponSourceOriginEnum.java
+53
-0
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/TempReSendCouponReq.java
+16
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOnlineClient.java
+10
-1
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/response/orderInfo/OrderSettlementResp.java
+2
-0
No files found.
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
293c0fd6
...
...
@@ -14,6 +14,7 @@ package cn.freemud.controller;
import
cn.freemud.annotations.IsConvertEN
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.ErrorLog
;
import
cn.freemud.entities.dto.order.CreateCashierOrderDto
;
import
cn.freemud.entities.dto.order.InvoiceCreateResponseVo
;
import
cn.freemud.entities.dto.order.OrderInvoiceConfigVo
;
...
...
@@ -21,6 +22,10 @@ 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.*
;
import
cn.freemud.entities.vo.tempsendcoupon.CreateCouponReq
;
import
cn.freemud.entities.vo.tempsendcoupon.CreateCouponResp
;
import
cn.freemud.entities.vo.tempsendcoupon.SendCouponSourceOriginEnum
;
import
cn.freemud.entities.vo.tempsendcoupon.TempReSendCouponReq
;
import
cn.freemud.handler.CouponOrderAutoRefundHandler
;
import
cn.freemud.handler.OrderReportJobHandler
;
import
cn.freemud.service.EncircleOrderService
;
...
...
@@ -28,19 +33,36 @@ import cn.freemud.service.Orderservice;
import
cn.freemud.service.PointsMallOrderService
;
import
cn.freemud.service.impl.MallOrderServiceImpl
;
import
cn.freemud.service.impl.OrderAdapterServiceImpl
;
import
cn.freemud.service.thirdparty.CouponOnlineClient
;
import
cn.freemud.utils.AppLogUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.xxljob.OrderCountJobHandler
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.entities.extinfo.OrderProductExtInfo
;
import
com.freemud.application.sdk.api.ordercenter.entities.extinfo.ProductBindingCouponType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderSettlementReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq
;
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.response.orderInfo.OrderItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@RequestMapping
(
"/order"
)
...
...
@@ -65,6 +87,199 @@ public class OrderController {
@Autowired
private
PointsMallOrderService
pointsMallOrderService
;
// =========================== 2022年7月27日12:14:11 临时代码 需要删除
@Autowired
private
OrderSdkService
orderSdkService
;
@Autowired
private
CouponOnlineClient
onlineCouponClient
;
/**
* 临时补偿发券操作
* // 1查询订单
* // 2订单状态判断
* // 跳过第一张券 进行补偿
* // 3需要sql删除额外废弃数据
* // 4基础服务数据修复
* // 处理成功的记录返回响应 获取要删除的 settlement id集合
*/
@ApiAnnotation
(
logMessage
=
"/order/temp/reSendCoupon"
)
@PostMapping
(
"/temp/reSendCoupon"
)
public
BaseResponse
reSendCoupon
(
@Validated
@LogParams
@RequestBody
TempReSendCouponReq
req
)
{
if
(
CollectionUtils
.
isEmpty
(
req
.
getOrderCodes
()))
{
return
ResponseUtil
.
error
(
"订单号为空"
);
}
Map
<
String
,
Object
>
resultMap
=
new
LinkedHashMap
<>();
String
remark
=
"bugfix:遗漏补发"
;
List
<
Long
>
deleteSettlementIds
=
new
ArrayList
<>();
for
(
String
orderCode
:
req
.
getOrderCodes
())
{
Map
<
String
,
Object
>
msgMap
=
new
HashMap
<>();
QueryByCodeResponse
orderInfoResp
=
orderSdkService
.
getOrderInfo
(
null
,
orderCode
,
null
,
0
,
LogThreadLocal
.
getTrackingNo
());
OrderInfoReqs
orderInfo
=
orderInfoResp
.
getResult
();
msgMap
.
put
(
"remark"
,
"订单初始处理开始"
);
if
(
Objects
.
isNull
(
orderInfo
))
{
msgMap
.
put
(
"remark"
,
"订单号不存在"
);
continue
;
}
if
(
orderInfo
.
getOrderState
().
compareTo
(
6
)
!=
0
)
{
msgMap
.
put
(
"remark"
,
"订单状态不为 6 已完成"
);
continue
;
}
List
<
OrderItemResp
>
virtualProduct
=
orderInfo
.
getOrderItemList
();
if
(
CollectionUtils
.
isNotEmpty
(
virtualProduct
))
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
String
storeId
=
orderInfo
.
getStoreId
();
List
<
OrderSettlementCreateReq
>
orderSettlementDetailList
=
new
ArrayList
<>();
int
masterSeq
=
1
;
List
<
CreateCouponResp
>
msgList
=
new
ArrayList
<>();
for
(
OrderItemResp
orderItemResp
:
virtualProduct
)
{
String
extInfo
=
orderItemResp
.
getExtInfo
();
if
(
StringUtils
.
isNotBlank
(
extInfo
))
{
OrderProductExtInfo
orderProductAddInfoDto
=
JSONObject
.
parseObject
(
extInfo
,
OrderProductExtInfo
.
class
);
List
<
ProductBindingCouponType
>
productBindingCoupons
=
orderProductAddInfoDto
.
getProductBindingCoupons
();
if
(
Objects
.
isNull
(
productBindingCoupons
)
||
productBindingCoupons
.
isEmpty
())
{
continue
;
}
List
<
String
>
activityCodes
=
productBindingCoupons
.
stream
().
map
(
ProductBindingCouponType:
:
getActivityCode
).
collect
(
Collectors
.
toList
());
if
(
org
.
apache
.
commons
.
collections4
.
CollectionUtils
.
isEmpty
(
activityCodes
))
{
continue
;
}
//计算虚拟商品所有总价=单价*数量相累加
Integer
totalPrice
=
productBindingCoupons
.
stream
().
filter
(
x
->
!
Objects
.
equals
(
x
.
getNum
(),
null
)
&&
!
Objects
.
equals
(
x
.
getPrice
(),
null
))
.
mapToInt
(
x
->
x
.
getNum
()
*
x
.
getPrice
()).
sum
();
// 1已经发券过了, 去重
int
seq
=
2
;
// todo 从第二张开始发
for
(
int
i
=
1
;
i
<
productBindingCoupons
.
size
();
i
++)
{
ProductBindingCouponType
productCoupon
=
productBindingCoupons
.
get
(
i
);
CreateCouponReq
createCouponReq
=
new
CreateCouponReq
();
createCouponReq
.
setTemplateCode
(
productCoupon
.
getActivityCode
());
//券模板编号
createCouponReq
.
setPartnerId
(
Integer
.
valueOf
(
orderInfo
.
getPartnerId
()));
//商户编号
createCouponReq
.
setMemberId
(
orderInfo
.
getUserId
());
//会员编号
// 发券订单号不能一致, 券码要求....
int
length
=
orderCode
.
length
();
String
uuId
=
masterSeq
+
seq
+
orderCode
.
substring
(
length
-
6
,
length
-
5
);
createCouponReq
.
setOrderId
(
orderCode
.
concat
(
uuId
));
createCouponReq
.
setCouponName
(
productCoupon
.
getActivityName
());
createCouponReq
.
setNum
(
productCoupon
.
getNum
());
//发码数量
//商城发券商品数量可买多件
if
(
orderItemResp
.
getProductQuantity
()
!=
null
)
{
createCouponReq
.
setNum
(
productCoupon
.
getNum
()
*
orderItemResp
.
getProductQuantity
());
}
createCouponReq
.
setShowEncode
(
true
);
createCouponReq
.
setTemplateCode
(
productCoupon
.
getActivityCode
());
//券模板编号
createCouponReq
.
setSendReason
(
remark
+
","
+
orderInfo
.
getStoreName
()
+
","
+
storeId
);
//发码原因
createCouponReq
.
setStoreId
(
orderInfo
.
getStoreId
());
//限制门店id
if
(
orderInfo
.
getBizType
()
==
4
)
{
createCouponReq
.
setSourceOrigin
(
SendCouponSourceOriginEnum
.
SCORE_EXCHANGE
.
getType
());
//发码来源类型,如果提供的类型不满足请和会员卡券组联系添加
}
if
(
orderInfo
.
getBizType
()
==
6
||
orderInfo
.
getBizType
()
==
1
)
{
createCouponReq
.
setSourceOrigin
(
SendCouponSourceOriginEnum
.
PURCHASE
.
getType
());
//发码来源类型,如果提供的类型不满足请和会员卡券组联系添加
}
if
(
orderInfo
.
getBizType
()
==
6
&&
orderInfo
.
getMarketingType
().
compareTo
(
9
)
==
0
)
{
createCouponReq
.
setSourceOrigin
(
SendCouponSourceOriginEnum
.
WEXIN_SHIPINHAO
.
getType
());
//发码来源类型,如果提供的类型不满足请和会员卡券组联系添加
}
//只有卖券订单才能分账,目前卖券订单都是虚拟商品,虚拟商品都是券包
if
(
orderInfo
.
getBizType
()
==
6
&&
productCoupon
.
getIsSplitAccount
()
!=
null
&&
productCoupon
.
getIsSplitAccount
()
==
1
)
{
Integer
sale
=
orderItemResp
.
getSettlementPrice
().
intValue
();
//售价
CreateCouponReq
.
CouponPackageInfo
couponPackageInfo
=
new
CreateCouponReq
.
CouponPackageInfo
();
couponPackageInfo
.
setIsCouponPackage
(
true
);
CreateCouponReq
.
Settings
settings
=
new
CreateCouponReq
.
Settings
();
//isSplitAccount 0-不分账,1-分账
settings
.
setAccountDivide
(
true
);
//折扣 = 售价/总价
double
discount
=
(
double
)
sale
/
totalPrice
;
//分账金额等于券单价 * 折扣
settings
.
setUnitPrice
((
int
)
(
productCoupon
.
getPrice
()
*
discount
));
couponPackageInfo
.
setSettings
(
settings
);
createCouponReq
.
setCouponPackageInfo
(
couponPackageInfo
);
}
if
(
orderInfo
.
getBizType
()
==
6
&&
orderInfo
.
getMarketingType
().
compareTo
(
9
)
==
0
)
{
//marketingType = 9 微信视频号卖券
createCouponReq
.
setSourceOrigin
(
SendCouponSourceOriginEnum
.
WEXIN_SHIPINHAO
.
getType
());
//发码来源类型,如果提供的类型不满足请和会员卡券组联系添加
}
createCouponReq
.
setSourceOriginId
(
orderCode
);
//发码来源类型id,指定了发码来源类型时该字段必填,最大64字符
createCouponReq
.
setVer
(
2
);
//sendMemberCoupon 这个接口,ver字段传1的或者没传的,现在都传 2,不然不幂等
CreateCouponResp
resp
=
null
;
try
{
resp
=
onlineCouponClient
.
createCoupon
(
createCouponReq
);
msgList
.
add
(
resp
);
}
catch
(
Exception
e
)
{
ErrorLog
.
errorConvertJson
(
this
.
getClass
(),
"onlineCouponClient.sendMemberCoupon Exception,request:"
+
JSON
.
toJSONString
(
createCouponReq
),
e
);
CreateCouponResp
errorResp
=
new
CreateCouponResp
();
errorResp
.
setMsg
(
e
.
getMessage
());
msgList
.
add
(
errorResp
);
continue
;
}
if
(
null
==
resp
||
CollectionUtils
.
isEmpty
(
resp
.
getCodes
()))
{
//tapd 【线上bug】卖券,连续发多张券时,不要中途return掉
continue
;
}
for
(
CreateCouponResp
.
Coupon
coupon
:
resp
.
getCodes
())
{
OrderSettlementCreateReq
settlementCreateReq
=
new
OrderSettlementCreateReq
();
settlementCreateReq
.
setExternalObjectId
(
coupon
.
getCode
());
settlementCreateReq
.
setIgnoreInDiscountAmount
(
false
);
settlementCreateReq
.
setSettlementType
(
216
);
// fisherman 发券关联对应商品信息
settlementCreateReq
.
setProductId
(
orderItemResp
.
getProductId
());
settlementCreateReq
.
setProductSeq
(
orderItemResp
.
getProductSeq
());
orderSettlementDetailList
.
add
(
settlementCreateReq
);
}
seq
++;
}
masterSeq
++;
}
}
msgMap
.
put
(
"msg"
,
msgList
);
if
(
orderSettlementDetailList
.
isEmpty
())
{
msgMap
.
put
(
"remark"
,
"发券失败"
);
continue
;
}
//保存券号到订单优惠表
OrderSettlementReq
request
=
new
OrderSettlementReq
();
request
.
setOrderClient
(
orderInfo
.
getOrderClient
());
request
.
setOrderCode
(
orderInfo
.
getOrderCode
());
request
.
setPartnerId
(
orderInfo
.
getPartnerId
());
request
.
setOrderSettlementDetailList
(
orderSettlementDetailList
);
OrderBaseResp
baseResponse
=
orderSdkService
.
createSettlement
(
request
,
trackingNo
);
if
(!
baseResponse
.
getCode
().
equals
(
"100"
))
{
msgMap
.
put
(
"remark"
,
"存基础settlement失败"
);
continue
;
}
msgMap
.
put
(
"remark"
,
"===补发成功==="
);
// todo 获取要删除的 settlemnt 集合
List
<
OrderSettlementResp
>
deleteSettlementList
=
orderInfo
.
getOrderSettlementDetailList
();
if
(
CollectionUtils
.
isNotEmpty
(
deleteSettlementList
)
&&
deleteSettlementList
.
size
()
>
1
)
{
Map
<
String
,
List
<
OrderSettlementResp
>>
stringListMap
=
deleteSettlementList
.
stream
().
collect
(
Collectors
.
groupingBy
(
OrderSettlementResp:
:
getExternalObjectId
));
stringListMap
.
forEach
((
key
,
val
)
->
{
// 从 第二个开始 需要删除
for
(
int
i
=
1
;
i
<
val
.
size
();
i
++)
{
deleteSettlementIds
.
add
(
val
.
get
(
i
).
getId
());
}
});
}
}
else
{
msgMap
.
put
(
"remark"
,
"购买商品数据不存在"
);
}
// final msg
resultMap
.
put
(
orderCode
,
msgMap
);
resultMap
.
put
(
"deleteIds"
,
deleteSettlementIds
);
}
return
ResponseUtil
.
success
(
resultMap
);
}
// =========================== 2022年7月27日12:14:11 临时代码 需要删除
/**
* 废弃,不在使用
* 创建订单之前校验前面排队的订单数
...
...
@@ -138,7 +353,7 @@ public class OrderController {
* 订单支付成功后通知
*/
@ApiAnnotation
(
logMessage
=
"newPaySuccessCallback"
)
@PostMapping
({
"/newPaySuccessCallback"
,
"/openStoreQueryPaymentCallback"
})
@PostMapping
({
"/newPaySuccessCallback"
,
"/openStoreQueryPaymentCallback"
})
public
String
newPaySuccessCallback
(
@LogParams
@RequestBody
NewPaysuccessNoticeMessage
message
)
{
return
orderservice
.
newPaySuccessCallback
(
message
);
}
...
...
@@ -172,14 +387,15 @@ public class OrderController {
/**
* 围餐-预览订单
*
* @param queryOrderVo
* @return
*/
@IsConvertEN
@ApiAnnotation
(
logMessage
=
"previewOrderInfo"
)
@PostMapping
(
"/previewOrderInfo"
)
public
BaseResponse
previewOrderInfo
(
@Validated
@LogParams
@RequestBody
QueryOrderVo
queryOrderVo
){
CreateReserveOrderVo
createReserveOrderVo
=
new
CreateReserveOrderVo
();
public
BaseResponse
previewOrderInfo
(
@Validated
@LogParams
@RequestBody
QueryOrderVo
queryOrderVo
)
{
CreateReserveOrderVo
createReserveOrderVo
=
new
CreateReserveOrderVo
();
createReserveOrderVo
.
setSessionId
(
queryOrderVo
.
getSessionId
());
createReserveOrderVo
.
setActivityCode
(
queryOrderVo
.
getActivityCode
());
createReserveOrderVo
.
setCouponCode
(
queryOrderVo
.
getCouponCode
());
...
...
@@ -189,14 +405,15 @@ public class OrderController {
/**
* 围餐-svc卡支付调用接口-预览订单
*
* @param queryOrderVo
* @return
*/
@IsConvertEN
@ApiAnnotation
(
logMessage
=
"previewOrderInfoSvcCheck"
)
@PostMapping
(
"/previewOrderInfoSvcCheck"
)
public
BaseResponse
previewOrderInfoSvcCheck
(
@Validated
@LogParams
@RequestBody
QueryOrderVo
queryOrderVo
){
CreateReserveOrderVo
createReserveOrderVo
=
new
CreateReserveOrderVo
();
public
BaseResponse
previewOrderInfoSvcCheck
(
@Validated
@LogParams
@RequestBody
QueryOrderVo
queryOrderVo
)
{
CreateReserveOrderVo
createReserveOrderVo
=
new
CreateReserveOrderVo
();
createReserveOrderVo
.
setSessionId
(
queryOrderVo
.
getSessionId
());
createReserveOrderVo
.
setActivityCode
(
queryOrderVo
.
getActivityCode
());
createReserveOrderVo
.
setCouponCode
(
queryOrderVo
.
getCouponCode
());
...
...
@@ -212,8 +429,8 @@ public class OrderController {
@ApiAnnotation
(
logMessage
=
"queryOrderById"
)
@PostMapping
(
"/queryOrderById"
)
public
BaseResponse
queryOrderById
(
@Validated
@LogParams
@RequestBody
QueryOrderVo
queryOrderVo
)
{
return
orderservice
.
queryOrderById
(
queryOrderVo
.
getOperation
(),
queryOrderVo
.
getSessionId
(),
queryOrderVo
.
getOid
(),
queryOrderVo
.
getPartnerId
(),
queryOrderVo
.
getChannelType
()
,
queryOrderVo
.
getIsQueryAfterPay
(),
queryOrderVo
.
getPayGiftVer
());
return
orderservice
.
queryOrderById
(
queryOrderVo
.
getOperation
(),
queryOrderVo
.
getSessionId
(),
queryOrderVo
.
getOid
(),
queryOrderVo
.
getPartnerId
(),
queryOrderVo
.
getChannelType
()
,
queryOrderVo
.
getIsQueryAfterPay
(),
queryOrderVo
.
getPayGiftVer
());
}
...
...
@@ -221,7 +438,7 @@ public class OrderController {
* 蜜雪APP 取消支付订单
*/
@ApiAnnotation
(
logMessage
=
"cancelPayOrder"
)
@PostMapping
({
"/cancelPayOrder"
,
"/deleteOrderById"
})
@PostMapping
({
"/cancelPayOrder"
,
"/deleteOrderById"
})
public
BaseResponse
cancelPayOrder
(
@Validated
@LogParams
@RequestBody
DeleteOrderVo
deleteOrderVo
)
{
return
orderservice
.
cancelPayOrder
(
deleteOrderVo
);
}
...
...
@@ -332,22 +549,25 @@ public class OrderController {
/**
* timeOutRefund
*
* @param timeOutOrderVo
* @return
*/
@ApiAnnotation
(
logMessage
=
"timeOutOrderRefund"
)
@PostMapping
(
"/timeOutOrderRefund"
)
public
BaseResponse
timeOutOrderRefund
(
@Validated
@LogParams
@RequestBody
TimeOutOrderVo
timeOutOrderVo
){
public
BaseResponse
timeOutOrderRefund
(
@Validated
@LogParams
@RequestBody
TimeOutOrderVo
timeOutOrderVo
)
{
return
orderservice
.
timeOutOrderRefund
(
timeOutOrderVo
);
}
/**
* 根据订单号查询配送操作日志及骑手位置
*
* @param requestVo
* @return
*/
@ApiAnnotation
(
logMessage
=
"queryOrderRider"
)
@PostMapping
(
"/queryOrderRider"
)
public
BaseResponse
queryOrderRider
(
@Validated
@LogParams
@RequestBody
OrderRiderRequestVo
requestVo
){
public
BaseResponse
queryOrderRider
(
@Validated
@LogParams
@RequestBody
OrderRiderRequestVo
requestVo
)
{
return
orderservice
.
queryOrderRider
(
requestVo
);
}
...
...
@@ -435,14 +655,15 @@ public class OrderController {
/**
* 订单统计 上报数据
* 订单统计 上报数据
*
* @param
* @return
*/
@ApiAnnotation
(
logMessage
=
"reportSendOrderCount"
)
@GetMapping
(
"/reportSendOrderCount"
)
public
BaseResponse
reportSendOrderCount
()
throws
Exception
{
AppLogUtil
.
infoLog
(
"触发订单上报"
,
null
,
null
);
AppLogUtil
.
infoLog
(
"触发订单上报"
,
null
,
null
);
orderCountJobHandler
.
execute
(
null
);
return
ResponseUtil
.
success
();
}
...
...
@@ -469,7 +690,8 @@ public class OrderController {
}
/**
* 开订单发票,对接百望
* 开订单发票,对接百望
*
* @param
* @return
*/
...
...
@@ -480,7 +702,8 @@ public class OrderController {
}
/**
* 查询发票配置
* 查询发票配置
*
* @param
* @return
*/
...
...
@@ -491,9 +714,9 @@ public class OrderController {
}
/**
* 一元捐插件获取支付配置
*
* @param createOrderVo
* @return
*/
...
...
@@ -510,7 +733,7 @@ public class OrderController {
@ApiAnnotation
(
logMessage
=
"couponOrderRefund"
)
@PostMapping
(
"/couponOrderRefund"
)
public
BaseResponse
couponOrderRefund
(
@Validated
@LogParams
@RequestBody
OrderRefundVo
orderRefundVo
)
{
return
orderservice
.
couponOrderRefund
(
orderRefundVo
,
0
);
return
orderservice
.
couponOrderRefund
(
orderRefundVo
,
0
);
}
...
...
@@ -524,14 +747,15 @@ public class OrderController {
}
/**
* 卖券订单券过期自动退款
* 卖券订单券过期自动退款
*
* @param
* @return
*/
@ApiAnnotation
(
logMessage
=
"couponOrderAutoRefund"
)
@GetMapping
(
"/couponOrderAutoRefund"
)
public
BaseResponse
couponOrderAutoRefund
()
throws
Exception
{
AppLogUtil
.
infoLog
(
"卖券订单券过期自动退款 "
,
null
,
null
);
AppLogUtil
.
infoLog
(
"卖券订单券过期自动退款 "
,
null
,
null
);
couponOrderAutoRefundHandler
.
execute
(
null
);
return
ResponseUtil
.
success
();
}
...
...
@@ -552,15 +776,16 @@ public class OrderController {
*/
@PostMapping
(
"/orderConfig/get"
)
@ApiAnnotation
(
logMessage
=
"/orderConfig/get"
)
public
BaseResponse
<
String
>
getOrderConfig
(
@Validated
@LogParams
@RequestBody
GetOrderConfigRequestVo
request
){
public
BaseResponse
<
String
>
getOrderConfig
(
@Validated
@LogParams
@RequestBody
GetOrderConfigRequestVo
request
)
{
return
ResponseUtil
.
success
(
orderAdapterService
.
getOrderConfig
(
request
));
}
/**
* 华莱士临时对接百事抽奖活动
* 华莱士临时对接百事抽奖活动
*
* @param request
* @return 是否需要弹框,跳转百事
* @return 是否需要弹框,
跳转百事
*/
@ApiAnnotation
(
logMessage
=
"/order/temp/activity"
)
@PostMapping
(
"/temp/activity/query"
)
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/CreateCouponReq.java
0 → 100644
View file @
293c0fd6
package
cn
.
freemud
.
entities
.
vo
.
tempsendcoupon
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
/**
* @author Clover.z
* @Date 2021/9/24
* @Desc
*/
@Data
public
class
CreateCouponReq
{
/**
* 活动编号
*/
@NotBlank
(
message
=
"券模板编号不能为空"
)
private
String
templateCode
;
/**
* 商户号
*/
@NotBlank
(
message
=
"商户编号不能为空"
)
private
Integer
partnerId
;
/**
* 渠道号(可以不传,不传就默认是开个店发码,核销后会回调会员移除卡包。如果不是开个店就要传)
*/
private
Integer
providerId
;
/**
* 会员Id
*/
private
String
memberId
;
/**
* 发券订单号
*/
@NotBlank
(
message
=
"请求流水号不能为空"
)
@Length
(
max
=
30
,
message
=
"流水号长度最大不能超过30个字符"
)
private
String
orderId
;
/**
* 券名称
*/
private
String
couponName
;
/**
* 券开始时间
*/
private
String
validStart
;
/**
* 券结束时间
*/
private
String
validEnd
;
/**
* 发券数量
*/
@NotNull
(
message
=
"发码数量必须大于0且不大于100"
)
@Min
(
value
=
1
)
@Max
(
value
=
100
)
private
Integer
num
;
/**
* 门店id
* 发券指定门店场景下使用
*/
@Length
(
max
=
50
)
private
String
storeId
;
/**
* 发券原因
*/
@Length
(
max
=
2000
)
private
String
sendReason
;
/**
* {@link com.freemud.task.order.consumer.enums.SendCouponSourceOriginEnum 发码来源类型}
*/
private
Integer
sourceOrigin
;
/**
* 发码来源类型id
*/
@Length
(
max
=
64
)
private
String
sourceOriginId
;
/**
* 促销活动编号
*/
@Length
(
max
=
32
)
private
String
promotionActivityCode
;
/**
* 三方交易流水号
*/
@Length
(
max
=
32
)
private
String
thirdTrackId
;
/**
* 是否需要显示密文code
* <p>
* 默认不显示
*/
private
Boolean
showEncode
=
false
;
/**
* 签名
* 签名sign传 "adapterV4Skip" + 渠道号providerId
* 现券码已支持不传了
*/
private
String
sign
;
/**
* 接口版本号
*/
private
Integer
ver
;
/*****************券包分账新增入参***********************/
//券包信息,不传默认不是券包
private
CouponPackageInfo
couponPackageInfo
;
@Data
public
static
class
CouponPackageInfo
{
//是否券包
private
Boolean
isCouponPackage
=
false
;
//券包配置,isCouponPackage为true时必填
private
Settings
settings
;
}
@Data
public
static
class
Settings
{
//是否分账
private
Boolean
accountDivide
;
//单价,单位:分
private
Integer
unitPrice
;
}
/*****************券包分账新增入参***********************/
}
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/CreateCouponResp.java
0 → 100644
View file @
293c0fd6
package
cn
.
freemud
.
entities
.
vo
.
tempsendcoupon
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author Clover.z
* @Date 2021/9/24
* @Desc
*/
@Data
public
class
CreateCouponResp
{
/**
* 100-成功
*/
private
Integer
statusCode
;
private
String
msg
;
private
String
ver
;
/**
* true是正常发的码,false是幂等返回的之前发的码,根据入参的orderId,相同的orderId 24小时内重复调用会返回相同的结果
*/
private
Boolean
fresh
;
/**
* 码的有效期-开始
*/
private
String
effectStart
;
/**
* 码的有效期-结束
*/
private
String
effectEnd
;
/**
* 发码返回的券信息
*/
private
List
<
Coupon
>
codes
;
@Data
public
static
class
Coupon
{
/**
* 券号
*/
private
String
code
;
/**
* 优惠券号密文
*/
private
String
encode
;
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/SendCouponSourceOriginEnum.java
0 → 100644
View file @
293c0fd6
package
cn
.
freemud
.
entities
.
vo
.
tempsendcoupon
;
/**
* 具体枚举值 找 张文凯确认 券码基础服务
*/
public
enum
SendCouponSourceOriginEnum
{
UNKNOWN
(
0
,
"未知"
),
PROMOTION
(
1
,
"促销活动发券"
),
MANUAL
(
2
,
"手动送券"
),
EXPORT
(
3
,
"批量导码"
),
PURCHASE
(
4
,
"买券"
),
SCORE_EXCHANGE
(
5
,
"积分兑换券"
),
MEMBER_BIRTHDAY_GIFT
(
6
,
"会员生日礼送券"
),
RECHARGE_VIP
(
7
,
"开通/续费 付费会员送券"
),
RECHARGE_STORED_VALUE_CARD
(
8
,
"储值卡充值送券"
),
MEMBER_LEVEL_UPGRADE
(
9
,
"会员等级升级"
),
MEMBER_POINT
(
1
,
"集点兑换券"
),
IMPORT_SCORE_EXPERIENC_CASE_UPGRADE
(
9
,
"积分经验值导入触发等级升级送券"
),
CREATE_ORDER_SEND_EXPERIENC_CASE_UPGRADE
(
9
,
"积分经验值导入触发等级升级送券"
),
SIGN_IN
(
10
,
"签到送券"
),
WEXIN_SHIPINHAO
(
11
,
"微信视频号卖券"
)
;
private
Integer
type
;
private
String
name
;
/**
* @param type 类型
* @param name 类型名称
*/
SendCouponSourceOriginEnum
(
Integer
type
,
String
name
)
{
this
.
type
=
type
;
this
.
name
=
name
;
}
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
}
\ No newline at end of file
order-application-service/src/main/java/cn/freemud/entities/vo/tempsendcoupon/TempReSendCouponReq.java
0 → 100644
View file @
293c0fd6
package
cn
.
freemud
.
entities
.
vo
.
tempsendcoupon
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/7/27 11:20
* @description :
*/
@Data
public
class
TempReSendCouponReq
{
List
<
String
>
orderCodes
;
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOnlineClient.java
View file @
293c0fd6
...
...
@@ -3,12 +3,14 @@ package cn.freemud.service.thirdparty;
//import cn.freemud.constant.IgnoreFeignLogAnnotation;
import
com.freemud.application.sdk.api.ordercenter.annotation.LogIgnoreFeign
;
import
cn.freemud.constant.ResponseCodeKeyConstant
;
import
cn.freemud.entities.dto.BatchQueryActivityInfoRequestDto
;
import
cn.freemud.entities.dto.GetCouponDetailResponseDto
;
import
cn.freemud.entities.dto.coupon.*
;
import
cn.freemud.entities.vo.tempsendcoupon.CreateCouponReq
;
import
cn.freemud.entities.vo.tempsendcoupon.CreateCouponResp
;
import
cn.freemud.interceptor.FormSupportConfig
;
import
com.freemud.application.sdk.api.ordercenter.annotation.LogIgnoreFeign
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
@@ -77,4 +79,11 @@ public interface CouponOnlineClient {
@PostMapping
(
value
=
"/coupon/standard/checkandcancel"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
CouponResponseDTO
<
CheckAndCancelResponseDTO
>
checkandcancel
(
@RequestBody
CheckAndCancelRequest
request
);
/**
* 根据券档案发码 返回券号
* @param request
* @return
*/
@PostMapping
(
"/coupon/standard/create"
)
CreateCouponResp
createCoupon
(
CreateCouponReq
request
);
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/response/orderInfo/OrderSettlementResp.java
View file @
293c0fd6
...
...
@@ -19,6 +19,8 @@ import java.math.BigDecimal;
@Data
public
class
OrderSettlementResp
{
private
Long
id
;
/**
* 订单商品ID
*/
...
...
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