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
2726e381
Commit
2726e381
authored
Jul 19, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'KA-华莱士抽奖跳转百世新增接口' into develop
parents
d9254580
182781f6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
202 additions
and
9 deletions
+202
-9
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+11
-0
order-application-service/src/main/java/cn/freemud/entities/EdenResponse.java
+1
-1
order-application-service/src/main/java/cn/freemud/entities/dto/wallace/request/PepsiOrderSubmitRequest.java
+27
-0
order-application-service/src/main/java/cn/freemud/entities/vo/order/WallaceTempActivityRequest.java
+27
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+107
-8
order-application-service/src/main/java/cn/freemud/service/thirdparty/WallaceApplicationClient.java
+29
-0
No files found.
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
2726e381
...
...
@@ -556,5 +556,16 @@ public class OrderController {
return
ResponseUtil
.
success
(
orderAdapterService
.
getOrderConfig
(
request
));
}
/**
* 华莱士临时对接百事抽奖活动
* @param request
* @return 是否需要弹框,跳转百事
*/
@ApiAnnotation
(
logMessage
=
"/order/temp/activity"
)
@PostMapping
(
"/temp/activity/query"
)
public
BaseResponse
wallaceTempActivity
(
@Validated
@LogParams
@RequestBody
WallaceTempActivityRequest
request
)
{
return
orderAdapterService
.
wallaceTempActivity
(
request
);
}
}
order-application-service/src/main/java/cn/freemud/entities/EdenResponse.java
View file @
2726e381
package
cn
.
freemud
.
entities
;
public
class
EdenResponse
<
T
>
{
p
rivate
static
final
String
SUCCESSCODE
=
"200"
;
p
ublic
static
final
String
SUCCESSCODE
=
"200"
;
protected
String
statusCode
;
protected
String
message
;
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/wallace/request/PepsiOrderSubmitRequest.java
0 → 100644
View file @
2726e381
package
cn
.
freemud
.
entities
.
dto
.
wallace
.
request
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/7/15 17:06
* @description :
*/
@Data
public
class
PepsiOrderSubmitRequest
{
/**
* 商户号
*/
private
String
partnerId
;
/**
* 用户id
*/
private
String
memberId
;
/**
* 订单号
*/
private
String
orderCode
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/order/WallaceTempActivityRequest.java
0 → 100644
View file @
2726e381
package
cn
.
freemud
.
entities
.
vo
.
order
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/7/15 11:18
* @description :
*/
@Data
public
class
WallaceTempActivityRequest
{
/**
* 商户号
*/
private
String
parentId
;
/**
* 订单号
*/
private
String
orderCode
;
private
String
sessionId
;
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
2726e381
...
...
@@ -4,6 +4,7 @@ import cn.freemud.adapter.OrderAdapter;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.config.ApolloVariableConfig
;
import
cn.freemud.constant.RedisLockKey
;
import
cn.freemud.entities.EdenResponse
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.db.OpenPlatformOrderConfig
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
...
...
@@ -11,11 +12,9 @@ import cn.freemud.entities.dto.ecology.ReportActivityBehaviorsRequest;
import
cn.freemud.entities.dto.order.CreateCashierOrderDto
;
import
cn.freemud.entities.dto.pay.SvcPayItem
;
import
cn.freemud.entities.dto.pay.svc.ConsumeHistoryCreateRequest
;
import
cn.freemud.entities.dto.wallace.request.PepsiOrderSubmitRequest
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.order.CashierCheckResponseVo
;
import
cn.freemud.entities.vo.order.GetOrderConfigRequestVo
;
import
cn.freemud.entities.vo.order.PaymentConfigVo
;
import
cn.freemud.entities.vo.order.PlugInParameter
;
import
cn.freemud.entities.vo.order.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.service.handle.PaymentHandle
;
...
...
@@ -26,6 +25,7 @@ import cn.freemud.redis.RedisCache;
import
cn.freemud.service.*
;
import
cn.freemud.service.thirdparty.EcologyProgramApplicationClient
;
import
cn.freemud.service.thirdparty.SvcTransactionClient
;
import
cn.freemud.service.thirdparty.WallaceApplicationClient
;
import
cn.freemud.service.universal.factory.CreateOrderServiceFactory
;
import
cn.freemud.utils.RedisUtil
;
import
cn.freemud.utils.ResponseUtil
;
...
...
@@ -35,6 +35,8 @@ import com.freemud.api.assortment.datamanager.enums.IappIdType;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.adapter.OrderCenterSdkAdapter
;
import
com.freemud.application.sdk.api.ordercenter.config.OrderCenterProperties
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1
;
...
...
@@ -43,7 +45,10 @@ import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import
com.freemud.application.sdk.api.ordercenter.enums.MarketTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.NewOrderStatus
;
import
com.freemud.application.sdk.api.ordercenter.enums.PayChannelType
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.service.EmailAlertService
;
import
com.freemud.sdk.api.assortment.order.util.LockUtils
;
import
com.google.gson.Gson
;
...
...
@@ -56,10 +61,7 @@ import org.springframework.context.annotation.Lazy;
import
org.springframework.stereotype.Service
;
import
java.text.MessageFormat
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -84,6 +86,18 @@ public class OrderAdapterServiceImpl {
@Value
(
"${weixin.pay.success.goods:}"
)
private
String
weixinPayGoods
;
//华莱士百事抽奖 一次性活动,结束即可删除 格式(商户号,用逗号分割):2690,2581
@Value
(
"${baishi.activity.partner:2581,2692,2690}"
)
private
String
baishiActivityPartner
;
//华莱士百事抽奖 一次性活动,结束即可删除 格式(商户号,用逗号分割):2690,2581
@Value
(
"${baishi.activity.amount:10000000000}"
)
private
Integer
baishiActivityAmount
;
//华莱士百事抽奖 一次性活动,结束即可删除 格式(商户号@商品,用逗号分割):13981711,34343345
@Value
(
"${baishi.activity.good:}"
)
private
String
baishiActivityGood
;
private
final
String
PAY_SUCCESS_KEY
=
"pay_success_key:"
;
/**
...
...
@@ -171,6 +185,12 @@ public class OrderAdapterServiceImpl {
private
EmailAlertService
emailAlertService
;
@Autowired
private
PaymentHandle
paymentHandle
;
@Autowired
private
OrderSdkService
orderSdkService
;
@Autowired
private
OrderCenterSdkAdapter
orderCenterSdkAdapter
;
@Autowired
private
WallaceApplicationClient
wallaceApplicationClient
;
//获取下单实现对象
private
OrderFactoryService
getCreateOrderBean
(
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
CreateOrderVo
createOrderVo
)
{
...
...
@@ -583,4 +603,83 @@ public class OrderAdapterServiceImpl {
return
false
;
}
/**
* 华莱士临时需求,
* @param request
* @return
*/
public
BaseResponse
wallaceTempActivity
(
WallaceTempActivityRequest
request
)
{
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
assortmentCustomerInfoManager
.
getCustomerInfoByObject
(
request
.
getSessionId
());
if
(
assortmentCustomerInfoVo
==
null
||
StringUtils
.
isEmpty
(
assortmentCustomerInfoVo
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
// 校验订单
QueryByCodeResponse
orderDetailResponse
=
orderSdkService
.
getOrderInfo
(
null
,
request
.
getOrderCode
(),
null
,
null
,
LogThreadLocal
.
getTrackingNo
());
if
(
orderDetailResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
orderDetailResponse
.
getCode
()
+
""
)
||
orderDetailResponse
.
getResult
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
}
OrderInfoReqs
orderInfoReqs
=
orderDetailResponse
.
getResult
();
if
(!
Objects
.
equals
(
orderInfoReqs
.
getUserId
(),
assortmentCustomerInfoVo
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
}
Map
<
String
,
Object
>
respVo
=
new
HashMap
<>();
respVo
.
put
(
"skip"
,
false
);
// 校验 是否可以参加活动
// step1 调用敬轩, 是否能参加活动
OrderBeanV1
orderBeanV1
=
orderCenterSdkAdapter
.
convent2NEWOrderInfo
(
orderInfoReqs
);
boolean
skip
=
this
.
canJoinActivity
(
orderInfoReqs
.
getPartnerId
(),
orderBeanV1
.
getProductList
(),
orderBeanV1
.
getSettlementAmount
().
intValue
());
if
(!
skip
)
{
return
ResponseUtil
.
success
(
respVo
);
}
// stpe2 调用光兴, 是否成功 +1
try
{
PepsiOrderSubmitRequest
pepsiOrderSubmitRequest
=
new
PepsiOrderSubmitRequest
();
pepsiOrderSubmitRequest
.
setMemberId
(
orderInfoReqs
.
getUserId
());
pepsiOrderSubmitRequest
.
setOrderCode
(
orderInfoReqs
.
getOrderCode
());
pepsiOrderSubmitRequest
.
setPartnerId
(
orderInfoReqs
.
getPartnerId
());
EdenResponse
edenResponse
=
wallaceApplicationClient
.
pepsiOrderSubmit
(
pepsiOrderSubmitRequest
);
skip
=
Objects
.
equals
(
edenResponse
.
getStatusCode
(),
EdenResponse
.
SUCCESSCODE
);
respVo
.
put
(
"error"
,
edenResponse
.
getMessage
());
}
catch
(
Exception
e
)
{
skip
=
false
;
respVo
.
put
(
"error"
,
e
.
getMessage
());
}
respVo
.
put
(
"skip"
,
skip
);
return
ResponseUtil
.
success
(
respVo
);
}
private
boolean
canJoinActivity
(
String
partnerId
,
List
<
ProductBeanV1
>
productList
,
Integer
payAmount
){
List
<
String
>
partnerList
=
Arrays
.
asList
(
baishiActivityPartner
.
split
(
","
));
if
(!
partnerList
.
contains
(
partnerId
)){
return
false
;
}
if
(
payAmount
>=
baishiActivityAmount
){
return
true
;
}
List
<
String
>
goodsList
=
Arrays
.
asList
(
baishiActivityGood
.
split
(
","
));
if
(
CollectionUtils
.
isNotEmpty
(
goodsList
)
&&
CollectionUtils
.
isNotEmpty
(
productList
)){
return
productList
.
stream
().
anyMatch
(
productBeanV1
->
{
boolean
mainProduct
=
goodsList
.
contains
(
StringUtils
.
isBlank
(
productBeanV1
.
getSpecification
())?
productBeanV1
.
getProductId
():
productBeanV1
.
getSpecification
());
if
(
mainProduct
){
return
true
;
}
if
(
CollectionUtils
.
isNotEmpty
(
productBeanV1
.
getSendProduct
())){
boolean
sendProduct
=
productBeanV1
.
getSendProduct
().
stream
().
anyMatch
(
send
->
goodsList
.
contains
(
StringUtils
.
isBlank
(
send
.
getSpecification
())?
send
.
getProductId
():
send
.
getSpecification
()));
if
(
sendProduct
){
return
true
;
}
}
if
(
CollectionUtils
.
isNotEmpty
(
productBeanV1
.
getComboProduct
())){
boolean
comboProduct
=
productBeanV1
.
getComboProduct
().
stream
().
anyMatch
(
combo
->
goodsList
.
contains
(
StringUtils
.
isBlank
(
combo
.
getSpecification
())?
combo
.
getProductId
():
combo
.
getSpecification
()));
if
(
comboProduct
){
return
true
;
}
}
return
false
;
});
}
return
false
;
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/WallaceApplicationClient.java
0 → 100644
View file @
2726e381
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.entities.EdenResponse
;
import
cn.freemud.entities.dto.wallace.request.PepsiOrderSubmitRequest
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/7/15 17:04
* @description :
*/
@FeignClient
(
name
=
"wallace-application"
)
@RequestMapping
(
produces
=
{
MediaType
.
APPLICATION_JSON_UTF8_VALUE
})
public
interface
WallaceApplicationClient
{
/**
* 请求百事 设置抽奖次数+1
*
* @param request
* @return
*/
@PostMapping
(
value
=
"/pass/wallace/pepsi/order/submit"
)
EdenResponse
pepsiOrderSubmit
(
@RequestBody
PepsiOrderSubmitRequest
request
);
}
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