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
4ffb40f8
Commit
4ffb40f8
authored
Nov 16, 2021
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
视频直播卖券- 创建订单需求修改
Signed-off-by: 周晓航 <xiaohang.zhou@freemud.com>
parent
b66902eb
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
349 additions
and
23 deletions
+349
-23
order-application-service/pom.xml
+6
-0
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+1
-0
order-application-service/src/main/java/cn/freemud/constant/RedisKeyConstant.java
+5
-0
order-application-service/src/main/java/cn/freemud/entities/live/WeChatReportVO.java
+25
-0
order-application-service/src/main/java/cn/freemud/entities/vo/AppCreateOrderVo.java
+4
-6
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderResponseVo.java
+8
-0
order-application-service/src/main/java/cn/freemud/entities/vo/SellCouponCreateOrderVo.java
+14
-8
order-application-service/src/main/java/cn/freemud/handler/WeChatLiveMsgHandle.java
+214
-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/SellCouponOrderServiceImpl.java
+34
-8
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/CreateOrderSceneEnum.java
+36
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/OrderClientType.java
+1
-0
No files found.
order-application-service/pom.xml
View file @
4ffb40f8
...
...
@@ -19,6 +19,12 @@
<dependencies>
<dependency>
<groupId>
com.freemud.thirdparty.sdk
</groupId>
<artifactId>
thirdparty-weichat-sdk
</artifactId>
<version>
0.1-BETA
</version>
</dependency>
<dependency>
<groupId>
com.xuxueli
</groupId>
<artifactId>
xxl-job-core
</artifactId>
<version>
2.0.1
</version>
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
4ffb40f8
...
...
@@ -3369,6 +3369,7 @@ public class OrderAdapter {
createOrderResponseVo
.
setOid
(
orderBean
.
getOid
());
createOrderResponseVo
.
setWxappId
(
orderPayResponse
.
getWxAppid
());
createOrderResponseVo
.
setFmId
(
orderPayResponse
.
getFmId
());
createOrderResponseVo
.
setPayId
(
orderPayResponse
.
getPayId
());
OrderPayResponse
.
PayOrderBean
payOrderBean
=
orderPayResponse
.
getPayOrder
();
// 腾讯有数数据上报 时间戳不能为空
createOrderResponseVo
.
setTimestamp
(
payOrderBean
==
null
?
Instant
.
now
().
getEpochSecond
()
+
""
:
payOrderBean
.
getTimestamp
());
...
...
order-application-service/src/main/java/cn/freemud/constant/RedisKeyConstant.java
View file @
4ffb40f8
...
...
@@ -106,6 +106,11 @@ public class RedisKeyConstant {
public
final
static
String
KGD_PAYMENT_CANCEL_OID
=
"kgd:cancel_payment_oid:"
;
/**
* 获取生态 accessToken 的key前缀
*/
public
final
static
String
SAAS_ACCESSTOKEN_APPID
=
"saas:accesstoken:appid:"
;
/**
* cocoNotMadeGoods:商户号:门店号:yyyy-MM-dd
*
* @param partnerId
...
...
order-application-service/src/main/java/cn/freemud/entities/live/WeChatReportVO.java
0 → 100644
View file @
4ffb40f8
package
cn
.
freemud
.
entities
.
live
;
import
com.freemud.thirdparty.wechat.entities.vo.request.OrderCreateRequestVO
;
import
com.freemud.thirdparty.wechat.entities.vo.response.OrderCreateResponseVO
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/11/16 下午4:32
* @description :
*/
@Data
public
class
WeChatReportVO
{
private
OrderCreateRequestVO
requestVO
;
private
OrderCreateResponseVO
data
;
public
WeChatReportVO
(
OrderCreateRequestVO
requestVO
,
OrderCreateResponseVO
data
)
{
this
.
requestVO
=
requestVO
;
this
.
data
=
data
;
}
private
WeChatReportVO
()
{
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/AppCreateOrderVo.java
View file @
4ffb40f8
package
cn
.
freemud
.
entities
.
vo
;
import
cn.freemud.entities.dto.CreateOrderProductDto
;
import
cn.freemud.entities.dto.UserDeliveryInfoDto
;
import
cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Pattern
;
import
java.util.List
;
/**
...
...
@@ -84,5 +78,9 @@ public class AppCreateOrderVo {
private
Integer
bizType
;
/**
* 卖券场景值
*/
private
String
scene
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/CreateOrderResponseVo.java
View file @
4ffb40f8
...
...
@@ -12,6 +12,7 @@
*/
package
cn
.
freemud
.
entities
.
vo
;
import
cn.freemud.entities.live.WeChatReportVO
;
import
cn.freemud.entities.ttpay.OrderInfo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -68,4 +69,11 @@ public class CreateOrderResponseVo {
*/
private
OrderInfo
orderInfo
;
/**
* pay_id : 微信小程序支付
*/
private
String
payId
;
private
WeChatReportVO
weChatReportVO
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/SellCouponCreateOrderVo.java
View file @
4ffb40f8
package
cn
.
freemud
.
entities
.
vo
;
import
cn.freemud.entities.dto.UserDeliveryInfoDto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.Valid
;
import
javax.validation.constraints.Pattern
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
...
...
@@ -67,9 +61,21 @@ public class SellCouponCreateOrderVo {
/**
* 【华莱士】【订单C端记录不分账的卡面编号】不让走分账,卡面编号--11840,11845,11846,11853,11854,11855,11857,11858,11859,11860,11861,11862,11863,11864,11865,11866,11906
*
*
1 表示不分账 ,其他情况 不传值 给基础服务
*
<p>
* 1 表示不分账 ,其他情况 不传值 给基础服务
*/
private
Integer
unDistribution
;
/**
* 视频卖券 需要带上该参数
* 卖券场景值
*/
private
String
scene
;
/**
* 视频卖券 需要带上该参数
*/
private
String
productPath
;
}
order-application-service/src/main/java/cn/freemud/handler/WeChatLiveMsgHandle.java
0 → 100644
View file @
4ffb40f8
package
cn
.
freemud
.
handler
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto
;
import
cn.freemud.entities.dto.wechat.GetTokenResponseDto
;
import
cn.freemud.entities.live.WeChatReportVO
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.thirdparty.EcologyAdminApplicationClient
;
import
cn.freemud.utils.ResponseUtil
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1
;
import
com.freemud.thirdparty.wechat.WeChatClient
;
import
com.freemud.thirdparty.wechat.constant.WeChatConstant
;
import
com.freemud.thirdparty.wechat.entities.WeChatBaseResponse
;
import
com.freemud.thirdparty.wechat.entities.vo.request.OrderCreateRequestVO
;
import
com.freemud.thirdparty.wechat.entities.vo.response.OrderCreateResponseVO
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.concurrent.TimeUnit
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/11/16 上午11:25
* @description : 微信直播 卖券商品 数据处理
*/
@Component
public
class
WeChatLiveMsgHandle
{
@Value
(
"${wechat.live.order.path:}"
)
private
String
path
;
@Autowired
private
EcologyAdminApplicationClient
ecologyAdminApplicationClient
;
@Autowired
private
RedisCache
redisCache
;
/**
* 组装 订单创建上报数据 对象
*
* @param createPrepayRequestDto
* @param prepayOrder
*/
public
BaseResponse
reportOrder
(
CreatePrepayRequestDto
createPrepayRequestDto
,
CreateOrderResponseVo
prepayOrder
,
String
scene
,
String
productPath
)
{
// 组装 request
OrderCreateRequestVO
requestVO
=
this
.
getOrderCreateRequest
(
createPrepayRequestDto
,
prepayOrder
,
scene
,
productPath
);
// 获取 session
String
accessToken
=
this
.
getAccessToken
(
createPrepayRequestDto
.
getWxAppId
(),
createPrepayRequestDto
.
getPartnerId
());
WeChatClient
weChatClient
=
new
WeChatClient
();
WeChatBaseResponse
<
OrderCreateResponseVO
>
weChatBaseResponse
=
weChatClient
.
orderApply
(
accessToken
,
requestVO
,
WeChatConstant
.
OrderMethod
.
ORDER_ADD
);
if
(
weChatBaseResponse
==
null
)
{
// 调用失败
return
ResponseUtil
.
error
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
.
getCode
(),
"调用sdk失败"
);
}
if
(
"0"
.
equals
(
weChatBaseResponse
.
getErrcode
()))
{
// 调用成功
OrderCreateResponseVO
data
=
weChatBaseResponse
.
getData
();
WeChatReportVO
weChatReportVO
=
new
WeChatReportVO
(
requestVO
,
data
);
return
ResponseUtil
.
success
(
weChatReportVO
);
}
// 处理 token失败的情况 42001 表示 accesstoken 有问题 重新调用一遍
if
(
"42001"
.
equals
(
weChatBaseResponse
.
getErrcode
()))
{
accessToken
=
this
.
refreshAccessToken
(
createPrepayRequestDto
.
getWxAppId
(),
createPrepayRequestDto
.
getPartnerId
());
WeChatBaseResponse
<
OrderCreateResponseVO
>
agResponse
=
weChatClient
.
orderApply
(
accessToken
,
requestVO
,
WeChatConstant
.
OrderMethod
.
ORDER_ADD
);
if
(
weChatBaseResponse
==
null
)
{
// 调用失败
return
ResponseUtil
.
error
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
.
getCode
(),
"调用sdk失败"
);
}
if
(
"0"
.
equals
(
weChatBaseResponse
.
getErrcode
()))
{
// 调用成功
OrderCreateResponseVO
data
=
agResponse
.
getData
();
WeChatReportVO
weChatReportVO
=
new
WeChatReportVO
(
requestVO
,
data
);
return
ResponseUtil
.
success
(
weChatReportVO
);
}
return
ResponseUtil
.
error
(
agResponse
.
getErrcode
(),
agResponse
.
getErrmsg
());
}
// 全部失败 直接抛出异常
return
ResponseUtil
.
error
(
weChatBaseResponse
.
getErrcode
(),
weChatBaseResponse
.
getErrmsg
());
}
private
String
refreshAccessToken
(
String
wxAppId
,
String
partnerId
)
{
String
dbAccessToken
=
this
.
getDBAccessToken
(
wxAppId
,
partnerId
);
String
redisKey
=
RedisKeyConstant
.
SAAS_ACCESSTOKEN_APPID
+
wxAppId
;
this
.
putRedis
(
redisKey
,
dbAccessToken
);
return
dbAccessToken
;
}
private
String
getDBAccessToken
(
String
wxAppId
,
String
partnerId
)
{
GetAuthorizerRequestDto
request
=
new
GetAuthorizerRequestDto
();
request
.
setAuthorizerAppid
(
wxAppId
);
request
.
setPartnerId
(
partnerId
);
GetTokenResponseDto
authorizerAccessToken
=
ecologyAdminApplicationClient
.
getAuthorizerAccessToken
(
request
);
if
(
authorizerAccessToken
==
null
||
authorizerAccessToken
.
getResult
()
==
null
||
StringUtils
.
isBlank
(
authorizerAccessToken
.
getResult
().
getAccessToken
()))
{
throw
new
ServiceException
(
ResponseResult
.
SYSTEM_BUSINESS_ERROR
.
getCode
(),
"获取生态accessToken失败"
);
}
String
accessToken
=
authorizerAccessToken
.
getResult
().
getAccessToken
();
return
accessToken
;
}
private
void
putRedis
(
String
redisKey
,
String
accessToken
)
{
// 存redis + 过期时间
redisCache
.
setAdd
(
redisKey
,
accessToken
);
redisCache
.
updateTTL
(
redisKey
,
2
,
TimeUnit
.
HOURS
);
}
/**
* 获取 token
*
* @param wxAppId
* @param partnerId
* @return
*/
private
String
getAccessToken
(
String
wxAppId
,
String
partnerId
)
{
String
redisKey
=
RedisKeyConstant
.
SAAS_ACCESSTOKEN_APPID
+
wxAppId
;
Object
value
=
redisCache
.
getValue
(
redisKey
);
// 该操作 无需关注 重入情况
if
(
Objects
.
isNull
(
value
))
{
String
accessToken
=
this
.
getDBAccessToken
(
wxAppId
,
partnerId
);
// 存redis + 过期时间
this
.
putRedis
(
redisKey
,
accessToken
);
return
accessToken
;
}
return
value
.
toString
();
}
private
OrderCreateRequestVO
getOrderCreateRequest
(
CreatePrepayRequestDto
createPrepayRequestDto
,
CreateOrderResponseVo
prepayOrder
,
String
scene
,
String
productPath
)
{
OrderCreateRequestVO
requestVO
=
new
OrderCreateRequestVO
();
OrderBeanV1
orderBean
=
createPrepayRequestDto
.
getProductOrderBean
();
Long
gmtCreate
=
orderBean
.
getGmtCreate
();
requestVO
.
setCreate_time
(
DateUtil
.
convert2Str
(
new
Date
(
gmtCreate
),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
requestVO
.
setOut_order_id
(
orderBean
.
getOid
());
requestVO
.
setOpenid
(
createPrepayRequestDto
.
getOpenId
());
requestVO
.
setPath
(
path
);
requestVO
.
setScene
(
Integer
.
valueOf
(
scene
));
OrderCreateRequestVO
.
DeliveryDetail
deliveryDetail
=
new
OrderCreateRequestVO
.
DeliveryDetail
();
deliveryDetail
.
setDelivery_type
(
2
);
requestVO
.
setDelivery_detail
(
deliveryDetail
);
// 组装商品参数
OrderCreateRequestVO
.
OrderDetail
orderDetail
=
this
.
getOrderDetail
(
orderBean
,
prepayOrder
,
productPath
);
requestVO
.
setOrder_detail
(
orderDetail
);
return
requestVO
;
}
private
OrderCreateRequestVO
.
OrderDetail
getOrderDetail
(
OrderBeanV1
orderBean
,
CreateOrderResponseVo
prepayOrder
,
String
productPath
)
{
OrderCreateRequestVO
.
OrderDetail
detail
=
new
OrderCreateRequestVO
.
OrderDetail
();
// payinfo
OrderCreateRequestVO
.
PayInfo
payInfo
=
new
OrderCreateRequestVO
.
PayInfo
();
payInfo
.
setPay_method_type
(
0
);
payInfo
.
setPrepay_id
(
prepayOrder
.
getPayId
());
String
gmtCreate
=
prepayOrder
.
getTimestamp
();
payInfo
.
setPrepay_time
(
DateUtil
.
convert2Str
(
new
Date
(
Long
.
parseLong
(
gmtCreate
+
"000"
)),
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
detail
.
setPay_info
(
payInfo
);
// priceinfo
OrderCreateRequestVO
.
PriceInfo
priceInfo
=
new
OrderCreateRequestVO
.
PriceInfo
();
priceInfo
.
setOrder_price
(
orderBean
.
getSettlementAmount
());
priceInfo
.
setFreight
(
0L
);
detail
.
setPrice_info
(
priceInfo
);
// list productinfo
List
<
ProductBeanV1
>
productList
=
orderBean
.
getProductList
();
List
<
OrderCreateRequestVO
.
ProductInfo
>
productInfos
=
new
ArrayList
<>(
productList
.
size
());
productList
.
forEach
(
p
->
{
OrderCreateRequestVO
.
ProductInfo
productInfo
=
new
OrderCreateRequestVO
.
ProductInfo
();
productInfo
.
setOut_product_id
(
p
.
getProductId
());
productInfo
.
setOut_sku_id
(
p
.
getProductId
());
productInfo
.
setProduct_cnt
(
p
.
getNumber
());
productInfo
.
setSale_price
(
p
.
getSalePrice
());
productInfo
.
setReal_price
(
p
.
getSalePrice
());
productInfo
.
setHead_img
(
p
.
getPicture
());
productInfo
.
setTitle
(
p
.
getProductName
());
// fisherman 虚拟商品的 path 未知
productInfo
.
setPath
(
productPath
);
productInfos
.
add
(
productInfo
);
});
detail
.
setProduct_infos
(
productInfos
);
return
detail
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
View file @
4ffb40f8
...
...
@@ -198,7 +198,7 @@ public class AppOrderServiceImpl implements AppOrderService {
String
skuId
=
createOrderReq
.
getOrderProducts
().
get
(
0
).
getSkuId
();
//20200107提取虚拟商品券效验方法---》校验虚拟商品,如果正常则返回创建订单对象
BaseResponse
createOrderRequestResponse
=
sellCouponOrderService
.
checkOrderCoupon
(
customerInfo
,
storeResponse
,
trackingNo
,
createOrderReq
.
getMenuType
(),
Integer
.
valueOf
(
createOrderReq
.
getBizType
()),
partnerId
,
shopId
,
skuId
,
null
);
sellCouponOrderService
.
checkOrderCoupon
(
customerInfo
,
storeResponse
,
trackingNo
,
createOrderReq
.
getMenuType
(),
Integer
.
valueOf
(
createOrderReq
.
getBizType
()),
partnerId
,
shopId
,
skuId
,
null
,
createOrderReq
.
getScene
()
);
if
(
createOrderRequestResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
createOrderRequestResponse
.
getCode
())
||
createOrderRequestResponse
.
getResult
()
==
null
)
{
return
createOrderRequestResponse
;
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
View file @
4ffb40f8
...
...
@@ -16,9 +16,10 @@ import cn.freemud.entities.dto.product.ProductInfo;
import
cn.freemud.entities.dto.product.ValidateProductInfosDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto
;
import
cn.freemud.entities.live.WeChatReportVO
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.
enums.integralproduct.IntegralProductStatusEnum
;
import
cn.freemud.
handler.WeChatLiveMsgHandle
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.manager.BuyProductOnceManager
;
import
cn.freemud.redis.RedisCache
;
...
...
@@ -43,6 +44,7 @@ import com.freemud.application.sdk.api.log.LogThreadLocal;
import
com.freemud.application.sdk.api.log.ThirdPartyLog
;
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.enums.CreateOrderSceneEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderType
;
import
com.freemud.application.sdk.api.ordercenter.enums.*
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderChangeStateReq
;
...
...
@@ -75,7 +77,6 @@ import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse;
import
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Sets
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
...
...
@@ -167,6 +168,8 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
@Autowired
private
PayServiceImpl
payService
;
@Autowired
private
WeChatLiveMsgHandle
weChatLiveMsgHandle
;
/**
* 抖音卖券
...
...
@@ -213,7 +216,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
}
//卖券订单biztype默认传入6
BaseResponse
createOrderRequestResponse
=
checkOrderCoupon
(
userLoginInfoDto
,
storeResponse
,
trackingNo
,
requestVo
.
getMenuType
(),
BizTypeEnum
.
SALE_COUPON
.
getBizType
(),
partnerId
,
storeId
,
skuId
,
requestVo
.
getCardCode
());
BaseResponse
createOrderRequestResponse
=
checkOrderCoupon
(
userLoginInfoDto
,
storeResponse
,
trackingNo
,
requestVo
.
getMenuType
(),
BizTypeEnum
.
SALE_COUPON
.
getBizType
(),
partnerId
,
storeId
,
skuId
,
requestVo
.
getCardCode
()
,
null
);
if
(
createOrderRequestResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
createOrderRequestResponse
.
getCode
())
||
createOrderRequestResponse
.
getResult
()
==
null
)
{
return
createOrderRequestResponse
;
}
...
...
@@ -343,7 +346,10 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
}
//卖券订单biztype默认传入6
BaseResponse
createOrderRequestResponse
=
checkOrderCoupon
(
userLoginInfoDto
,
storeResponse
,
trackingNo
,
requestVo
.
getMenuType
(),
6
,
partnerId
,
storeId
,
requestVo
.
getSkuId
(),
requestVo
.
getCardCode
());
BaseResponse
createOrderRequestResponse
=
checkOrderCoupon
(
userLoginInfoDto
,
storeResponse
,
trackingNo
,
requestVo
.
getMenuType
(),
6
,
partnerId
,
storeId
,
requestVo
.
getSkuId
(),
requestVo
.
getCardCode
(),
requestVo
.
getScene
());
if
(
createOrderRequestResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
createOrderRequestResponse
.
getCode
())
||
createOrderRequestResponse
.
getResult
()
==
null
)
{
return
createOrderRequestResponse
;
}
...
...
@@ -438,7 +444,19 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
orderExtInfoDto
.
setFromAppId
(
userLoginInfoDto
.
getWxAppId
());
orderExtInfoDto
.
setUnDistribution
(
requestVo
.
getUnDistribution
());
createPrepayRequestDto
.
setOrderExtInfoDTO
(
orderExtInfoDto
);
return
ResponseUtil
.
success
(
payService
.
createPrepayOrder
(
createPrepayRequestDto
));
CreateOrderResponseVo
prepayOrder
=
payService
.
createPrepayOrder
(
createPrepayRequestDto
);
// fisherman 视频卖券 需要拼装额外对象 给前端
if
(
StringUtils
.
isNotBlank
(
requestVo
.
getScene
())
&&
CreateOrderSceneEnum
.
verifySceneOrder
.
contains
(
requestVo
.
getScene
()))
{
BaseResponse
<
WeChatReportVO
>
baseResponse
=
weChatLiveMsgHandle
.
reportOrder
(
createPrepayRequestDto
,
prepayOrder
,
requestVo
.
getScene
(),
requestVo
.
getProductPath
());
if
(
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
baseResponse
.
getCode
()))
{
WeChatReportVO
result
=
baseResponse
.
getResult
();
prepayOrder
.
setWeChatReportVO
(
result
);
return
ResponseUtil
.
success
(
prepayOrder
);
}
else
{
return
baseResponse
;
}
}
return
ResponseUtil
.
success
(
prepayOrder
);
}
...
...
@@ -453,6 +471,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
* @param storeId
* @param skuId
* @param cardCode
* @param scene 下单的场景
* @return
*/
public
BaseResponse
checkOrderCoupon
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
...
...
@@ -462,7 +481,8 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
Integer
bizType
,
String
partnerId
,
String
storeId
,
String
skuId
,
String
cardCode
)
{
String
skuId
,
String
cardCode
,
String
scene
)
{
//校验虚拟商品是否在门店菜单
GetValidateProductInfoDto
getProductInfoDto
=
new
GetValidateProductInfoDto
();
...
...
@@ -535,7 +555,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
CreateOrderRequest
createOrderRequest
=
convent2NEWCreateOrderRequest
(
userLoginInfoDto
,
productInfosByIds
.
getData
(),
activeDetailVOS
,
storeResponse
.
getBizVO
(),
storeId
,
cardCode
,
skuId
,
menuType
,
bizType
);
storeResponse
.
getBizVO
(),
storeId
,
cardCode
,
skuId
,
menuType
,
bizType
,
scene
);
return
ResponseUtil
.
success
(
createOrderRequest
);
}
...
...
@@ -721,7 +741,8 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
String
cardCode
,
String
skuId
,
String
channel
,
Integer
bizType
){
Integer
bizType
,
String
scene
){
CreateOrderRequest
request
=
new
CreateOrderRequest
();
Integer
orderClient
=
OrderClientType
.
SAAS
.
getIndex
();
request
.
setPayChannel
(
PayChannelType
.
WECHAT
.
getIndex
().
toString
());
...
...
@@ -734,6 +755,11 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
if
(
UserLoginChannelEnum
.
APP
.
getCode
().
equals
(
userLoginInfoDto
.
getChannel
())){
orderClient
=
OrderClientType
.
APP
.
getIndex
();
}
// fisherman 视频直播卖券 需要修改 orderclient
if
(
StringUtils
.
isNotBlank
(
scene
)
&&
CreateOrderSceneEnum
.
verifySceneOrder
.
contains
(
scene
))
{
orderClient
=
OrderClientType
.
WE_CHAT_LIVE_SELL
.
getIndex
();
}
//抖音小程序
if
(
"5"
.
equalsIgnoreCase
(
userLoginInfoDto
.
getChannel
()))
{
request
.
setPayChannel
(
PayChannelType
.
TIKTOKPAY
.
getIndex
().
toString
());
...
...
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/CreateOrderSceneEnum.java
0 → 100644
View file @
4ffb40f8
package
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/11/16 下午2:08
* @description : 视频直播 场景值记录
*/
@AllArgsConstructor
@Getter
public
enum
CreateOrderSceneEnum
{
LIVE_STORE_ENTER
(
"1175"
,
"视频号主页商店入口"
),
LIVE_PRODUCT
(
"1177"
,
"视频号直播商品"
),
LIVE_HOME_PAGE_PRODUCT
(
"1195"
,
"视频号主页商品tab"
);
private
String
scene
;
private
String
name
;
/**
* 卖券订单需要校验的场景值
*/
public
static
List
<
String
>
verifySceneOrder
=
Arrays
.
asList
(
CreateOrderSceneEnum
.
LIVE_HOME_PAGE_PRODUCT
.
getScene
(),
CreateOrderSceneEnum
.
LIVE_PRODUCT
.
getScene
(),
CreateOrderSceneEnum
.
LIVE_HOME_PAGE_PRODUCT
.
getScene
()
);
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/OrderClientType.java
View file @
4ffb40f8
...
...
@@ -42,6 +42,7 @@ public enum OrderClientType {
SHERPAS
(
30
,
"食派士"
),
PARKING
(
99
,
"农工商停车"
),
CASHIER
(
36
,
"收银买单"
),
WE_CHAT_LIVE_SELL
(
37
,
"微信视频卖券"
),
;
...
...
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