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
e69c512a
Commit
e69c512a
authored
May 11, 2020
by
xiaoer.li@freemud.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/qa' into qa
parents
57abd511
8f2207b8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
460 additions
and
113 deletions
+460
-113
call-back-service/pom.xml
+2
-2
order-application-service/src/main/java/cn/freemud/OrderApplication.java
+2
-0
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+29
-8
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+1
-1
order-application-service/src/main/java/cn/freemud/entities/dto/ecology/VirtualBindStoreResponse.java
+17
-0
order-application-service/src/main/java/cn/freemud/entities/dto/ecology/VirtualStoreRequest.java
+17
-0
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
+9
-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
+28
-1
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+1
-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
+13
-9
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
+17
-49
order-application-service/src/main/java/cn/freemud/service/impl/RedisService.java
+30
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/EcologyAdminApplicationClient.java
+25
-0
order-application-service/src/main/java/cn/freemud/utils/RedisUtil.java
+18
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/RefundConfig.java
+4
-4
order-management/src/main/java/cn/freemud/management/enums/ResponseResult.java
+1
-1
order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
+7
-9
shopping-cart-application-service/src/main/java/cn/freemud/entities/ecology/VirtualBindStoreResponse.java
+17
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/ecology/VirtualStoreRequest.java
+17
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
+10
-3
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/EcologyAdminApplicationClient.java
+24
-0
No files found.
call-back-service/pom.xml
View file @
e69c512a
...
@@ -71,7 +71,7 @@
...
@@ -71,7 +71,7 @@
<dependency>
<dependency>
<groupId>
com.freemud.sdk.api.assortment
</groupId>
<groupId>
com.freemud.sdk.api.assortment
</groupId>
<artifactId>
assortment-orderdistributor-sdk
</artifactId>
<artifactId>
assortment-orderdistributor-sdk
</artifactId>
<version>
2.
6
.RELEASE
</version>
<version>
2.
7
.RELEASE
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.freemud.sdk.api.assortment
</groupId>
<groupId>
com.freemud.sdk.api.assortment
</groupId>
...
@@ -81,7 +81,7 @@
...
@@ -81,7 +81,7 @@
<dependency>
<dependency>
<groupId>
com.freemud.sdk.api.assortment
</groupId>
<groupId>
com.freemud.sdk.api.assortment
</groupId>
<artifactId>
assortment-dynamic-queue
</artifactId>
<artifactId>
assortment-dynamic-queue
</artifactId>
<version>
1.
6
.RELEASE
</version>
<version>
1.
7
.RELEASE
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
cn.freemud
</groupId>
<groupId>
cn.freemud
</groupId>
...
...
order-application-service/src/main/java/cn/freemud/OrderApplication.java
View file @
e69c512a
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
package
cn
.
freemud
;
package
cn
.
freemud
;
import
cn.freemud.core.db.DataSourcesConfig
;
import
cn.freemud.core.db.DataSourcesConfig
;
import
com.alibaba.fastjson.parser.ParserConfig
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
feign.RequestInterceptor
;
import
feign.RequestInterceptor
;
import
org.jasypt.encryption.StringEncryptor
;
import
org.jasypt.encryption.StringEncryptor
;
...
@@ -46,6 +47,7 @@ import tk.mybatis.spring.annotation.MapperScan;
...
@@ -46,6 +47,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@EnableAutoConfiguration
@EnableAutoConfiguration
public
class
OrderApplication
{
public
class
OrderApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
ParserConfig
.
getGlobalInstance
().
setAutoTypeSupport
(
true
);
SpringApplication
.
run
(
OrderApplication
.
class
,
args
);
SpringApplication
.
run
(
OrderApplication
.
class
,
args
);
}
}
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
e69c512a
...
@@ -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
;
...
@@ -1053,8 +1051,8 @@ public class OrderAdapter {
...
@@ -1053,8 +1051,8 @@ public class OrderAdapter {
if
(
OrderAccountType
.
CUSTOMER_SUB
.
getCode
().
equals
(
accountBean
.
getType
()))
{
if
(
OrderAccountType
.
CUSTOMER_SUB
.
getCode
().
equals
(
accountBean
.
getType
()))
{
customerScoreAmount
=
accountBean
.
getPrice
()
<
0
?
0
-
accountBean
.
getPrice
()
:
accountBean
.
getPrice
();
customerScoreAmount
=
accountBean
.
getPrice
()
<
0
?
0
-
accountBean
.
getPrice
()
:
accountBean
.
getPrice
();
DecimalFormat
decimalFormat
=
new
DecimalFormat
(
"#.00"
);
DecimalFormat
decimalFormat
=
new
DecimalFormat
(
"#.00"
);
String
customerScoreAmountStr
=
decimalFormat
.
format
(
customerScoreAmount
/
100.0
);
customerScorePrompt
=
decimalFormat
.
format
(
customerScoreAmount
/
100.0
);
customerScorePrompt
=
"积分抵扣-¥"
+
customerScoreAmountStr
;
//
customerScorePrompt = "积分抵扣-¥" + customerScoreAmountStr;
}
}
}
}
}
}
...
@@ -2232,13 +2230,13 @@ public class OrderAdapter {
...
@@ -2232,13 +2230,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
);
...
@@ -2759,7 +2757,8 @@ public class OrderAdapter {
...
@@ -2759,7 +2757,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
);
...
@@ -2772,6 +2771,7 @@ public class OrderAdapter {
...
@@ -2772,6 +2771,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
;
}
}
...
@@ -2781,7 +2781,28 @@ public class OrderAdapter {
...
@@ -2781,7 +2781,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 @
e69c512a
...
@@ -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/ecology/VirtualBindStoreResponse.java
0 → 100644
View file @
e69c512a
package
cn
.
freemud
.
entities
.
dto
.
ecology
;
import
lombok.Data
;
@Data
public
class
VirtualBindStoreResponse
{
/**
* 门店id
*/
private
String
storeId
;
/**
* 类型
*/
private
String
type
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/ecology/VirtualStoreRequest.java
0 → 100644
View file @
e69c512a
package
cn
.
freemud
.
entities
.
dto
.
ecology
;
import
lombok.Data
;
@Data
public
class
VirtualStoreRequest
{
/**
* appid
*/
private
String
platformAppId
;
/**
* 类型
*/
private
String
type
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/order/CreatePrepayRequestDto.java
View file @
e69c512a
...
@@ -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 @
e69c512a
...
@@ -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 @
e69c512a
...
@@ -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,8 @@ public interface AppOrderService {
...
@@ -25,4 +30,8 @@ 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 @
e69c512a
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 @
e69c512a
...
@@ -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 @
e69c512a
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 @
e69c512a
...
@@ -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
);
}
}
...
@@ -156,6 +173,16 @@ public class AppOrderServiceImpl implements AppOrderService {
...
@@ -156,6 +173,16 @@ 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
())){
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
e69c512a
...
@@ -71,7 +71,7 @@ import java.util.stream.Collectors;
...
@@ -71,7 +71,7 @@ import java.util.stream.Collectors;
public
class
CheckOrder
{
public
class
CheckOrder
{
// 配送费逻辑是否使用旧的
// 配送费逻辑是否使用旧的
@Value
(
"${store.delivery.use.old:
fals
e}"
)
@Value
(
"${store.delivery.use.old:
tru
e}"
)
private
boolean
storeDeliveryUseOld
;
private
boolean
storeDeliveryUseOld
;
@Autowired
@Autowired
...
...
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
View file @
e69c512a
...
@@ -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 @
e69c512a
...
@@ -11,6 +11,8 @@ import cn.freemud.constant.RedisKeyConstant;
...
@@ -11,6 +11,8 @@ import cn.freemud.constant.RedisKeyConstant;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.PayAccessResponse
;
import
cn.freemud.entities.dto.PayAccessResponse
;
import
cn.freemud.entities.dto.ecology.VirtualBindStoreResponse
;
import
cn.freemud.entities.dto.ecology.VirtualStoreRequest
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.GroupDetail
;
import
cn.freemud.entities.dto.product.GroupDetail
;
import
cn.freemud.entities.dto.product.ProductAttributeGroup
;
import
cn.freemud.entities.dto.product.ProductAttributeGroup
;
...
@@ -25,6 +27,7 @@ import cn.freemud.interceptor.ServiceException;
...
@@ -25,6 +27,7 @@ import cn.freemud.interceptor.ServiceException;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.BuriedPointService
;
import
cn.freemud.service.BuriedPointService
;
import
cn.freemud.service.MallOrderService
;
import
cn.freemud.service.MallOrderService
;
import
cn.freemud.service.thirdparty.EcologyAdminApplicationClient
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.ShoppingCartClient
;
import
cn.freemud.service.thirdparty.WechatApplicationServiceClient
;
import
cn.freemud.service.thirdparty.WechatApplicationServiceClient
;
import
cn.freemud.utils.LogUtil
;
import
cn.freemud.utils.LogUtil
;
...
@@ -121,6 +124,8 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -121,6 +124,8 @@ public class MallOrderServiceImpl implements MallOrderService {
private
OrderSdkService
orderSdkService
;
private
OrderSdkService
orderSdkService
;
@Autowired
@Autowired
private
WechatApplicationServiceClient
wechatApplicationServiceClient
;
private
WechatApplicationServiceClient
wechatApplicationServiceClient
;
@Autowired
private
EcologyAdminApplicationClient
ecologyAdminApplicationClient
;
/**
/**
* 创建订单
* 创建订单
...
@@ -214,12 +219,14 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -214,12 +219,14 @@ public class MallOrderServiceImpl implements MallOrderService {
}
}
private
void
change2BindMallShopId
(
CreateOrderVo
createOrderVo
,
String
wxAppId
)
{
private
void
change2BindMallShopId
(
CreateOrderVo
createOrderVo
,
String
wxAppId
)
{
String
redisKey
=
RedisKeyConstant
.
OPENSTORE_MICROMALL_BIND_STOREID_PREFIX
+
wxAppId
;
VirtualStoreRequest
virtualStoreRequest
=
new
VirtualStoreRequest
();
String
shopId
=
redisCache
.
getValue
(
redisKey
);
virtualStoreRequest
.
setPlatformAppId
(
wxAppId
);
if
(
StringUtils
.
isEmpty
(
shopId
))
{
virtualStoreRequest
.
setType
(
"microMall"
);
BaseResponse
<
VirtualBindStoreResponse
>
virtualBindStoreResponse
=
ecologyAdminApplicationClient
.
getBuyBindVirtualStore
(
virtualStoreRequest
);
if
(
virtualBindStoreResponse
==
null
||
virtualBindStoreResponse
.
getResult
()
==
null
||
StringUtils
.
isBlank
(
virtualBindStoreResponse
.
getResult
().
getStoreId
()))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_BIND_MALL_NOT_FOUND
);
throw
new
ServiceException
(
ResponseResult
.
STORE_BIND_MALL_NOT_FOUND
);
}
}
createOrderVo
.
setShopId
(
shopId
);
createOrderVo
.
setShopId
(
virtualBindStoreResponse
.
getResult
().
getStoreId
()
);
}
}
private
OrderExtInfoDTO
getExtInfo
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
.
BizVO
storeResponseDto
,
CreateOrderVo
createOrderVo
)
{
private
OrderExtInfoDTO
getExtInfo
(
AssortmentCustomerInfoVo
userLoginInfoDto
,
StoreResponse
.
BizVO
storeResponseDto
,
CreateOrderVo
createOrderVo
)
{
...
@@ -331,7 +338,7 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -331,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
;
...
@@ -385,11 +392,8 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -385,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 @
e69c512a
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 @
e69c512a
...
@@ -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 @
e69c512a
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/impl/RedisService.java
0 → 100644
View file @
e69c512a
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/service/thirdparty/EcologyAdminApplicationClient.java
0 → 100644
View file @
e69c512a
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.ecology.VirtualBindStoreResponse
;
import
cn.freemud.entities.dto.ecology.VirtualStoreRequest
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestHeader
;
/**
* 生态服务
* @author: kai.ding
* @date:
*/
@FeignClient
(
name
=
"ECOLOGY-ADMIN-APPLICATION"
,
url
=
"${saas.ecology.admin.application.feign.url}"
)
public
interface
EcologyAdminApplicationClient
{
/**
* 获取虚拟门店
*/
@PostMapping
(
value
=
"ecology/api/app/info/getBuyBindVirtualStore"
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
,
consumes
=
MediaType
.
APPLICATION_JSON_VALUE
)
BaseResponse
<
VirtualBindStoreResponse
>
getBuyBindVirtualStore
(
@RequestBody
VirtualStoreRequest
virtualStoreRequest
);
}
order-application-service/src/main/java/cn/freemud/utils/RedisUtil.java
View file @
e69c512a
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
);
}
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/RefundConfig.java
View file @
e69c512a
...
@@ -21,16 +21,16 @@ public class RefundConfig {
...
@@ -21,16 +21,16 @@ public class RefundConfig {
*/
*/
private
boolean
isRefundDeliveryFee
;
private
boolean
isRefundDeliveryFee
;
/**
/**
*
是否支持订单完成
退款
*
订单是否支持
退款
*/
*/
private
boolean
is
Finish
Refund
;
private
boolean
is
Can
Refund
;
public
RefundConfig
(){
public
RefundConfig
(){
}
}
public
RefundConfig
(
boolean
is
FinishRefund
,
boolean
isRefundDeliveryFee
){
public
RefundConfig
(
boolean
is
CanRefund
,
boolean
isRefundDeliveryFee
){
this
.
is
FinishRefund
=
isFinish
Refund
;
this
.
is
CanRefund
=
isCan
Refund
;
this
.
isRefundDeliveryFee
=
isRefundDeliveryFee
;
this
.
isRefundDeliveryFee
=
isRefundDeliveryFee
;
}
}
}
}
order-management/src/main/java/cn/freemud/management/enums/ResponseResult.java
View file @
e69c512a
...
@@ -160,7 +160,7 @@ public enum ResponseResult {
...
@@ -160,7 +160,7 @@ public enum ResponseResult {
REJECT_ORDER_FAIL
(
"45075"
,
"拒单失败"
),
REJECT_ORDER_FAIL
(
"45075"
,
"拒单失败"
),
AGREE_REFUND_ORDER_FAIL
(
"45076"
,
"同意退款失败"
),
AGREE_REFUND_ORDER_FAIL
(
"45076"
,
"同意退款失败"
),
ORDER_REFUND_NOT_APPLY
(
"45077"
,
"用户未申请退款"
),
ORDER_REFUND_NOT_APPLY
(
"45077"
,
"用户未申请退款"
),
ORDER_HAD_AFFIRM_CAN_NOT_REFUND
(
"45078"
,
"
订单已经完成,不能申请退款
"
),
ORDER_HAD_AFFIRM_CAN_NOT_REFUND
(
"45078"
,
"
当前订单不允许退款,请前往B端后台设置
"
),
ORDER_REJECT_REFUND_REPETITION
(
"45079"
,
"重复操作,订单已拒绝退款"
),
ORDER_REJECT_REFUND_REPETITION
(
"45079"
,
"重复操作,订单已拒绝退款"
),
ORDER_REJECT_REFUND_STATUS_NOT
(
"45080"
,
"订单不是申请退款中,不能操作"
),
ORDER_REJECT_REFUND_STATUS_NOT
(
"45080"
,
"订单不是申请退款中,不能操作"
),
ORDER_REJECT_REFUND_STATUS_END
(
"45081"
,
"订单未接单或者已取消,不能操作"
),
ORDER_REJECT_REFUND_STATUS_END
(
"45081"
,
"订单未接单或者已取消,不能操作"
),
...
...
order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
View file @
e69c512a
...
@@ -14,12 +14,9 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa
...
@@ -14,12 +14,9 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa
import
com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager
;
import
com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager
;
import
com.freemud.application.sdk.api.ordercenter.enums.OperateClient
;
import
com.freemud.application.sdk.api.ordercenter.enums.OperateClient
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderStatus
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.builder.ToStringBuilder
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -221,18 +218,20 @@ public class OrderVerifyHandle {
...
@@ -221,18 +218,20 @@ public class OrderVerifyHandle {
||
orderBean
.
getRefundList
().
get
(
orderBean
.
getRefundList
().
size
()
-
1
).
getStatus
()
!=
1
)
{
||
orderBean
.
getRefundList
().
get
(
orderBean
.
getRefundList
().
size
()
-
1
).
getStatus
()
!=
1
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_REFUND_NOT_APPLY
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_REFUND_NOT_APPLY
);
}
}
boolean
isFinishRefund
=
false
;
//订单是否支持退款
boolean
isCanRefund
=
false
;
//订单
boolean
isRefundDeliveryFee
=
false
;
boolean
isRefundDeliveryFee
=
false
;
//saas渠道订单,已完成的订单不能操作, 商户配置已完成订单可退款可退款
//saas渠道订单,已完成的订单不能操作, 商户配置已完成订单可退款可退款
if
(
ObjectUtils
.
equals
(
orderBean
.
getSource
(),
OrderSource
.
SAAS
.
getSource
()))
{
if
(
ObjectUtils
.
equals
(
orderBean
.
getSource
(),
OrderSource
.
SAAS
.
getSource
()))
{
RefundConfig
refundConfig
=
getRefundConfig
(
orderBean
);
RefundConfig
refundConfig
=
getRefundConfig
(
orderBean
);
is
FinishRefund
=
refundConfig
.
isFinish
Refund
();
is
CanRefund
=
refundConfig
.
isCan
Refund
();
isRefundDeliveryFee
=
refundConfig
.
isRefundDeliveryFee
();
isRefundDeliveryFee
=
refundConfig
.
isRefundDeliveryFee
();
if
(!
is
Finish
Refund
)
{
if
(!
is
Can
Refund
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_HAD_AFFIRM_CAN_NOT_REFUND
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_HAD_AFFIRM_CAN_NOT_REFUND
);
}
}
}
}
if
(
is
Finish
Refund
)
{
if
(
is
Can
Refund
)
{
orderBean
.
setAmount
(
getRefundAmount
(
orderBean
,
isRefundDeliveryFee
).
longValue
());
orderBean
.
setAmount
(
getRefundAmount
(
orderBean
,
isRefundDeliveryFee
).
longValue
());
}
}
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
...
@@ -373,8 +372,7 @@ public class OrderVerifyHandle {
...
@@ -373,8 +372,7 @@ public class OrderVerifyHandle {
return
refundAmount
;
return
refundAmount
;
}
}
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
>
accountList
=
data
.
getAccountList
();
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
>
accountList
=
data
.
getAccountList
();
//外卖订单,已完成,不退配送费
if
(
CollectionUtils
.
isNotEmpty
(
accountList
))
{
if
(
data
.
getStatus
()
==
OldOrderStatus
.
COMPLETE
.
getCode
()
&&
data
.
getType
()
==
OldOrderType
.
TAKE_OUT
.
getCode
())
{
for
(
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
orderCostResp
:
accountList
)
{
for
(
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
orderCostResp
:
accountList
)
{
if
(
orderCostResp
.
getType
()
==
OldOrderAccountType
.
DELIVERY_AMOUNT
.
getCode
())
{
if
(
orderCostResp
.
getType
()
==
OldOrderAccountType
.
DELIVERY_AMOUNT
.
getCode
())
{
refundAmount
=
new
BigDecimal
(
data
.
getAmount
().
intValue
()
-
orderCostResp
.
getPrice
());
refundAmount
=
new
BigDecimal
(
data
.
getAmount
().
intValue
()
-
orderCostResp
.
getPrice
());
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/ecology/VirtualBindStoreResponse.java
0 → 100644
View file @
e69c512a
package
cn
.
freemud
.
entities
.
ecology
;
import
lombok.Data
;
@Data
public
class
VirtualBindStoreResponse
{
/**
* 门店id
*/
private
String
storeId
;
/**
* 类型
*/
private
String
type
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/ecology/VirtualStoreRequest.java
0 → 100644
View file @
e69c512a
package
cn
.
freemud
.
entities
.
ecology
;
import
lombok.Data
;
@Data
public
class
VirtualStoreRequest
{
/**
* appid
*/
private
String
platformAppId
;
/**
* 类型
*/
private
String
type
;
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
View file @
e69c512a
...
@@ -19,6 +19,8 @@ import cn.freemud.constant.ShoppingCartConstant;
...
@@ -19,6 +19,8 @@ import cn.freemud.constant.ShoppingCartConstant;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.ecology.VirtualBindStoreResponse
;
import
cn.freemud.entities.ecology.VirtualStoreRequest
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
...
@@ -70,6 +72,8 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
...
@@ -70,6 +72,8 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
private
AssortmentSdkService
assortmentSdkService
;
private
AssortmentSdkService
assortmentSdkService
;
@Autowired
@Autowired
private
AssortmentCustomerInfoManager
customerInfoManager
;
private
AssortmentCustomerInfoManager
customerInfoManager
;
@Autowired
private
EcologyAdminApplicationClient
ecologyAdminApplicationClient
;
/**
/**
* 从微信卡券向购物车中添加商品
* 从微信卡券向购物车中添加商品
...
@@ -659,11 +663,14 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
...
@@ -659,11 +663,14 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
* 获取商城门店id
* 获取商城门店id
*/
*/
private
String
getBindMallShopId
(
String
wxAppId
)
{
private
String
getBindMallShopId
(
String
wxAppId
)
{
String
shopId
=
shoppingCartBaseService
.
getBindMallShopId
(
wxAppId
,
LogThreadLocal
.
getTrackingNo
());
VirtualStoreRequest
virtualStoreRequest
=
new
VirtualStoreRequest
();
if
(
StringUtils
.
isEmpty
(
shopId
))
{
virtualStoreRequest
.
setPlatformAppId
(
wxAppId
);
virtualStoreRequest
.
setType
(
"microMall"
);
BaseResponse
<
VirtualBindStoreResponse
>
virtualBindStoreResponse
=
ecologyAdminApplicationClient
.
getBuyBindVirtualStore
(
virtualStoreRequest
);
if
(
virtualBindStoreResponse
==
null
||
virtualBindStoreResponse
.
getResult
()
==
null
||
StringUtils
.
isBlank
(
virtualBindStoreResponse
.
getResult
().
getStoreId
()))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_MALL_NOT_FOUND
);
throw
new
ServiceException
(
ResponseResult
.
STORE_MALL_NOT_FOUND
);
}
}
return
shopId
;
return
virtualBindStoreResponse
.
getResult
().
getStoreId
()
;
}
}
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
e69c512a
...
@@ -87,7 +87,7 @@ import static java.util.stream.Collectors.toList;
...
@@ -87,7 +87,7 @@ import static java.util.stream.Collectors.toList;
public
class
ShoppingCartNewServiceImpl
implements
ShoppingCartNewService
{
public
class
ShoppingCartNewServiceImpl
implements
ShoppingCartNewService
{
// 配送费逻辑是否使用旧的
// 配送费逻辑是否使用旧的
@Value
(
"${store.delivery.use.old:
fals
e}"
)
@Value
(
"${store.delivery.use.old:
tru
e}"
)
private
boolean
storeDeliveryUseOld
;
private
boolean
storeDeliveryUseOld
;
@Autowired
@Autowired
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/EcologyAdminApplicationClient.java
0 → 100644
View file @
e69c512a
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.ecology.VirtualBindStoreResponse
;
import
cn.freemud.entities.ecology.VirtualStoreRequest
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
/**
* 生态服务
* @author: kai.ding
* @date:
*/
@FeignClient
(
name
=
"ECOLOGY-ADMIN-APPLICATION"
,
url
=
"${saas.ecology.admin.application.feign.url}"
)
public
interface
EcologyAdminApplicationClient
{
/**
* 获取虚拟门店
*/
@PostMapping
(
value
=
"ecology/api/app/info/getBuyBindVirtualStore"
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
,
consumes
=
MediaType
.
APPLICATION_JSON_VALUE
)
BaseResponse
<
VirtualBindStoreResponse
>
getBuyBindVirtualStore
(
@RequestBody
VirtualStoreRequest
virtualStoreRequest
);
}
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