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
7cdca520
Commit
7cdca520
authored
Nov 28, 2020
by
周健威
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加人身保险
parent
38ba142c
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
105 additions
and
55 deletions
+105
-55
OrderPersonInsurance.java
.../com/xxfc/platform/order/entity/OrderPersonInsurance.java
+6
-2
OrderItemInter.java
.../com/xxfc/platform/order/entity/inter/OrderItemInter.java
+11
-0
RentVehicleBO.java
...ava/com/xxfc/platform/order/pojo/order/RentVehicleBO.java
+8
-0
OrderAccountBiz.java
...ain/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
+13
-7
AbstractOrderHandle.java
.../com/xxfc/platform/order/service/AbstractOrderHandle.java
+3
-0
OrderRentVehicleService.java
.../xxfc/platform/order/service/OrderRentVehicleService.java
+64
-46
No files found.
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderPersonInsurance.java
View file @
7cdca520
...
...
@@ -19,6 +19,10 @@ import lombok.Data;
@Table
(
name
=
"order_person_insurance"
)
public
class
OrderPersonInsurance
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
public
static
final
int
STATUS_PAY
=
1
;
public
static
final
int
STATUS_CNL
=
2
;
public
static
final
int
STATUS_TOPAY
=
3
;
/**
* 主键
...
...
@@ -71,10 +75,10 @@ public class OrderPersonInsurance implements Serializable {
private
BigDecimal
amount
;
/**
* 状态 1--已支付;2--已退款
* 状态 1--已支付;2--已退款
; 3--待支付;
*/
@Column
(
name
=
"status"
)
@ApiModelProperty
(
value
=
"状态 1--已支付;2--已退款"
)
@ApiModelProperty
(
value
=
"状态 1--已支付;2--已退款
; 3--待支付;
"
)
private
Integer
status
;
/**
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/inter/OrderItemInter.java
View file @
7cdca520
package
com
.
xxfc
.
platform
.
order
.
entity
.
inter
;
import
cn.hutool.core.collection.CollUtil
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderItem
;
...
...
@@ -20,4 +21,14 @@ public interface OrderItemInter {
return
null
;
}
default
List
<
OrderItem
>
getItemsByTypeEnum
(
ItemTypeEnum
itemTypeEnum
)
{
List
<
OrderItem
>
returnItems
=
CollUtil
.
newArrayList
();
for
(
OrderItem
item:
getItems
())
{
if
(
itemTypeEnum
.
getCode
().
equals
(
item
.
getType
()))
{
returnItems
.
add
(
item
);
}
}
return
returnItems
;
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/RentVehicleBO.java
View file @
7cdca520
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateUtil
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.xxfc.platform.activity.entity.Coupon
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.entity.OrderPersonInsurance
;
import
com.xxfc.platform.order.entity.inter.OrderDetail
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.pojo.OrderAccompanyDTO
;
...
...
@@ -18,6 +20,8 @@ import java.math.BigDecimal;
import
java.util.Date
;
import
java.util.List
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_FALSE
;
@Data
public
class
RentVehicleBO
extends
OrderRentVehicleDetail
implements
OrderDetail
{
private
BaseOrder
order
;
...
...
@@ -110,6 +114,10 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail
*/
private
String
endDateTimeStr
;
private
Integer
needPersonInsurance
;
private
List
<
OrderPersonInsurance
>
insurances
;
private
List
<
OrderPersonInsurance
>
confirmInsurances
=
CollUtil
.
newArrayList
();
public
void
initDate
()
{
this
.
startDate
=
DateUtil
.
date
(
getStartTime
());
this
.
endDate
=
DateUtil
.
date
(
getEndTime
());
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderAccountBiz.java
View file @
7cdca520
...
...
@@ -47,6 +47,7 @@ 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
.
order
.
entity
.
OrderPersonInsurance
.*;
import
static
com
.
xxfc
.
platform
.
order
.
pojo
.
account
.
OrderAccountDeduction
.
ORIGIN_DEPOSIT
;
import
static
com
.
xxfc
.
platform
.
order
.
pojo
.
account
.
OrderAccountDeduction
.
ORIGIN_ORDER_DEPOSIT
;
import
static
com
.
xxfc
.
platform
.
order
.
pojo
.
pay
.
NotifyUrlDTO
.
PAY_WAY_ALI
;
...
...
@@ -317,9 +318,9 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
return
deductGoodsAmount
;
}
public
BigDecimal
calculatePersonInsurance
(
Long
timeLag
)
{
BigDecimal
amount
=
BigDecimal
.
ZERO
;
public
void
calculatePersonInsurance
(
Long
timeLag
,
OrderPersonInsurance
opi
)
{
opi
.
setAmount
(
BigDecimal
.
ZERO
)
;
opi
.
setStatus
(-
1
);
//获取天
Integer
remainder
=
Long
.
valueOf
(
timeLag
%(
1000L
*
60L
*
60L
*
24L
)).
intValue
();
Integer
dayLag
=
Long
.
valueOf
(
timeLag
/(
1000L
*
60L
*
60L
*
24L
)).
intValue
()
+
remainder
>
0
?
1
:
0
;
...
...
@@ -332,14 +333,19 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
continue
;
}
String
[]
names
=
dic
.
getName
().
split
(
"\\|"
);
if
(
names
.
length
<
2
)
{
continue
;
}
//符合范围
if
(
IntervalUtil
.
staticIsInTheInterval
(
dayLag
.
toString
(),
dic
.
getName
())){
amount
=
new
BigDecimal
(
dic
.
getDetail
());
if
(
IntervalUtil
.
staticIsInTheInterval
(
dayLag
.
toString
(),
names
[
0
])){
opi
.
setAmount
(
new
BigDecimal
(
dic
.
getDetail
()));
opi
.
setStatus
(
STATUS_TOPAY
);
opi
.
setInsuranceDay
(
Integer
.
valueOf
(
names
[
1
]));
break
;
}
}
return
amount
;
}
/**
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/AbstractOrderHandle.java
View file @
7cdca520
...
...
@@ -142,6 +142,9 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
/**
* 处理订单详情
* 1、补充baseorder 信息 update
* 2、插入item
* 3、判断是否支付
* @param detail
*/
public
void
handleDetail
(
Detail
detail
){
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderRentVehicleService.java
View file @
7cdca520
...
...
@@ -16,16 +16,13 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.activity.entity.Coupon
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
import
com.xxfc.platform.order.biz.OrderCostDetailBiz
;
import
com.xxfc.platform.order.biz.OrderRentVehicleBiz
;
import
com.xxfc.platform.order.biz.OrderTemplateBiz
;
import
com.xxfc.platform.order.biz.*
;
import
com.xxfc.platform.order.biz.inner.OrderCalculateBiz
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderCostEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.entity.OrderTemplate
;
import
com.xxfc.platform.order.entity.*
;
import
com.xxfc.platform.order.pojo.OrderAccompanyDTO
;
import
com.xxfc.platform.order.pojo.dto.CompanyWalletDetailDTO
;
import
com.xxfc.platform.order.pojo.order.RentVehicleBO
;
...
...
@@ -36,6 +33,7 @@ import com.xxfc.platform.universal.feign.ThirdFeign;
import
com.xxfc.platform.vehicle.common.RestResponse
;
import
com.xxfc.platform.vehicle.constant.AccompanyingItemType
;
import
com.xxfc.platform.vehicle.entity.*
;
import
com.xxfc.platform.vehicle.entity.BranchCompany
;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO
;
import
com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO
;
...
...
@@ -57,6 +55,8 @@ 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
.
xxfc
.
platform
.
order
.
contant
.
enumerate
.
ItemTypeEnum
.
ACCOMPANY
;
import
static
com
.
xxfc
.
platform
.
order
.
entity
.
OrderPersonInsurance
.
STATUS_PAY
;
import
static
com
.
xxfc
.
platform
.
order
.
entity
.
OrderPersonInsurance
.
STATUS_TOPAY
;
import
static
com
.
xxfc
.
platform
.
order
.
pojo
.
order
.
add
.
AddRentVehicleDTO
.
GOODS_DEPOSIT_TYPE_UP
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.
APP_ORDER
;
...
...
@@ -88,6 +88,15 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
@Autowired
ActivityFeign
activityFeign
;
@Autowired
OrderCalculateBiz
orderCalculateBiz
;
@Autowired
OrderAccountBiz
orderAccountBiz
;
@Autowired
OrderPersonInsuranceBiz
orderPersonInsuranceBiz
;
@PostConstruct
public
void
init
(){
...
...
@@ -323,6 +332,22 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//
bo
.
setMetaEndTime
(
bo
.
getEndTime
());
//插入人身保险列表
if
(
SYS_TRUE
==
bo
.
getNeedPersonInsurance
()){
for
(
OrderPersonInsurance
opi
:
bo
.
getConfirmInsurances
())
{
opi
.
setOrderId
(
bo
.
getOrder
().
getId
());
orderPersonInsuranceBiz
.
insertSelective
(
opi
);
}
}
/**
* 处理订单详情
* 1、补充baseorder 信息 update
* 2、插入item
* 3、判断是否支付
* @param detail
*/
super
.
handleDetail
(
bo
);
}
catch
(
Exception
e
)
{
//事务补偿处理
...
...
@@ -423,6 +448,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
BigDecimal
metaVehicleAmount
=
BigDecimal
.
ZERO
;
BigDecimal
driverAmount
=
BigDecimal
.
ZERO
;
BigDecimal
damageSafeAmount
=
BigDecimal
.
ZERO
;
BigDecimal
personInsuranceAmount
=
BigDecimal
.
ZERO
;
BigDecimal
couponAmount
=
BigDecimal
.
ZERO
;
BigDecimal
depositAmount
=
BigDecimal
.
ZERO
;
String
couponDesc
=
""
;
...
...
@@ -455,8 +481,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
,
VehicleItemDTO
.
class
);
OrderItem
driverOrderItem
=
orderItemBiz
.
initOrderItem
(
DRIVER_PRICE
,
detail
.
getDayNum
(),
"平台司机"
,
null
,
ItemTypeEnum
.
DRIVER
);
OrderItem
damageSafeOrderItem
=
orderItemBiz
.
initOrderItem
(
DAMAGE_SAFE
,
detail
.
getDayNum
(),
"免赔费用"
,
null
,
ItemTypeEnum
.
DAMAGE_SAFE
);
//OrderItem personInsuranceOrderItem = orderItemBiz.initOrderItem(DAMAGE_SAFE, detail.getDayNum(), "免赔费用", null, ItemTypeEnum.PERSON_INSURANCE);
// OrderItem personInsuranceOrderItem = orderItemBiz.initOrderItem(DAMAGE_SAFE, detail.getDayNum(), "免赔费用", null, ItemTypeEnum.PERSON_INSURANCE);
detail
.
setItems
(
new
ArrayList
<
OrderItem
>());
detail
.
getItems
().
add
(
vehicleOrderItem
);
...
...
@@ -534,8 +559,22 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
detail
.
getItems
().
add
(
damageSafeOrderItem
);
}
if
(
SYS_TRUE
==
detail
.
getNeedPersonInsurance
()
&&
CollUtil
.
isNotEmpty
(
detail
.
getInsurances
()))
{
for
(
OrderPersonInsurance
opi
:
detail
.
getInsurances
())
{
opi
.
setOrderDay
(
detail
.
getDayNum
());
//计算天数
orderAccountBiz
.
calculatePersonInsurance
(
detail
.
getEndTime
()
-
detail
.
getStartTime
(),
opi
);
if
(
STATUS_TOPAY
==
opi
.
getStatus
())
{
detail
.
getConfirmInsurances
().
add
(
BeanUtil
.
toBean
(
opi
,
OrderPersonInsurance
.
class
));
OrderItem
personInsuranceOrderItem
=
orderItemBiz
.
initOrderItem
(
opi
.
getAmount
(),
1
,
"人身保险"
,
null
,
ItemTypeEnum
.
PERSON_INSURANCE
,
JSONUtil
.
toJsonStr
(
opi
));
detail
.
getItems
().
add
(
personInsuranceOrderItem
);
personInsuranceAmount
=
personInsuranceAmount
.
add
(
opi
.
getAmount
());
}
}
}
//商品价格
goodsAmount
=
goodsAmount
.
add
(
vehicleAmount
).
add
(
driverAmount
).
add
(
damageSafeAmount
);
goodsAmount
=
goodsAmount
.
add
(
vehicleAmount
).
add
(
driverAmount
).
add
(
damageSafeAmount
)
.
add
(
personInsuranceAmount
)
;
//vehicleAmount 优惠券处理
if
(
null
!=
detail
.
getTickerNo
()
&&
detail
.
getTickerNo
().
size
()
>
0
)
{
...
...
@@ -616,6 +655,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
BigDecimal
metaVehicleAmount
=
BigDecimal
.
ZERO
;
BigDecimal
driverAmount
=
BigDecimal
.
ZERO
;
BigDecimal
damageSafeAmount
=
BigDecimal
.
ZERO
;
BigDecimal
personInsuranceAmount
=
BigDecimal
.
ZERO
;
BigDecimal
couponAmount
=
BigDecimal
.
ZERO
;
BigDecimal
depositAmount
=
BigDecimal
.
ZERO
;
String
couponDesc
=
""
;
...
...
@@ -655,28 +695,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
detail
.
setItems
(
new
ArrayList
<
OrderItem
>());
detail
.
getItems
().
add
(
vehicleOrderItem
);
// //如果用户存在,免费天数
// if(null != dto && null != detail.getRentFreeDay() && detail.getRentFreeDay() > 0 ) {
// if(null == dto.getRentFreeDays() || dto.getRentFreeDays() <= 0) {
// throw new BaseException(ResultCode.PARAM_EPIRE_CODE, new HashSet<String>() {{
// add("免费租车天数不存在或为0");
// }});
// }
//
//// //循环价格列表 获得对应消耗的免费天数
// vehicleOrderItem.initDetail(dto.getRentFreeDays());
// freeDayNum = vehicleOrderItem.getCutNum();
// offsetNum = vehicleOrderItem.getOffsetNum();
// vehicleDayNum = detail.getDayNum() - offsetNum;
// detail.getOrder().setHasMemberRight(SYS_TRUE);
// }else {
// vehicleOrderItem.initDetail(0);
// vehicleDayNum = detail.getDayNum();
// }
//
// vmcpds = vehicleOrderItem.getVehicleDetail();
// detail.setFreeDays(freeDayNum);
vehicleOrderItem
.
initDetail
();
vmcpds
=
vehicleOrderItem
.
getVehicleDetail
();
vehicleHourNum
=
detail
.
getHourNum
();
...
...
@@ -687,20 +705,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//如果用户存在,并且为会员,并且车辆有优惠价
//默认折扣默认100
detail
.
setRebate
(
100
);
// if(null != dto && SYS_TRUE.equals(dto.getIsMember()) && !NONE.getCode().equals(dto.getMemberLevel()) && !DISCOUNT_STATUS_NONE.equals(vehicleModel.getRentDiscountStatus())) {
// String[] prices = StrUtil.isBlank(vehicleModel.getRentDiscountPrice())
// ?new String[]{vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString(),vehicleModel.getPrice().toString()}
// :vehicleModel.getRentDiscountPrice().split(",");
// //设置是否使用会员权益
// for(VMCalendarPriceCostDTO vmcpcd : vehicleOrderItem.getVehicleDetail()) {
// if(!vmcpcd.getNo_discount_price().equals(vmcpcd.getPrice())) {
// detail.getOrder().setHasMemberRight(SYS_TRUE);
// break;
// }
// }
//
// detail.setRebate(dto.getDiscount());
// }
//计算价格
if
(
vehicleHourNum
>
0
)
{
...
...
@@ -732,8 +736,22 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
detail
.
getItems
().
add
(
damageSafeOrderItem
);
}
if
(
SYS_TRUE
==
detail
.
getNeedPersonInsurance
()
&&
CollUtil
.
isNotEmpty
(
detail
.
getInsurances
()))
{
for
(
OrderPersonInsurance
opi
:
detail
.
getInsurances
())
{
opi
.
setOrderDay
(
detail
.
getDayNum
());
//计算天数
orderAccountBiz
.
calculatePersonInsurance
(
detail
.
getEndTime
()
-
detail
.
getStartTime
(),
opi
);
if
(
STATUS_TOPAY
==
opi
.
getStatus
())
{
detail
.
getConfirmInsurances
().
add
(
BeanUtil
.
toBean
(
opi
,
OrderPersonInsurance
.
class
));
OrderItem
personInsuranceOrderItem
=
orderItemBiz
.
initOrderItem
(
opi
.
getAmount
(),
1
,
"人身保险"
,
null
,
ItemTypeEnum
.
PERSON_INSURANCE
,
JSONUtil
.
toJsonStr
(
opi
));
detail
.
getItems
().
add
(
personInsuranceOrderItem
);
personInsuranceAmount
=
personInsuranceAmount
.
add
(
opi
.
getAmount
());
}
}
}
//商品价格
goodsAmount
=
goodsAmount
.
add
(
vehicleAmount
).
add
(
driverAmount
).
add
(
damageSafeAmount
);
goodsAmount
=
goodsAmount
.
add
(
vehicleAmount
).
add
(
driverAmount
).
add
(
damageSafeAmount
)
.
add
(
personInsuranceAmount
)
;
//vehicleAmount 优惠券处理
if
(
null
!=
detail
.
getTickerNo
()
&&
detail
.
getTickerNo
().
size
()
>
0
)
{
...
...
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