Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
a537f95d
Commit
a537f95d
authored
Jul 30, 2019
by
hezhen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'base-modify' of
http://113.105.137.151:22280/youjj/cloud-platform
into base-modify
parents
080f4d73
1f241513
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
376 additions
and
275 deletions
+376
-275
BaseUserMemberBiz.java
.../github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
+8
-8
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+0
-254
OrderRefundBiz.java
...main/java/com/xxfc/platform/order/biz/OrderRefundBiz.java
+144
-1
OrderCancelBiz.java
...ava/com/xxfc/platform/order/biz/inner/OrderCancelBiz.java
+197
-0
RabbitConsumer.java
...ava/com/xxfc/platform/order/mqhandler/RabbitConsumer.java
+3
-2
BaseOrderController.java
...ava/com/xxfc/platform/order/rest/BaseOrderController.java
+18
-8
OrderRefundController.java
...a/com/xxfc/platform/order/rest/OrderRefundController.java
+6
-2
No files found.
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
View file @
a537f95d
...
@@ -41,14 +41,14 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
...
@@ -41,14 +41,14 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
@Autowired
@Autowired
AppUserDetailBiz
detailBiz
;
AppUserDetailBiz
detailBiz
;
@Autowired
//
@Autowired
private
TaskExecutor
taskExecutor
;
//
private TaskExecutor taskExecutor;
//
@Autowired
//
@Autowired
private
UserMemberLevelBiz
userMemberLevelBiz
;
//
private UserMemberLevelBiz userMemberLevelBiz;
//
@Autowired
//
@Autowired
private
AppUserLoginBiz
appUserLoginBiz
;
//
private AppUserLoginBiz appUserLoginBiz;
//获取用户会员信息
//获取用户会员信息
@Cache
(
key
=
"user:member{1}"
)
@Cache
(
key
=
"user:member{1}"
)
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
a537f95d
This diff is collapsed.
Click to expand it.
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderRefundBiz.java
View file @
a537f95d
package
com
.
xxfc
.
platform
.
order
.
biz
;
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.github.wxiaoqi.security.common.util.IntervalUtil
;
import
com.xxfc.platform.order.contant.enumerate.*
;
import
com.xxfc.platform.order.contant.enumerate.*
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
...
@@ -10,6 +12,8 @@ import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
...
@@ -10,6 +12,8 @@ import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
import
com.xxfc.platform.universal.entity.Dictionary
;
import
com.xxfc.platform.universal.entity.Dictionary
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.universal.vo.OrderRefundVo
;
import
org.apache.commons.jexl2.MapContext
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -20,7 +24,10 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
...
@@ -20,7 +24,10 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Set
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_FALSE
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_TRUE
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.
APP_ORDER
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.
APP_ORDER
;
/**
/**
...
@@ -69,11 +76,147 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
...
@@ -69,11 +76,147 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
public
void
refundTrigger
(
BaseOrder
baseOrder
,
OrderRentVehicleDetail
orvd
,
BigDecimal
residueAmount
,
BigDecimal
originalRefundAmount
,
BigDecimal
refundAmont
,
String
refundDesc
,
Integer
refundStatus
)
{
public
void
refundTrigger
(
BaseOrder
baseOrder
,
OrderRentVehicleDetail
orvd
,
BigDecimal
residueAmount
,
BigDecimal
originalRefundAmount
,
BigDecimal
refundAmont
,
String
refundDesc
,
Integer
refundStatus
)
{
//退款子流程: 订单基础,退款描述,退款金额
//退款子流程: 订单基础,退款描述,退款金额
baseOrderBiz
.
refundSubProcess
(
baseOrder
,
refundDesc
,
originalRefundAmount
,
refundAmont
,
RefundTypeEnum
.
DEPOSIT
.
getCode
(),
refundStatus
);
refundSubProcess
(
baseOrder
,
refundDesc
,
originalRefundAmount
,
refundAmont
,
RefundTypeEnum
.
DEPOSIT
.
getCode
(),
refundStatus
);
//设置剩余没有返还的钱
//设置剩余没有返还的钱
orderRentVehicleBiz
.
updateSelectiveById
(
new
OrderRentVehicleDetail
(){{
orderRentVehicleBiz
.
updateSelectiveById
(
new
OrderRentVehicleDetail
(){{
setId
(
orvd
.
getId
());
setId
(
orvd
.
getId
());
setReturnPayResidue
(
residueAmount
);
setReturnPayResidue
(
residueAmount
);
}});
}});
}
}
/**
* 租车退款流程(不含押金的通用方法)
* @param baseOrder
* @param startTime
* @param dicParentKey
*/
public
void
rentRefundProcess
(
BaseOrder
baseOrder
,
Long
startTime
,
String
dicParentKey
){
rentRefundProcess
(
baseOrder
,
BigDecimal
.
ZERO
,
startTime
,
dicParentKey
);
}
/**
* 租车(包括旅游)退款流程(含押金)
* @param baseOrder
* @param depositAmount
* @param timeLag 与开始时间的时间差
* @param dicParentKey
*/
public
void
rentRefundProcess
(
BaseOrder
baseOrder
,
BigDecimal
depositAmount
,
Long
timeLag
,
String
dicParentKey
)
{
//计算退款金额
// 1、押金 + 租金(规则扣除)
BigDecimal
originalRefundAmount
=
BigDecimal
.
ZERO
.
add
(
baseOrder
.
getGoodsAmount
().
subtract
(
baseOrder
.
getCouponAmount
()));
StringBuilder
refundDescBuilder
=
new
StringBuilder
(
"取消订单退款:"
);
if
(
null
==
depositAmount
)
{
depositAmount
=
BigDecimal
.
ZERO
;
}
//商品价格 - 优惠券减免的价格
BigDecimal
refundGoodsAmount
=
calculateRefund
(
originalRefundAmount
,
timeLag
,
dicParentKey
,
refundDescBuilder
);
//退款金额
BigDecimal
refundAmount
=
depositAmount
.
add
(
refundGoodsAmount
);
originalRefundAmount
=
depositAmount
.
add
(
originalRefundAmount
);
//退款子流程: 订单基础,退款描述,退款金额
refundSubProcess
(
baseOrder
,
refundDescBuilder
.
toString
(),
originalRefundAmount
,
refundAmount
,
RefundTypeEnum
.
ORDER_FUND
.
getCode
(),
RefundStatusEnum
.
ALL
.
getCode
());
}
public
BigDecimal
calculateRefund
(
BigDecimal
goodsAmount
,
Long
timeLag
,
String
dicParentKey
,
StringBuilder
refundDescBuilder
)
{
BigDecimal
refundGoodsAmount
=
goodsAmount
;
//根据时间处理goodsAmount
//获取出发时间 到现在 距离时间
Integer
hourLag
=
Long
.
valueOf
(
timeLag
/(
1000L
*
60L
*
60L
)).
intValue
();
Map
<
String
,
Dictionary
>
dictionaryMap
=
thirdFeign
.
dictionaryGetAll4Map
().
getData
();
Set
<
Dictionary
>
rentRefunds
=
dictionaryMap
.
get
(
dicParentKey
).
getChildrens
();
for
(
com
.
xxfc
.
platform
.
universal
.
entity
.
Dictionary
dic
:
rentRefunds
)
{
if
(
StrUtil
.
isBlank
(
dic
.
getName
()))
{
continue
;
}
String
[]
names
=
dic
.
getName
().
split
(
"\\|"
);
if
(
names
.
length
<
2
)
{
continue
;
}
//符合范围
if
(
IntervalUtil
.
staticIsInTheInterval
(
hourLag
.
toString
(),
names
[
0
])){
refundGoodsAmount
=
new
BigDecimal
((
IntervalUtil
.
evaluate
(
dic
.
getDetail
(),
new
MapContext
(){{
//ga : goodsAmount
set
(
"ga"
,
goodsAmount
);
}})).
toString
());
refundDescBuilder
=
refundDescBuilder
.
insert
(
0
,
names
[
1
]+
","
);
break
;
}
}
return
refundGoodsAmount
;
}
/**
* 退款子流程
* @param baseOrder
* @param refundDesc
* @param refundAmount
* @param refundType
* @param refundStatus
*/
public
void
refundSubProcess
(
BaseOrder
baseOrder
,
String
refundDesc
,
BigDecimal
originalRefundAmount
,
BigDecimal
refundAmount
,
Integer
refundType
,
Integer
refundStatus
)
{
String
refundTradeNo
=
null
;
//0 小于 退款金额
if
(
BigDecimal
.
ZERO
.
compareTo
(
refundAmount
)
<
0
)
{
OrderRefundVo
orv
=
new
OrderRefundVo
(){{
setAmount
(
baseOrder
.
getRealAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setOrderNo
(
baseOrder
.
getNo
());
}};
orv
.
setRefundDesc
(
refundDesc
+
refundAmount
.
toString
());
orv
.
setRefundAmount
(
refundAmount
.
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
refundTradeNo
=
thirdFeign
.
refund
(
orv
).
getData
();
}
//记录订单退款记录
Integer
flag
=
addOrderRefund
(
baseOrder
.
getId
(),
refundDesc
,
originalRefundAmount
,
refundAmount
,
refundTradeNo
,
refundType
);
//更新订单的退款状态和退款时间
if
(
SYS_TRUE
.
equals
(
flag
)
&&
null
!=
refundStatus
)
{
baseOrderBiz
.
updateSelectiveByIdReT
(
new
BaseOrder
(){{
setId
(
baseOrder
.
getId
());
setRefundStatus
(
refundStatus
);
setRefundTime
(
System
.
currentTimeMillis
());
setVersion
(
baseOrder
.
getVersion
());
}});
}
}
/**
* 记录订单退款记录
* @param orderId
* @param refundDesc
* @param refundAmount
* @param refundTradeNo
*/
private
Integer
addOrderRefund
(
Integer
orderId
,
String
refundDesc
,
BigDecimal
originalRefundAmount
,
BigDecimal
refundAmount
,
String
refundTradeNo
,
Integer
refundType
)
{
//如果返回的流水为空,则当做失败
Integer
refundStatus
=
SYS_TRUE
;
if
(
StrUtil
.
isBlank
(
refundTradeNo
))
{
refundStatus
=
SYS_FALSE
;
}
//创建订单退款记录
OrderRefund
orderRefund
=
new
OrderRefund
(){{
setOrderId
(
orderId
);
setRefundTime
(
System
.
currentTimeMillis
());
setTradeNo
(
refundTradeNo
);
setRefundType
(
RefundTypeEnum
.
ORDER_FUND
.
getCode
());
}};
orderRefund
.
setOriginalRefundAmount
(
originalRefundAmount
);
orderRefund
.
setDeductAmount
(
originalRefundAmount
.
subtract
(
refundAmount
));
orderRefund
.
setRefundAmount
(
refundAmount
);
orderRefund
.
setRefundDesc
(
refundDesc
);
orderRefund
.
setRefundStatus
(
refundStatus
);
orderRefund
.
setRefundType
(
refundType
);
insertSelective
(
orderRefund
);
return
refundStatus
;
}
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/inner/OrderCancelBiz.java
0 → 100644
View file @
a537f95d
package
com
.
xxfc
.
platform
.
order
.
biz
.
inner
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.util.IntervalUtil
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.order.biz.*
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.RefundStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.RefundTypeEnum
;
import
com.xxfc.platform.order.entity.*
;
import
com.xxfc.platform.order.pojo.mq.OrderMQDTO
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.universal.dto.SmsTemplateDTO
;
import
com.xxfc.platform.universal.entity.Dictionary
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.universal.vo.OrderRefundVo
;
import
com.xxfc.platform.vehicle.common.RestResponse
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.pojo.CompanyDetail
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.jexl2.MapContext
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_FALSE
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_TRUE
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.*;
/**
* 订单退款记录表
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-18 11:08:09
*/
@Slf4j
@Service
public
class
OrderCancelBiz
{
@Autowired
BaseOrderBiz
baseOrderBiz
;
@Autowired
OrderMemberDetailBiz
orderMemberDetailBiz
;
@Autowired
OrderTourDetailBiz
orderTourDetailBiz
;
@Autowired
OrderRentVehicleBiz
orderRentVehicleBiz
;
@Autowired
OrderRefundBiz
orderRefundBiz
;
@Autowired
OrderMsgBiz
orderMsgBiz
;
@Autowired
UserFeign
userFeign
;
@Autowired
VehicleFeign
vehicleFeign
;
@Autowired
TourFeign
tourFeign
;
@Autowired
ThirdFeign
thirdFeign
;
private
static
Map
<
Integer
,
List
<
Integer
>>
cancelAble
;
static
{
cancelAble
=
new
HashMap
<
Integer
,
List
<
Integer
>>();
cancelAble
.
put
(
OrderTypeEnum
.
RENT_VEHICLE
.
getCode
(),
new
LinkedList
<
Integer
>(){{
add
(
OrderStatusEnum
.
ORDER_UNPAY
.
getCode
());
add
(
OrderStatusEnum
.
ORDER_TOSTART
.
getCode
());
}});
cancelAble
.
put
(
OrderTypeEnum
.
TOUR
.
getCode
(),
new
LinkedList
<
Integer
>(){{
add
(
OrderStatusEnum
.
ORDER_UNPAY
.
getCode
());
add
(
OrderStatusEnum
.
ORDER_TOSTART
.
getCode
());
}});
cancelAble
.
put
(
OrderTypeEnum
.
MEMBER
.
getCode
(),
new
LinkedList
<
Integer
>(){{
add
(
OrderStatusEnum
.
ORDER_UNPAY
.
getCode
());
}});
}
/**
* 取消订单
* @param baseOrder
*/
@Transactional
public
void
cancel
(
BaseOrder
baseOrder
)
{
OrderRentVehicleDetail
orvd
=
new
OrderRentVehicleDetail
();
OrderTourDetail
otd
=
new
OrderTourDetail
();
OrderMemberDetail
omd
=
new
OrderMemberDetail
();
if
(
cancelAble
.
get
(
baseOrder
.
getType
()).
contains
(
baseOrder
.
getStatus
()))
{
BaseOrder
updateOrder
=
new
BaseOrder
(){{
setId
(
baseOrder
.
getId
());
setStatus
(
OrderStatusEnum
.
ORDER_CANCEL
.
getCode
());
setCancelReason
(
baseOrder
.
getCancelReason
());
setVersion
(
baseOrder
.
getVersion
());
}};
BaseOrder
hasUpdateOrder
=
baseOrderBiz
.
updateSelectiveByIdReT
(
updateOrder
);
//触发退款流程
//判断是否已支付
if
(
SYS_TRUE
.
equals
(
baseOrder
.
getHasPay
()))
{
//判断订单类型
if
(
OrderTypeEnum
.
RENT_VEHICLE
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
orvd
=
orderRentVehicleBiz
.
selectOne
(
new
OrderRentVehicleDetail
(){{
setOrderId
(
baseOrder
.
getId
());
}});
//如果超过出发时间,不能取消订单
//根据时间处理goodsAmount
//获取出发时间 到现在 距离时间
Long
timeLag
=
orvd
.
getStartTime
()
-
System
.
currentTimeMillis
();
if
(
timeLag
<
0
)
{
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
,
new
HashSet
<
String
>(){{
add
(
"已超过出发时间,不能取消订单"
);
}});
}
//退款流程
orderRefundBiz
.
rentRefundProcess
(
hasUpdateOrder
,
orvd
.
getDeposit
(),
timeLag
,
APP_ORDER
+
"_"
+
RENT_REFUND
);
//已付款的取消订单发送消息
try
{
AppUserDTO
appUserDTO
=
userFeign
.
userDetailById
(
baseOrder
.
getUserId
()).
getData
();
//处理后台用户提醒短信的发送
orderMsgBiz
.
handelBgUserMsg4Pay
(
orvd
,
baseOrder
,
appUserDTO
,
OrderMsgBiz
.
RENT_CANCEL
);
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
}
else
if
(
OrderTypeEnum
.
TOUR
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
otd
=
orderTourDetailBiz
.
selectOne
(
new
OrderTourDetail
(){{
setOrderId
(
baseOrder
.
getId
());
}});
Long
timeLag
=
otd
.
getStartTime
()
-
System
.
currentTimeMillis
();
//判断是省内还是省外
String
key
=
TOUR_IN_REFUND
;
if
(
SYS_TRUE
.
equals
(
otd
.
getIsOutside
()))
{
key
=
TOUR_REFUND
;
}
//退款流程
orderRefundBiz
.
rentRefundProcess
(
hasUpdateOrder
,
timeLag
,
APP_ORDER
+
"_"
+
key
);
}
}
//处理取消流程
if
(
OrderTypeEnum
.
RENT_VEHICLE
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
orvd
=
orderRentVehicleBiz
.
selectOne
(
new
OrderRentVehicleDetail
(){{
setOrderId
(
baseOrder
.
getId
());
}});
//取消租车预定
//已支付,并且是待出行状态,取消预约
if
(
OrderStatusEnum
.
ORDER_TOSTART
.
equals
(
baseOrder
.
getType
())
&&
SYS_TRUE
.
equals
(
baseOrder
.
getHasPay
())){
vehicleFeign
.
unbookVehicle
(
orvd
.
getBookRecordId
());
}
else
{
//未支付,拒绝之前的预约
RestResponse
<
Integer
>
restResponse
=
vehicleFeign
.
rentRejectVehicleBooking
(
orvd
.
getBookRecordId
());
}
//取消租车免费天数使用
if
(
null
!=
orvd
.
getFreeDays
()
&&
orvd
.
getFreeDays
()
>
0
)
{
int
result
=
userFeign
.
memberDays
(
baseOrder
.
getUserId
(),
orvd
.
getFreeDays
(),
UserFeign
.
MEMBER_DAYS_WITHDRAW
);
if
(
result
<
0
)
{
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
);
}
}
}
else
if
(
OrderTypeEnum
.
TOUR
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
otd
=
orderTourDetailBiz
.
selectOne
(
new
OrderTourDetail
(){{
setOrderId
(
baseOrder
.
getId
());
}});
//增加库存
tourFeign
.
stock
(
otd
.
getSpePriceId
(),
otd
.
getTotalNumber
(),
TourFeign
.
STOCK_PLUS
);
}
//发送队列消息
baseOrderBiz
.
sendOrderMq
(
orvd
,
otd
,
omd
,
baseOrder
,
OrderMQDTO
.
ORDER_CANCEL
);
}
else
{
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
);
}
}
}
\ No newline at end of file
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mqhandler/RabbitConsumer.java
View file @
a537f95d
...
@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
...
@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.rabbitmq.client.Channel
;
import
com.rabbitmq.client.Channel
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.biz.inner.OrderCancelBiz
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.core.Message
;
...
@@ -26,7 +27,7 @@ import static com.xxfc.platform.order.config.RabbitDelayConfig.ORDER_CANCEL_QUE;
...
@@ -26,7 +27,7 @@ import static com.xxfc.platform.order.config.RabbitDelayConfig.ORDER_CANCEL_QUE;
public
class
RabbitConsumer
{
public
class
RabbitConsumer
{
@Autowired
@Autowired
BaseOrderBiz
baseOrder
Biz
;
OrderCancelBiz
orderCancel
Biz
;
/**
/**
...
@@ -42,7 +43,7 @@ public class RabbitConsumer {
...
@@ -42,7 +43,7 @@ public class RabbitConsumer {
//通知 MQ 消息已被接收,可以ACK(从队列中删除)了
//通知 MQ 消息已被接收,可以ACK(从队列中删除)了
channel
.
basicAck
(
message
.
getMessageProperties
().
getDeliveryTag
(),
false
);
channel
.
basicAck
(
message
.
getMessageProperties
().
getDeliveryTag
(),
false
);
try
{
try
{
baseOrder
Biz
.
cancel
(
baseOrder
);
orderCancel
Biz
.
cancel
(
baseOrder
);
}
catch
(
BaseException
e
)
{
}
catch
(
BaseException
e
)
{
if
(
ResultCode
.
DB_OPERATION_FAIL_CODE
==
e
.
getStatus
())
{
if
(
ResultCode
.
DB_OPERATION_FAIL_CODE
==
e
.
getStatus
())
{
log
.
info
(
"取消操作被取消;订单id:"
+
baseOrder
.
getId
());
log
.
info
(
"取消操作被取消;订单id:"
+
baseOrder
.
getId
());
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/BaseOrderController.java
View file @
a537f95d
...
@@ -22,6 +22,7 @@ import com.xxfc.platform.order.biz.BaseOrderBiz;
...
@@ -22,6 +22,7 @@ import com.xxfc.platform.order.biz.BaseOrderBiz;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
import
com.xxfc.platform.order.biz.OrderUserLicenseBiz
;
import
com.xxfc.platform.order.biz.OrderUserLicenseBiz
;
import
com.xxfc.platform.order.biz.OrderVehicalCrosstownBiz
;
import
com.xxfc.platform.order.biz.OrderVehicalCrosstownBiz
;
import
com.xxfc.platform.order.biz.inner.OrderCancelBiz
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderUserLicense
;
import
com.xxfc.platform.order.entity.OrderUserLicense
;
...
@@ -70,21 +71,30 @@ public class BaseOrderController extends CommonBaseController implements UserRes
...
@@ -70,21 +71,30 @@ public class BaseOrderController extends CommonBaseController implements UserRes
public
static
final
Integer
STATUS_SUCCESS
=
1
;
public
static
final
Integer
STATUS_SUCCESS
=
1
;
@Autowired
@Autowired
BaseOrderBiz
baseOrderBiz
;
BaseOrderBiz
baseOrderBiz
;
@Autowired
OrderMemberDetailBiz
orderMemberDetailBiz
;
@Autowired
OrderUserLicenseBiz
orderUserLicenseBiz
;
@Autowired
OrderVehicalCrosstownBiz
orderVehicalCrosstownBiz
;
@Autowired
OrderCancelBiz
orderCancelBiz
;
@Autowired
@Autowired
ThirdFeign
thirdFeign
;
ThirdFeign
thirdFeign
;
@Autowired
@Autowired
UserFeign
userFeign
;
UserFeign
userFeign
;
@Resource
@Resource
VehicleFeign
vehicleFeign
;
VehicleFeign
vehicleFeign
;
@Autowired
RabbitProduct
rabbitProduct
;
@Autowired
@Autowired
OrderMemberDetailBiz
orderMemberDetailBiz
;
RabbitProduct
rabbitProduct
;
@Autowired
OrderUserLicenseBiz
orderUserLicenseBiz
;
@Autowired
OrderVehicalCrosstownBiz
orderVehicalCrosstownBiz
;
@Override
@Override
public
UserFeign
getUserFeign
()
{
public
UserFeign
getUserFeign
()
{
...
@@ -420,7 +430,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes
...
@@ -420,7 +430,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes
}
}
dbBaseOrder
.
setCancelReason
(
cancelOrderDto
.
getCancelReason
());
dbBaseOrder
.
setCancelReason
(
cancelOrderDto
.
getCancelReason
());
baseOrder
Biz
.
cancel
(
dbBaseOrder
);
orderCancel
Biz
.
cancel
(
dbBaseOrder
);
return
ObjectRestResponse
.
succ
();
return
ObjectRestResponse
.
succ
();
}
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderRefundController.java
View file @
a537f95d
...
@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.common.util.Query;
...
@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.common.util.Query;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.biz.OrderRefundBiz
;
import
com.xxfc.platform.order.biz.OrderRefundBiz
;
import
com.xxfc.platform.order.biz.inner.OrderCancelBiz
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.OrderRefund
;
import
com.xxfc.platform.order.entity.OrderRefund
;
import
com.xxfc.platform.order.pojo.order.OrderPageVO
;
import
com.xxfc.platform.order.pojo.order.OrderPageVO
;
...
@@ -35,6 +36,9 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
...
@@ -35,6 +36,9 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
@Autowired
@Autowired
BaseOrderBiz
baseOrderBiz
;
BaseOrderBiz
baseOrderBiz
;
@Autowired
OrderRefundBiz
orderRefundBiz
;
@Autowired
@Autowired
UserFeign
userFeign
;
UserFeign
userFeign
;
...
@@ -61,7 +65,7 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
...
@@ -61,7 +65,7 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
switch
(
orderTypeEnum
)
{
switch
(
orderTypeEnum
)
{
case
RENT_VEHICLE:
case
RENT_VEHICLE:
orderRefundAmount
=
baseOrder
Biz
.
calculateRefund
(
orderPageVO
.
getGoodsAmount
().
subtract
(
orderPageVO
.
getCouponAmount
())
orderRefundAmount
=
orderRefund
Biz
.
calculateRefund
(
orderPageVO
.
getGoodsAmount
().
subtract
(
orderPageVO
.
getCouponAmount
())
,
orderPageVO
.
getOrderRentVehicleDetail
().
getStartTime
()
-
System
.
currentTimeMillis
()
,
orderPageVO
.
getOrderRentVehicleDetail
().
getStartTime
()
-
System
.
currentTimeMillis
()
,
DictionaryKey
.
APP_ORDER
+
"_"
+
DictionaryKey
.
RENT_REFUND
,
DictionaryKey
.
APP_ORDER
+
"_"
+
DictionaryKey
.
RENT_REFUND
,
refundDescBuilder
);
,
refundDescBuilder
);
...
@@ -72,7 +76,7 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
...
@@ -72,7 +76,7 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
if
(
SYS_TRUE
.
equals
(
orderPageVO
.
getOrderTourDetail
().
getIsOutside
()))
{
if
(
SYS_TRUE
.
equals
(
orderPageVO
.
getOrderTourDetail
().
getIsOutside
()))
{
key
=
TOUR_REFUND
;
key
=
TOUR_REFUND
;
}
}
orderRefundAmount
=
baseOrder
Biz
.
calculateRefund
(
orderPageVO
.
getGoodsAmount
().
subtract
(
orderPageVO
.
getCouponAmount
())
orderRefundAmount
=
orderRefund
Biz
.
calculateRefund
(
orderPageVO
.
getGoodsAmount
().
subtract
(
orderPageVO
.
getCouponAmount
())
,
orderPageVO
.
getOrderTourDetail
().
getStartTime
()
-
System
.
currentTimeMillis
()
,
orderPageVO
.
getOrderTourDetail
().
getStartTime
()
-
System
.
currentTimeMillis
()
,
DictionaryKey
.
APP_ORDER
+
"_"
+
DictionaryKey
.
RENT_REFUND
,
DictionaryKey
.
APP_ORDER
+
"_"
+
DictionaryKey
.
RENT_REFUND
,
refundDescBuilder
);
,
refundDescBuilder
);
...
...
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