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
b3e6f2ac
Commit
b3e6f2ac
authored
Dec 06, 2021
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
前置处理 会员服务校验 以及券作废校验
Signed-off-by: 周晓航 <xiaohang.zhou@freemud.com>
parent
f32e91f7
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
140 additions
and
6 deletions
+140
-6
order-application-service/src/main/java/cn/freemud/entities/dto/coupon/CheckAndCancelResponseDTO.java
+5
-0
order-application-service/src/main/java/cn/freemud/entities/dto/user/UserBaseResponsDTO.java
+18
-0
order-application-service/src/main/java/cn/freemud/entities/dto/user/UserCouponCheckRequest.java
+25
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+79
-6
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerExtendClient.java
+13
-0
No files found.
order-application-service/src/main/java/cn/freemud/entities/dto/coupon/CheckAndCancelResponseDTO.java
View file @
b3e6f2ac
...
@@ -13,6 +13,11 @@ import java.util.List;
...
@@ -13,6 +13,11 @@ import java.util.List;
*/
*/
@Data
@Data
public
class
CheckAndCancelResponseDTO
{
public
class
CheckAndCancelResponseDTO
{
public
static
int
SUCCESS
=
1
;
public
static
int
PROTION_FAIL
=
2
;
public
static
int
FAIL
=
3
;
@ApiModelProperty
(
value
=
"作废结果,1:已全部作废,2:部分作废失败,3:不可作废"
,
required
=
true
)
@ApiModelProperty
(
value
=
"作废结果,1:已全部作废,2:部分作废失败,3:不可作废"
,
required
=
true
)
private
Integer
resultCode
;
private
Integer
resultCode
;
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/user/UserBaseResponsDTO.java
0 → 100644
View file @
b3e6f2ac
package
cn
.
freemud
.
entities
.
dto
.
user
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/12/6 上午11:36
* @description :
*/
@Data
public
class
UserBaseResponsDTO
<
T
>
{
private
String
code
;
private
String
message
;
private
T
data
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/user/UserCouponCheckRequest.java
0 → 100644
View file @
b3e6f2ac
package
cn
.
freemud
.
entities
.
dto
.
user
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/12/6 上午11:35
* @description :
*/
@Data
public
class
UserCouponCheckRequest
{
@ApiModelProperty
(
value
=
"商户号"
,
required
=
true
)
private
String
partnerId
;
@ApiModelProperty
(
value
=
"会员id"
,
required
=
true
)
private
String
memberId
;
@ApiModelProperty
(
value
=
"券号列表"
,
required
=
true
)
private
List
<
String
>
couponCodes
;
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
b3e6f2ac
...
@@ -24,6 +24,9 @@ import cn.freemud.entities.dto.*;
...
@@ -24,6 +24,9 @@ import cn.freemud.entities.dto.*;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto
;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto
;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj
;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj
;
import
cn.freemud.entities.dto.activity.PayGitCheckAndJoinRequestDto
;
import
cn.freemud.entities.dto.activity.PayGitCheckAndJoinRequestDto
;
import
cn.freemud.entities.dto.coupon.CheckAndCancelRequest
;
import
cn.freemud.entities.dto.coupon.CheckAndCancelResponseDTO
;
import
cn.freemud.entities.dto.coupon.CouponResponseDTO
;
import
cn.freemud.entities.dto.delivery.*
;
import
cn.freemud.entities.dto.delivery.*
;
import
cn.freemud.entities.dto.ecology.SendMessageRequest
;
import
cn.freemud.entities.dto.ecology.SendMessageRequest
;
import
cn.freemud.entities.dto.openplatform.QueryInvoiceConfigRequest
;
import
cn.freemud.entities.dto.openplatform.QueryInvoiceConfigRequest
;
...
@@ -38,6 +41,8 @@ import cn.freemud.entities.dto.shoppingCart.CollageOrderDto;
...
@@ -38,6 +41,8 @@ import cn.freemud.entities.dto.shoppingCart.CollageOrderDto;
import
cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto
;
import
cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.dto.store.StoreMixResponseDto
;
import
cn.freemud.entities.dto.user.UserBaseResponsDTO
;
import
cn.freemud.entities.dto.user.UserCouponCheckRequest
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.order.*
;
import
cn.freemud.entities.vo.order.*
;
import
cn.freemud.enums.OrderType
;
import
cn.freemud.enums.OrderType
;
...
@@ -265,6 +270,10 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -265,6 +270,10 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
@Autowired
private
WeChatLiveMsgHandle
weChatLiveMsgHandle
;
private
WeChatLiveMsgHandle
weChatLiveMsgHandle
;
@Autowired
private
CouponOnlineClient
couponOnlineClient
;
@Autowired
private
CustomerExtendClient
customerExtendClient
;
// @Override
// @Override
// public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) {
// public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) {
// String trackingNo = LogThreadLocal.getTrackingNo();
// String trackingNo = LogThreadLocal.getTrackingNo();
...
@@ -3353,6 +3362,10 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3353,6 +3362,10 @@ public class OrderServiceImpl implements Orderservice {
return
checkResult
;
return
checkResult
;
}
}
// fisherman 调用会员获取券的有效性,是否有转赠状态
// fisherman 调用会员获取券的有效性,是否有转赠状态
checkResult
=
this
.
customerExtendHandle
(
orderBean
);
if
(!
Objects
.
equals
(
checkResult
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
return
checkResult
;
}
// fisherman 券作废
// fisherman 券作废
checkResult
=
this
.
couponOnLineHandle
(
orderBean
);
checkResult
=
this
.
couponOnLineHandle
(
orderBean
);
...
@@ -3360,8 +3373,6 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3360,8 +3373,6 @@ public class OrderServiceImpl implements Orderservice {
return
checkResult
;
return
checkResult
;
}
}
// 走正常退款订单逻辑 这里是否可以丢MQ 异步操作
// 走正常退款订单逻辑 这里是否可以丢MQ 异步操作
try
{
try
{
this
.
doCouponOrderRefund
(
orderBean
,
orderRefundVo
);
this
.
doCouponOrderRefund
(
orderBean
,
orderRefundVo
);
...
@@ -3378,6 +3389,34 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3378,6 +3389,34 @@ public class OrderServiceImpl implements Orderservice {
}
}
/**
/**
*
* @param orderBean
* @return
*/
private
BaseResponse
customerExtendHandle
(
OrderBeanV1
orderBean
)
{
BaseResponse
<
List
<
String
>>
baseResponse
=
this
.
couponOrderCommomCheck
(
orderBean
);
if
(
baseResponse
.
getCode
().
compareTo
(
ResponseResult
.
SUCCESS
.
getCode
())
!=
0
)
{
return
baseResponse
;
}
// 获取优惠券
List
<
String
>
couponCodeList
=
baseResponse
.
getResult
();
UserCouponCheckRequest
request
=
new
UserCouponCheckRequest
();
request
.
setPartnerId
(
orderBean
.
getCompanyId
());
request
.
setMemberId
(
orderBean
.
getUserId
());
request
.
setCouponCodes
(
couponCodeList
);
UserBaseResponsDTO
<
List
<
String
>>
responsDTO
=
customerExtendClient
.
getMemberCouponCodes
(
request
);
if
(
responsDTO
==
null
||
!
Objects
.
equals
(
responsDTO
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
OPERATE_NOT_SUPPORT
,
"会员服务调用失败"
);
}
List
<
String
>
responsDTOData
=
responsDTO
.
getData
();
if
(
responsDTOData
.
retainAll
(
couponCodeList
))
{
return
ResponseUtil
.
success
();
}
// fisherman 文案让产品提供
return
ResponseUtil
.
error
(
ResponseResult
.
OPERATE_NOT_SUPPORT
,
"用户优惠券发生变动,无法退款"
);
}
/**
* 调用券码作废操作
* 调用券码作废操作
* @param orderBean
* @param orderBean
* @return
* @return
...
@@ -3386,6 +3425,35 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3386,6 +3425,35 @@ public class OrderServiceImpl implements Orderservice {
if
(
orderBean
.
getBizType
().
compareTo
(
BizTypeEnum
.
SALE_COUPON
.
getBizType
())
!=
0
)
{
if
(
orderBean
.
getBizType
().
compareTo
(
BizTypeEnum
.
SALE_COUPON
.
getBizType
())
!=
0
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
OPERATE_NOT_SUPPORT
);
return
ResponseUtil
.
error
(
ResponseResult
.
OPERATE_NOT_SUPPORT
);
}
}
BaseResponse
<
List
<
String
>>
baseResponse
=
this
.
couponOrderCommomCheck
(
orderBean
);
if
(
baseResponse
.
getCode
().
compareTo
(
ResponseResult
.
SUCCESS
.
getCode
())
!=
0
)
{
return
baseResponse
;
}
// 获取优惠券
List
<
String
>
couponCodeList
=
baseResponse
.
getResult
();
CheckAndCancelRequest
request
=
new
CheckAndCancelRequest
();
request
.
setPartnerId
(
Integer
.
parseInt
(
orderBean
.
getCompanyId
()));
request
.
setMemberId
(
orderBean
.
getUserId
());
request
.
setCouponCodeList
(
couponCodeList
);
CouponResponseDTO
<
CheckAndCancelResponseDTO
>
responseDTO
=
couponOnlineClient
.
checkandcancel
(
request
);
if
(
responseDTO
==
null
||
!
Objects
.
equals
(
responseDTO
.
getStatusCode
(),
100
))
{
// 直接接口调用失败,
return
ResponseUtil
.
error
(
ResponseResult
.
OPERATE_NOT_SUPPORT
.
getCode
(),
"操作失败,请稍后重试"
);
}
CheckAndCancelResponseDTO
result
=
responseDTO
.
getResult
();
// 作废成功
if
(
result
.
getResultCode
().
compareTo
(
CheckAndCancelResponseDTO
.
SUCCESS
)
==
0
)
{
return
ResponseUtil
.
success
();
}
String
memo
=
result
.
getMemo
();
return
ResponseUtil
.
error
(
ResponseResult
.
OPERATE_NOT_SUPPORT
.
getCode
(),
memo
);
}
private
BaseResponse
<
List
<
String
>>
couponOrderCommomCheck
(
OrderBeanV1
orderBean
)
{
List
<
OrderSettlementResp
>
orderSettlementDetailList
=
orderBean
.
getOrderSettlementDetailList
();
List
<
OrderSettlementResp
>
orderSettlementDetailList
=
orderBean
.
getOrderSettlementDetailList
();
if
(
CollectionUtils
.
isEmpty
(
orderSettlementDetailList
))
{
if
(
CollectionUtils
.
isEmpty
(
orderSettlementDetailList
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
OPERATE_NOT_SUPPORT
.
getCode
(),
"没有优惠券信息"
);
return
ResponseUtil
.
error
(
ResponseResult
.
OPERATE_NOT_SUPPORT
.
getCode
(),
"没有优惠券信息"
);
...
@@ -3396,10 +3464,13 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3396,10 +3464,13 @@ public class OrderServiceImpl implements Orderservice {
.
map
(
OrderSettlementResp:
:
getExternalObjectId
).
collect
(
Collectors
.
toList
());
.
map
(
OrderSettlementResp:
:
getExternalObjectId
).
collect
(
Collectors
.
toList
());
// fisherman 核销券失败的逻辑处理
// fisherman 核销券失败的逻辑处理
if
(
CollectionUtils
.
isEmpty
(
couponCodeList
))
{
return
ResponseUtil
.
success
();
return
ResponseUtil
.
error
(
ResponseResult
.
OPERATE_NOT_SUPPORT
.
getCode
(),
"没有优惠券信息"
);
}
return
ResponseUtil
.
success
(
couponCodeList
);
}
}
/**
/**
* 订单退款操作
* 订单退款操作
* 1.调用支付 进行退款
* 1.调用支付 进行退款
...
@@ -3408,7 +3479,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3408,7 +3479,7 @@ public class OrderServiceImpl implements Orderservice {
* @param orderBean
* @param orderBean
* @return
* @return
*/
*/
private
BaseResponse
doCouponOrderRefund
(
OrderBeanV1
orderBean
,
OrderRefundVo
orderRefundVo
)
{
private
void
doCouponOrderRefund
(
OrderBeanV1
orderBean
,
OrderRefundVo
orderRefundVo
)
{
// 支付金额 大于0 调用支付 进行退款
// 支付金额 大于0 调用支付 进行退款
Long
refundId
=
System
.
currentTimeMillis
();
Long
refundId
=
System
.
currentTimeMillis
();
int
state
=
PayRefundStatus
.
SUCCESS
.
getCode
();
int
state
=
PayRefundStatus
.
SUCCESS
.
getCode
();
...
@@ -3444,6 +3515,9 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3444,6 +3515,9 @@ public class OrderServiceImpl implements Orderservice {
}
else
if
(
Objects
.
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
(),
state
))
{
}
else
if
(
Objects
.
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
(),
state
))
{
//退款成功
//退款成功
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
}
else
{
// 退款失败,直接给基础服务null 用于后续补偿操作
cancelOrderRequest
.
setCreateEvent
(
null
);
}
}
cancelOrderRequest
.
setReqRemark
(
orderRefundVo
.
getRemarks
());
cancelOrderRequest
.
setReqRemark
(
orderRefundVo
.
getRemarks
());
cancelOrderRequest
.
setRefundDeliveryAmount
(
false
);
cancelOrderRequest
.
setRefundDeliveryAmount
(
false
);
...
@@ -3457,7 +3531,6 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3457,7 +3531,6 @@ public class OrderServiceImpl implements Orderservice {
}
}
// 删除订单 通知活动添加商品库存 status 需要老订单的 ordercode
// 删除订单 通知活动添加商品库存 status 需要老订单的 ordercode
// orderQueueService.backOrdersStatusChange(orderBean.getOrderCode(), orderBean.getOrderState(), orderBean.getPayState());
// orderQueueService.backOrdersStatusChange(orderBean.getOrderCode(), orderBean.getOrderState(), orderBean.getPayState());
return
ResponseUtil
.
success
();
}
}
/**
/**
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerExtendClient.java
View file @
b3e6f2ac
...
@@ -22,6 +22,8 @@ import org.springframework.web.bind.annotation.PostMapping;
...
@@ -22,6 +22,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
java.util.List
;
@FeignClient
(
name
=
"customer-extend-service"
,
url
=
"${saas.customerextendclient.feign.url}"
)
@FeignClient
(
name
=
"customer-extend-service"
,
url
=
"${saas.customerextendclient.feign.url}"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
CustomerExtendClient
{
public
interface
CustomerExtendClient
{
...
@@ -39,4 +41,15 @@ public interface CustomerExtendClient {
...
@@ -39,4 +41,15 @@ public interface CustomerExtendClient {
@LogIgnoreFeign
(
logMessage
=
"b2bReceiveCard"
)
@LogIgnoreFeign
(
logMessage
=
"b2bReceiveCard"
)
@PostMapping
(
value
=
"/customerextendservice/qujia/b2breceiveCard"
)
@PostMapping
(
value
=
"/customerextendservice/qujia/b2breceiveCard"
)
B2bReceiveCardResponseDto
b2bReceiveCard
(
@RequestBody
B2bReceiveCardRequestDto
request
);
B2bReceiveCardResponseDto
b2bReceiveCard
(
@RequestBody
B2bReceiveCardRequestDto
request
);
/**
* 校验request里面的券 是否正常
* @param request
* @return 如果和request 返回券一致 表示正常
* 这个接口 无力吐槽
*/
@LogIgnoreFeign
(
logMessage
=
"getMemberCouponCodes"
)
@PostMapping
(
value
=
"/customerextendservice/coupon/getMemberCouponCodes"
)
UserBaseResponsDTO
<
List
<
String
>>
getMemberCouponCodes
(
@RequestBody
UserCouponCheckRequest
request
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment