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
jenkins
order-group
Commits
4b62383d
Commit
4b62383d
authored
Feb 06, 2020
by
shuhu.hou@freemud.cn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
核销券码失败,直接返回
parent
9029c5e9
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
141 additions
and
19 deletions
+141
-19
assortment-ordercenter-sdk/pom.xml
+7
-1
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+61
-7
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/ActivityChannelEnum.java
+32
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/QueryOrdersResponse.java
+4
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
+27
-6
order-application-service/pom.xml
+6
-1
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+4
-4
No files found.
assortment-ordercenter-sdk/pom.xml
View file @
4b62383d
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
1.1.
5
.RELEASE
</version>
<version>
1.1.
6
.RELEASE
</version>
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
...
@@ -24,6 +24,12 @@
...
@@ -24,6 +24,12 @@
<scope>
provided
</scope>
<scope>
provided
</scope>
</dependency>
</dependency>
<dependency>
<dependency>
<artifactId>
couponcenter-sdk
</artifactId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<version>
1.8.0-SNAPSHOT
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<artifactId>
membercenter-sdk
</artifactId>
<artifactId>
membercenter-sdk
</artifactId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<version>
2.8.3-SNAPSHOT
</version>
<version>
2.8.3-SNAPSHOT
</version>
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
4b62383d
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
adapter
;
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
adapter
;
import
cn.freemud.base.constant.Version
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.couponcenter.offline.domain.ProductRedeemVO
;
import
com.freemud.application.sdk.api.couponcenter.offline.domain.TransactionVO
;
import
com.freemud.application.sdk.api.couponcenter.offline.request.CouponRequest
;
import
com.freemud.application.sdk.api.membercenter.request.UserScoreRequest
;
import
com.freemud.application.sdk.api.membercenter.request.UserScoreRequest
;
import
com.freemud.application.sdk.api.ordercenter.enums.*
;
import
com.freemud.application.sdk.api.ordercenter.enums.*
;
import
com.freemud.application.sdk.api.ordercenter.request.*
;
import
com.freemud.application.sdk.api.ordercenter.request.*
;
...
@@ -1998,13 +2002,6 @@ public class OrderSdkAdapter {
...
@@ -1998,13 +2002,6 @@ public class OrderSdkAdapter {
}
}
/**
/**
* @param request
* @param orderId
* @param isReduce 是否扣减积分
* @return
*/
/**
* 积分扣减或冲正
* 积分扣减或冲正
*
*
* @param orderBean 订单
* @param orderBean 订单
...
@@ -2031,6 +2028,63 @@ public class OrderSdkAdapter {
...
@@ -2031,6 +2028,63 @@ public class OrderSdkAdapter {
return
userScoreRequest
;
return
userScoreRequest
;
}
}
public
CouponRequest
convert2CouponVerificationRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
){
if
(
CollectionUtils
.
isEmpty
(
accounts
))
{
return
null
;
}
Optional
<
CreateOrderAccountRequest
>
accountRequest
=
accounts
.
stream
().
filter
(
account
->
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
COUPON
)
||
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
)).
findFirst
();
if
(!
accountRequest
.
isPresent
()
||
accountRequest
.
get
().
getPrice
()
==
0
)
{
return
null
;
}
CreateOrderAccountRequest
accountBean
=
accountRequest
.
get
();
List
<
ProductRedeemVO
>
products
=
new
ArrayList
<>();
//商品券核销核销参数
if
(
QueryOrderAccountType
.
PRODUCT_COUPON
.
equals
(
accountBean
.
getAccountType
()))
{
for
(
int
i
=
0
;
i
<
orderBean
.
getProductList
().
size
();
i
++)
{
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
productBean
=
orderBean
.
getProductList
().
get
(
i
);
String
pid
=
StringUtils
.
isNotBlank
(
productBean
.
getSpecification
())
?
productBean
.
getSpecification
()
:
productBean
.
getProductId
();
if
(!
org
.
springframework
.
util
.
CollectionUtils
.
isEmpty
(
orderBean
.
getProductList
().
get
(
i
).
getDiscountList
()))
{
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
>
discounts
=
orderBean
.
getProductList
().
get
(
i
).
getDiscountList
().
stream
().
filter
(
productDiscount
->
productDiscount
.
getDiscountId
().
equals
(
accountBean
.
getAccountId
())).
collect
(
Collectors
.
toList
());
for
(
QueryOrdersResponse
.
DataBean
.
OrderBean
.
ProductBean
.
ProductDiscount
productDiscount
:
discounts
)
{
if
(
productDiscount
.
getDiscountType
()
==
null
||
productDiscount
.
getDiscountType
()
==
0
)
{
continue
;
}
ProductRedeemVO
couponCodeVerificationProductDto
=
new
ProductRedeemVO
();
couponCodeVerificationProductDto
.
setPid
(
pid
);
couponCodeVerificationProductDto
.
setConsume_num
(
productDiscount
.
getDiscountQty
());
couponCodeVerificationProductDto
.
setSeq
(
i
+
1
);
products
.
add
(
couponCodeVerificationProductDto
);
}
}
}
}
ActivityChannelEnum
activityChannelEnum
=
Objects
.
equals
(
OldOrderType
.
TAKE_OUT
.
getCode
(),
orderBean
.
getType
())?
ActivityChannelEnum
.
delivery
:
ActivityChannelEnum
.
pickup
;
CouponRequest
couponCodeVerificationDto
=
new
CouponRequest
();
couponCodeVerificationDto
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
couponCodeVerificationDto
.
setReqtype
(
71
);
couponCodeVerificationDto
.
setPartnerId
(
Integer
.
getInteger
(
orderBean
.
getCompanyId
()));
couponCodeVerificationDto
.
setChannel
(
activityChannelEnum
.
getCode
());
couponCodeVerificationDto
.
setStation_id
(
"-1"
);
couponCodeVerificationDto
.
setOperator_id
(
"-1"
);
couponCodeVerificationDto
.
setStore_id
(
orderBean
.
getShopId
());
// 订单号 替换成唯一序号
couponCodeVerificationDto
.
setTrans_id
(
orderBean
.
getOid
());
couponCodeVerificationDto
.
setBusiness_date
(
cn
.
freemud
.
base
.
util
.
DateUtil
.
convert2Str
(
new
Date
(),
cn
.
freemud
.
base
.
util
.
DateUtil
.
FORMAT_yyyyMMdd
));
List
<
TransactionVO
>
transactions
=
new
ArrayList
<>();
TransactionVO
couponCodeVerificationTransDto
=
new
TransactionVO
();
couponCodeVerificationTransDto
.
setCode
(
accountBean
.
getAccountId
());
couponCodeVerificationTransDto
.
setTotalAmount
(-
accountBean
.
getPrice
());
if
(
CollectionUtils
.
isNotEmpty
(
products
))
{
couponCodeVerificationTransDto
.
setProducts
(
products
);
}
transactions
.
add
(
couponCodeVerificationTransDto
);
couponCodeVerificationDto
.
setTransactions
(
transactions
);
return
couponCodeVerificationDto
;
}
public
Integer
getOldRefoundStatus
(
Integer
refoundStatus
)
{
public
Integer
getOldRefoundStatus
(
Integer
refoundStatus
)
{
if
(
refoundStatus
==
null
)
{
if
(
refoundStatus
==
null
)
{
return
null
;
return
null
;
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/ActivityChannelEnum.java
0 → 100644
View file @
4b62383d
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
enums
;
public
enum
ActivityChannelEnum
{
// pickup-到店取餐 deliver-外卖
pickup
(
"pickup"
,
"到店取餐"
),
delivery
(
"delivery"
,
"外卖"
);
private
String
code
;
private
String
desc
;
ActivityChannelEnum
(
String
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/QueryOrdersResponse.java
View file @
4b62383d
...
@@ -53,6 +53,10 @@ public class QueryOrdersResponse {
...
@@ -53,6 +53,10 @@ public class QueryOrdersResponse {
@Data
@Data
public
static
class
OrderBean
{
public
static
class
OrderBean
{
/**
/**
*
*/
private
String
orderClient
;
/**
* 订单异常具体描述
* 订单异常具体描述
*/
*/
private
String
abnormalDesc
;
private
String
abnormalDesc
;
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
View file @
4b62383d
...
@@ -12,6 +12,9 @@ import com.freemud.api.assortment.datamanager.order.config.ManagerOrderBeanConfi
...
@@ -12,6 +12,9 @@ import com.freemud.api.assortment.datamanager.order.config.ManagerOrderBeanConfi
import
com.freemud.api.assortment.datamanager.order.manager.AssortmentOrderManager
;
import
com.freemud.api.assortment.datamanager.order.manager.AssortmentOrderManager
;
import
com.freemud.api.assortment.datamanager.order.vo.DMOrderItemVo
;
import
com.freemud.api.assortment.datamanager.order.vo.DMOrderItemVo
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.request.CouponRequest
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.service.OfflineCouponSdkService
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
...
@@ -118,6 +121,8 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
...
@@ -118,6 +121,8 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
private
AssortmentCustomerInfoManager
assortmentCustomerInfoManager
;
private
AssortmentCustomerInfoManager
assortmentCustomerInfoManager
;
@Autowired
@Autowired
private
MemberCenterService
memberCenterService
;
private
MemberCenterService
memberCenterService
;
@Autowired
private
OfflineCouponSdkService
offlineCouponSdkService
;
@Override
@Override
public
CreateOrderResponse
createOrderFlow
(
CreateOrderRequest
config
)
{
public
CreateOrderResponse
createOrderFlow
(
CreateOrderRequest
config
)
{
...
@@ -130,9 +135,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
...
@@ -130,9 +135,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
}
}
BaseOrderResponse
baseOrderResponse
=
updateStockAndScore
(
createOrderResponse
.
getData
(),
config
.
getBaseCreateOrderRequest
().
getProducts
(),
config
.
getBaseCreateOrderRequest
().
getActivityUpdateStockRequest
(),
BaseOrderResponse
baseOrderResponse
=
updateStockAndScore
(
createOrderResponse
.
getData
(),
config
.
getBaseCreateOrderRequest
().
getProducts
(),
config
.
getBaseCreateOrderRequest
().
getActivityUpdateStockRequest
(),
config
.
getBaseCreateOrderRequest
().
getAccounts
(),
config
.
getMqMessageRequest
());
config
.
getBaseCreateOrderRequest
().
getAccounts
(),
config
.
getMqMessageRequest
());
//
if (!RESPONSE_SUCCESS.equals(baseOrderResponse.getErrcode())) {
if
(!
RESPONSE_SUCCESS
.
equals
(
baseOrderResponse
.
getErrcode
()))
{
//
return getCreateOrderResponse(baseOrderResponse.getErrcode().toString(), baseOrderResponse.getErrmsg(), null);
return
getCreateOrderResponse
(
baseOrderResponse
.
getErrcode
().
toString
(),
baseOrderResponse
.
getErrmsg
(),
null
);
//
}
}
return
createOrderResponse
;
return
createOrderResponse
;
}
}
...
@@ -149,8 +154,11 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
...
@@ -149,8 +154,11 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
return
CreateFatherSonOrderResponse
.
error
(
"500"
,
""
);
return
CreateFatherSonOrderResponse
.
error
(
"500"
,
""
);
}
}
CreateFatherSonOrderRequest
.
OrderInfo
productOrderRequest
=
createFatherSonOrderRequest
.
getOrderInfoList
().
stream
().
filter
(
orderBeanTemp
->
1
==
orderBeanTemp
.
getBizType
()).
collect
(
Collectors
.
toList
()).
get
(
0
);
CreateFatherSonOrderRequest
.
OrderInfo
productOrderRequest
=
createFatherSonOrderRequest
.
getOrderInfoList
().
stream
().
filter
(
orderBeanTemp
->
1
==
orderBeanTemp
.
getBizType
()).
collect
(
Collectors
.
toList
()).
get
(
0
);
updateStockAndScore
(
productOrderInfo
.
get
(
0
),
productOrderRequest
.
getProducts
(),
productOrderRequest
.
getActivityUpdateStockRequest
(),
productOrderRequest
.
getAccounts
(),
BaseOrderResponse
baseOrderResponse
=
updateStockAndScore
(
productOrderInfo
.
get
(
0
),
productOrderRequest
.
getProducts
(),
productOrderRequest
.
getActivityUpdateStockRequest
(),
productOrderRequest
.
getAccounts
(),
createFatherSonOrderRequest
.
getMqMessageRequest
());
createFatherSonOrderRequest
.
getMqMessageRequest
());
if
(!
RESPONSE_SUCCESS
.
equals
(
baseOrderResponse
.
getErrcode
()))
{
return
CreateFatherSonOrderResponse
.
error
(
baseOrderResponse
.
getErrcode
().
toString
(),
baseOrderResponse
.
getErrmsg
());
}
return
createFatherSonOrderResponse
;
return
createFatherSonOrderResponse
;
}
}
...
@@ -209,11 +217,24 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
...
@@ -209,11 +217,24 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
orderCancel
(
cancelOrderRequest
);
orderCancel
(
cancelOrderRequest
);
//失败异步冲正库存,取消订单
//失败异步冲正库存,取消订单
backOrdersNotifyActivity
(
orderBean
,
mqMessageRequest
.
getBackOrdersNotifyActivityQueue
(),
mqMessageRequest
.
getBackOrdersNotifyActivityExchange
());
backOrdersNotifyActivity
(
orderBean
,
mqMessageRequest
.
getBackOrdersNotifyActivityQueue
(),
mqMessageRequest
.
getBackOrdersNotifyActivityExchange
());
userScoreRequest
=
orderSdkAdapter
.
convent2UserScoreRequest
(
orderBean
,
accounts
,
false
);
memberScoreService
.
useScore
(
userScoreRequest
,
""
);
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
userScoreResponse
.
getCode
(),
"积分不足"
);
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
userScoreResponse
.
getCode
(),
"积分不足"
);
}
}
}
}
// 核销优惠券,核销失败提示下单失败并冲正库存积分等
CouponRequest
couponVerificationRequest
=
orderSdkAdapter
.
convert2CouponVerificationRequest
(
orderBean
,
accounts
);
if
(
couponVerificationRequest
!=
null
){
BaseResponse
<
CouponRedeemResponse
>
couponRedeemResponseBaseResponse
=
offlineCouponSdkService
.
couponRedeem
(
couponVerificationRequest
,
""
);
if
(!
ObjectUtils
.
equals
(
RESPONSE_SUCCESS_STR
,
couponRedeemResponseBaseResponse
.
getCode
()))
{
//TODO 失败取消订单,异步冲正库存
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
orderBean
.
getCompanyId
(),
AfterSalesType
.
SYSTEM_CANCEL
,
"异常订单取消"
,
""
,
null
);
orderCancel
(
cancelOrderRequest
);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity
(
orderBean
,
mqMessageRequest
.
getBackOrdersNotifyActivityQueue
(),
mqMessageRequest
.
getBackOrdersNotifyActivityExchange
());
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
couponRedeemResponseBaseResponse
.
getCode
(),
"核销券码失败"
);
}
}
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
RESPONSE_SUCCESS_STR
,
""
);
return
BaseOrderResponse
.
getErrorBaseOrderResponse
(
RESPONSE_SUCCESS_STR
,
""
);
}
}
...
...
order-application-service/pom.xml
View file @
4b62383d
...
@@ -33,9 +33,14 @@
...
@@ -33,9 +33,14 @@
<version>
1.2.1-SNAPSHOT
</version>
<version>
1.2.1-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<artifactId>
couponcenter-sdk
</artifactId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<version>
1.8.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
cn.freemud
</groupId>
<groupId>
cn.freemud
</groupId>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
1.1.
5
.RELEASE
</version>
<version>
1.1.
6
.RELEASE
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
4b62383d
...
@@ -373,10 +373,10 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -373,10 +373,10 @@ public class OrderServiceImpl implements Orderservice {
return
sendPaySuccessNoticeMessage
();
return
sendPaySuccessNoticeMessage
();
}
}
//核销优惠券,若核销失败直接退款
//核销优惠券,若核销失败直接退款
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
couponActivityService
.
verificationCoupon
(
orderBean
).
getCode
())){
//
if (!ResponseResult.SUCCESS.getCode().equals(couponActivityService.verificationCoupon(orderBean).getCode())){
orderRefund
(
orderBean
,
"核销券异常退款"
,
openid
,
oid
);
//
orderRefund(orderBean, "核销券异常退款", openid, oid);
return
newSendPayFaileMessage
();
//
return newSendPayFaileMessage();
}
//
}
// 订单失败后 发消息重试 待实现
// 订单失败后 发消息重试 待实现
String
takeCode
;
String
takeCode
;
String
daySeq
;
String
daySeq
;
...
...
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