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
d012c2f4
Commit
d012c2f4
authored
Jul 02, 2019
by
周健威
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改bug
parent
c4813872
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
377 additions
and
71 deletions
+377
-71
BaseException.java
...thub/wxiaoqi/security/common/exception/BaseException.java
+6
-0
IntervalUtil.java
...com/github/wxiaoqi/security/common/util/IntervalUtil.java
+146
-0
ResultCode.java
...thub/wxiaoqi/security/common/util/process/ResultCode.java
+2
-0
OrderStatusEnum.java
...xfc/platform/order/contant/enumerate/OrderStatusEnum.java
+1
-1
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+77
-15
OrderRentVehicleController.java
.../xxfc/platform/order/rest/OrderRentVehicleController.java
+1
-0
AbstractOrderHandle.java
.../com/xxfc/platform/order/service/AbstractOrderHandle.java
+4
-0
OrderMemberService.java
...a/com/xxfc/platform/order/service/OrderMemberService.java
+3
-2
OrderRentVehicleService.java
.../xxfc/platform/order/service/OrderRentVehicleService.java
+34
-31
OrderTourService.java
...ava/com/xxfc/platform/order/service/OrderTourService.java
+26
-7
DictionaryKey.java
...a/com/xxfc/platform/universal/constant/DictionaryKey.java
+31
-0
ThirdFeign.java
...in/java/com/xxfc/platform/universal/feign/ThirdFeign.java
+3
-0
DictionaryBiz.java
...n/java/com/xxfc/platform/universal/biz/DictionaryBiz.java
+19
-6
DictionaryController.java
...c/platform/universal/controller/DictionaryController.java
+7
-0
VehicleFeign.java
...in/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
+8
-2
VehicleBiz.java
...c/main/java/com/xxfc/platform/vehicle/biz/VehicleBiz.java
+6
-1
VehicleController.java
...ava/com/xxfc/platform/vehicle/rest/VehicleController.java
+3
-6
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/exception/BaseException.java
View file @
d012c2f4
...
@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.common.constant.RestCode;
...
@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.common.constant.RestCode;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Set
;
/**
/**
* Created by ace on 2017/9/8.
* Created by ace on 2017/9/8.
...
@@ -57,4 +58,9 @@ public class BaseException extends RuntimeException {
...
@@ -57,4 +58,9 @@ public class BaseException extends RuntimeException {
super
(
ResultCode
.
getMsg
(
code
)
+
(
map
==
null
?
""
:
map
.
toString
()));
super
(
ResultCode
.
getMsg
(
code
)
+
(
map
==
null
?
""
:
map
.
toString
()));
this
.
status
=
code
;
this
.
status
=
code
;
}
}
public
BaseException
(
int
code
,
Set
<
String
>
set
)
{
super
(
ResultCode
.
getMsg
(
code
)+
(
set
==
null
?
""
:
set
.
toString
()));
this
.
status
=
code
;
}
}
}
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/IntervalUtil.java
0 → 100644
View file @
d012c2f4
package
com
.
github
.
wxiaoqi
.
security
.
common
.
util
;
import
org.apache.commons.jexl2.Expression
;
import
org.apache.commons.jexl2.JexlContext
;
import
org.apache.commons.jexl2.JexlEngine
;
import
org.apache.commons.jexl2.MapContext
;
import
javax.script.ScriptEngine
;
import
javax.script.ScriptEngineManager
;
import
java.util.Map
;
/**
*
* @ClassName: IntervalUtil
* @author: kangyl17909
* @date: 2018年7月3日
*/
public
class
IntervalUtil
{
/**
* 判断data_value是否在interval区间范围内
* @author: kangyl17909
* @date: 2018年7月3日
* @param data_value 数值类型的
* @param interval 正常的数学区间,包括无穷大等,如:(1,3)、>5%、(-∞,6]、(125%,135%)U(70%,80%)
* @return true:表示data_value在区间interval范围内,false:表示data_value不在区间interval范围内
*/
public
boolean
isInTheInterval
(
String
data_value
,
String
interval
)
{
//将区间和data_value转化为可计算的表达式
String
formula
=
getFormulaByAllInterval
(
data_value
,
interval
,
"||"
);
ScriptEngine
jse
=
new
ScriptEngineManager
().
getEngineByName
(
"JavaScript"
);
try
{
//计算表达式
return
(
Boolean
)
jse
.
eval
(
formula
);
}
catch
(
Exception
t
)
{
return
false
;
}
}
/**
* 将所有阀值区间转化为公式:如
* [75,80) =》 date_value < 80 && date_value >= 75
* (125%,135%)U(70%,80%) =》 (date_value < 1.35 && date_value > 1.25) || (date_value < 0.8 && date_value > 0.7)
* @param date_value
* @param interval 形式如:(125%,135%)U(70%,80%)
* @param connector 连接符 如:") || ("
*/
private
String
getFormulaByAllInterval
(
String
date_value
,
String
interval
,
String
connector
)
{
StringBuffer
buff
=
new
StringBuffer
();
for
(
String
limit:
interval
.
split
(
"U"
)){
//如:(125%,135%)U (70%,80%)
buff
.
append
(
"("
).
append
(
getFormulaByInterval
(
date_value
,
limit
,
" && "
)).
append
(
")"
).
append
(
connector
);
}
String
allLimitInvel
=
buff
.
toString
();
int
index
=
allLimitInvel
.
lastIndexOf
(
connector
);
allLimitInvel
=
allLimitInvel
.
substring
(
0
,
index
);
return
allLimitInvel
;
}
/**
* 将整个阀值区间转化为公式:如
* 145) =》 date_value < 145
* [75,80) =》 date_value < 80 && date_value >= 75
* @param date_value
* @param interval 形式如:145)、[75,80)
* @param connector 连接符 如:&&
*/
private
String
getFormulaByInterval
(
String
date_value
,
String
interval
,
String
connector
)
{
StringBuffer
buff
=
new
StringBuffer
();
for
(
String
halfInterval:
interval
.
split
(
","
)){
//如:[75,80)、≥80
buff
.
append
(
getFormulaByHalfInterval
(
halfInterval
,
date_value
)).
append
(
connector
);
}
String
limitInvel
=
buff
.
toString
();
int
index
=
limitInvel
.
lastIndexOf
(
connector
);
limitInvel
=
limitInvel
.
substring
(
0
,
index
);
return
limitInvel
;
}
/**
* 将半个阀值区间转化为公式:如
* 145) =》 date_value < 145
* ≥80% =》 date_value >= 0.8
* [130 =》 date_value >= 130
* <80% =》 date_value < 0.8
* @param halfInterval 形式如:145)、≥80%、[130、<80%
* @param date_value
* @return date_value < 145
*/
private
String
getFormulaByHalfInterval
(
String
halfInterval
,
String
date_value
)
{
halfInterval
=
halfInterval
.
trim
();
if
(
halfInterval
.
contains
(
"∞"
)){
//包含无穷大则不需要公式
return
"1 == 1"
;
}
StringBuffer
formula
=
new
StringBuffer
();
String
data
=
""
;
String
opera
=
""
;
if
(
halfInterval
.
matches
(
"^([<>≤≥\\[\\(]{1}(-?\\d+.?\\d*\\%?))$"
)){
//表示判断方向(如>)在前面 如:≥80%
opera
=
halfInterval
.
substring
(
0
,
1
);
data
=
halfInterval
.
substring
(
1
);
}
else
{
//[130、145)
opera
=
halfInterval
.
substring
(
halfInterval
.
length
()-
1
);
data
=
halfInterval
.
substring
(
0
,
halfInterval
.
length
()-
1
);
}
double
value
=
dealPercent
(
data
);
formula
.
append
(
date_value
).
append
(
" "
).
append
(
opera
).
append
(
" "
).
append
(
value
);
String
a
=
formula
.
toString
();
//转化特定字符
return
a
.
replace
(
"["
,
">="
).
replace
(
"("
,
">"
).
replace
(
"]"
,
"<="
).
replace
(
")"
,
"<"
).
replace
(
"≤"
,
"<="
).
replace
(
"≥"
,
">="
);
}
/**
* 去除百分号,转为小数
* @param str 可能含百分号的数字
* @return
*/
private
double
dealPercent
(
String
str
){
double
d
=
0.0
;
if
(
str
.
contains
(
"%"
)){
str
=
str
.
substring
(
0
,
str
.
length
()-
1
);
d
=
Double
.
parseDouble
(
str
)/
100
;
}
else
{
d
=
Double
.
parseDouble
(
str
);
}
return
d
;
}
public
static
boolean
staticIsInTheInterval
(
String
data_value
,
String
interval
)
{
return
new
IntervalUtil
().
isInTheInterval
(
data_value
,
interval
);
}
public
static
Object
evaluate
(
String
expression
,
JexlContext
jexlContext
)
{
Expression
e
=
new
JexlEngine
().
createExpression
(
expression
);
return
e
.
evaluate
(
jexlContext
);
}
public
static
Object
evaluate
(
String
expression
,
Map
<
String
,
Object
>
jexlContextMap
)
{
Expression
e
=
new
JexlEngine
().
createExpression
(
expression
);
JexlContext
jexlContext
=
new
MapContext
();
jexlContextMap
.
forEach
((
k
,
v
)
->
jexlContext
.
set
(
k
,
v
));
return
e
.
evaluate
(
jexlContext
);
}
public
static
void
main
(
String
[]
args
)
{
IntervalUtil
a
=
new
IntervalUtil
();
System
.
out
.
println
(
a
.
isInTheInterval
(
"6"
,
"(-∞,6]"
));
}
}
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/process/ResultCode.java
View file @
d012c2f4
...
@@ -6,7 +6,9 @@ import com.github.wxiaoqi.security.common.util.SystemProperty;
...
@@ -6,7 +6,9 @@ import com.github.wxiaoqi.security.common.util.SystemProperty;
public
class
ResultCode
{
public
class
ResultCode
{
////////////////////////////参数相关///////////////////////////
////////////////////////////参数相关///////////////////////////
//参数非法,请修改
public
static
int
PARAM_ILLEGAL_CODE
=
Integer
.
valueOf
(
SystemProperty
.
getResultConfig
(
"PARAM_ILLEGAL_CODE"
));
public
static
int
PARAM_ILLEGAL_CODE
=
Integer
.
valueOf
(
SystemProperty
.
getResultConfig
(
"PARAM_ILLEGAL_CODE"
));
//参数时效已过时,不能使用
public
static
int
PARAM_EXPIRE_CODE
=
Integer
.
valueOf
(
SystemProperty
.
getResultConfig
(
"PARAM_EXPIRE_CODE"
));
public
static
int
PARAM_EXPIRE_CODE
=
Integer
.
valueOf
(
SystemProperty
.
getResultConfig
(
"PARAM_EXPIRE_CODE"
));
// 操作成功
// 操作成功
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderStatusEnum.java
View file @
d012c2f4
...
@@ -8,7 +8,7 @@ public enum OrderStatusEnum {
...
@@ -8,7 +8,7 @@ public enum OrderStatusEnum {
ORDER_CRT
(
1
,
"创建订单"
),
ORDER_CRT
(
1
,
"创建订单"
),
ORDER_CANCEL
(
2
,
"取消订单"
),
ORDER_CANCEL
(
2
,
"取消订单"
),
ORDER_UNPAY
(
3
,
"待支付"
),
ORDER_UNPAY
(
3
,
"待支付"
),
ORDER_TOSTART
(
4
,
"待进行(待出行)"
),
ORDER_TOSTART
(
4
,
"待进行(待出行
/租车已支付
)"
),
ORDER_WAIT
(
5
,
"出行中(进行中)"
),
ORDER_WAIT
(
5
,
"出行中(进行中)"
),
ORDER_FINISH
(
6
,
"已完成"
),
ORDER_FINISH
(
6
,
"已完成"
),
;
;
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
d012c2f4
...
@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign;
...
@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.IntervalUtil
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
...
@@ -22,18 +23,19 @@ import com.xxfc.platform.vehicle.common.RestResponse;
...
@@ -22,18 +23,19 @@ import com.xxfc.platform.vehicle.common.RestResponse;
import
com.xxfc.platform.vehicle.entity.VehicleUserLicense
;
import
com.xxfc.platform.vehicle.entity.VehicleUserLicense
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.jexl2.MapContext
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.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
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.*
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_FALSE
;
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
.
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
.
RENT_REFUND
;
/**
/**
*
*
...
@@ -165,6 +167,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
...
@@ -165,6 +167,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* 取消订单
* 取消订单
* @param baseOrder
* @param baseOrder
*/
*/
@Transactional
public
void
cancel
(
BaseOrder
baseOrder
)
{
public
void
cancel
(
BaseOrder
baseOrder
)
{
if
(
cancelAble
.
get
(
baseOrder
.
getType
()).
contains
(
baseOrder
.
getStatus
()))
{
if
(
cancelAble
.
get
(
baseOrder
.
getType
()).
contains
(
baseOrder
.
getStatus
()))
{
BaseOrder
updateOrder
=
new
BaseOrder
(){{
BaseOrder
updateOrder
=
new
BaseOrder
(){{
...
@@ -190,10 +193,14 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
...
@@ -190,10 +193,14 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
}});
}});
//退款流程
//退款流程
re
fundProcess
(
baseOrder
,
orvd
);
re
ntRefundProcess
(
baseOrder
,
orvd
.
getDeposit
(),
orvd
.
getStartTime
(),
APP_ORDER
+
"_"
+
RENT_REFUND
);
}
else
if
(
OrderTypeEnum
.
TOUR
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
}
else
if
(
OrderTypeEnum
.
TOUR
.
getCode
().
equals
(
baseOrder
.
getType
()))
{
OrderTourDetail
otd
=
orderTourDetailBiz
.
selectOne
(
new
OrderTourDetail
(){{
setOrderId
(
baseOrder
.
getId
());
}});
//退款流程
rentRefundProcess
(
baseOrder
,
otd
.
getStartTime
(),
APP_ORDER
+
"_"
+
RENT_REFUND
);
}
}
}
}
...
@@ -202,7 +209,15 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
...
@@ -202,7 +209,15 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
OrderRentVehicleDetail
orvd
=
orderRentVehicleBiz
.
selectOne
(
new
OrderRentVehicleDetail
(){{
OrderRentVehicleDetail
orvd
=
orderRentVehicleBiz
.
selectOne
(
new
OrderRentVehicleDetail
(){{
setOrderId
(
baseOrder
.
getId
());
setOrderId
(
baseOrder
.
getId
());
}});
}});
//取消租车预定
//取消租车预定
//已支付,并且是待出行状态,取消预约
if
(
OrderStatusEnum
.
ORDER_TOSTART
.
equals
(
baseOrder
.
getType
())
&&
SYS_TRUE
.
equals
(
baseOrder
.
getHasPay
())){
vehicleFeign
.
unbookVehicle
(
orvd
.
getBookRecordId
());
}
else
{
//未支付,拒绝之前的预约
vehicleFeign
.
rejectVehicleBooking
(
orvd
.
getBookRecordId
());
}
//取消租车免费天数使用
//取消租车免费天数使用
if
(
null
!=
orvd
.
getFreeDays
()
&&
orvd
.
getFreeDays
()
>
0
)
{
if
(
null
!=
orvd
.
getFreeDays
()
&&
orvd
.
getFreeDays
()
>
0
)
{
...
@@ -225,17 +240,64 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
...
@@ -225,17 +240,64 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
}
}
}
}
private
void
refundProcess
(
BaseOrder
baseOrder
,
OrderRentVehicleDetail
orvd
)
{
private
void
rentRefundProcess
(
BaseOrder
baseOrder
,
Long
startTime
,
String
dicParentKey
){
rentRefundProcess
(
baseOrder
,
BigDecimal
.
ZERO
,
startTime
,
dicParentKey
);
}
private
void
rentRefundProcess
(
BaseOrder
baseOrder
,
BigDecimal
depositAmont
,
Long
startTime
,
String
dicParentKey
)
{
//计算退款金额
//计算退款金额
// 1、押金 + 租金(规则扣除)
// 1、押金 + 租金(规则扣除)
BigDecimal
refundAmont
=
orvd
.
getDeposit
().
add
(
baseOrder
.
getGoodsAmount
());
BigDecimal
refundGoodsAmount
=
baseOrder
.
getGoodsAmount
();
String
refundTradeNo
=
thirdFeign
.
refund
(
new
OrderRefundVo
(){{
String
refundDesc
=
"取消订单退款:"
;
BigDecimal
refundGoodsAmont
=
baseOrder
.
getGoodsAmount
();
BigDecimal
refundAmont
=
BigDecimal
.
ZERO
;
if
(
null
==
depositAmont
)
{
depositAmont
=
BigDecimal
.
ZERO
;
}
//根据时间处理goodsAmount
//获取出发时间 到现在 距离时间
//LocalDateTime StartDay = LocalDateTime.ofInstant(Instant.ofEpochMilli(orvd.getStartTime()), ZoneOffset.ofHours(8));
Long
timeLag
=
startTime
-
System
.
currentTimeMillis
();
Integer
hourLag
=
Long
.
valueOf
(
timeLag
/(
1000L
*
60L
*
60L
)).
intValue
();
Map
<
String
,
com
.
xxfc
.
platform
.
universal
.
entity
.
Dictionary
>
dictionaryMap
=
thirdFeign
.
dictionaryGetAll4Map
().
getData
();
//APP_ORDER+ "_"+ RENT_REFUND
Set
<
com
.
xxfc
.
platform
.
universal
.
entity
.
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
])){
refundGoodsAmont
=
new
BigDecimal
(((
Double
)
IntervalUtil
.
evaluate
(
dic
.
getDetail
(),
new
MapContext
(){{
set
(
"ga"
,
baseOrder
.
getGoodsAmount
());
}})).
toString
());
refundDesc
=
names
[
1
]+
","
+
refundDesc
;
break
;
}
}
refundAmont
=
depositAmont
.
add
(
refundGoodsAmont
);
OrderRefundVo
orv
=
new
OrderRefundVo
(){{
setAmount
(
baseOrder
.
getRealAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setAmount
(
baseOrder
.
getRealAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setRefundAmount
(
refundAmont
.
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setOrderNo
(
baseOrder
.
getNo
());
setOrderNo
(
baseOrder
.
getNo
());
setRefundDesc
(
"取消订单退款:"
+
refundAmont
.
toString
());
}};
}}).
getData
();
orv
.
setRefundDesc
(
refundDesc
+
refundAmont
.
toString
());
orv
.
setRefundAmount
(
refundAmont
.
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
String
refundTradeNo
=
thirdFeign
.
refund
(
orv
).
getData
();
//记录订单退款记录
addOrderRefund
(
baseOrder
.
getId
(),
refundDesc
,
refundAmont
,
refundTradeNo
);
}
private
void
addOrderRefund
(
Integer
orderId
,
String
refundDesc
,
BigDecimal
refundAmont
,
String
refundTradeNo
)
{
//如果返回的流水为空,则当做失败
//如果返回的流水为空,则当做失败
Integer
refundStatus
=
SYS_TRUE
;
Integer
refundStatus
=
SYS_TRUE
;
if
(
StrUtil
.
isBlank
(
refundTradeNo
))
{
if
(
StrUtil
.
isBlank
(
refundTradeNo
))
{
...
@@ -244,13 +306,13 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
...
@@ -244,13 +306,13 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
//创建订单退款记录
//创建订单退款记录
OrderRefund
orderRefund
=
new
OrderRefund
(){{
OrderRefund
orderRefund
=
new
OrderRefund
(){{
setOrderId
(
baseOrder
.
getId
());
setOrderId
(
orderId
);
setRefundAmount
(
refundAmont
);
setRefundTime
(
System
.
currentTimeMillis
());
setRefundTime
(
System
.
currentTimeMillis
());
setRefundDesc
(
"取消订单退款:"
+
refundAmont
.
toString
());
setTradeNo
(
refundTradeNo
);
setTradeNo
(
refundTradeNo
);
setRefundType
(
RefundTypeEnum
.
RentVehicle
.
getCode
());
setRefundType
(
RefundTypeEnum
.
RentVehicle
.
getCode
());
}};
}};
orderRefund
.
setRefundAmount
(
refundAmont
);
orderRefund
.
setRefundDesc
(
refundDesc
);
orderRefund
.
setRefundStatus
(
refundStatus
);
orderRefund
.
setRefundStatus
(
refundStatus
);
orderRefundBiz
.
insertSelective
(
orderRefund
);
orderRefundBiz
.
insertSelective
(
orderRefund
);
}
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderRentVehicleController.java
View file @
d012c2f4
...
@@ -74,6 +74,7 @@ public class OrderRentVehicleController extends CommonBaseController {
...
@@ -74,6 +74,7 @@ public class OrderRentVehicleController extends CommonBaseController {
if
(
StrUtil
.
isNotBlank
(
BaseContextHandler
.
getToken
()))
{
if
(
StrUtil
.
isNotBlank
(
BaseContextHandler
.
getToken
()))
{
bo
.
setAppUserDTO
(
userFeign
.
userDetailByToken
(
BaseContextHandler
.
getToken
()).
getData
());
bo
.
setAppUserDTO
(
userFeign
.
userDetailByToken
(
BaseContextHandler
.
getToken
()).
getData
());
}
}
orderRentVehicleService
.
initDetailSecond
(
bo
);
return
ObjectRestResponse
.
succ
(
orderRentVehicleService
.
calculatePrice
(
bo
));
return
ObjectRestResponse
.
succ
(
orderRentVehicleService
.
calculatePrice
(
bo
));
}
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/AbstractOrderHandle.java
View file @
d012c2f4
...
@@ -13,10 +13,12 @@ import com.xxfc.platform.order.entity.BaseOrder;
...
@@ -13,10 +13,12 @@ import com.xxfc.platform.order.entity.BaseOrder;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
com.xxfc.platform.order.mqhandler.RabbitProduct
;
import
com.xxfc.platform.order.mqhandler.RabbitProduct
;
import
com.xxfc.platform.order.pojo.price.OrderPriceVO
;
import
com.xxfc.platform.order.pojo.price.OrderPriceVO
;
import
com.xxfc.platform.universal.entity.Dictionary
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Map
;
@Transactional
@Transactional
public
abstract
class
AbstractOrderHandle
<
Biz
extends
BaseBiz
,
Detail
extends
OrderDetail
>{
public
abstract
class
AbstractOrderHandle
<
Biz
extends
BaseBiz
,
Detail
extends
OrderDetail
>{
...
@@ -26,6 +28,8 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
...
@@ -26,6 +28,8 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
@Autowired
@Autowired
protected
Biz
detailBiz
;
protected
Biz
detailBiz
;
protected
Map
<
String
,
Dictionary
>
dictionaryMap
;
@Autowired
@Autowired
RabbitProduct
rabbitProduct
;
RabbitProduct
rabbitProduct
;
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderMemberService.java
View file @
d012c2f4
...
@@ -24,6 +24,7 @@ import javax.annotation.PostConstruct;
...
@@ -24,6 +24,7 @@ import javax.annotation.PostConstruct;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.HashSet
;
@Service
@Service
@Log4j
@Log4j
...
@@ -69,8 +70,8 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
...
@@ -69,8 +70,8 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
super
.
initDetail
(
bo
);
super
.
initDetail
(
bo
);
BaseUserMemberLevel
buml
=
userFeign
.
level
(
bo
.
getMemberLevel
());
BaseUserMemberLevel
buml
=
userFeign
.
level
(
bo
.
getMemberLevel
());
if
(!
bo
.
getMemberLevelId
().
equals
(
buml
.
getId
()))
{
if
(!
bo
.
getMemberLevelId
().
equals
(
buml
.
getId
()))
{
throw
new
BaseException
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
new
Hash
Map
<
String
,
Object
>(){{
throw
new
BaseException
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
new
Hash
Set
<
String
>(){{
put
(
"MemberLevelId 和 MemberLevel"
,
"
不对称"
);
add
(
"MemberLevelId 和 MemberLevel
不对称"
);
}});
}});
}
}
bo
.
setBaseUserMemberLevel
(
buml
);
bo
.
setBaseUserMemberLevel
(
buml
);
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderRentVehicleService.java
View file @
d012c2f4
...
@@ -20,7 +20,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
...
@@ -20,7 +20,7 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import
com.xxfc.platform.order.entity.OrderTemplate
;
import
com.xxfc.platform.order.entity.OrderTemplate
;
import
com.xxfc.platform.order.pojo.order.RentVehicleBO
;
import
com.xxfc.platform.order.pojo.order.RentVehicleBO
;
import
com.xxfc.platform.order.pojo.price.RentVehiclePriceVO
;
import
com.xxfc.platform.order.pojo.price.RentVehiclePriceVO
;
import
com.xxfc.platform.universal.
entity.Dictionar
y
;
import
com.xxfc.platform.universal.
constant.DictionaryKe
y
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.vehicle.entity.VehicleBookRecord
;
import
com.xxfc.platform.vehicle.entity.VehicleBookRecord
;
import
com.xxfc.platform.vehicle.entity.VehicleModel
;
import
com.xxfc.platform.vehicle.entity.VehicleModel
;
...
@@ -33,8 +33,10 @@ import org.springframework.stereotype.Service;
...
@@ -33,8 +33,10 @@ import org.springframework.stereotype.Service;
import
javax.annotation.PostConstruct
;
import
javax.annotation.PostConstruct
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
static
com
.
github
.
wxiaoqi
.
security
.
admin
.
constant
.
enumerate
.
MemberEnum
.*;
import
static
com
.
github
.
wxiaoqi
.
security
.
admin
.
constant
.
enumerate
.
MemberEnum
.*;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.
APP_ORDER
;
@Service
@Service
@Log4j
@Log4j
...
@@ -47,6 +49,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
...
@@ -47,6 +49,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
private
static
Integer
DISCOUNT_STATUS_NONE
=
0
;
private
static
Integer
DISCOUNT_STATUS_NONE
=
0
;
private
static
Integer
DISCOUNT_STATUS_MEMBER
=
1
;
private
static
Integer
DISCOUNT_STATUS_MEMBER
=
1
;
private
static
Integer
DISCOUNT_STATUS_FIXED
=
2
;
private
static
Integer
DISCOUNT_STATUS_FIXED
=
2
;
private
static
Long
autoCancelTime
;
@Autowired
@Autowired
VehicleFeign
vehicleFeign
;
VehicleFeign
vehicleFeign
;
...
@@ -72,23 +75,21 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
...
@@ -72,23 +75,21 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
@Override
@Override
public
void
initDetail
(
RentVehicleBO
bo
)
{
public
void
initDetail
(
RentVehicleBO
bo
)
{
super
.
initDetail
(
bo
);
super
.
initDetail
(
bo
);
initDetailSecond
(
bo
);
}
public
void
initDetailSecond
(
RentVehicleBO
bo
)
{
initDictionary
();
initDictionary
();
VehicleModel
vehicleModel
=
vehicleFeign
.
get
(
bo
.
getModelId
()).
getData
();
VehicleModel
vehicleModel
=
vehicleFeign
.
get
(
bo
.
getModelId
()).
getData
();
bo
.
setVehicleModel
(
vehicleModel
);
bo
.
setVehicleModel
(
vehicleModel
);
}
}
private
void
initDictionary
()
{
public
void
initDictionary
()
{
Dictionary
driverPriceDic
=
thirdFeign
.
dictionaryGet
(
BeanUtil
.
beanToMap
(
new
Dictionary
(){{
dictionaryMap
=
thirdFeign
.
dictionaryGetAll4Map
().
getData
();
setType
(
"APP_ORDER"
);
this
.
autoCancelTime
=
Long
.
valueOf
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
ACT_RENT
).
getDetail
());
setCode
(
"DRIVER_PRICE"
);
this
.
DRIVER_PRICE
=
new
BigDecimal
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
DRIVER_PRICE
).
getDetail
());
}},
false
,
true
)).
getData
().
get
(
0
);
this
.
DAMAGE_SAFE
=
new
BigDecimal
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
DAMAGE_SAFE
).
getDetail
());
Dictionary
damageSafeDic
=
thirdFeign
.
dictionaryGet
(
BeanUtil
.
beanToMap
(
new
Dictionary
(){{
setType
(
"APP_ORDER"
);
setCode
(
"DAMAGE_SAFE"
);
}},
false
,
true
)).
getData
().
get
(
0
);
this
.
DRIVER_PRICE
=
new
BigDecimal
(
driverPriceDic
.
getDetail
());
this
.
DAMAGE_SAFE
=
new
BigDecimal
(
damageSafeDic
.
getDetail
());
}
}
@Override
@Override
...
@@ -112,9 +113,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
...
@@ -112,9 +113,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
super
.
handleDetail
(
bo
);
super
.
handleDetail
(
bo
);
//发送定时取消订单(30分钟)
//发送定时取消订单(数据字典设置--5分钟)
//rabbitProduct.sendDelayMessage(bo.getOrder(), 1000L * 60 * 30);
rabbitProduct
.
sendDelayMessage
(
bo
.
getOrder
(),
autoCancelTime
);
rabbitProduct
.
sendDelayMessage
(
bo
.
getOrder
(),
1000L
*
60
*
5
);
}
}
@Override
@Override
...
@@ -139,8 +139,10 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
...
@@ -139,8 +139,10 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//如果用户存在,并且为会员,并且车辆有优惠价
//如果用户存在,并且为会员,并且车辆有优惠价
if
(
null
!=
dto
&&
null
!=
detail
.
getRentFreeDay
()
&&
detail
.
getRentFreeDay
()
>
0
)
{
if
(
null
!=
dto
&&
null
!=
detail
.
getRentFreeDay
()
&&
detail
.
getRentFreeDay
()
>
0
)
{
if
(
dto
.
getRentFreeDays
()
<=
0
)
{
if
(
null
==
dto
.
getRentFreeDays
()
||
dto
.
getRentFreeDays
()
<=
0
)
{
throw
new
BaseException
(
ResultCode
.
PARAM_EXPIRE_CODE
);
throw
new
BaseException
(
ResultCode
.
PARAM_EXPIRE_CODE
,
new
HashSet
<
String
>()
{{
add
(
"免费租车天数不存在或为0"
);
}});
}
}
if
(
detail
.
getDayNum
()
>
dto
.
getRentFreeDays
())
{
if
(
detail
.
getDayNum
()
>
dto
.
getRentFreeDays
())
{
freeDayNum
=
dto
.
getRentFreeDays
();
freeDayNum
=
dto
.
getRentFreeDays
();
...
@@ -194,25 +196,26 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
...
@@ -194,25 +196,26 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
orderAmount
=
orderAmount
.
add
(
goodsAmount
).
add
(
vehicleModel
.
getDeposit
());
orderAmount
=
orderAmount
.
add
(
goodsAmount
).
add
(
vehicleModel
.
getDeposit
());
//生成订单明细
//生成订单明细
RentVehiclePriceVO
rvp
=
new
RentVehiclePriceVO
();
RentVehiclePriceVO
rvp
=
new
RentVehiclePriceVO
(){{
rvp
.
setOrderAmount
(
orderAmount
);
setOrderAmount
(
orderAmount
);
rvp
.
setGoodsAmount
(
goodsAmount
);
setGoodsAmount
(
goodsAmount
);
setRealAmount
(
orderAmount
);
setDeposit
(
vehicleModel
.
getDeposit
());
setDriverPrice
(
DRIVER_PRICE
);
setDamageSafePrice
(
DAMAGE_SAFE
);
setModelName
(
vehicleModel
.
getName
());
setDayNum
(
detail
.
getDayNum
());
setVehicleNum
(
1
);
setDriverNum
(
1
);
}};
rvp
.
setDriverAmount
(
driverAmount
);
rvp
.
setDriverAmount
(
driverAmount
);
rvp
.
setVehicleAmount
(
vehicleAmount
);
rvp
.
setVehicleAmount
(
vehicleAmount
);
rvp
.
setDamageSafeAmount
(
damageSafeAmount
);
rvp
.
setDamageSafeAmount
(
damageSafeAmount
);
rvp
.
setRealAmount
(
orderAmount
);
rvp
.
setDeposit
(
vehicleModel
.
getDeposit
());
rvp
.
setModelAmount
(
modelAmount
);
rvp
.
setModelAmount
(
modelAmount
);
rvp
.
setDriverPrice
(
DRIVER_PRICE
);
rvp
.
setDamageSafePrice
(
DAMAGE_SAFE
);
rvp
.
setModelName
(
vehicleModel
.
getName
());
rvp
.
setDayNum
(
detail
.
getDayNum
());
rvp
.
setVehicleDayNum
(
vehicleDayNum
);
rvp
.
setVehicleDayNum
(
vehicleDayNum
);
rvp
.
setVehicleNum
(
1
);
rvp
.
setDriverNum
(
1
);
//设置收费明细
//设置收费明细
costDetail
(
rvp
,
handle
c
hildren
(
detail
,
vehicleDayNum
));
costDetail
(
rvp
,
handle
C
hildren
(
detail
,
vehicleDayNum
));
return
rvp
;
return
rvp
;
}
}
...
@@ -234,7 +237,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
...
@@ -234,7 +237,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
return
modelAmount
;
return
modelAmount
;
}
}
private
String
handle
c
hildren
(
RentVehicleBO
detail
,
Integer
vehicleDayNum
)
{
private
String
handle
C
hildren
(
RentVehicleBO
detail
,
Integer
vehicleDayNum
)
{
StringBuffer
childrenStr
=
new
StringBuffer
(
""
);
StringBuffer
childrenStr
=
new
StringBuffer
(
""
);
if
(
vehicleDayNum
>
0
)
{
if
(
vehicleDayNum
>
0
)
{
childrenStr
.
append
(
",${tem_0101}"
);
childrenStr
.
append
(
",${tem_0101}"
);
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderTourService.java
View file @
d012c2f4
...
@@ -6,7 +6,9 @@ import cn.hutool.core.util.StrUtil;
...
@@ -6,7 +6,9 @@ import cn.hutool.core.util.StrUtil;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.order.biz.OrderCostDetailBiz
;
import
com.xxfc.platform.order.biz.OrderCostDetailBiz
;
import
com.xxfc.platform.order.biz.OrderTemplateBiz
;
import
com.xxfc.platform.order.biz.OrderTemplateBiz
;
import
com.xxfc.platform.order.biz.OrderTourDetailBiz
;
import
com.xxfc.platform.order.biz.OrderTourDetailBiz
;
...
@@ -22,6 +24,8 @@ import com.xxfc.platform.tour.entity.TourGoodVerification;
...
@@ -22,6 +24,8 @@ import com.xxfc.platform.tour.entity.TourGoodVerification;
import
com.xxfc.platform.tour.entity.TourUser
;
import
com.xxfc.platform.tour.entity.TourUser
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.tour.vo.TourSpePriceVo
;
import
com.xxfc.platform.tour.vo.TourSpePriceVo
;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxfc.platform.vehicle.entity.SysRegion
;
import
com.xxfc.platform.vehicle.entity.SysRegion
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.pojo.CompanyDetail
;
import
com.xxfc.platform.vehicle.pojo.CompanyDetail
;
...
@@ -34,11 +38,12 @@ import javax.servlet.http.HttpServletRequest;
...
@@ -34,11 +38,12 @@ import javax.servlet.http.HttpServletRequest;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
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
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_TRUE
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.
APP_ORDER
;
@Service
@Service
@Log4j
@Log4j
...
@@ -49,13 +54,13 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -49,13 +54,13 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
@Autowired
@Autowired
VehicleFeign
vehicleFeign
;
VehicleFeign
vehicleFeign
;
private
static
Integer
IS_CHILD
=
1
;
private
static
Integer
IS_CHILD
=
1
;
private
static
Integer
LEVEL_DEFAULT
=
0
;
private
static
Integer
LEVEL_DEFAULT
=
0
;
private
static
Integer
NUMBER_ZERO
=
0
;
private
static
Integer
NUMBER_ZERO
=
0
;
private
static
BigDecimal
INSURE_PRICE
=
new
BigDecimal
(
"5.00"
);
//保险
private
static
BigDecimal
INSURE_PRICE
;
private
static
Long
autoCancelTime
;
//= new BigDecimal("5.00"); //保险
@Autowired
@Autowired
OrderCostDetailBiz
orderCostDetailBiz
;
OrderCostDetailBiz
orderCostDetailBiz
;
...
@@ -69,6 +74,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -69,6 +74,9 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
@Autowired
@Autowired
UserFeign
userFeign
;
UserFeign
userFeign
;
@Autowired
ThirdFeign
thirdFeign
;
@Autowired
@Autowired
public
HttpServletRequest
request
;
public
HttpServletRequest
request
;
...
@@ -84,11 +92,18 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -84,11 +92,18 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
@Override
@Override
public
void
initDetail
(
TourBO
bo
)
{
public
void
initDetail
(
TourBO
bo
)
{
super
.
initDetail
(
bo
);
super
.
initDetail
(
bo
);
initDictionary
();
TourGood
tourGood
=
tourFeign
.
usableGet
(
bo
.
getGoodId
()).
getData
();
TourGood
tourGood
=
tourFeign
.
usableGet
(
bo
.
getGoodId
()).
getData
();
bo
.
setTourGood
(
tourGood
);
bo
.
setTourGood
(
tourGood
);
bo
.
setAppUserDTO
(
getUserInfo
());
bo
.
setAppUserDTO
(
getUserInfo
());
}
}
public
void
initDictionary
()
{
dictionaryMap
=
thirdFeign
.
dictionaryGetAll4Map
().
getData
();
this
.
INSURE_PRICE
=
new
BigDecimal
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
INSURE_PRICE
).
getDetail
());
this
.
autoCancelTime
=
Long
.
valueOf
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
ACT_TOUR
).
getDetail
());
}
@Override
@Override
public
void
handleDetail
(
TourBO
bo
)
{
public
void
handleDetail
(
TourBO
bo
)
{
//设置订单状态为3
//设置订单状态为3
...
@@ -117,7 +132,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -117,7 +132,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
super
.
handleDetail
(
bo
);
super
.
handleDetail
(
bo
);
//发送定时取消订单(30分钟)
//发送定时取消订单(30分钟)
rabbitProduct
.
sendDelayMessage
(
bo
.
getOrder
(),
1000L
*
60
*
30
);
rabbitProduct
.
sendDelayMessage
(
bo
.
getOrder
(),
autoCancelTime
);
}
}
@Override
@Override
...
@@ -156,6 +171,10 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -156,6 +171,10 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
detail
.
setTotalNumber
(
detail
.
getAdultNum
()
+
detail
.
getChildNum
());
detail
.
setTotalNumber
(
detail
.
getAdultNum
()
+
detail
.
getChildNum
());
}
}
if
(
detail
.
getAdultNum
()
<=
0
)
{
throw
new
BaseException
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
new
HashSet
<
String
>(){{
add
(
"最少一个成人"
);}});
}
//计算旅游价格
//计算旅游价格
ObjectRestResponse
<
TourSpePriceVo
>
objectRestResponse
=
tourFeign
.
refund
(
new
TourSpePriceDTO
(){{
ObjectRestResponse
<
TourSpePriceVo
>
objectRestResponse
=
tourFeign
.
refund
(
new
TourSpePriceDTO
(){{
setChildNumber
(
detail
.
getChildNum
());
setChildNumber
(
detail
.
getChildNum
());
...
@@ -193,11 +212,11 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
...
@@ -193,11 +212,11 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
tpv
.
setTotalNumber
(
detail
.
getTotalNumber
());
tpv
.
setTotalNumber
(
detail
.
getTotalNumber
());
//设置收费明细
//设置收费明细
costDetail
(
tpv
,
handle
c
hildren
(
detail
));
costDetail
(
tpv
,
handle
C
hildren
(
detail
));
return
tpv
;
return
tpv
;
}
}
private
String
handle
c
hildren
(
TourBO
detail
)
{
private
String
handle
C
hildren
(
TourBO
detail
)
{
StringBuffer
childrenStr
=
new
StringBuffer
(
""
);
StringBuffer
childrenStr
=
new
StringBuffer
(
""
);
if
(
NUMBER_ZERO
<
detail
.
getAdultNum
())
{
if
(
NUMBER_ZERO
<
detail
.
getAdultNum
())
{
childrenStr
.
append
(
",${tem_0201}"
);
childrenStr
.
append
(
",${tem_0201}"
);
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/constant/DictionaryKey.java
0 → 100644
View file @
d012c2f4
package
com
.
xxfc
.
platform
.
universal
.
constant
;
public
class
DictionaryKey
{
/**
* 订单类型
*/
public
static
final
String
APP_ORDER
=
"APP_ORDER"
;
/**
* 租车,旅游退款
*/
public
static
final
String
RENT_REFUND
=
"RENT_REFUND"
;
public
static
final
String
TOUR_REFUND
=
"TOUR_REFUND"
;
/**
* 租车:公司司机租金、免赔费用
*/
public
static
final
String
DRIVER_PRICE
=
"DRIVER_PRICE"
;
public
static
final
String
DAMAGE_SAFE
=
"DAMAGE_SAFE"
;
/**
* 旅游:保险费用
*/
public
static
final
String
INSURE_PRICE
=
"INSURE_PRICE"
;
/**
* 自动取消订单时间:租车、旅游
*/
public
static
final
String
ACT_RENT
=
"ACT_RENT"
;
public
static
final
String
ACT_TOUR
=
"ACT_TOUR"
;
}
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/feign/ThirdFeign.java
View file @
d012c2f4
...
@@ -69,4 +69,7 @@ public interface ThirdFeign {
...
@@ -69,4 +69,7 @@ public interface ThirdFeign {
// @GetMapping(value = "/dictionary/get")
// @GetMapping(value = "/dictionary/get")
@RequestMapping
(
value
=
"/dictionary/get"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/dictionary/get"
,
method
=
RequestMethod
.
GET
)
public
ObjectRestResponse
<
List
<
Dictionary
>>
dictionaryGet
(
@RequestParam
(
value
=
"dictionary"
)
Map
<
String
,
Object
>
dictionary
);
public
ObjectRestResponse
<
List
<
Dictionary
>>
dictionaryGet
(
@RequestParam
(
value
=
"dictionary"
)
Map
<
String
,
Object
>
dictionary
);
@RequestMapping
(
value
=
"/dictionary/getAll4Map"
,
method
=
RequestMethod
.
GET
)
public
ObjectRestResponse
<
Map
<
String
,
Dictionary
>>
dictionaryGetAll4Map
();
}
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/biz/DictionaryBiz.java
View file @
d012c2f4
...
@@ -12,10 +12,9 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -12,10 +12,9 @@ import lombok.extern.slf4j.Slf4j;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.StringUtils
;
import
org.springframework.util.StringUtils
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.HashSet
;
import
java.util.function.Function
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.Set
;
@Service
@Service
@Slf4j
@Slf4j
...
@@ -83,6 +82,11 @@ public class DictionaryBiz extends BaseBiz<DictionaryMapper, Dictionary> {
...
@@ -83,6 +82,11 @@ public class DictionaryBiz extends BaseBiz<DictionaryMapper, Dictionary> {
if
(
StringUtils
.
isEmpty
(
type
))
{
if
(
StringUtils
.
isEmpty
(
type
))
{
return
ObjectRestResponse
.
paramIsEmpty
();
return
ObjectRestResponse
.
paramIsEmpty
();
}
}
List
<
Dictionary
>
dictionaryList
=
getParentCommon
(
type
);
return
ObjectRestResponse
.
succ
(
dictionaryList
);
}
private
List
<
Dictionary
>
getParentCommon
(
String
type
)
{
Dictionary
dictionary
=
new
Dictionary
();
Dictionary
dictionary
=
new
Dictionary
();
dictionary
.
setType
(
type
);
dictionary
.
setType
(
type
);
dictionary
.
setPid
(
0
);
dictionary
.
setPid
(
0
);
...
@@ -91,10 +95,19 @@ public class DictionaryBiz extends BaseBiz<DictionaryMapper, Dictionary> {
...
@@ -91,10 +95,19 @@ public class DictionaryBiz extends BaseBiz<DictionaryMapper, Dictionary> {
Set
<
Dictionary
>
dictionaryVoList
=
buildTree
(
parent
.
getId
());
Set
<
Dictionary
>
dictionaryVoList
=
buildTree
(
parent
.
getId
());
parent
.
setChildrens
(
dictionaryVoList
);
parent
.
setChildrens
(
dictionaryVoList
);
}
}
return
ObjectRestResponse
.
succ
(
dictionaryList
)
;
return
dictionaryList
;
}
}
public
Map
<
String
,
Dictionary
>
getAll4Map
(){
// List<Dictionary> dictionaries = this.getParentCommon(null);
List
<
Dictionary
>
dictionaries
=
selectListAll
();
Map
<
String
,
Dictionary
>
dictionaryMap
=
dictionaries
.
parallelStream
().
collect
(
Collectors
.
toMap
(
dic
->
dic
.
getType
()+
"_"
+
dic
.
getCode
()
,
Function
.
identity
(),
(
oldValue
,
newValue
)
->
newValue
));
dictionaryMap
.
forEach
((
k
,
v
)
->
{
v
.
setChildrens
(
buildTree
(
v
.
getId
()));
});
return
dictionaryMap
;
}
public
DictionaryVo
buidTree
(
Dictionary
dictionary
)
{
public
DictionaryVo
buidTree
(
Dictionary
dictionary
)
{
DictionaryVo
dictionaryVo
=
new
DictionaryVo
();
DictionaryVo
dictionaryVo
=
new
DictionaryVo
();
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/controller/DictionaryController.java
View file @
d012c2f4
...
@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
@RestController
@RestController
@RequestMapping
(
value
=
"dictionary"
)
@RequestMapping
(
value
=
"dictionary"
)
...
@@ -47,4 +48,10 @@ public class DictionaryController {
...
@@ -47,4 +48,10 @@ public class DictionaryController {
public
ObjectRestResponse
<
List
<
Dictionary
>>
getParent
(
String
type
)
{
public
ObjectRestResponse
<
List
<
Dictionary
>>
getParent
(
String
type
)
{
return
dictionaryBiz
.
getParent
(
type
);
return
dictionaryBiz
.
getParent
(
type
);
}
}
@GetMapping
(
value
=
"/getAll4Map"
)
@ApiOperation
(
value
=
"获取所有的内容, key为 <type>_<code>"
)
public
ObjectRestResponse
<
Map
<
String
,
Dictionary
>>
getAll4Map
()
{
return
ObjectRestResponse
.
succ
(
dictionaryBiz
.
getAll4Map
());
}
}
}
xx-vehicle/xx-vehicle-api/src/main/java/com/xxfc/platform/vehicle/feign/VehicleFeign.java
View file @
d012c2f4
...
@@ -37,10 +37,16 @@ public interface VehicleFeign {
...
@@ -37,10 +37,16 @@ public interface VehicleFeign {
@RequestMapping
(
value
=
"/branchCompany/app/unauth/detail/{id}"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/branchCompany/app/unauth/detail/{id}"
,
method
=
RequestMethod
.
GET
)
public
ObjectRestResponse
<
CompanyDetail
>
getCompanyDetail
(
@PathVariable
Integer
id
);
public
ObjectRestResponse
<
CompanyDetail
>
getCompanyDetail
(
@PathVariable
Integer
id
);
@RequestMapping
(
value
=
"/unbook/4employee/{bookRecordId}"
,
method
=
RequestMethod
.
DELETE
)
//拒绝预约
@RequestMapping
(
value
=
"/vehicleInfo/book/4employee/reject/{bookRecordId}"
,
method
=
RequestMethod
.
PUT
)
public
RestResponse
<
Integer
>
rejectVehicleBooking
(
@PathVariable
Long
bookRecordId
);
//取消预约
@RequestMapping
(
value
=
"/vehicleInfo/unbook/4employee/{bookRecordId}"
,
method
=
RequestMethod
.
DELETE
)
public
RestResponse
<
Integer
>
unbookVehicle
(
@PathVariable
Long
bookRecordId
);
public
RestResponse
<
Integer
>
unbookVehicle
(
@PathVariable
Long
bookRecordId
);
@RequestMapping
(
value
=
"/book/4employee/prove/{bookRecordId}"
,
method
=
RequestMethod
.
PUT
)
//通过预约
@RequestMapping
(
value
=
"/vehicleInfo/book/4employee/prove/{bookRecordId}"
,
method
=
RequestMethod
.
PUT
)
public
RestResponse
<
Integer
>
proveVehicleBooking
(
@PathVariable
Long
bookRecordId
);
public
RestResponse
<
Integer
>
proveVehicleBooking
(
@PathVariable
Long
bookRecordId
);
//获取分公司列表
//获取分公司列表
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/biz/VehicleBiz.java
View file @
d012c2f4
...
@@ -449,6 +449,11 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
...
@@ -449,6 +449,11 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
if
(
effected
==
0
){
//修改失败,手动回滚
if
(
effected
==
0
){
//修改失败,手动回滚
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
//手动回滚
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
//手动回滚
return
RestResponse
.
code
(
ResCode
.
VEHICLE_BOOKED_RECORD_ALREADY_CHANGED
.
getCode
());
return
RestResponse
.
code
(
ResCode
.
VEHICLE_BOOKED_RECORD_ALREADY_CHANGED
.
getCode
());
}
else
if
(
VehicleBookRecordStatus
.
REJECTED
.
getCode
().
equals
(
rsStatus
)){
//拒绝,则释放bookinfo
bookVehicleVo
.
setUnbookStartDate
(
bookVehicleVo
.
getBookStartDate
());
bookVehicleVo
.
setUnbookEndDate
(
bookVehicleVo
.
getBookEndDate
());
Boolean
hasSuc
=
unbookVehicle
(
bookVehicleVo
);
}
}
return
RestResponse
.
suc
();
return
RestResponse
.
suc
();
}
}
...
@@ -645,7 +650,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
...
@@ -645,7 +650,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
}
}
/**
/**
* 取消预定
* 取消预定
(释放bookinfo)
* @return
* @return
*/
*/
@Transactional
@Transactional
...
...
xx-vehicle/xx-vehicle-server/src/main/java/com/xxfc/platform/vehicle/rest/VehicleController.java
View file @
d012c2f4
...
@@ -42,10 +42,7 @@ import org.springframework.web.multipart.MultipartFile;
...
@@ -42,10 +42,7 @@ import org.springframework.web.multipart.MultipartFile;
import
tk.mybatis.mapper.entity.Example
;
import
tk.mybatis.mapper.entity.Example
;
import
tk.mybatis.mapper.weekend.WeekendSqls
;
import
tk.mybatis.mapper.weekend.WeekendSqls
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.regex.Pattern
;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -401,8 +398,8 @@ public class VehicleController extends BaseController<VehicleBiz> {
...
@@ -401,8 +398,8 @@ public class VehicleController extends BaseController<VehicleBiz> {
//查询可车辆信息
//查询可车辆信息
PageDataVO
<
Vehicle
>
pageDataVO
=
vehicleBiz
.
searchUsableVehicle
(
dto
);
PageDataVO
<
Vehicle
>
pageDataVO
=
vehicleBiz
.
searchUsableVehicle
(
dto
);
if
(
pageDataVO
.
getData
().
size
()
<=
0
)
{
if
(
pageDataVO
.
getData
().
size
()
<=
0
)
{
throw
new
BaseException
(
ResultCode
.
NOTEXIST_CODE
,
new
Hash
Map
<
String
,
Object
>(){{
throw
new
BaseException
(
ResultCode
.
NOTEXIST_CODE
,
new
Hash
Set
<
String
>(){{
put
(
"可用车辆"
,
"
不存在"
);
add
(
"可用车辆
不存在"
);
}});
}});
}
}
bookVehicleVo
.
setVehicleId
(
pageDataVO
.
getData
().
get
(
0
).
getId
());
bookVehicleVo
.
setVehicleId
(
pageDataVO
.
getData
().
get
(
0
).
getId
());
...
...
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