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
2d293c22
Commit
2d293c22
authored
Jul 04, 2019
by
周健威
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改租车计价接口为需要登录,并且改对应的bug
parent
a76ba1c9
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
235 additions
and
16 deletions
+235
-16
CrosstownTypeEnum.java
...c/platform/order/contant/enumerate/CrosstownTypeEnum.java
+4
-6
RefundStatusEnum.java
...fc/platform/order/contant/enumerate/RefundStatusEnum.java
+47
-0
OrderRentVehicleDetail.java
...om/xxfc/platform/order/entity/OrderRentVehicleDetail.java
+7
-0
OrderVehicaleCrosstown.java
...om/xxfc/platform/order/entity/OrderVehicaleCrosstown.java
+4
-2
DedDetailDTO.java
.../main/java/com/xxfc/platform/order/pojo/DedDetailDTO.java
+23
-0
RentVehicleBO.java
...ava/com/xxfc/platform/order/pojo/order/RentVehicleBO.java
+0
-1
BaseOrderBiz.java
...c/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
+17
-4
RentDepositHandler.java
...om/xxfc/platform/order/jobhandler/RentDepositHandler.java
+113
-0
OrderRentVehicleController.java
.../xxfc/platform/order/rest/OrderRentVehicleController.java
+18
-2
DictionaryKey.java
...a/com/xxfc/platform/universal/constant/DictionaryKey.java
+2
-1
No files found.
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/
Discounts
Enum.java
→
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/
CrosstownType
Enum.java
View file @
2d293c22
...
...
@@ -3,11 +3,9 @@ package com.xxfc.platform.order.contant.enumerate;
import
java.util.HashMap
;
import
java.util.Map
;
public
enum
DiscountsEnum
{
NONE
(
0
,
"没有优惠"
),
MEMBER_RIGHT
(
1
,
"会员权益"
),
COUPON
(
2
,
"优惠券"
),
MEMBER_COUPON
(
3
,
"会员权益+ 优惠券"
),
public
enum
CrosstownTypeEnum
{
RentVehicle
(
1
,
"交车"
),
TOUR
(
2
,
"还车"
),
;
/**
* 编码
...
...
@@ -20,7 +18,7 @@ public enum DiscountsEnum {
private
static
Map
<
Integer
,
String
>
codeAndDesc
=
new
HashMap
<
Integer
,
String
>();
Discounts
Enum
(
Integer
code
,
String
desc
){
CrosstownType
Enum
(
Integer
code
,
String
desc
){
this
.
code
=
code
;
this
.
desc
=
desc
;
}
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/RefundStatusEnum.java
0 → 100644
View file @
2d293c22
package
com
.
xxfc
.
platform
.
order
.
contant
.
enumerate
;
import
java.util.HashMap
;
import
java.util.Map
;
public
enum
RefundStatusEnum
{
NONE
(
0
,
"未退还"
),
ALL
(
1
,
"已退还所有钱"
),
RESIDUE_ILLEGAL
(
2
,
"已退还部分押金(保留违章预备金)"
),
REFUND_DEPOSIT
(
3
,
"已退还所有押金(扣除该扣除的)"
),
;
/**
* 编码
*/
private
Integer
code
;
/**
* 类型描述
*/
private
String
desc
;
private
static
Map
<
Integer
,
String
>
codeAndDesc
=
new
HashMap
<
Integer
,
String
>();
RefundStatusEnum
(
Integer
code
,
String
desc
){
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
public
static
Boolean
exists
(
Integer
code
){
return
codeAndDesc
.
containsKey
(
code
);
}
}
\ No newline at end of file
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderRentVehicleDetail.java
View file @
2d293c22
...
...
@@ -287,4 +287,11 @@ public class OrderRentVehicleDetail implements Serializable {
@ApiModelProperty
(
value
=
"预定记录id"
)
private
Long
bookRecordId
;
/**
* 是否购买免赔
*/
@Column
(
name
=
"damage_safe"
)
@ApiModelProperty
(
value
=
"是否购买免赔"
)
private
Integer
damageSafe
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/OrderVehicaleCrosstown.java
View file @
2d293c22
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.order.entity;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.math.BigDecimal
;
@Table
(
name
=
"order_vehicle_crosstown"
)
@Data
...
...
@@ -99,6 +100,7 @@ public class OrderVehicaleCrosstown {
* 扣除项明细 json
* deductions: 扣除项
* cost:费用
* id:编号(用于顺序)
*/
private
String
dedDetail
;
...
...
@@ -110,12 +112,12 @@ public class OrderVehicaleCrosstown {
/**
* 合计扣除费用
*/
private
Integer
deductionCost
;
private
BigDecimal
deductionCost
;
/**
* 剩余押金
*/
private
Integer
restDeposit
;
private
BigDecimal
restDeposit
;
/**
* 驾驶人Id
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/DedDetailDTO.java
0 → 100644
View file @
2d293c22
package
com
.
xxfc
.
platform
.
order
.
pojo
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
DedDetailDTO
{
/**
* : 扣除项
*/
String
deductions
;
/**
* :费用
*/
BigDecimal
cost
;
/**
* 编号(用于顺序)
*/
Integer
id
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/RentVehicleBO.java
View file @
2d293c22
...
...
@@ -16,7 +16,6 @@ public class RentVehicleBO extends OrderRentVehicleDetail implements OrderDetail
private
BaseOrder
order
;
private
VehicleModel
vehicleModel
;
private
BookVehicleVO
bookVehicleVO
;
private
Integer
damageSafe
;
/**
* 是否使用出租免费天数
*/
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/BaseOrderBiz.java
View file @
2d293c22
...
...
@@ -12,6 +12,7 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import
com.google.common.collect.Lists
;
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.mapper.BaseOrderMapper
;
...
...
@@ -298,7 +299,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
//退款金额
BigDecimal
refundAmont
=
depositAmont
.
add
(
refundGoodsAmont
);
//退款子流程: 订单基础,退款描述,退款金额
refundSubProcess
(
baseOrder
,
refundDesc
,
refundAmont
,
RefundTypeEnum
.
RentVehicle
.
getCode
());
refundSubProcess
(
baseOrder
,
refundDesc
,
refundAmont
,
RefundTypeEnum
.
RentVehicle
.
getCode
()
,
RefundStatusEnum
.
ALL
.
getCode
()
);
}
/**
...
...
@@ -306,8 +307,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* @param baseOrder
* @param refundDesc
* @param refundAmont
* @param refundType
* @param refundStatus
*/
p
rivate
void
refundSubProcess
(
BaseOrder
baseOrder
,
String
refundDesc
,
BigDecimal
refundAmont
,
Integer
refundType
)
{
p
ublic
void
refundSubProcess
(
BaseOrder
baseOrder
,
String
refundDesc
,
BigDecimal
refundAmont
,
Integer
refundType
,
Integer
refundStatus
)
{
OrderRefundVo
orv
=
new
OrderRefundVo
(){{
setAmount
(
baseOrder
.
getRealAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
());
setOrderNo
(
baseOrder
.
getNo
());
...
...
@@ -317,7 +320,15 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
String
refundTradeNo
=
thirdFeign
.
refund
(
orv
).
getData
();
//记录订单退款记录
addOrderRefund
(
baseOrder
.
getId
(),
refundDesc
,
refundAmont
,
refundTradeNo
,
refundType
);
Integer
flag
=
addOrderRefund
(
baseOrder
.
getId
(),
refundDesc
,
refundAmont
,
refundTradeNo
,
refundType
);
//更新订单的退款状态和退款时间
if
(
SYS_TRUE
.
equals
(
flag
)
&&
null
!=
refundStatus
)
{
updateSelectiveByIdReT
(
new
BaseOrder
(){{
setRefundStatus
(
refundStatus
);
setRefundTime
(
System
.
currentTimeMillis
());
}});
}
}
/**
...
...
@@ -327,7 +338,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
* @param refundAmont
* @param refundTradeNo
*/
private
void
addOrderRefund
(
Integer
orderId
,
String
refundDesc
,
BigDecimal
refundAmont
,
String
refundTradeNo
,
Integer
refundType
)
{
private
Integer
addOrderRefund
(
Integer
orderId
,
String
refundDesc
,
BigDecimal
refundAmont
,
String
refundTradeNo
,
Integer
refundType
)
{
//如果返回的流水为空,则当做失败
Integer
refundStatus
=
SYS_TRUE
;
if
(
StrUtil
.
isBlank
(
refundTradeNo
))
{
...
...
@@ -346,6 +357,8 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
orderRefund
.
setRefundStatus
(
refundStatus
);
orderRefund
.
setRefundType
(
refundType
);
orderRefundBiz
.
insertSelective
(
orderRefund
);
return
refundStatus
;
}
/**
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/jobhandler/
HttpJob
Handler.java
→
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/jobhandler/
RentDeposit
Handler.java
View file @
2d293c22
package
com
.
xxfc
.
platform
.
order
.
jobhandler
;
import
cn.hutool.json.JSONUtil
;
import
com.github.wxiaoqi.security.common.util.IntervalUtil
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.biz.OrderRentVehicleBiz
;
import
com.xxfc.platform.order.
contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.
OrderTypeEnum
;
import
com.xxfc.platform.order.
biz.OrderVehicalCrosstownBiz
;
import
com.xxfc.platform.order.contant.enumerate.
*
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.entity.OrderVehicaleCrosstown
;
import
com.xxfc.platform.order.pojo.DedDetailDTO
;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
import
com.xxfc.platform.universal.entity.Dictionary
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.handler.IJobHandler
;
import
com.xxl.job.core.handler.annotation.JobHandler
;
...
...
@@ -17,7 +23,11 @@ import org.springframework.stereotype.Component;
import
tk.mybatis.mapper.entity.Example
;
import
tk.mybatis.mapper.weekend.WeekendSqls
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Map
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.
APP_ORDER
;
/**
* 跨平台Http任务
...
...
@@ -27,7 +37,7 @@ import java.util.List;
@JobHandler
(
value
=
"rentDepositHandler"
)
@Component
@Slf4j
public
class
HttpJob
Handler
extends
IJobHandler
{
public
class
RentDeposit
Handler
extends
IJobHandler
{
@Autowired
BaseOrderBiz
baseOrderBiz
;
...
...
@@ -35,12 +45,22 @@ public class HttpJobHandler extends IJobHandler {
@Autowired
OrderRentVehicleBiz
orderRentVehicleBiz
;
@Autowired
OrderVehicalCrosstownBiz
crosstownBiz
;
@Autowired
ThirdFeign
thirdFeign
;
@Override
public
ReturnT
<
String
>
execute
(
String
idLastNumInterval
)
throws
Exception
{
Map
<
String
,
Dictionary
>
dictionaryMap
=
thirdFeign
.
dictionaryGetAll4Map
().
getData
();
BigDecimal
illegalReserve
=
new
BigDecimal
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
ILLEGAL_RESERVE
).
getDetail
());
try
{
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
if
(
IntervalUtil
.
staticIsInTheInterval
(
String
.
valueOf
(
i
),
idLastNumInterval
))
{
List
<
BaseOrder
>
lists
=
baseOrderBiz
.
selectByExample
(
new
Example
.
Builder
(
BaseOrder
.
class
)
//订单已完成的租车订单
.
where
(
WeekendSqls
.<
BaseOrder
>
custom
().
andEqualTo
(
BaseOrder:
:
getType
,
OrderTypeEnum
.
RentVehicle
)
.
andEqualTo
(
BaseOrder:
:
getStatus
,
OrderStatusEnum
.
ORDER_FINISH
)
.
andLike
(
BaseOrder:
:
getId
,
"%"
+
String
.
valueOf
(
i
))).
build
());
...
...
@@ -50,9 +70,27 @@ public class HttpJobHandler extends IJobHandler {
OrderRentVehicleDetail
orvd
=
orderRentVehicleBiz
.
selectOne
(
new
OrderRentVehicleDetail
()
{{
setOrderId
(
baseOrder
.
getId
());
}});
// if(orvd.getReturnPayResidue())
// //判断是否违章
// //扣违章的钱
//未退还, 进行保留违章预备金 的退还
if
(
RefundStatusEnum
.
NONE
.
getCode
().
equals
(
baseOrder
.
getRefundStatus
()))
{
OrderVehicaleCrosstown
crosstown
=
crosstownBiz
.
selectOne
(
new
OrderVehicaleCrosstown
(){{
setOrderId
(
baseOrder
.
getId
());
setType
(
CrosstownTypeEnum
.
TOUR
.
getCode
());
}});
BigDecimal
refundAmont
=
crosstown
.
getRestDeposit
().
subtract
(
illegalReserve
);
List
<
DedDetailDTO
>
dddList
=
JSONUtil
.
toBean
(
crosstown
.
getDedDetail
(),
List
.
class
);
String
refundDesc
=
"退还押金:"
+
refundAmont
.
toString
()+
"(已扣除 违章预备金:"
+
illegalReserve
.
toString
();
for
(
DedDetailDTO
ddd
:
dddList
)
{
refundDesc
+=
", "
+
ddd
.
getDeductions
()+
":"
+
ddd
.
getCost
();
}
refundDesc
+=
")"
;
//退款子流程: 订单基础,退款描述,退款金额
baseOrderBiz
.
refundSubProcess
(
baseOrder
,
refundDesc
,
refundAmont
,
RefundTypeEnum
.
RentVehicle
.
getCode
(),
RefundStatusEnum
.
RESIDUE_ILLEGAL
.
getCode
());
//设置剩余
}
else
if
(
RefundStatusEnum
.
RESIDUE_ILLEGAL
.
getCode
().
equals
(
baseOrder
.
getRefundStatus
())){
//判断是否违章
//扣违章的钱
//baseOrderBiz.refundSubProcess(baseOrder, refundDesc, refundAmont, RefundTypeEnum.RentVehicle.getCode(), RefundStatusEnum.RESIDUE_ILLEGAL.getCode());
}
// baseOrderBiz.refundSubProcess(baseOrder, refundDesc, refundAmont);
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderRentVehicleController.java
View file @
2d293c22
...
...
@@ -26,6 +26,8 @@ import org.springframework.stereotype.Controller;
import
org.springframework.web.bind.annotation.*
;
import
springfox.documentation.annotations.ApiIgnore
;
import
javax.persistence.Column
;
@Controller
@RequestMapping
(
"orderRentVehicle"
)
@Api
(
value
=
"租车订单"
,
tags
={
"租车订单"
})
...
...
@@ -65,15 +67,18 @@ public class OrderRentVehicleController extends CommonBaseController {
return
ObjectRestResponse
.
succ
(
orderRentVehicleBiz
.
listByOrderId
(
orderId
));
}
@RequestMapping
(
value
=
"/
app/unauth/
calculate-price"
,
method
=
RequestMethod
.
GET
)
@RequestMapping
(
value
=
"/calculate-price"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
@ApiOperation
(
value
=
"价格计算"
)
@IgnoreUserToken
public
ObjectRestResponse
<
RentVehiclePriceVO
>
calculatePrice
(
CalculatePriceVO
vo
){
RentVehicleBO
bo
=
BeanUtil
.
toBean
(
vo
,
RentVehicleBO
.
class
);
if
(
StrUtil
.
isNotBlank
(
BaseContextHandler
.
getToken
()))
{
bo
.
setAppUserDTO
(
userFeign
.
userDetailByToken
(
BaseContextHandler
.
getToken
()).
getData
());
}
bo
.
setOrder
(
new
BaseOrder
(){{
setHasMemberRight
(
vo
.
getHasMemberRight
());
}});
bo
.
setAppUserDTO
(
userFeign
.
userDetailByToken
(
BaseContextHandler
.
getToken
()).
getData
());
orderRentVehicleService
.
initDetailSecond
(
bo
);
return
ObjectRestResponse
.
succ
(
orderRentVehicleService
.
calculatePrice
(
bo
));
}
...
...
@@ -101,5 +106,16 @@ public class OrderRentVehicleController extends CommonBaseController {
@ApiModelProperty
(
value
=
"是否购买免赔 1--是"
)
private
Integer
damageSafe
;
/**
* 是否有使用会员权益
*/
@ApiModelProperty
(
value
=
"是否有使用会员权益"
)
private
Integer
hasMemberRight
;
/**
* 是否使用出租免费天数
*/
@ApiModelProperty
(
value
=
"是否使用出租免费天数"
)
private
Integer
rentFreeDay
;
}
}
\ No newline at end of file
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/constant/DictionaryKey.java
View file @
2d293c22
...
...
@@ -13,10 +13,11 @@ public class DictionaryKey {
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
ILLEGAL_RESERVE
=
"ILLEGAL_RESERVE"
;
/**
* 旅游:保险费用
...
...
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