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
d97450d0
Commit
d97450d0
authored
May 07, 2020
by
dingkai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
app预支付、支付回调改造
parent
206c3f1d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
312 additions
and
86 deletions
+312
-86
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+27
-6
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+1
-1
order-application-service/src/main/java/cn/freemud/entities/dto/order/CreatePrepayRequestDto.java
+37
-0
order-application-service/src/main/java/cn/freemud/enums/RedisCacheEnum.java
+6
-1
order-application-service/src/main/java/cn/freemud/service/AppOrderService.java
+10
-0
order-application-service/src/main/java/cn/freemud/service/MallOrderService.java
+10
-0
order-application-service/src/main/java/cn/freemud/service/OrderAdapterService.java
+9
-0
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
+6
-2
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
+27
-1
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
+2
-5
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+91
-5
order-application-service/src/main/java/cn/freemud/service/impl/OrderCommonService.java
+21
-15
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+17
-50
order-application-service/src/main/java/cn/freemud/service/impl/RedisService.java
+30
-0
order-application-service/src/main/java/cn/freemud/utils/RedisUtil.java
+18
-0
No files found.
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
d97450d0
...
@@ -38,7 +38,6 @@ import cn.freemud.request.wechat.dto.SignMessageBuilder;
...
@@ -38,7 +38,6 @@ import cn.freemud.request.wechat.dto.SignMessageBuilder;
import
cn.freemud.service.impl.OrderCommonService
;
import
cn.freemud.service.impl.OrderCommonService
;
import
cn.freemud.utils.*
;
import
cn.freemud.utils.*
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformWxapp
;
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.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
...
@@ -73,7 +72,6 @@ import org.springframework.stereotype.Component;
...
@@ -73,7 +72,6 @@ import org.springframework.stereotype.Component;
import
java.awt.geom.Point2D
;
import
java.awt.geom.Point2D
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.net.URL
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.spec.InvalidKeySpecException
;
import
java.security.spec.InvalidKeySpecException
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormat
;
...
@@ -2219,13 +2217,13 @@ public class OrderAdapter {
...
@@ -2219,13 +2217,13 @@ public class OrderAdapter {
/**
/**
* 支付信息转换
* 支付信息转换
*/
*/
public
UnifiedOrderRequest
convent2UnifiedOrderRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
Long
amount
,
Integer
cardAmount
)
{
public
UnifiedOrderRequest
convent2UnifiedOrderRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
Long
amount
,
Integer
cardAmount
,
String
transId
)
{
UnifiedOrderRequest
orderPayDto
=
new
UnifiedOrderRequest
();
UnifiedOrderRequest
orderPayDto
=
new
UnifiedOrderRequest
();
orderPayDto
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayDto
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderPayDto
.
setBody
(
paymentRequest
.
getPrincipalName
());
orderPayDto
.
setBody
(
paymentRequest
.
getPrincipalName
());
orderPayDto
.
setNotifyUrl
(
paymentRequest
.
getReverseNotifyiDcUrl
());
orderPayDto
.
setNotifyUrl
(
paymentRequest
.
getReverseNotifyiDcUrl
());
orderPayDto
.
setStoreId
(
orderBean
.
getShopId
());
orderPayDto
.
setStoreId
(
orderBean
.
getShopId
());
orderPayDto
.
setTransId
(
orderBean
.
getOid
()
);
orderPayDto
.
setTransId
(
transId
);
orderPayDto
.
setOpenId
(
paymentRequest
.
getOpenId
());
orderPayDto
.
setOpenId
(
paymentRequest
.
getOpenId
());
String
businessDate
=
com
.
freemud
.
application
.
sdk
.
api
.
util
.
DateUtil
.
convert2String
(
new
Date
(),
"yyyyMMdd"
);
String
businessDate
=
com
.
freemud
.
application
.
sdk
.
api
.
util
.
DateUtil
.
convert2String
(
new
Date
(),
"yyyyMMdd"
);
orderPayDto
.
setBusinessDate
(
businessDate
);
orderPayDto
.
setBusinessDate
(
businessDate
);
...
@@ -2746,7 +2744,8 @@ public class OrderAdapter {
...
@@ -2746,7 +2744,8 @@ public class OrderAdapter {
public
CreatePrepayRequestDto
convertToCreatePrepayRequestDto
(
String
partnerId
,
String
wxAppId
,
String
openId
,
public
CreatePrepayRequestDto
convertToCreatePrepayRequestDto
(
String
partnerId
,
String
wxAppId
,
String
openId
,
String
faceCode
,
String
cardCode
,
String
payCode
,
QueryOrdersResponse
.
DataBean
.
OrderBean
fatherOrderBean
,
String
faceCode
,
String
cardCode
,
String
payCode
,
QueryOrdersResponse
.
DataBean
.
OrderBean
fatherOrderBean
,
QueryOrdersResponse
.
DataBean
.
OrderBean
productOrderBean
,
long
totalAmount
,
int
cardAmount
,
OrderExtInfoDTO
orderExtInfoDTO
){
QueryOrdersResponse
.
DataBean
.
OrderBean
productOrderBean
,
long
totalAmount
,
int
cardAmount
,
OrderExtInfoDTO
orderExtInfoDTO
,
String
transId
){
CreatePrepayRequestDto
requestDto
=
new
CreatePrepayRequestDto
();
CreatePrepayRequestDto
requestDto
=
new
CreatePrepayRequestDto
();
requestDto
.
setPartnerId
(
partnerId
);
requestDto
.
setPartnerId
(
partnerId
);
requestDto
.
setWxAppId
(
wxAppId
);
requestDto
.
setWxAppId
(
wxAppId
);
...
@@ -2759,6 +2758,7 @@ public class OrderAdapter {
...
@@ -2759,6 +2758,7 @@ public class OrderAdapter {
requestDto
.
setTotalAmount
(
totalAmount
);
requestDto
.
setTotalAmount
(
totalAmount
);
requestDto
.
setCardAmount
(
cardAmount
);
requestDto
.
setCardAmount
(
cardAmount
);
requestDto
.
setOrderExtInfoDTO
(
orderExtInfoDTO
);
requestDto
.
setOrderExtInfoDTO
(
orderExtInfoDTO
);
requestDto
.
setTransId
(
transId
);
return
requestDto
;
return
requestDto
;
}
}
...
@@ -2768,7 +2768,28 @@ public class OrderAdapter {
...
@@ -2768,7 +2768,28 @@ public class OrderAdapter {
createOrderVo
.
getFaceCode
(),
createOrderVo
.
getCardCode
(),
null
,
createOrderVo
.
getFaceCode
(),
createOrderVo
.
getCardCode
(),
null
,
createOrderOperateDto
.
getFatherOrderBean
(),
createOrderOperateDto
.
getProductOrderBean
(),
createOrderOperateDto
.
getFatherOrderBean
(),
createOrderOperateDto
.
getProductOrderBean
(),
createOrderOperateDto
.
getTotalAmount
()
==
null
?
0
:
createOrderOperateDto
.
getTotalAmount
(),
createOrderOperateDto
.
getTotalAmount
()
==
null
?
0
:
createOrderOperateDto
.
getTotalAmount
(),
createOrderOperateDto
.
getCardAmount
()
==
null
?
0
:
createOrderOperateDto
.
getCardAmount
(),
orderExtInfoDTO
);
createOrderOperateDto
.
getCardAmount
()
==
null
?
0
:
createOrderOperateDto
.
getCardAmount
(),
orderExtInfoDTO
,
createOrderOperateDto
.
getFatherOrderBean
().
getOid
());
}
/**
* 支付后通知失败返回信息
*/
public
String
newSendPayFaileMessage
()
{
Map
<
String
,
Object
>
map
=
Maps
.
newTreeMap
();
map
.
put
(
"code"
,
500
);
map
.
put
(
"message"
,
"failed"
);
return
gson
.
toJson
(
map
);
}
/**
* 支付后通知确认返回信息
*/
public
String
sendPaySuccessNoticeMessage
()
{
Map
<
String
,
Object
>
map
=
Maps
.
newTreeMap
();
map
.
put
(
"code"
,
0
);
map
.
put
(
"message"
,
"success"
);
return
gson
.
toJson
(
map
);
}
}
}
}
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
d97450d0
...
@@ -90,7 +90,7 @@ public class OrderController {
...
@@ -90,7 +90,7 @@ public class OrderController {
@ApiAnnotation
(
logMessage
=
"paySuccessCallback"
)
@ApiAnnotation
(
logMessage
=
"paySuccessCallback"
)
@PostMapping
(
"/paySuccessCallback"
)
@PostMapping
(
"/paySuccessCallback"
)
public
String
paySuccessCallback
(
@LogParams
@RequestBody
PaysuccessNoticeMessage
message
)
{
public
String
paySuccessCallback
(
@LogParams
@RequestBody
PaysuccessNoticeMessage
message
)
{
return
order
s
ervice
.
paySuccessCallback
(
message
);
return
order
AdapterS
ervice
.
paySuccessCallback
(
message
);
}
}
/**
/**
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/order/CreatePrepayRequestDto.java
View file @
d97450d0
...
@@ -6,15 +6,52 @@ import lombok.Data;
...
@@ -6,15 +6,52 @@ import lombok.Data;
@Data
@Data
public
class
CreatePrepayRequestDto
{
public
class
CreatePrepayRequestDto
{
/**
* 商户id
*/
private
String
partnerId
;
private
String
partnerId
;
/**
* appid
*/
private
String
wxAppId
;
private
String
wxAppId
;
/**
* 用户openId
*/
private
String
openId
;
private
String
openId
;
/**
* 人脸识别码code
*/
private
String
faceCode
;
private
String
faceCode
;
/**
* 会员卡code
*/
private
String
cardCode
;
private
String
cardCode
;
/**
* 支付渠道码
*/
private
String
payCode
;
private
String
payCode
;
/**
* 父订单,如果不存在,则值与productOrderBean一致
*/
private
QueryOrdersResponse
.
DataBean
.
OrderBean
fatherOrderBean
;
private
QueryOrdersResponse
.
DataBean
.
OrderBean
fatherOrderBean
;
/**
* 商品订单
*/
private
QueryOrdersResponse
.
DataBean
.
OrderBean
productOrderBean
;
private
QueryOrdersResponse
.
DataBean
.
OrderBean
productOrderBean
;
/**
* 总金额
*/
private
long
totalAmount
;
private
long
totalAmount
;
/**
* 会员卡支付金额
*/
private
int
cardAmount
;
private
int
cardAmount
;
/**
* 订单扩展信息
*/
private
OrderExtInfoDTO
orderExtInfoDTO
;
private
OrderExtInfoDTO
orderExtInfoDTO
;
/**
* 交易请求号
*/
private
String
transId
;
}
}
order-application-service/src/main/java/cn/freemud/enums/RedisCacheEnum.java
View file @
d97450d0
...
@@ -23,7 +23,12 @@ public enum RedisCacheEnum {
...
@@ -23,7 +23,12 @@ public enum RedisCacheEnum {
ORDER_PLUS_DISH_LOCKKEY_PREFIX
(
"kgd:encircle:plus:dish:table:lock:"
,
"围餐下单业务LockKey"
),
ORDER_PLUS_DISH_LOCKKEY_PREFIX
(
"kgd:encircle:plus:dish:table:lock:"
,
"围餐下单业务LockKey"
),
ORDER_CREATE_TRANS_ID_KEY
(
"kgd:meal:trans:{0}:{1}:{2}:{3}"
,
"围餐下单多次创建预支付生成不同TRANS_ID"
),
ORDER_CREATE_TRANS_ID_KEY
(
"kgd:meal:trans:{0}:{1}:{2}:{3}"
,
"围餐下单多次创建预支付生成不同TRANS_ID"
),
ORDER_CREATE_PRE_PARMENT_INTO_LOCK
(
"kgd:meal:pre:payment:lock:"
,
"围餐订单唤起预支付锁定不可下单"
),
ORDER_CREATE_PRE_PARMENT_INTO_LOCK
(
"kgd:meal:pre:payment:lock:"
,
"围餐订单唤起预支付锁定不可下单"
),
ORDER_CACHE_WEICAN_TRANSID_INFO
(
"kgd:meal:payment:trans:order:"
,
"缓存围餐支付transId"
);
ORDER_CACHE_WEICAN_TRANSID_INFO
(
"kgd:meal:payment:trans:order:"
,
"缓存围餐支付transId"
),
PAYMENT_TRANSID_SEQUENCE_KEY
(
"kgd:payment:transid:sequence:{1}"
,
"创建预支付交易号序列"
),
PAYMENT_TRANSID_ORDER_KEY
(
"kgd:payment:transid:order:{1}"
,
"交易订单key"
),
;
private
String
code
;
private
String
code
;
private
String
desc
;
private
String
desc
;
...
...
order-application-service/src/main/java/cn/freemud/service/AppOrderService.java
View file @
d97450d0
package
cn
.
freemud
.
service
;
package
cn
.
freemud
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreatePrepayVo
;
import
cn.freemud.entities.vo.CreatePrepayVo
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
java.util.Map
;
/**
/**
* app订单服务
* app订单服务
...
@@ -18,4 +23,9 @@ public interface AppOrderService {
...
@@ -18,4 +23,9 @@ public interface AppOrderService {
* 创建预支付
* 创建预支付
*/
*/
BaseResponse
createPrepay
(
CreatePrepayVo
createPrepayVo
);
BaseResponse
createPrepay
(
CreatePrepayVo
createPrepayVo
);
/**
* 支付回调
*/
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
);
}
}
order-application-service/src/main/java/cn/freemud/service/MallOrderService.java
View file @
d97450d0
package
cn
.
freemud
.
service
;
package
cn
.
freemud
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.OrderAffirmRequestVO
;
import
cn.freemud.entities.vo.OrderAffirmRequestVO
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.EmptyTableNumberVo
;
import
cn.freemud.entities.vo.encircle.EmptyTableNumberVo
;
import
cn.freemud.entities.vo.encircle.EncircleReserveBaseVo
;
import
cn.freemud.entities.vo.encircle.EncircleReserveBaseVo
;
import
java.util.Map
;
/**
/**
* 商城订单业务操作类
* 商城订单业务操作类
* @version V1.0
* @version V1.0
...
@@ -28,4 +33,9 @@ public interface MallOrderService {
...
@@ -28,4 +33,9 @@ public interface MallOrderService {
*/
*/
BaseResponse
orderAffirm
(
OrderAffirmRequestVO
requestVO
);
BaseResponse
orderAffirm
(
OrderAffirmRequestVO
requestVO
);
/**
* 支付回调
*/
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
);
}
}
order-application-service/src/main/java/cn/freemud/service/OrderAdapterService.java
View file @
d97450d0
package
cn
.
freemud
.
service
;
package
cn
.
freemud
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreatePrepayVo
;
import
cn.freemud.entities.vo.CreatePrepayVo
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
java.util.Map
;
/**
/**
* All rights Reserved, Designed By www.freemud.cn
* All rights Reserved, Designed By www.freemud.cn
...
@@ -29,4 +33,9 @@ public interface OrderAdapterService {
...
@@ -29,4 +33,9 @@ public interface OrderAdapterService {
*/
*/
BaseResponse
createPrepay
(
CreatePrepayVo
createPrepayVo
);
BaseResponse
createPrepay
(
CreatePrepayVo
createPrepayVo
);
/**
* 支付回调处理
*/
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
);
}
}
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
View file @
d97450d0
package
cn
.
freemud
.
service
;
package
cn
.
freemud
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
com.freemud.sdk.api.assortment.order.enums.OrderSdkType
;
import
com.freemud.sdk.api.assortment.order.enums.OrderSdkType
;
import
java.util.Map
;
/**
/**
* 订单服务
* 订单服务
*
*
...
@@ -25,9 +29,9 @@ public interface Orderservice {
...
@@ -25,9 +29,9 @@ public interface Orderservice {
BaseResponse
scanFaceCreateOrder
(
CreateOrderVo
createOrderVo
);
BaseResponse
scanFaceCreateOrder
(
CreateOrderVo
createOrderVo
);
/**
/**
* 支付
成功后回调通知
* 支付
回调
*/
*/
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
);
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
);
/**
/**
* 支付成功后回调通知_新版本
* 支付成功后回调通知_新版本
...
...
order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
View file @
d97450d0
...
@@ -4,17 +4,23 @@ import cn.freemud.adapter.OrderAdapter;
...
@@ -4,17 +4,23 @@ import cn.freemud.adapter.OrderAdapter;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreatePrepayVo
;
import
cn.freemud.entities.vo.CreatePrepayVo
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.enums.OrderBeanType
;
import
cn.freemud.enums.PayStatus
;
import
cn.freemud.enums.PayStatus
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.TradeState
;
import
cn.freemud.enums.TradeState
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.AppOrderService
;
import
cn.freemud.service.AppOrderService
;
import
cn.freemud.utils.RedisUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
...
@@ -41,6 +47,8 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -41,6 +47,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
@Service
@Service
public
class
AppOrderServiceImpl
implements
AppOrderService
{
public
class
AppOrderServiceImpl
implements
AppOrderService
{
...
@@ -55,6 +63,10 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -55,6 +63,10 @@ public class AppOrderServiceImpl implements AppOrderService {
private
OrderCenterSdkService
orderCenterSdkService
;
private
OrderCenterSdkService
orderCenterSdkService
;
@Autowired
@Autowired
private
PaymentNewService
paymentNewService
;
private
PaymentNewService
paymentNewService
;
@Autowired
private
RedisCache
redisCache
;
@Autowired
private
RedisService
redisService
;
/**
/**
* 不支持会员卡
* 不支持会员卡
...
@@ -96,12 +108,25 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -96,12 +108,25 @@ public class AppOrderServiceImpl implements AppOrderService {
extInfo
.
setOpenid
(
createPrepayVo
.
getOpenId
());
extInfo
.
setOpenid
(
createPrepayVo
.
getOpenId
());
String
faceCode
=
""
;
String
faceCode
=
""
;
String
cardCode
=
""
;
String
cardCode
=
""
;
String
transId
=
createPrepayVo
.
getOrderCode
()
+
redisService
.
increment
(
RedisUtil
.
getPaymentTransIdSequenceKey
(
createPrepayVo
.
getOrderCode
()),
1
,
TimeUnit
.
DAYS
);
CreatePrepayRequestDto
createPrepayRequestDto
=
orderAdapter
.
convertToCreatePrepayRequestDto
(
createPrepayVo
.
getPartnerId
(),
createPrepayVo
.
getPayAppId
(),
createPrepayVo
.
getOpenId
(),
faceCode
,
CreatePrepayRequestDto
createPrepayRequestDto
=
orderAdapter
.
convertToCreatePrepayRequestDto
(
createPrepayVo
.
getPartnerId
(),
createPrepayVo
.
getPayAppId
(),
createPrepayVo
.
getOpenId
(),
faceCode
,
cardCode
,
createPrepayVo
.
getPayCode
(),
createOrderOperateDto
.
getFatherOrderBean
(),
createOrderOperateDto
.
getProductOrderBean
(),
createOrderOperateDto
.
getTotalAmount
(),
cardCode
,
createPrepayVo
.
getPayCode
(),
createOrderOperateDto
.
getFatherOrderBean
(),
createOrderOperateDto
.
getProductOrderBean
(),
createOrderOperateDto
.
getTotalAmount
(),
createOrderOperateDto
.
getCardAmount
(),
extInfo
);
createOrderOperateDto
.
getCardAmount
(),
extInfo
,
transId
);
redisService
.
savePaymentTransIdOrder
(
RedisUtil
.
getPaymentTransIdOrderKey
(
transId
),
productOrderBean
.
getOid
(),
30L
,
TimeUnit
.
MINUTES
);
return
orderservice
.
createPrepayOrder
(
createPrepayRequestDto
);
return
orderservice
.
createPrepayOrder
(
createPrepayRequestDto
);
}
}
@Override
public
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
)
{
String
paySuccessCallbackResult
=
orderservice
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
=
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
// 删除订单自增缓存
redisCache
.
delete
(
RedisUtil
.
getPaymentTransIdSequenceKey
(
orderBean
.
getOid
()));
// 删除支付交易号订单关系缓存
redisCache
.
delete
(
RedisUtil
.
getPaymentTransIdOrderKey
(
message
.
getTrans_id
()));
return
paySuccessCallbackResult
;
}
private
void
checkOrderBefore
(
CreatePrepayVo
createPrepayVo
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
private
void
checkOrderBefore
(
CreatePrepayVo
createPrepayVo
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
if
(!
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
())){
if
(!
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
())){
throw
new
ServiceException
(
ResponseResult
.
ORDER_HAS_PAID
);
throw
new
ServiceException
(
ResponseResult
.
ORDER_HAS_PAID
);
...
@@ -192,4 +217,5 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -192,4 +217,5 @@ public class AppOrderServiceImpl implements AppOrderService {
}
}
}
}
}
}
}
}
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
View file @
d97450d0
...
@@ -331,7 +331,7 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -331,7 +331,7 @@ public class MallOrderServiceImpl implements MallOrderService {
public
OrderPayResponse
getPreOrderPay
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
trackingNo
,
Integer
cardAmount
)
{
public
OrderPayResponse
getPreOrderPay
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
PaymentRequest
paymentRequest
,
String
trackingNo
,
Integer
cardAmount
)
{
try
{
try
{
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
);
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
orderBean
.
getOid
()
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
responseBase
=
standardPaymentService
.
unifiedOrder
(
request
,
trackingNo
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
responseBase
=
standardPaymentService
.
unifiedOrder
(
request
,
trackingNo
);
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
()))
{
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
()))
{
return
null
;
return
null
;
...
@@ -385,11 +385,8 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -385,11 +385,8 @@ public class MallOrderServiceImpl implements MallOrderService {
return
this
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
return
this
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
}
@Override
public
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
)
{
public
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
)
{
if
(
MapUtils
.
isEmpty
(
orderBeans
))
{
ErrorLog
.
printErrorLog
(
"paySuccessCallback_queryOrderById_faild"
,
"paySuccessCallback"
,
message
,
new
Exception
());
return
gson
.
toJson
(
message
);
}
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
=
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
=
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
String
partnerId
=
orderBean
.
getCompanyId
();
String
partnerId
=
orderBean
.
getCompanyId
();
String
userId
=
orderBean
.
getUserId
();
String
userId
=
orderBean
.
getUserId
();
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
d97450d0
package
cn
.
freemud
.
service
.
impl
;
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.adapter.LightApplicationConvertToAssortmentSdkAdapter
;
import
cn.freemud.adapter.OrderAdapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreatePrepayVo
;
import
cn.freemud.entities.vo.CreatePrepayVo
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.enums.OrderChannelType
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.UserLoginChannelEnum
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.*
;
import
cn.freemud.service.*
;
import
cn.freemud.utils.LogUtil
;
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.db.AssortmentCloudPrinter
;
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
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.sdk.api.assortment.order.enums.OrderSourceType
;
import
com.freemud.sdk.api.assortment.order.request.order.ConfirmOrderRequest
;
import
com.freemud.sdk.api.assortment.order.util.LockUtils
;
import
com.google.gson.Gson
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
/**
/**
* All rights Reserved, Designed By www.freemud.cn
* All rights Reserved, Designed By www.freemud.cn
*
*
...
@@ -29,19 +52,31 @@ import org.springframework.stereotype.Service;
...
@@ -29,19 +52,31 @@ import org.springframework.stereotype.Service;
* @Copyright: ${DATE.YARE} www.freemud.cn Inc. All rights reserved.
* @Copyright: ${DATE.YARE} www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
*/
@Slf4j
@Service
@Service
public
class
OrderAdapterServiceImpl
implements
OrderAdapterService
{
public
class
OrderAdapterServiceImpl
implements
OrderAdapterService
{
private
final
String
PAY_SUCCESS_KEY
=
"pay_success_key:"
;
private
static
Gson
gson
=
new
Gson
();
@Autowired
@Autowired
private
EncircleOrderService
encircleOrderService
;
private
EncircleOrderService
encircleOrderService
;
@Autowired
@Autowired
private
Order
service
orders
ervice
;
private
Order
ServiceImpl
orderS
ervice
;
@Autowired
@Autowired
private
AssortmentCustomerInfoManager
assortmentCustomerInfoManager
;
private
AssortmentCustomerInfoManager
assortmentCustomerInfoManager
;
@Autowired
@Autowired
private
MallOrderService
mallOrderService
;
private
MallOrderService
mallOrderService
;
@Autowired
@Autowired
private
AppOrderService
appOrderService
;
private
AppOrderService
appOrderService
;
@Autowired
private
RedisCache
redisCache
;
@Autowired
private
OrderAdapter
orderAdapter
;
@Autowired
private
OrderCommonService
orderCommonService
;
@Override
@Override
public
BaseResponse
createOrderNew
(
CreateOrderVo
createOrderVo
)
{
public
BaseResponse
createOrderNew
(
CreateOrderVo
createOrderVo
)
{
...
@@ -94,7 +129,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -94,7 +129,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if
(
ObjectUtils
.
notEqual
(
baseResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
())){
if
(
ObjectUtils
.
notEqual
(
baseResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
())){
return
baseResponse
;
return
baseResponse
;
}
}
return
order
s
ervice
.
createOrderNew
(
createOrderVo
);
return
order
S
ervice
.
createOrderNew
(
createOrderVo
);
}
}
@Override
@Override
...
@@ -109,6 +144,57 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -109,6 +144,57 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
throw
new
UnsupportedOperationException
(
"暂不支持渠道:"
+
assortmentCustomerInfoVo
.
getChannel
());
throw
new
UnsupportedOperationException
(
"暂不支持渠道:"
+
assortmentCustomerInfoVo
.
getChannel
());
}
}
@Override
public
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
)
{
//添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
String
paySuccessKey
=
PAY_SUCCESS_KEY
+
message
.
getTrans_id
();
if
(!
LockUtils
.
lockAfter
(
redisCache
.
getRedisTemplate
(),
paySuccessKey
)){
return
orderAdapter
.
newSendPayFaileMessage
();
}
try
{
ConfirmOrderDto
confirmOrderDto
=
orderAdapter
.
convent2ConfirmOrderDto
(
message
);
// 通过交易号从缓存中拿订单号,如果有数据则实际订单号为其value值
String
orderId
=
redisCache
.
getValue
(
RedisUtil
.
getPaymentTransIdOrderKey
(
confirmOrderDto
.
getOrderId
()));
if
(
StringUtils
.
isNotBlank
(
orderId
))
{
log
.
info
(
"从缓存中获取的订单数据,trackingNo:{},transId:{},orderId:{}"
,
LogTreadLocal
.
getTrackingNo
(),
confirmOrderDto
.
getOrderId
(),
orderId
);
confirmOrderDto
.
setOrderId
(
orderId
);
}
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
=
orderService
.
getOrderBeanByOrderId
(
confirmOrderDto
.
getOrderId
());
if
(
MapUtils
.
isEmpty
(
orderBeans
))
{
log
.
error
(
"paySuccessCallback_queryOrderById_faild, trackingNo:{},PaysuccessNoticeMessage:{}"
,
LogTreadLocal
.
getTrackingNo
(),
gson
.
toJson
(
message
));
return
gson
.
toJson
(
message
);
}
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
=
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
/**
* 围餐处理
*/
if
(
"meals"
.
equals
(
orderBean
.
getSource
()))
{
return
orderCommonService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
/**
* 微商城处理
*/
if
(
OrderSourceType
.
SAASMALL
.
getCode
().
equals
(
orderBean
.
getSource
()))
{
return
mallOrderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
/**
* app订单处理
*/
if
(
OrderSourceType
.
APP
.
getCode
().
equals
(
orderBean
.
getSource
()))
{
return
appOrderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
/**
* 默认点餐处理
*/
return
orderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
catch
(
Exception
e
)
{
throw
e
;
}
finally
{
//删除分布式锁
redisCache
.
delete
(
"saas:lockAfter:"
+
paySuccessKey
);
}
}
/**
/**
* 标准点餐参数校验
* 标准点餐参数校验
* @param createOrderVo
* @param createOrderVo
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderCommonService.java
View file @
d97450d0
...
@@ -4,12 +4,16 @@ import cn.freemud.adapter.MessageNoticeAdapter;
...
@@ -4,12 +4,16 @@ import cn.freemud.adapter.MessageNoticeAdapter;
import
cn.freemud.adapter.OrderAdapter
;
import
cn.freemud.adapter.OrderAdapter
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.OrderExtInfoDto
;
import
cn.freemud.entities.dto.OrderExtInfoDto
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.dto.ShoppingCartBaseResponse
;
import
cn.freemud.entities.dto.ShoppingCartBaseResponse
;
import
cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto
;
import
cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
cn.freemud.enums.OrderBeanType
;
import
cn.freemud.enums.PayStatus
;
import
cn.freemud.enums.PayStatus
;
import
cn.freemud.enums.RedisCacheEnum
;
import
cn.freemud.enums.RedisCacheEnum
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ResponseResult
;
...
@@ -18,6 +22,7 @@ import cn.freemud.redis.RedisCache;
...
@@ -18,6 +22,7 @@ import cn.freemud.redis.RedisCache;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.utils.DateTimeUtil
;
import
cn.freemud.utils.DateTimeUtil
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.RedisUtil
;
import
cn.freemud.utils.ValidationCode
;
import
cn.freemud.utils.ValidationCode
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
...
@@ -52,6 +57,7 @@ import org.springframework.beans.factory.annotation.Value;
...
@@ -52,6 +57,7 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.sql.Time
;
import
java.text.MessageFormat
;
import
java.text.MessageFormat
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -92,6 +98,8 @@ public class OrderCommonService {
...
@@ -92,6 +98,8 @@ public class OrderCommonService {
private
MessageNoticeAdapter
messageNoticeAdapter
;
private
MessageNoticeAdapter
messageNoticeAdapter
;
@Autowired
@Autowired
private
MessageCenterClient
messageNoticeClient
;
private
MessageCenterClient
messageNoticeClient
;
@Autowired
private
RedisService
redisService
;
private
final
Integer
RESPONSE_SUCCESS_CODE
=
100
;
private
final
Integer
RESPONSE_SUCCESS_CODE
=
100
;
/**
/**
...
@@ -111,10 +119,8 @@ public class OrderCommonService {
...
@@ -111,10 +119,8 @@ public class OrderCommonService {
OrderExtInfoDto
orderExtInfoDto
=
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
)
==
null
?
new
OrderExtInfoDto
()
:
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
OrderExtInfoDto
orderExtInfoDto
=
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
)
==
null
?
new
OrderExtInfoDto
()
:
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
if
(
orderBean
.
getAmount
()
>
0
){
if
(
orderBean
.
getAmount
()
>
0
){
try
{
try
{
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
);
String
transId
=
orderBean
.
getOid
()
+
redisService
.
increment
(
RedisUtil
.
getPaymentTransIdSequenceKey
(
orderBean
.
getOid
()),
1L
,
TimeUnit
.
DAYS
);
Long
increment
=
redisCache
.
opsForValue
().
increment
(
UnifiedOrderRequest
request
=
orderAdapter
.
convent2UnifiedOrderRequest
(
orderBean
,
paymentRequest
,
orderBean
.
getAmount
(),
cardAmount
,
transId
);
MessageFormat
.
format
(
RedisCacheEnum
.
ORDER_CREATE_TRANS_ID_KEY
.
getCode
(),
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
(),
orderBean
.
getBarCounter
(),
orderBean
.
getOid
()),
1
);
request
.
setTransId
(
orderBean
.
getOid
()
+
increment
);
if
(
SDKCommonBaseContextWare
.
getProfile
().
equals
(
SDKCommonBaseContextWare
.
profiles
.
DEFAULT
.
getProfile
())
if
(
SDKCommonBaseContextWare
.
getProfile
().
equals
(
SDKCommonBaseContextWare
.
profiles
.
DEFAULT
.
getProfile
())
||
SDKCommonBaseContextWare
.
getProfile
().
equals
(
SDKCommonBaseContextWare
.
profiles
.
DEV
.
getProfile
())
||
SDKCommonBaseContextWare
.
getProfile
().
equals
(
SDKCommonBaseContextWare
.
profiles
.
DEV
.
getProfile
())
...
@@ -122,7 +128,7 @@ public class OrderCommonService {
...
@@ -122,7 +128,7 @@ public class OrderCommonService {
request
.
setAmount
(
1L
);
request
.
setAmount
(
1L
);
}
}
ApiLog
.
info
(
"支付transId :{},payRequest:{}"
,
request
.
getTransId
(),
JSON
.
toJSONString
(
request
));
ApiLog
.
info
(
"支付transId :{},payRequest:{}"
,
request
.
getTransId
(),
JSON
.
toJSONString
(
request
));
redis
Cache
.
save
(
RedisCacheEnum
.
ORDER_CACHE_WEICAN_TRANSID_INFO
.
getCode
()+
request
.
getTransId
(),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
redis
Service
.
savePaymentTransIdOrder
(
RedisUtil
.
getPaymentTransIdOrderKey
(
transId
),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
responseBase
=
standardPaymentService
.
unifiedOrder
(
request
,
LogThreadLocal
.
getTrackingNo
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
UnifiedOrderResponse
>
responseBase
=
standardPaymentService
.
unifiedOrder
(
request
,
LogThreadLocal
.
getTrackingNo
());
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
()))
{
if
(!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
responseBase
.
getCode
()))
{
return
null
;
return
null
;
...
@@ -219,15 +225,9 @@ public class OrderCommonService {
...
@@ -219,15 +225,9 @@ public class OrderCommonService {
* @param message
* @param message
* @return
* @return
*/
*/
public
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
){
public
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
)
{
//拉取订单详细信息
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
=
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
OrderExtInfoDto
extInfo
=
JSONObject
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
baseQueryOrderRequest
.
setOrderId
(
message
.
getTrans_id
());
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
queryOrderByIdResponse
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
OrderExtInfoDto
extInfo
=
JSONObject
.
parseObject
(
queryOrderByIdResponse
.
getData
().
getExtInfo
(),
OrderExtInfoDto
.
class
);
//判断订单支付状态 订单已支付则发起退款
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
queryOrderByIdResponse
.
getData
();
if
(
PayStatus
.
HAVE_PAID
.
getCode
().
equals
(
orderBean
.
getPayStatus
())
&&
ObjectUtils
.
equals
(
1
,
orderBean
.
getPayType
())){
if
(
PayStatus
.
HAVE_PAID
.
getCode
().
equals
(
orderBean
.
getPayStatus
())
&&
ObjectUtils
.
equals
(
1
,
orderBean
.
getPayType
())){
//发起退款 本期不考虑 极端情况
//发起退款 本期不考虑 极端情况
}
}
...
@@ -272,8 +272,14 @@ public class OrderCommonService {
...
@@ -272,8 +272,14 @@ public class OrderCommonService {
LogUtil
.
error
(
"paySuccessCallback_payAccess_faild"
,
JSON
.
toJSONString
(
message
),
JSON
.
toJSONString
(
groupOrderResponse
));
LogUtil
.
error
(
"paySuccessCallback_payAccess_faild"
,
JSON
.
toJSONString
(
message
),
JSON
.
toJSONString
(
groupOrderResponse
));
return
this
.
newSendPayFaileMessage
();
return
this
.
newSendPayFaileMessage
();
}
}
redisCache
.
delete
(
MessageFormat
.
format
(
RedisCacheEnum
.
ORDER_CREATE_TRANS_ID_KEY
.
getCode
(),
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
(),
orderBean
.
getBarCounter
(),
orderBean
.
getOid
()));
// 删除订单自增缓存
redisCache
.
delete
(
RedisUtil
.
getPaymentTransIdSequenceKey
(
orderBean
.
getOid
()));
// 删除支付交易号订单关系缓存
redisCache
.
delete
(
RedisUtil
.
getPaymentTransIdOrderKey
(
message
.
getTrans_id
()));
this
.
sendPosMessage
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
(),
orderBean
.
getOid
());
this
.
sendPosMessage
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
(),
orderBean
.
getOid
());
//支付回掉成功标记
redisCache
.
save
(
RedisKeyConstant
.
KGD_PAYMENT_CALLBACK_FMID
+
message
.
getOut_trade_no
(),
message
.
getOut_trade_no
(),
10L
,
TimeUnit
.
MINUTES
);
//返回调用结果
//返回调用结果
return
this
.
newSendPaySuccessNoticeMessage
();
return
this
.
newSendPaySuccessNoticeMessage
();
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
d97450d0
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/impl/RedisService.java
0 → 100644
View file @
d97450d0
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.enums.RedisCacheEnum
;
import
cn.freemud.redis.RedisCache
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.concurrent.TimeUnit
;
@Service
public
class
RedisService
{
@Autowired
private
RedisCache
redisCache
;
/**
* 指定的key值自增,并指定缓存过期时间
*/
public
Long
increment
(
String
key
,
long
expire
,
TimeUnit
timeUnit
)
{
Long
increment
=
redisCache
.
opsForValue
().
increment
(
key
,
1
);
redisCache
.
updateTTL
(
key
,
expire
,
timeUnit
);
return
increment
;
}
/**
* 保存支付交易好订单关系,并指定缓存过期时间
*/
public
void
savePaymentTransIdOrder
(
String
key
,
String
orderId
,
long
expire
,
TimeUnit
timeUnit
)
{
redisCache
.
save
(
key
,
orderId
,
expire
,
timeUnit
);
}
}
order-application-service/src/main/java/cn/freemud/utils/RedisUtil.java
View file @
d97450d0
package
cn
.
freemud
.
utils
;
package
cn
.
freemud
.
utils
;
import
cn.freemud.enums.RedisCacheEnum
;
import
java.text.MessageFormat
;
public
class
RedisUtil
{
public
class
RedisUtil
{
private
final
static
String
BASE_URL
=
"micro_program:"
;
private
final
static
String
BASE_URL
=
"micro_program:"
;
private
final
static
String
ENTER_SHOP_KEY
=
BASE_URL
+
"ENTER_SHOP_KEY_"
;
private
final
static
String
ENTER_SHOP_KEY
=
BASE_URL
+
"ENTER_SHOP_KEY_"
;
...
@@ -17,4 +21,18 @@ public class RedisUtil {
...
@@ -17,4 +21,18 @@ public class RedisUtil {
public
static
String
getCouponAppSecret
(
String
partnerId
)
{
public
static
String
getCouponAppSecret
(
String
partnerId
)
{
return
COUPON_APP_SECRET
+
partnerId
;
return
COUPON_APP_SECRET
+
partnerId
;
}
}
/**
* 获取订单支付交易请求序列
*/
public
static
String
getPaymentTransIdSequenceKey
(
String
orderId
)
{
return
MessageFormat
.
format
(
RedisCacheEnum
.
PAYMENT_TRANSID_SEQUENCE_KEY
.
getCode
(),
orderId
);
}
/**
* 获取交易订单key
*/
public
static
String
getPaymentTransIdOrderKey
(
String
transId
){
return
MessageFormat
.
format
(
RedisCacheEnum
.
PAYMENT_TRANSID_ORDER_KEY
.
getCode
(),
transId
);
}
}
}
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