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
ca7bdebc
Commit
ca7bdebc
authored
May 18, 2020
by
胡超
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
784159bf
87b6f7ba
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
284 additions
and
37 deletions
+284
-37
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
+7
-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
+6
-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
+29
-1
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
+5
-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
+79
-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
+0
-0
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 @
ca7bdebc
...
@@ -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
;
...
@@ -2259,13 +2257,13 @@ public class OrderAdapter {
...
@@ -2259,13 +2257,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
);
...
@@ -2786,7 +2784,8 @@ public class OrderAdapter {
...
@@ -2786,7 +2784,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
);
...
@@ -2799,6 +2798,7 @@ public class OrderAdapter {
...
@@ -2799,6 +2798,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
;
}
}
...
@@ -2808,7 +2808,28 @@ public class OrderAdapter {
...
@@ -2808,7 +2808,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
);
}
}
public
Integer
getNewOrderClient
(
String
name
)
{
public
Integer
getNewOrderClient
(
String
name
)
{
...
...
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
ca7bdebc
...
@@ -99,7 +99,7 @@ public class OrderController {
...
@@ -99,7 +99,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 @
ca7bdebc
...
@@ -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 @
ca7bdebc
...
@@ -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:{0}"
,
"创建预支付交易号序列"
),
PAYMENT_TRANSID_ORDER_KEY
(
"kgd:payment:transid:order:{0}"
,
"交易订单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 @
ca7bdebc
...
@@ -5,6 +5,11 @@ import cn.freemud.entities.vo.AppCreateOrderVo;
...
@@ -5,6 +5,11 @@ import cn.freemud.entities.vo.AppCreateOrderVo;
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
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.vo.PaysuccessNoticeMessage
;
import
java.util.Map
;
/**
/**
* app订单服务
* app订单服务
...
@@ -25,4 +30,6 @@ public interface AppOrderService {
...
@@ -25,4 +30,6 @@ public interface AppOrderService {
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
*/
BaseResponse
createOrder
(
AppCreateOrderVo
createOrderVo
,
AssortmentCustomerInfoVo
customerInfo
);
BaseResponse
createOrder
(
AppCreateOrderVo
createOrderVo
,
AssortmentCustomerInfoVo
customerInfo
);
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 @
ca7bdebc
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 @
ca7bdebc
...
@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse;
...
@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse;
import
cn.freemud.entities.vo.AppCreateOrderVo
;
import
cn.freemud.entities.vo.AppCreateOrderVo
;
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
;
/**
/**
* All rights Reserved, Designed By www.freemud.cn
* All rights Reserved, Designed By www.freemud.cn
...
@@ -35,4 +36,9 @@ public interface OrderAdapterService {
...
@@ -35,4 +36,9 @@ public interface OrderAdapterService {
*/
*/
BaseResponse
appCreateOrder
(
AppCreateOrderVo
createOrderVo
);
BaseResponse
appCreateOrder
(
AppCreateOrderVo
createOrderVo
);
/**
* 支付回调处理
*/
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
);
}
}
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
View file @
ca7bdebc
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 @
ca7bdebc
...
@@ -4,17 +4,26 @@ import cn.freemud.adapter.OrderAdapter;
...
@@ -4,17 +4,26 @@ 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.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.CreateOrderResponseVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
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.BeanUtil
;
import
cn.freemud.utils.BeanUtil
;
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
;
...
@@ -52,6 +61,8 @@ import java.util.ArrayList;
...
@@ -52,6 +61,8 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
@Service
@Service
public
class
AppOrderServiceImpl
implements
AppOrderService
{
public
class
AppOrderServiceImpl
implements
AppOrderService
{
...
@@ -66,6 +77,10 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -66,6 +77,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
;
//门店SDK
//门店SDK
@Autowired
@Autowired
...
@@ -111,9 +126,11 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -111,9 +126,11 @@ 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
);
}
}
...
@@ -157,6 +174,17 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -157,6 +174,17 @@ public class AppOrderServiceImpl implements AppOrderService {
@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
);
...
...
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
View file @
ca7bdebc
...
@@ -18,6 +18,7 @@ import cn.freemud.enums.*;
...
@@ -18,6 +18,7 @@ import cn.freemud.enums.*;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.OrderAdapterService
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.StoreItemClient
;
import
cn.freemud.service.thirdparty.StoreItemClient
;
import
cn.freemud.utils.AmountUtils
;
import
cn.freemud.utils.AmountUtils
;
...
@@ -105,6 +106,9 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -105,6 +106,9 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
private
MealCacheManager
mealCacheManager
;
private
MealCacheManager
mealCacheManager
;
@Autowired
@Autowired
private
ActivityCalculationDiscountService
calculationDiscountService
;
private
ActivityCalculationDiscountService
calculationDiscountService
;
@Autowired
private
OrderAdapterService
orderAdapterService
;
private
final
Integer
RESPONSE_SUCCESS_CODE
=
100
;
private
final
Integer
RESPONSE_SUCCESS_CODE
=
100
;
...
@@ -522,7 +526,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
...
@@ -522,7 +526,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
message
.
setOpenid
(
assortmentCustomerInfoVo
.
getOpenId
());
message
.
setOpenid
(
assortmentCustomerInfoVo
.
getOpenId
());
message
.
setPlatform_coupon
(
0
);
message
.
setPlatform_coupon
(
0
);
message
.
setMerchant_coupon
(
0
);
message
.
setMerchant_coupon
(
0
);
order
Common
Service
.
paySuccessCallback
(
message
);
order
Adapter
Service
.
paySuccessCallback
(
message
);
}
}
}
else
{
}
else
{
return
ResponseUtil
.
error
(
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getCode
(),
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getMessage
(),
null
);
return
ResponseUtil
.
error
(
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getCode
(),
ResponseResultEnum
.
PAY_UNIFIED_ORDER_ERROR
.
getMessage
(),
null
);
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
View file @
ca7bdebc
...
@@ -338,7 +338,7 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -338,7 +338,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
;
...
@@ -392,11 +392,8 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -392,11 +392,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 @
ca7bdebc
package
cn
.
freemud
.
service
.
impl
;
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.adapter.OrderAdapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.AppCreateOrderVo
;
import
cn.freemud.entities.vo.AppCreateOrderVo
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.entities.dto.*
;
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.RedisUtil
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
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.sdk.api.assortment.order.enums.OrderSourceType
;
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.Map
;
/**
/**
* All rights Reserved, Designed By www.freemud.cn
* All rights Reserved, Designed By www.freemud.cn
*
*
...
@@ -30,19 +41,31 @@ import org.springframework.stereotype.Service;
...
@@ -30,19 +41,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
)
{
...
@@ -95,7 +118,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -95,7 +118,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
...
@@ -110,6 +133,57 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -110,6 +133,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
);
}
}
/**
/**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderCommonService.java
View file @
ca7bdebc
...
@@ -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 @
ca7bdebc
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/impl/RedisService.java
0 → 100644
View file @
ca7bdebc
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 @
ca7bdebc
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