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
0aab3607
Commit
0aab3607
authored
Sep 12, 2019
by
jiaorz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改提前还车逻辑
parent
7dac1ede
Changes
7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
496 additions
and
92 deletions
+496
-92
OrderRentVehicleDetail.java
...om/xxfc/platform/order/entity/OrderRentVehicleDetail.java
+8
-0
DedDetailDTO.java
.../main/java/com/xxfc/platform/order/pojo/DedDetailDTO.java
+2
-1
InProgressVO.java
.../com/xxfc/platform/order/pojo/calculate/InProgressVO.java
+30
-0
OrderPageVO.java
.../java/com/xxfc/platform/order/pojo/order/OrderPageVO.java
+4
-0
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+118
-5
OrderAccountBiz.java
...ain/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
+329
-0
OrderVehicleCrosstownBiz.java
...com/xxfc/platform/order/biz/OrderVehicleCrosstownBiz.java
+5
-86
No files found.
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderRentVehicleDetail.java
View file @
0aab3607
...
...
@@ -315,4 +315,12 @@ public class OrderRentVehicleDetail implements Serializable {
@Column
(
name
=
"back_free_days"
)
Integer
backFreeDays
;
@ApiModelProperty
(
value
=
"违章金额"
)
@Column
(
name
=
"violate_traffic_amount"
)
BigDecimal
violateTrafficAmount
;
@ApiModelProperty
(
value
=
"使用天数"
)
@Column
(
name
=
"used_day"
)
Integer
usedDay
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/DedDetailDTO.java
View file @
0aab3607
...
...
@@ -23,7 +23,8 @@ public class DedDetailDTO {
Integer
id
;
//1、延期, 2、车辆损坏 3、其他
//作为:DedDetail :2、车辆损坏 3、其他
//作为:violate_amount_detail 1--提前还车 2--延期还车
Integer
type
;
//小雨都不知道什么东西
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/calculate/InProgressVO.java
View file @
0aab3607
...
...
@@ -23,6 +23,31 @@ public class InProgressVO {
*/
BigDecimal
extraAmount
=
BigDecimal
.
ZERO
;
/**
* 已使用天数
*/
Integer
usedDays
=
0
;
/**
* 已使用的金额
*/
BigDecimal
usedAmount
=
BigDecimal
.
ZERO
;
/**
* 已使用免费天数
*/
Integer
usedfreeDays
=
0
;
/**
* 已使用的免费天数对应的费用
*/
BigDecimal
usedFreeDaysAmount
=
BigDecimal
.
ZERO
;
/**
* 返回订单款金额
*/
BigDecimal
refundOrderAmount
=
BigDecimal
.
ZERO
;
/**
* 返还的优惠券
*/
...
...
@@ -32,4 +57,9 @@ public class InProgressVO {
* 返还的免费天数
*/
Integer
backFreeDays
=
0
;
String
cancelCostDetail
=
""
;
String
advanceDelayCostDetail
=
""
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/OrderPageVO.java
View file @
0aab3607
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
;
import
com.xxfc.platform.order.entity.*
;
import
com.xxfc.platform.order.pojo.DedDetailDTO
;
import
com.xxfc.platform.vehicle.entity.VehicleUserLicense
;
import
lombok.Data
;
...
...
@@ -33,6 +34,9 @@ public class OrderPageVO extends BaseOrder {
private
String
telephone
;
//订单违约金
private
DedDetailDTO
dedDetailDTO
;
/**
* 車輛編碼
*/
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
0aab3607
This diff is collapsed.
Click to expand it.
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
0 → 100755
View file @
0aab3607
This diff is collapsed.
Click to expand it.
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderVehicleCrosstownBiz.java
View file @
0aab3607
...
...
@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.wxiaoqi.security.admin.entity.AppUserDetail
;
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.UserDTO
;
...
...
@@ -43,7 +42,6 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.TimeZone
;
...
...
@@ -68,24 +66,20 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
@Autowired
UserFeign
userFeign
;
@Autowired
private
OrderRentVehicleBiz
orderRentVehicleBiz
;
OrderRentVehicleBiz
orderRentVehicleBiz
;
@Autowired
private
OrderDepositRefundRecordBiz
orderDepositRefundRecordBiz
;
OrderDepositRefundRecordBiz
orderDepositRefundRecordBiz
;
@Autowired
BaseOrderBiz
baseOrderBiz
;
@Autowired
OrderItemBiz
orderItemBiz
;
@Autowired
OrderCalculateBiz
orderCalculateBiz
;
public
OrderVehicleCrosstown
get
(
Integer
id
)
{
return
selectById
(
id
);
}
public
static
final
DateTimeFormatter
DEFAULT_DATE_TIME_FORMATTER
=
DateTimeFormat
.
forPattern
(
"yyyy-MM-dd"
);
public
List
<
OrderVehicleCrosstownDto
>
selectByOrderId
(
OrderVehicleCrosstownDto
orderVehicleCrosstownDto
)
{
List
<
OrderVehicleCrosstownDto
>
list
=
mapper
.
selectByOrderId
(
orderVehicleCrosstownDto
);
...
...
@@ -172,7 +166,6 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
if
(
baseOrder
==
null
)
{
return
ObjectRestResponse
.
createFailedResult
(
ResCode
.
ORDER_IS_NOT_EXIST
.
getCode
(),
ResCode
.
ORDER_IS_NOT_EXIST
.
getDesc
());
}
OrderRentVehicleDetail
orderRentVehicleDetail
=
orderRentVehicleBiz
.
selectById
(
baseOrder
.
getDetailId
());
if
(
orderVehicleCrosstownDto
.
getType
()
==
CrosstownTypeEnum
.
DEPARTURE
.
getCode
())
{
boolean
flag
=
getTodayTime
(
orderRentVehicleDetail
.
getEndTime
());
...
...
@@ -308,58 +301,14 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
baseOrder
.
setStatus
(
OrderStatusEnum
.
ORDER_WAIT
.
getCode
());
baseOrder
=
baseOrderBiz
.
updateSelectiveByIdReT
(
baseOrder
);
}
else
if
(
baseOrder
.
getStatus
()
==
OrderStatusEnum
.
ORDER_WAIT
.
getCode
())
{
//还车
//提前还车,结束时间大于当前时间
DateTime
nowTime
=
DateTime
.
parse
(
DateTime
.
now
().
toString
(
DEFAULT_DATE_TIME_FORMATTER
),
DEFAULT_DATE_TIME_FORMATTER
);
DateTime
endTime
=
DateTime
.
parse
(
new
DateTime
(
orderRentVehicleDetail
.
getEndTime
()).
toString
(
DEFAULT_DATE_TIME_FORMATTER
),
DEFAULT_DATE_TIME_FORMATTER
);
DateTime
startTime
=
DateTime
.
parse
(
new
DateTime
(
orderRentVehicleDetail
.
getStartTime
()).
toString
(
DEFAULT_DATE_TIME_FORMATTER
),
DEFAULT_DATE_TIME_FORMATTER
);
//实际预定的天数
int
actualDay
=
getDaysBetweenDateTime
(
startTime
,
endTime
);
if
(
orderRentVehicleDetail
.
getEndTime
()
>
nowTime
.
getMillis
())
{
//提前的天数, 当天就算使用一天
int
noUsedDay
=
getDaysBetweenDateTime
(
nowTime
,
endTime
)
-
1
;
//退还未使用的天数,或者金额,扣除违约金,实际未使用天数的金额,最多3000元
InProgressVO
inProgressVO
=
orderCalculateBiz
.
inProgressCalculate
(
baseOrder
,
actualDay
-
noUsedDay
);
if
(
inProgressVO
!=
null
)
{
baseOrder
.
setViolateAmount
(
inProgressVO
.
getViolateAmount
());
baseOrder
.
setExtraAmount
(
inProgressVO
.
getExtraAmount
());
if
(
inProgressVO
.
getBackCoupons
()
!=
null
&&
inProgressVO
.
getBackCoupons
().
size
()
>
0
)
{
StringBuilder
backCoupons
=
new
StringBuilder
();
inProgressVO
.
getBackCoupons
().
forEach
((
a
)
->
backCoupons
.
append
(
a
+
","
));
baseOrder
.
setBackCoupon
(
backCoupons
.
toString
());
}
}
BigDecimal
cost
=
new
BigDecimal
(
0
);
cost
.
add
(
inProgressVO
.
getExtraAmount
()).
add
(
inProgressVO
.
getViolateAmount
());
updateCrossRefund
(
orderVehicleCrosstown
,
cost
,
OrderViolateEnum
.
BEFORE
.
getCode
());
//延期还车,结束时间小于当前时间
}
else
if
(
orderRentVehicleDetail
.
getEndTime
()
<
nowTime
.
getMillis
())
{
//延期的天数, 延期违约金是延期天数*200%
int
usedDay
=
getDaysBetweenDateTime
(
endTime
,
nowTime
);
Integer
orderId
=
baseOrder
.
getId
();
List
<
OrderItem
>
items
=
orderItemBiz
.
selectList
(
new
OrderItem
()
{{
setOrderId
(
orderId
);
}});
BigDecimal
amount
=
new
BigDecimal
(
0
);
if
(
items
!=
null
&&
items
.
size
()
>
0
)
{
for
(
OrderItem
orderItem
:
items
)
{
if
(
orderItem
.
getType
()
==
ItemTypeEnum
.
VEHICLE_MODEL
.
getCode
())
{
amount
=
orderItem
.
getUnitPrice
();
break
;
}
}
}
BigDecimal
cost
=
amount
.
multiply
(
new
BigDecimal
(
usedDay
)).
multiply
(
new
BigDecimal
(
2
));
updateCrossRefund
(
orderVehicleCrosstown
,
cost
,
OrderViolateEnum
.
AFTER
.
getCode
());
}
if
(
orderVehicleCrosstown
.
getType
()
==
CrosstownTypeEnum
.
ARRIVE
.
getCode
())
{
//不定损直接还车
//添加非定损记录
Integer
orderId
=
baseOrder
.
getId
();
List
<
OrderVehicleCrosstownDto
>
list
=
orderVehicleCrosstownBiz
.
selectByOrderId
(
new
OrderVehicleCrosstownDto
(){{
List
<
OrderVehicleCrosstownDto
>
list
=
orderVehicleCrosstownBiz
.
selectByOrderId
(
new
OrderVehicleCrosstownDto
()
{{
setOrderId
(
orderId
);
setType
(
CrosstownTypeEnum
.
ARRIVE
.
getCode
());
}});
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
OrderVehicleCrosstownDto
orderVehicleCrosstownDto
=
list
.
get
(
0
);
OrderVehicleCrosstown
orderVehicleCrosstown1
=
new
OrderVehicleCrosstown
();
BeanUtil
.
copyProperties
(
orderVehicleCrosstownDto
,
orderVehicleCrosstown1
,
CopyOptions
.
create
().
setIgnoreNullValue
(
true
).
setIgnoreError
(
true
));
...
...
@@ -420,28 +369,6 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
}
public
void
updateCrossRefund
(
OrderVehicleCrosstown
orderVehicleCrosstown
,
BigDecimal
cost
,
Integer
type
)
{
DedDetailDTO
dedDetailDTO
=
new
DedDetailDTO
();
String
detailName
=
null
;
if
(
type
==
OrderViolateEnum
.
BEFORE
.
getCode
())
{
dedDetailDTO
.
setType
(
OrderViolateEnum
.
BEFORE
.
getCode
());
detailName
=
"提前还车违约金"
;
}
else
if
(
type
==
OrderViolateEnum
.
AFTER
.
getCode
())
{
dedDetailDTO
.
setType
(
OrderViolateEnum
.
AFTER
.
getCode
());
detailName
=
"延期还车违约金"
;
}
dedDetailDTO
.
setDeductions
(
detailName
);
dedDetailDTO
.
setCost
(
cost
);
dedDetailDTO
.
setId
(
1
);
dedDetailDTO
.
setStatusIndex
(
1
);
dedDetailDTO
.
setStatusName
(
detailName
);
orderVehicleCrosstown
.
setViolateDetail
(
JSONObject
.
toJSONString
(
dedDetailDTO
));
BigDecimal
restDeposit
=
orderVehicleCrosstown
.
getRestDeposit
().
subtract
(
dedDetailDTO
.
getCost
());
orderVehicleCrosstown
.
setRestDeposit
(
restDeposit
);
orderVehicleCrosstown
.
setDeductionCost
(
orderVehicleCrosstown
.
getDeductionCost
().
add
(
dedDetailDTO
.
getCost
()));
orderVehicleCrosstownBiz
.
updateSelectiveByIdRe
(
orderVehicleCrosstown
);
}
//添加订单驾驶人信息
public
void
getOrderLicense
(
OrderVehicleCrosstownDto
orderVehicleCrosstownDto
)
{
...
...
@@ -473,12 +400,4 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
return
false
;
}
//获取两个日期之间的天数
public
int
getDaysBetweenDateTime
(
DateTime
startDay
,
DateTime
endDay
)
{
int
a
=
0
;
for
(
DateTime
curDate
=
startDay
.
plusDays
(
1
);
curDate
.
compareTo
(
endDay
)
<
0
;
curDate
=
curDate
.
plusDays
(
1
))
{
a
++;
}
return
a
;
}
}
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