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
9ed1ba15
Commit
9ed1ba15
authored
Jun 14, 2022
by
胡敬轩
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'remotes/origin/feature/Ka3.0.4.1-0613-0620-爱马哥低碳活动'
parents
8b2c3915
7090e259
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
150 additions
and
1 deletions
+150
-1
order-application-service/src/main/java/cn/freemud/entities/dto/ecology/ReportActivityBehaviorsRequest.java
+18
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+106
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/thirdparty/EcologyProgramApplicationClient.java
+25
-0
No files found.
order-application-service/src/main/java/cn/freemud/entities/dto/ecology/ReportActivityBehaviorsRequest.java
0 → 100644
View file @
9ed1ba15
package
cn
.
freemud
.
entities
.
dto
.
ecology
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
public
class
ReportActivityBehaviorsRequest
{
@ApiModelProperty
(
value
=
"商户号"
,
required
=
true
)
private
String
partnerId
;
@ApiModelProperty
(
value
=
"活动号"
,
required
=
true
)
private
String
activityId
;
@ApiModelProperty
(
value
=
"用户标识"
,
required
=
true
)
private
String
openId
;
@ApiModelProperty
(
value
=
"微信订单号"
,
required
=
true
)
private
String
transactionId
;
@ApiModelProperty
(
value
=
"小程序appid"
,
required
=
true
)
private
String
miniAppId
;
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
9ed1ba15
...
@@ -7,6 +7,7 @@ import cn.freemud.constant.RedisLockKey;
...
@@ -7,6 +7,7 @@ import cn.freemud.constant.RedisLockKey;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.db.OpenPlatformOrderConfig
;
import
cn.freemud.entities.db.OpenPlatformOrderConfig
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.ecology.ReportActivityBehaviorsRequest
;
import
cn.freemud.entities.dto.order.CreateCashierOrderDto
;
import
cn.freemud.entities.dto.order.CreateCashierOrderDto
;
import
cn.freemud.entities.dto.pay.SvcPayItem
;
import
cn.freemud.entities.dto.pay.SvcPayItem
;
import
cn.freemud.entities.dto.pay.svc.ConsumeHistoryCreateRequest
;
import
cn.freemud.entities.dto.pay.svc.ConsumeHistoryCreateRequest
;
...
@@ -22,10 +23,12 @@ import cn.freemud.management.thirdparty.OrderCallbackClient;
...
@@ -22,10 +23,12 @@ import cn.freemud.management.thirdparty.OrderCallbackClient;
import
cn.freemud.manager.OpenPlatformOrderConfigManager
;
import
cn.freemud.manager.OpenPlatformOrderConfigManager
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.*
;
import
cn.freemud.service.*
;
import
cn.freemud.service.thirdparty.EcologyProgramApplicationClient
;
import
cn.freemud.service.thirdparty.SvcTransactionClient
;
import
cn.freemud.service.thirdparty.SvcTransactionClient
;
import
cn.freemud.service.universal.factory.CreateOrderServiceFactory
;
import
cn.freemud.service.universal.factory.CreateOrderServiceFactory
;
import
cn.freemud.utils.RedisUtil
;
import
cn.freemud.utils.RedisUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.enums.IappIdType
;
import
com.freemud.api.assortment.datamanager.enums.IappIdType
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
...
@@ -33,10 +36,14 @@ import com.freemud.application.sdk.api.log.ApiLog;
...
@@ -33,10 +36,14 @@ 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.ordercenter.config.OrderCenterProperties
;
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.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.vo.OrderCallBackRequestVo
;
import
com.freemud.application.sdk.api.ordercenter.entities.vo.OrderCallBackRequestVo
;
import
com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum
;
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.MarketTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.NewOrderStatus
;
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.OrderPayItemResp
;
import
com.freemud.application.sdk.api.service.EmailAlertService
;
import
com.freemud.sdk.api.assortment.order.util.LockUtils
;
import
com.freemud.sdk.api.assortment.order.util.LockUtils
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
...
@@ -69,6 +76,13 @@ import java.util.stream.Collectors;
...
@@ -69,6 +76,13 @@ import java.util.stream.Collectors;
@Service
@Service
public
class
OrderAdapterServiceImpl
{
public
class
OrderAdapterServiceImpl
{
//爱马哥微信低碳活动 一次性活动,结束即可删除 格式(商户号@活动号,用逗号分割):2690@13981711,1864@34343345
@Value
(
"${weixin.pay.success.activity:}"
)
private
String
weixinPayActivity
;
//爱马哥微信低碳活动 一次性活动,结束即可删除 格式(商户号@商品,用逗号分割):2690@13981711,1864@34343345
@Value
(
"${weixin.pay.success.goods:}"
)
private
String
weixinPayGoods
;
private
final
String
PAY_SUCCESS_KEY
=
"pay_success_key:"
;
private
final
String
PAY_SUCCESS_KEY
=
"pay_success_key:"
;
/**
/**
...
@@ -150,6 +164,10 @@ public class OrderAdapterServiceImpl {
...
@@ -150,6 +164,10 @@ public class OrderAdapterServiceImpl {
private
OpenPlatformOrderConfigManager
openPlatformOrderConfigManager
;
private
OpenPlatformOrderConfigManager
openPlatformOrderConfigManager
;
@Autowired
@Autowired
private
SvcTransactionClient
svcTransactionClient
;
private
SvcTransactionClient
svcTransactionClient
;
@Autowired
private
EcologyProgramApplicationClient
ecologyProgramApplicationClient
;
@Autowired
private
EmailAlertService
emailAlertService
;
//获取下单实现对象
//获取下单实现对象
private
OrderFactoryService
getCreateOrderBean
(
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
CreateOrderVo
createOrderVo
){
private
OrderFactoryService
getCreateOrderBean
(
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
CreateOrderVo
createOrderVo
){
...
@@ -370,6 +388,8 @@ public class OrderAdapterServiceImpl {
...
@@ -370,6 +388,8 @@ public class OrderAdapterServiceImpl {
if
(
CollectionUtils
.
isNotEmpty
(
message
.
getSvcPayItems
())){
if
(
CollectionUtils
.
isNotEmpty
(
message
.
getSvcPayItems
())){
sendSvcPayInfoToSvcTransaction
(
message
.
getSvcPayItems
(),
orderBean
.
getCompanyId
(),
orderBean
.
getOid
(),
orderBean
.
getUserId
(),
orderBean
.
getShopId
());
sendSvcPayInfoToSvcTransaction
(
message
.
getSvcPayItems
(),
orderBean
.
getCompanyId
(),
orderBean
.
getOid
(),
orderBean
.
getUserId
(),
orderBean
.
getShopId
());
}
}
//爱马哥低碳活动 活动结束即可删除此代码,大概2022-09月结束
sendLowCarbonToWeixin
(
message
,
orderBean
);
return
result
;
return
result
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
e
;
throw
e
;
...
@@ -466,4 +486,90 @@ public class OrderAdapterServiceImpl {
...
@@ -466,4 +486,90 @@ public class OrderAdapterServiceImpl {
}
}
}
}
/**
* 微信低碳活动上报,活动结束即可删除
* @param message
* @param orderBean
*/
private
void
sendLowCarbonToWeixin
(
PaysuccessNoticeMessage
message
,
OrderBeanV1
orderBean
){
ApiLog
.
printLog
(
"sendLowCarbonToWeixin"
,
message
,
orderBean
,
null
);
BaseResponse
response
=
null
;
try
{
// 微商城订单处理 因为没有appid
if
(
Objects
.
equals
(
BizTypeEnum
.
MALL
.
getBizType
(),
orderBean
.
getBizType
()))
{
return
;
}
//先判断有没有微信支付
List
<
OrderPayItemResp
>
orderPayItem
=
orderBean
.
getOrderPayItem
();
boolean
hasWeixinPay
=
Objects
.
equals
(
orderBean
.
getPayChannelType
(),
String
.
valueOf
(
PayChannelType
.
WECHAT
.
getIndex
()))
||
(
CollectionUtils
.
isNotEmpty
(
orderPayItem
)
&&
orderPayItem
.
stream
().
anyMatch
(
payItem
->
Objects
.
equals
(
payItem
.
getPayChannelType
(),
PayChannelType
.
WECHAT
.
getIndex
().
intValue
())));
if
(!
hasWeixinPay
)
{
return
;
}
//再判断用没有配置活动
String
activityId
=
getActivityId
(
orderBean
.
getCompanyId
());
if
(
StringUtils
.
isBlank
(
activityId
))
{
return
;
}
//再判断订单商品是否在白名单里面
if
(
isGoodInActivity
(
orderBean
.
getCompanyId
(),
orderBean
.
getProductList
()))
{
ReportActivityBehaviorsRequest
request
=
new
ReportActivityBehaviorsRequest
();
request
.
setPartnerId
(
orderBean
.
getCompanyId
());
request
.
setActivityId
(
activityId
);
request
.
setOpenId
(
message
.
getOpenid
());
request
.
setTransactionId
(
message
.
getThirdPartTradeNo
());
request
.
setMiniAppId
(
orderBean
.
getAppId
());
response
=
ecologyProgramApplicationClient
.
reportActivityBehaviors
(
request
);
if
(!
Objects
.
equals
(
response
.
getCode
(),
"100"
))
{
emailAlertService
.
sendEmailAlert
(
"低碳活动上报失败"
,
String
.
format
(
"request:%s \r\nresponse:%s \r\norderNo:%s"
,
JSONObject
.
toJSONString
(
request
),
JSONObject
.
toJSONString
(
response
),
orderBean
.
getOid
()));
ApiLog
.
printLog
(
"sendLowCarbonToWeixin error "
+
orderBean
.
getOid
(),
message
,
request
,
response
);
}
}
}
catch
(
Exception
e
){
emailAlertService
.
sendEmailAlert
(
"低碳活动上报异常"
,
String
.
format
(
"request:%s \r\nresponse:%s \r\norderNo:%s"
,
JSONObject
.
toJSONString
(
message
),
JSONObject
.
toJSONString
(
response
),
orderBean
.
getOid
()));
ErrorLog
.
printErrorLog
(
"sendLowCarbonToWeixin exception"
,
"/ecology/micro-program/low-carbon-action/activities/behaviors-report"
,
orderBean
,
e
);
}
}
private
String
getActivityId
(
String
partnerId
){
String
[]
partnerArr
=
weixinPayActivity
.
split
(
","
);
if
(
partnerArr
!=
null
&&
partnerArr
.
length
>
0
){
for
(
String
partnerStr
:
partnerArr
){
String
[]
arr
=
partnerStr
.
split
(
"@"
);
if
(
Objects
.
equals
(
arr
[
0
],
partnerId
)){
return
arr
[
1
];
}
}
}
return
null
;
}
private
boolean
isGoodInActivity
(
String
partnerId
,
List
<
ProductBeanV1
>
productList
){
List
<
String
>
partnerList
=
Arrays
.
asList
(
weixinPayGoods
.
split
(
","
));
if
(
CollectionUtils
.
isNotEmpty
(
partnerList
)
&&
CollectionUtils
.
isNotEmpty
(
productList
)){
return
productList
.
stream
().
anyMatch
(
productBeanV1
->
{
boolean
mainProduct
=
partnerList
.
contains
(
partnerId
+
"@"
+(
StringUtils
.
isBlank
(
productBeanV1
.
getSpecification
())?
productBeanV1
.
getProductId
():
productBeanV1
.
getSpecification
()));
if
(
mainProduct
){
return
true
;
}
if
(
CollectionUtils
.
isNotEmpty
(
productBeanV1
.
getSendProduct
())){
boolean
sendProduct
=
productBeanV1
.
getSendProduct
().
stream
().
anyMatch
(
send
->
partnerList
.
contains
(
partnerId
+
"@"
+(
StringUtils
.
isBlank
(
send
.
getSpecification
())?
send
.
getProductId
():
send
.
getSpecification
())));
if
(
sendProduct
){
return
true
;
}
}
if
(
CollectionUtils
.
isNotEmpty
(
productBeanV1
.
getComboProduct
())){
boolean
comboProduct
=
productBeanV1
.
getComboProduct
().
stream
().
anyMatch
(
combo
->
partnerList
.
contains
(
partnerId
+
"@"
+(
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/impl/OrderServiceImpl.java
View file @
9ed1ba15
...
@@ -598,7 +598,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -598,7 +598,7 @@ public class OrderServiceImpl implements Orderservice {
message
.
setTerminalId
(
newMessage
.
getAppId
());
message
.
setTerminalId
(
newMessage
.
getAppId
());
message
.
setRuleId
(
newMessage
.
getRuleId
());
message
.
setRuleId
(
newMessage
.
getRuleId
());
message
.
setSource
(
PaySuccessSource
.
OUTSIDE
.
getSource
());
message
.
setSource
(
PaySuccessSource
.
OUTSIDE
.
getSource
());
message
.
setThirdPartTradeNo
(
m
essage
.
getThirdPartTradeNo
());
message
.
setThirdPartTradeNo
(
newM
essage
.
getThirdPartTradeNo
());
message
.
setSvcPayItems
(
newMessage
.
getPayItems
());
message
.
setSvcPayItems
(
newMessage
.
getPayItems
());
String
res
=
orderAdapterService
.
paySuccessCallback
(
message
);
String
res
=
orderAdapterService
.
paySuccessCallback
(
message
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
res
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
res
);
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/EcologyProgramApplicationClient.java
0 → 100644
View file @
9ed1ba15
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.ecology.ReportActivityBehaviorsRequest
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
/**
* 生态服务
* @author: hujx
* @date:
*/
@FeignClient
(
name
=
"ecology-program-application"
,
url
=
"${saas.ecology.program.application.feign.url:}"
)
public
interface
EcologyProgramApplicationClient
{
/**
* 支付成功上报的低碳行为
*
* @return
*/
// @LogIgnoreFeign(logMessage="sendLowCarbonAction")
@PostMapping
(
"/ecology/micro-program/low-carbon-action/activities/behaviors-report"
)
BaseResponse
reportActivityBehaviors
(
@RequestBody
ReportActivityBehaviorsRequest
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