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
238581a1
Commit
238581a1
authored
Aug 14, 2019
by
libin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into base-modify
parents
eab501f3
5c3a416a
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
184 additions
and
151 deletions
+184
-151
OrderRefundBiz.java
...main/java/com/xxfc/platform/order/biz/OrderRefundBiz.java
+29
-45
OrderCancelBiz.java
...ava/com/xxfc/platform/order/biz/inner/OrderCancelBiz.java
+26
-10
RentDepositJobHandler.java
...xxfc/platform/order/jobhandler/RentDepositJobHandler.java
+48
-61
OrderRefundController.java
...a/com/xxfc/platform/order/rest/OrderRefundController.java
+31
-3
BehaviorEnum.java
.../com/xxfc/platform/user/behavior/common/BehaviorEnum.java
+2
-2
BehaviorNoteCollectVo.java
...xxfc/platform/user/behavior/vo/BehaviorNoteCollectVo.java
+1
-1
ActivityBehaviorBiz.java
.../xxfc/platform/user/behavior/biz/ActivityBehaviorBiz.java
+2
-0
ActivityBehaviorRelationBiz.java
...atform/user/behavior/biz/ActivityBehaviorRelationBiz.java
+2
-0
BehaviorTypeBiz.java
.../com/xxfc/platform/user/behavior/biz/BehaviorTypeBiz.java
+2
-0
CustomerBehaviorNotesBiz.java
.../platform/user/behavior/biz/CustomerBehaviorNotesBiz.java
+41
-29
No files found.
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderRefundBiz.java
View file @
238581a1
...
@@ -127,28 +127,6 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
...
@@ -127,28 +127,6 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
orderDepositRefundRecordBiz
.
completeRecordStatus
(
crosstown
.
getId
(),
depositRefundRecordStatus
);
orderDepositRefundRecordBiz
.
completeRecordStatus
(
crosstown
.
getId
(),
depositRefundRecordStatus
);
orderMsgBiz
.
handelMsgDeposit
(
orderMQDTO
.
getOrderRentVehicleDetail
(),
orderMQDTO
,
userFeign
.
userDetailById
(
orderMQDTO
.
getUserId
()).
getData
());
orderMsgBiz
.
handelMsgDeposit
(
orderMQDTO
.
getOrderRentVehicleDetail
(),
orderMQDTO
,
userFeign
.
userDetailById
(
orderMQDTO
.
getUserId
()).
getData
());
}
}
// else {
// //还车扣除款 剩余的 钱,再减去违章预备金
// BigDecimal originalRefundAmount = orderMQDTO.getOrderRentVehicleDetail().getReturnPayResidue();
// BigDecimal refundAmont = originalRefundAmount;
// String refundDesc = "退还剩余违章保证金:"+ refundAmont.toString();
//
// //已退还部分, 进行剩余的保留违章预备金 的退还
// //获取违章记录
// List<OrderViolation> orderViolations = orderViolationBiz.selectList(new OrderViolation(){{
// setDetailId(orderMQDTO.getOrderRentVehicleDetail().getId());
// }});
//
// if(orderViolations.size() > 0) {
// refundDesc += "(已扣除 违章金额:"+ illegalReserve.toString();
// for(OrderViolation ov : orderViolations) {
// refundDesc += ", "+ ov.getPrice();
// refundAmont = refundAmont.subtract(ov.getPrice());
// }
// refundDesc += ")";
// refundTrigger(orderMQDTO, orderMQDTO.getOrderRentVehicleDetail(), illegalReserve, originalRefundAmount, refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), RefundTypeEnum.RESIDUE_DEPOSIT);
// }
// }
}
}
public
void
refundTrigger
(
BaseOrder
baseOrder
,
OrderRentVehicleDetail
orvd
,
BigDecimal
residueAmount
,
BigDecimal
originalRefundAmount
,
BigDecimal
refundAmont
,
String
refundDesc
,
Integer
refundStatus
,
RefundTypeEnum
refundTypeEnum
)
{
public
void
refundTrigger
(
BaseOrder
baseOrder
,
OrderRentVehicleDetail
orvd
,
BigDecimal
residueAmount
,
BigDecimal
originalRefundAmount
,
BigDecimal
refundAmont
,
String
refundDesc
,
Integer
refundStatus
,
RefundTypeEnum
refundTypeEnum
)
{
...
@@ -162,46 +140,52 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
...
@@ -162,46 +140,52 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
}
}
/**
/**
* 租车
退款流程(不含押金的通用方法)
* 租车
(包括旅游)退款流程
* @param baseOrder
* @param baseOrder
* @param startTime
* @param dicParentKey
*/
public
void
rentRefundProcess
(
BaseOrder
baseOrder
,
Long
startTime
,
String
dicParentKey
){
rentRefundProcess
(
baseOrder
,
BigDecimal
.
ZERO
,
startTime
,
dicParentKey
);
}
/**
* 租车(包括旅游)退款流程(含押金)
* @param baseOrder
* @param depositAmount
* @param timeLag 与开始时间的时间差
* @param timeLag 与开始时间的时间差
* @param dicParentKey
* @param dicParentKey
*/
*/
public
void
rentRefundProcess
(
BaseOrder
baseOrder
,
BigDecimal
depositAmount
,
Long
timeLag
,
String
dicParentKey
)
{
public
void
rentRefundProcess
(
BaseOrder
baseOrder
,
Long
timeLag
,
String
dicParentKey
)
{
//计算退款金额
//计算退款金额
// 1、押金 + 租金(规则扣除)
//商品价格 - 优惠券减免的价格
BigDecimal
originalRefundAmount
=
BigDecimal
.
ZERO
.
add
(
baseOrder
.
getGoodsAmount
().
subtract
(
baseOrder
.
getCouponAmount
()));
BigDecimal
originalRefundAmount
=
BigDecimal
.
ZERO
.
add
(
baseOrder
.
getGoodsAmount
().
subtract
(
baseOrder
.
getCouponAmount
()));
StringBuilder
refundDescBuilder
=
new
StringBuilder
(
"取消订单退款:"
);
StringBuilder
refundDescBuilder
=
new
StringBuilder
(
"取消订单退款:"
);
if
(
null
==
depositAmount
)
{
depositAmount
=
BigDecimal
.
ZERO
;
}
else
{
//触发押金退款
refundSubProcess
(
baseOrder
,
refundDescBuilder
.
toString
(),
depositAmount
,
depositAmount
,
RefundTypeEnum
.
DEPOSIT
.
getCode
(),
RefundStatusEnum
.
ALL
.
getCode
());
}
//商品价格 - 优惠券减免的价格
BigDecimal
refundGoodsAmount
=
calculateRefund
(
originalRefundAmount
,
timeLag
,
dicParentKey
,
refundDescBuilder
);
BigDecimal
refundGoodsAmount
=
calculateRefund
(
originalRefundAmount
,
timeLag
,
dicParentKey
,
refundDescBuilder
);
refundGoodsAmount
=
refundGoodsAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
);
refundGoodsAmount
=
refundGoodsAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
);
//退款金额
//退款金额
// BigDecimal refundAmount = depositAmount.add(refundGoodsAmount);
// originalRefundAmount = depositAmount.add(originalRefundAmount);
BigDecimal
refundAmount
=
refundGoodsAmount
;
BigDecimal
refundAmount
=
refundGoodsAmount
;
//退款子流程: 订单基础,退款描述,退款金额
//退款子流程: 订单基础,退款描述,退款金额
refundSubProcess
(
baseOrder
,
refundDescBuilder
.
toString
(),
originalRefundAmount
,
refundAmount
,
RefundTypeEnum
.
ORDER_FUND
.
getCode
(),
RefundStatusEnum
.
ALL
.
getCode
());
refundSubProcess
(
baseOrder
,
refundDescBuilder
.
toString
(),
originalRefundAmount
,
refundAmount
,
RefundTypeEnum
.
ORDER_FUND
.
getCode
(),
RefundStatusEnum
.
ALL
.
getCode
());
}
}
/**
* 租车押金退款流程
* @param baseOrder
* @param depositAmount
* @param timeLag 与开始时间的时间差
* @param dicParentKey
* @param originalDeductAmount
*/
public
void
rentRefundDepositProcess
(
BaseOrder
baseOrder
,
BigDecimal
depositAmount
,
Long
timeLag
,
String
dicParentKey
,
BigDecimal
originalDeductAmount
)
{
// 1、押金 + 租金(规则扣除)
BigDecimal
originalRefundAmount
=
BigDecimal
.
ZERO
.
add
(
depositAmount
);
BigDecimal
refundAmount
=
BigDecimal
.
ZERO
.
add
(
depositAmount
);
StringBuilder
refundDescBuilder
=
new
StringBuilder
(
"取消订单押金退款:"
);
if
(
null
!=
originalDeductAmount
&&
BigDecimal
.
ZERO
.
compareTo
(
originalDeductAmount
)
<
0
)
{
//通过原扣除款 计算剩余款
BigDecimal
residueAmount
=
calculateRefund
(
originalDeductAmount
,
timeLag
,
dicParentKey
,
refundDescBuilder
);
residueAmount
=
residueAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
);
//退款金额 :押金 - (原扣除款 - 剩余款)
refundAmount
=
originalRefundAmount
.
subtract
(
originalDeductAmount
.
subtract
(
residueAmount
));
}
//触发押金退款
refundSubProcess
(
baseOrder
,
refundDescBuilder
.
toString
(),
originalRefundAmount
,
refundAmount
,
RefundTypeEnum
.
DEPOSIT
.
getCode
(),
RefundStatusEnum
.
ALL
.
getCode
());
}
public
BigDecimal
calculateRefund
(
BigDecimal
goodsAmount
,
Long
timeLag
,
String
dicParentKey
,
StringBuilder
refundDescBuilder
)
{
public
BigDecimal
calculateRefund
(
BigDecimal
goodsAmount
,
Long
timeLag
,
String
dicParentKey
,
StringBuilder
refundDescBuilder
)
{
BigDecimal
refundGoodsAmount
=
goodsAmount
;
BigDecimal
refundGoodsAmount
=
goodsAmount
;
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/inner/OrderCancelBiz.java
View file @
238581a1
...
@@ -8,10 +8,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
...
@@ -8,10 +8,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import
com.github.wxiaoqi.security.common.util.IntervalUtil
;
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.xxfc.platform.order.biz.*
;
import
com.xxfc.platform.order.biz.*
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.*
;
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.entity.*
;
import
com.xxfc.platform.order.pojo.mq.OrderMQDTO
;
import
com.xxfc.platform.order.pojo.mq.OrderMQDTO
;
import
com.xxfc.platform.tour.feign.TourFeign
;
import
com.xxfc.platform.tour.feign.TourFeign
;
...
@@ -49,6 +46,9 @@ public class OrderCancelBiz {
...
@@ -49,6 +46,9 @@ public class OrderCancelBiz {
@Autowired
@Autowired
BaseOrderBiz
baseOrderBiz
;
BaseOrderBiz
baseOrderBiz
;
@Autowired
OrderItemBiz
orderItemBiz
;
@Autowired
@Autowired
OrderMemberDetailBiz
orderMemberDetailBiz
;
OrderMemberDetailBiz
orderMemberDetailBiz
;
...
@@ -119,18 +119,34 @@ public class OrderCancelBiz {
...
@@ -119,18 +119,34 @@ public class OrderCancelBiz {
setOrderId
(
baseOrder
.
getId
());
setOrderId
(
baseOrder
.
getId
());
}});
}});
//原退还押金
BigDecimal
freeDayAmount
=
BigDecimal
.
ZERO
;
//判断是否使用免费天数,并且进行扣款
if
(
null
!=
orvd
.
getFreeDays
()
&&
orvd
.
getFreeDays
()
>
0
)
{
OrderItem
orderItem
=
orderItemBiz
.
selectOne
(
new
OrderItem
(){{
setType
(
ItemTypeEnum
.
VEHICLE_MODEL
.
getCode
());
setOrderId
(
baseOrder
.
getId
());
}});
freeDayAmount
=
orderItem
.
getUnitPrice
().
multiply
(
new
BigDecimal
(
orvd
.
getFreeDays
()+
""
));
}
//如果超过出发时间,不能取消订单
//如果超过出发时间,不能取消订单
//根据时间处理goodsAmount
//根据时间处理goodsAmount
//获取出发时间 到现在 距离时间
//获取出发时间 到现在 距离时间
Long
timeLag
=
orvd
.
getStartTime
()
-
System
.
currentTimeMillis
();
Long
timeLag
=
orvd
.
getStartTime
()
-
System
.
currentTimeMillis
();
if
(
timeLag
<
0
)
{
//后面允许开始时间过后可以取消订单
throw
new
BaseException
(
ResultCode
.
FAILED_CODE
,
new
HashSet
<
String
>(){{
// if(timeLag < 0) {
add
(
"已超过出发时间,不能取消订单"
);
// throw new BaseException(ResultCode.FAILED_CODE, new HashSet<String>(){{
}});
// add("已超过出发时间,不能取消订单");
}
// }});
// }
//退款流程
//退款流程
orderRefundBiz
.
rentRefundProcess
(
hasUpdateOrder
,
orvd
.
getDeposit
(),
timeLag
,
APP_ORDER
+
"_"
+
RENT_REFUND
);
//退押金
orderRefundBiz
.
rentRefundDepositProcess
(
hasUpdateOrder
,
orvd
.
getDeposit
(),
timeLag
,
APP_ORDER
+
"_"
+
RENT_REFUND
,
freeDayAmount
);
//退订单款
orderRefundBiz
.
rentRefundProcess
(
hasUpdateOrder
,
timeLag
,
APP_ORDER
+
"_"
+
RENT_REFUND
);
//已付款的取消订单发送消息
//已付款的取消订单发送消息
try
{
try
{
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/jobhandler/RentDepositJobHandler.java
View file @
238581a1
...
@@ -71,74 +71,61 @@ public class RentDepositJobHandler extends IJobHandler {
...
@@ -71,74 +71,61 @@ public class RentDepositJobHandler extends IJobHandler {
UserFeign
userFeign
;
UserFeign
userFeign
;
@Override
@Override
public
ReturnT
<
String
>
execute
(
String
idLastNumInterval
)
throws
Exception
{
public
ReturnT
<
String
>
execute
(
String
idLastNumInterval
)
{
Map
<
String
,
Dictionary
>
dictionaryMap
=
thirdFeign
.
dictionaryGetAll4Map
().
getData
();
Map
<
String
,
Dictionary
>
dictionaryMap
=
thirdFeign
.
dictionaryGetAll4Map
().
getData
();
Integer
rentDepositAutoRefundTime
=
new
Integer
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
RENT_DEPOSIT_AUTO_REFUND_TIME
).
getDetail
());
Integer
rentDepositAutoRefundTime
=
new
Integer
(
dictionaryMap
.
get
(
APP_ORDER
+
"_"
+
DictionaryKey
.
RENT_DEPOSIT_AUTO_REFUND_TIME
).
getDetail
());
try
{
try
{
// for(int i = 0; i < 10; i++) {
List
<
BaseOrder
>
lists
=
baseOrderBiz
.
selectByExample
(
new
Example
.
Builder
(
BaseOrder
.
class
)
// if(IntervalUtil.staticIsInTheInterval(String.valueOf(i), idLastNumInterval)) {
//订单已完成的租车订单
//三十天
.
where
(
WeekendSqls
.<
BaseOrder
>
custom
().
andEqualTo
(
BaseOrder:
:
getType
,
OrderTypeEnum
.
RENT_VEHICLE
.
getCode
())
List
<
BaseOrder
>
lists
=
baseOrderBiz
.
selectByExample
(
new
Example
.
Builder
(
BaseOrder
.
class
)
.
andEqualTo
(
BaseOrder:
:
getStatus
,
OrderStatusEnum
.
ORDER_FINISH
.
getCode
())
//已完成的订单
//订单已完成的租车订单
.
andEqualTo
(
BaseOrder:
:
getRefundStatus
,
RefundStatusEnum
.
RESIDUE_ILLEGAL
.
getCode
())
//已归还了部分押金
.
where
(
WeekendSqls
.<
BaseOrder
>
custom
().
andEqualTo
(
BaseOrder:
:
getType
,
OrderTypeEnum
.
RENT_VEHICLE
.
getCode
())
.
andLessThanOrEqualTo
(
BaseOrder:
:
getCrtTime
,
DateUtil
.
date
(
System
.
currentTimeMillis
()
-
(
rentDepositAutoRefundTime
*
60
*
1000
)))
.
andEqualTo
(
BaseOrder:
:
getStatus
,
OrderStatusEnum
.
ORDER_FINISH
.
getCode
())
//已完成的订单
.
andEqualTo
(
BaseOrder:
:
getRefundStatus
,
RefundStatusEnum
.
RESIDUE_ILLEGAL
.
getCode
())
//已归还了部分押金
.
andLessThanOrEqualTo
(
BaseOrder:
:
getCrtTime
,
DateUtil
.
date
(
System
.
currentTimeMillis
()
-
(
rentDepositAutoRefundTime
*
60
*
1000
)))
// .andLike(BaseOrder::getId, "%"+ i)
// .andLike(BaseOrder::getId, "%"+ i)
).
build
());
).
build
());
//处理自动退剩余押金
//处理自动退剩余押金
for
(
BaseOrder
baseOrder
:
lists
)
{
for
(
BaseOrder
baseOrder
:
lists
)
{
OrderRentVehicleDetail
orvd
=
orderRentVehicleBiz
.
selectOne
(
new
OrderRentVehicleDetail
()
{{
OrderRentVehicleDetail
orvd
=
orderRentVehicleBiz
.
selectOne
(
new
OrderRentVehicleDetail
()
{{
setOrderId
(
baseOrder
.
getId
());
setOrderId
(
baseOrder
.
getId
());
}});
}});
Integer
crosstownTypeEnum
;
Integer
crosstownTypeEnum
;
//判断是否定损过
//判断是否定损过
if
(
SYS_TRUE
.
equals
(
orvd
.
getFixedLossStatus
()))
{
if
(
SYS_TRUE
.
equals
(
orvd
.
getFixedLossStatus
()))
{
crosstownTypeEnum
=
CrosstownTypeEnum
.
FIXED_LOSS
.
getCode
();
crosstownTypeEnum
=
CrosstownTypeEnum
.
FIXED_LOSS
.
getCode
();
}
else
{
}
else
{
crosstownTypeEnum
=
CrosstownTypeEnum
.
ARRIVE
.
getCode
();
crosstownTypeEnum
=
CrosstownTypeEnum
.
ARRIVE
.
getCode
();
}
}
OrderVehicleCrosstown
crosstown
=
crosstownBiz
.
selectOne
(
new
OrderVehicleCrosstown
(){{
OrderVehicleCrosstown
crosstown
=
crosstownBiz
.
selectOne
(
new
OrderVehicleCrosstown
(){{
setOrderId
(
baseOrder
.
getId
());
setOrderId
(
baseOrder
.
getId
());
setType
(
crosstownTypeEnum
);
setType
(
crosstownTypeEnum
);
}});
}});
if
(
crosstown
.
getCrtTime
().
compareTo
(
System
.
currentTimeMillis
()
-
(
rentDepositAutoRefundTime
*
60
*
1000
))
<
0
)
{
if
(
crosstown
.
getCrtTime
().
compareTo
(
System
.
currentTimeMillis
()
-
(
rentDepositAutoRefundTime
*
60
*
1000
))
<
0
)
{
OrderViolation
orderViolation
=
orderViolationBiz
.
selectOne
(
new
OrderViolation
(){{
OrderViolation
orderViolation
=
orderViolationBiz
.
selectOne
(
new
OrderViolation
(){{
setDetailId
(
orvd
.
getId
());
setDetailId
(
orvd
.
getId
());
setIsDel
(
SYS_FALSE
);
setIsDel
(
SYS_FALSE
);
}});
}});
String
refundDesc
=
"退还押金:"
;
String
refundDesc
=
"退还押金:"
;
BigDecimal
refundAmont
;
BigDecimal
refundAmont
;
if
(
null
!=
orderViolation
)
{
if
(
null
!=
orderViolation
)
{
//还车扣除款 剩余的 钱,再减去违章预备金
//还车扣除款 剩余的 钱,再减去违章预备金
refundAmont
=
orvd
.
getReturnPayResidue
().
subtract
(
orderViolation
.
getPrice
());
refundAmont
=
orvd
.
getReturnPayResidue
().
subtract
(
orderViolation
.
getPrice
());
refundDesc
+=
refundAmont
.
toString
()+
"(已扣除 违章扣款:"
+
refundAmont
.
toString
();
refundDesc
+=
refundAmont
.
toString
()+
"(已扣除 违章扣款:"
+
refundAmont
.
toString
();
refundDesc
+=
")"
;
refundDesc
+=
")"
;
}
else
{
}
else
{
refundAmont
=
orvd
.
getReturnPayResidue
();
refundAmont
=
orvd
.
getReturnPayResidue
();
refundDesc
+=
refundAmont
.
toString
();
refundDesc
+=
refundAmont
.
toString
();
}
orderRefundBiz
.
refundTrigger
(
baseOrder
,
orvd
,
BigDecimal
.
ZERO
,
orvd
.
getReturnPayResidue
(),
refundAmont
,
refundDesc
,
RefundStatusEnum
.
REFUND_DEPOSIT
.
getCode
(),
RefundTypeEnum
.
RESIDUE_DEPOSIT
);
orderDepositRefundRecordBiz
.
completeRecordStatus
(
crosstown
.
getId
(),
DepositRefundStatus
.
VIOLATIONARRIVAL
);
orderMsgBiz
.
handelMsgDeposit
(
orvd
,
baseOrder
,
userFeign
.
userDetailById
(
baseOrder
.
getUserId
()).
getData
());
}
//获取交车时间
// List<OrderVehicleCrosstown> crosstowns = crosstownBiz.selectByExample(
// new Example.Builder(BaseOrder.class)
// .where(WeekendSqls.<OrderVehicleCrosstown>custom()
// .andIn(OrderVehicleCrosstown::getType, Lists.newArrayList(CrosstownTypeEnum.ARRIVE.getCode(), CrosstownTypeEnum.FIXED_LOSS.getCode()))
// .andEqualTo(OrderVehicleCrosstown::getOrderId, baseOrder.getId())).build());
}
}
orderRefundBiz
.
refundTrigger
(
baseOrder
,
orvd
,
BigDecimal
.
ZERO
,
orvd
.
getReturnPayResidue
(),
refundAmont
,
refundDesc
,
RefundStatusEnum
.
REFUND_DEPOSIT
.
getCode
(),
RefundTypeEnum
.
RESIDUE_DEPOSIT
);
orderDepositRefundRecordBiz
.
completeRecordStatus
(
crosstown
.
getId
(),
DepositRefundStatus
.
VIOLATIONARRIVAL
);
orderMsgBiz
.
handelMsgDeposit
(
orvd
,
baseOrder
,
userFeign
.
userDetailById
(
baseOrder
.
getUserId
()).
getData
());
}
// }
}
// }
ReturnT
returnT
=
new
ReturnT
();
ReturnT
returnT
=
new
ReturnT
();
returnT
.
setCode
(
100
);
returnT
.
setCode
(
100
);
returnT
.
setMsg
(
"成功"
);
returnT
.
setMsg
(
"成功"
);
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderRefundController.java
View file @
238581a1
...
@@ -8,10 +8,14 @@ import com.github.wxiaoqi.security.common.rest.BaseController;
...
@@ -8,10 +8,14 @@ import com.github.wxiaoqi.security.common.rest.BaseController;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.biz.BaseOrderBiz
;
import
com.xxfc.platform.order.biz.OrderItemBiz
;
import
com.xxfc.platform.order.biz.OrderRefundBiz
;
import
com.xxfc.platform.order.biz.OrderRefundBiz
;
import
com.xxfc.platform.order.biz.inner.OrderCancelBiz
;
import
com.xxfc.platform.order.biz.inner.OrderCancelBiz
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.entity.OrderRefund
;
import
com.xxfc.platform.order.entity.OrderRefund
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.pojo.order.OrderPageVO
;
import
com.xxfc.platform.order.pojo.order.OrderPageVO
;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
import
com.xxfc.platform.universal.constant.DictionaryKey
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -23,11 +27,11 @@ import org.springframework.web.bind.annotation.RequestMethod;
...
@@ -23,11 +27,11 @@ import org.springframework.web.bind.annotation.RequestMethod;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
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
.
TOUR_IN_REFUND
;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.*;
import
static
com
.
xxfc
.
platform
.
universal
.
constant
.
DictionaryKey
.
TOUR_REFUND
;
@Controller
@Controller
@RequestMapping
(
"orderRefund"
)
@RequestMapping
(
"orderRefund"
)
...
@@ -39,6 +43,9 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
...
@@ -39,6 +43,9 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
@Autowired
@Autowired
OrderRefundBiz
orderRefundBiz
;
OrderRefundBiz
orderRefundBiz
;
@Autowired
OrderItemBiz
orderItemBiz
;
@Autowired
@Autowired
UserFeign
userFeign
;
UserFeign
userFeign
;
...
@@ -67,8 +74,29 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
...
@@ -67,8 +74,29 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
case
RENT_VEHICLE:
case
RENT_VEHICLE:
orderRefundAmount
=
orderRefundBiz
.
calculateRefund
(
orderPageVO
.
getGoodsAmount
().
subtract
(
orderPageVO
.
getCouponAmount
())
orderRefundAmount
=
orderRefundBiz
.
calculateRefund
(
orderPageVO
.
getGoodsAmount
().
subtract
(
orderPageVO
.
getCouponAmount
())
,
orderPageVO
.
getOrderRentVehicleDetail
().
getStartTime
()
-
System
.
currentTimeMillis
()
,
orderPageVO
.
getOrderRentVehicleDetail
().
getStartTime
()
-
System
.
currentTimeMillis
()
,
DictionaryKey
.
APP_ORDER
+
"_"
+
DictionaryKey
.
RENT_REFUND
,
DictionaryKey
.
APP_ORDER
+
"_"
+
RENT_REFUND
,
refundDescBuilder
);
,
refundDescBuilder
);
OrderRentVehicleDetail
orvd
=
orderPageVO
.
getOrderRentVehicleDetail
();
Long
timeLag
=
orvd
.
getStartTime
()
-
System
.
currentTimeMillis
();
//原退还押金
BigDecimal
originalDeductAmount
=
BigDecimal
.
ZERO
;
BigDecimal
originalRefundAmount
=
BigDecimal
.
ZERO
.
add
(
orvd
.
getDeposit
());
//判断是否使用免费天数,并且进行扣款
if
(
null
!=
orvd
.
getFreeDays
()
&&
orvd
.
getFreeDays
()
>
0
)
{
refundDescBuilder
=
new
StringBuilder
(
""
);
OrderItem
orderItem
=
orderItemBiz
.
selectOne
(
new
OrderItem
(){{
setType
(
ItemTypeEnum
.
VEHICLE_MODEL
.
getCode
());
setOrderId
(
orderPageVO
.
getId
());
}});
originalDeductAmount
=
orderItem
.
getUnitPrice
().
multiply
(
new
BigDecimal
(
orvd
.
getFreeDays
()+
""
));
}
BigDecimal
residueAmount
=
orderRefundBiz
.
calculateRefund
(
originalDeductAmount
,
timeLag
,
APP_ORDER
+
"_"
+
RENT_REFUND
,
refundDescBuilder
);
residueAmount
=
residueAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
);
//押金剩余款 :押金 - (原扣除款 - 剩余款)
//退款金额 :订单剩余款 + 押金剩余款
orderRefundAmount
=
orderRefundAmount
.
add
(
originalRefundAmount
.
subtract
(
originalDeductAmount
.
subtract
(
residueAmount
)));
break
;
break
;
case
TOUR:
case
TOUR:
//判断是省内还是省外
//判断是省内还是省外
...
...
xx-user-behavior-collect/xx-user-behavior-api/src/main/java/com/xxfc/platform/user/behavior/common/BehaviorEnum.java
View file @
238581a1
...
@@ -26,12 +26,12 @@ public enum BehaviorEnum {
...
@@ -26,12 +26,12 @@ public enum BehaviorEnum {
/**
/**
* 精彩活动点击
* 精彩活动点击
*/
*/
WONDERFUL_ACTIVITY_CLICK
(
3
,
"精
彩
活动点击"
),
WONDERFUL_ACTIVITY_CLICK
(
3
,
"精
选
活动点击"
),
/**
/**
* 注册
* 注册
*/
*/
REGISTRY
(
4
,
"
成功注册
"
),
REGISTRY
(
4
,
"
注册成功
"
),
/**
/**
* 活动页面访问量
* 活动页面访问量
...
...
xx-user-behavior-collect/xx-user-behavior-api/src/main/java/com/xxfc/platform/user/behavior/vo/BehaviorNoteCollectVo.java
View file @
238581a1
...
@@ -19,7 +19,7 @@ import java.io.Serializable;
...
@@ -19,7 +19,7 @@ import java.io.Serializable;
@AllArgsConstructor
@AllArgsConstructor
public
class
BehaviorNoteCollectVo
implements
Serializable
{
public
class
BehaviorNoteCollectVo
implements
Serializable
{
/**
/**
* @see com.xxfc.platform.user.behavior.common.BehaviorEnum
+ 成功邀请人数 ,邀请人数>=10 ,App 访问量
* @see com.xxfc.platform.user.behavior.common.BehaviorEnum
* 行为
* 行为
*/
*/
private
String
behavior
;
private
String
behavior
;
...
...
xx-user-behavior-collect/xx-user-behavior-server/src/main/java/com/xxfc/platform/user/behavior/biz/ActivityBehaviorBiz.java
View file @
238581a1
...
@@ -5,6 +5,7 @@ import com.xxfc.platform.user.behavior.dto.ActivityBehaviorDTO;
...
@@ -5,6 +5,7 @@ import com.xxfc.platform.user.behavior.dto.ActivityBehaviorDTO;
import
com.xxfc.platform.user.behavior.entity.ActivityBehavior
;
import
com.xxfc.platform.user.behavior.entity.ActivityBehavior
;
import
com.xxfc.platform.user.behavior.mapper.ActivityBehaviorMapper
;
import
com.xxfc.platform.user.behavior.mapper.ActivityBehaviorMapper
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.List
;
...
@@ -15,6 +16,7 @@ import java.util.List;
...
@@ -15,6 +16,7 @@ import java.util.List;
* @data 2019/8/13 14:10
* @data 2019/8/13 14:10
*/
*/
@Service
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
ActivityBehaviorBiz
extends
BaseBiz
<
ActivityBehaviorMapper
,
ActivityBehavior
>
{
public
class
ActivityBehaviorBiz
extends
BaseBiz
<
ActivityBehaviorMapper
,
ActivityBehavior
>
{
public
List
<
ActivityBehaviorDTO
>
findActivityBehaviorsByActivityId
(
Integer
activityId
){
public
List
<
ActivityBehaviorDTO
>
findActivityBehaviorsByActivityId
(
Integer
activityId
){
...
...
xx-user-behavior-collect/xx-user-behavior-server/src/main/java/com/xxfc/platform/user/behavior/biz/ActivityBehaviorRelationBiz.java
View file @
238581a1
...
@@ -5,6 +5,7 @@ import com.xxfc.platform.user.behavior.dto.ActivityBehaviorRelationDTO;
...
@@ -5,6 +5,7 @@ import com.xxfc.platform.user.behavior.dto.ActivityBehaviorRelationDTO;
import
com.xxfc.platform.user.behavior.entity.ActivityBehaviorRelation
;
import
com.xxfc.platform.user.behavior.entity.ActivityBehaviorRelation
;
import
com.xxfc.platform.user.behavior.mapper.ActivityBehaviorRelationMapper
;
import
com.xxfc.platform.user.behavior.mapper.ActivityBehaviorRelationMapper
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.List
;
...
@@ -15,6 +16,7 @@ import java.util.List;
...
@@ -15,6 +16,7 @@ import java.util.List;
* @data 2019/8/13 17:12
* @data 2019/8/13 17:12
*/
*/
@Service
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
ActivityBehaviorRelationBiz
extends
BaseBiz
<
ActivityBehaviorRelationMapper
,
ActivityBehaviorRelation
>
{
public
class
ActivityBehaviorRelationBiz
extends
BaseBiz
<
ActivityBehaviorRelationMapper
,
ActivityBehaviorRelation
>
{
public
List
<
ActivityBehaviorRelationDTO
>
findActivityBehaviorRelationsByActivityId
(
Integer
activityId
){
public
List
<
ActivityBehaviorRelationDTO
>
findActivityBehaviorRelationsByActivityId
(
Integer
activityId
){
...
...
xx-user-behavior-collect/xx-user-behavior-server/src/main/java/com/xxfc/platform/user/behavior/biz/BehaviorTypeBiz.java
View file @
238581a1
...
@@ -5,6 +5,7 @@ import com.xxfc.platform.user.behavior.dto.BehaviorTypeDTO;
...
@@ -5,6 +5,7 @@ import com.xxfc.platform.user.behavior.dto.BehaviorTypeDTO;
import
com.xxfc.platform.user.behavior.entity.BehaviorType
;
import
com.xxfc.platform.user.behavior.entity.BehaviorType
;
import
com.xxfc.platform.user.behavior.mapper.BehaviorTypeMapper
;
import
com.xxfc.platform.user.behavior.mapper.BehaviorTypeMapper
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.List
;
...
@@ -15,6 +16,7 @@ import java.util.List;
...
@@ -15,6 +16,7 @@ import java.util.List;
* @data 2019/8/13 14:09
* @data 2019/8/13 14:09
*/
*/
@Service
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
BehaviorTypeBiz
extends
BaseBiz
<
BehaviorTypeMapper
,
BehaviorType
>
{
public
class
BehaviorTypeBiz
extends
BaseBiz
<
BehaviorTypeMapper
,
BehaviorType
>
{
public
List
<
BehaviorTypeDTO
>
findBehaviorTypesByIds
(
List
<
Integer
>
typeIds
){
public
List
<
BehaviorTypeDTO
>
findBehaviorTypesByIds
(
List
<
Integer
>
typeIds
){
...
...
xx-user-behavior-collect/xx-user-behavior-server/src/main/java/com/xxfc/platform/user/behavior/biz/CustomerBehaviorNotesBiz.java
View file @
238581a1
...
@@ -17,6 +17,7 @@ import org.apache.commons.collections.CollectionUtils;
...
@@ -17,6 +17,7 @@ import org.apache.commons.collections.CollectionUtils;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
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.time.Instant
;
import
java.time.Instant
;
import
java.time.temporal.ChronoUnit
;
import
java.time.temporal.ChronoUnit
;
...
@@ -32,6 +33,7 @@ import java.util.stream.Collectors;
...
@@ -32,6 +33,7 @@ import java.util.stream.Collectors;
* @date 2019-08-12 14:03:55
* @date 2019-08-12 14:03:55
*/
*/
@Service
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
@RequiredArgsConstructor
(
onConstructor
=
@__
({
@Autowired
}))
@RequiredArgsConstructor
(
onConstructor
=
@__
({
@Autowired
}))
public
class
CustomerBehaviorNotesBiz
extends
BaseBiz
<
CustomerBehaviorNotesMapper
,
CustomerBehaviorNotes
>
{
public
class
CustomerBehaviorNotesBiz
extends
BaseBiz
<
CustomerBehaviorNotesMapper
,
CustomerBehaviorNotes
>
{
...
@@ -54,55 +56,53 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
...
@@ -54,55 +56,53 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
List
<
BehaviorNoteCollectVo
>
behaviorNoteCollectVos
=
new
ArrayList
<>();
List
<
BehaviorNoteCollectVo
>
behaviorNoteCollectVos
=
new
ArrayList
<>();
//获取时间间隔
//1.根据活动id查询活动行为
List
<
ActivityBehaviorDTO
>
activityBehaviorDTOS
=
activityBehaviorBiz
.
findActivityBehaviorsByActivityId
(
activityId
);
if
(
CollectionUtils
.
isEmpty
(
activityBehaviorDTOS
))
{
return
Collections
.
EMPTY_LIST
;
}
List
<
Integer
>
behaviorTypeIds
=
activityBehaviorDTOS
.
stream
().
map
(
ActivityBehaviorDTO:
:
getBehaviorTypeId
).
collect
(
Collectors
.
toList
());
//根据活动行为ids查询行为
List
<
BehaviorTypeDTO
>
behaviorTypeDTOS
=
behaviorTypeBiz
.
findBehaviorTypesByIds
(
behaviorTypeIds
);
List
<
Integer
>
behaviorCodes
=
behaviorTypeDTOS
.
stream
().
map
(
BehaviorTypeDTO:
:
getCode
).
collect
(
Collectors
.
toList
());
//过滤出活动行为的枚举类
Set
<
BehaviorEnum
>
behaviorEnums
=
EnumSet
.
allOf
(
BehaviorEnum
.
class
).
stream
().
filter
(
behaviorEnum
->
behaviorCodes
.
contains
(
behaviorEnum
.
getCode
())).
collect
(
Collectors
.
toSet
());
//2.获取时间间隔和开始时间与结束时间转换
AtomicLong
startAtomic
=
new
AtomicLong
(
startTime
==
null
?
0
:
startTime
);
AtomicLong
startAtomic
=
new
AtomicLong
(
startTime
==
null
?
0
:
startTime
);
AtomicLong
endAtomic
=
new
AtomicLong
(
endTime
==
null
?
0
:
endTime
);
AtomicLong
endAtomic
=
new
AtomicLong
(
endTime
==
null
?
0
:
endTime
);
long
between_day
=
getBetweenDayAndprocessStartTimeAndEndTime
(
activityId
,
startAtomic
,
endAtomic
);
long
between_day
=
getBetweenDayAndprocessStartTimeAndEndTime
(
activityId
,
startAtomic
,
endAtomic
);
between_day
=
Math
.
abs
(
between_day
)
==
0
?
1
:
Math
.
abs
(
between_day
);
//3.根据活动id 、开始时间、结束时间查询统计数据
List
<
CustomerBehaviorNotes
>
customerBehaviorNotes
=
mapper
.
selectByActivityIdAndTime
(
activityId
,
startAtomic
.
get
(),
endAtomic
.
get
());
List
<
CustomerBehaviorNotes
>
customerBehaviorNotes
=
mapper
.
selectByActivityIdAndTime
(
activityId
,
startAtomic
.
get
(),
endAtomic
.
get
());
boolean
isEmpty
=
CollectionUtils
.
isEmpty
(
customerBehaviorNotes
);
Map
<
Integer
,
List
<
CustomerBehaviorNotes
>>
behaviorAndDataMap
=
new
HashMap
<>(
20
);
List
<
ActivityPopularizeRelationDTO
>
popularizeRelations
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
customerBehaviorNotes
))
{
Map
<
Integer
,
List
<
CustomerBehaviorNotes
>>
behaviorAndDataMap
=
null
;
if
(!
isEmpty
)
{
//邀请成功记录
popularizeRelations
=
activityFeign
.
findActivityPopularizeRelationByActivityIdAndTime
(
activityId
,
startAtomic
.
get
(),
endAtomic
.
get
());
behaviorAndDataMap
=
customerBehaviorNotes
.
stream
().
collect
(
Collectors
.
groupingBy
(
CustomerBehaviorNotes:
:
getType
,
Collectors
.
toList
()));
behaviorAndDataMap
=
customerBehaviorNotes
.
stream
().
collect
(
Collectors
.
groupingBy
(
CustomerBehaviorNotes:
:
getType
,
Collectors
.
toList
()));
}
}
//根据活动id查询出对应业务id
List
<
ActivityBehaviorRelationDTO
>
activityBehaviorRelations
=
activityBehaviorRelationBiz
.
findActivityBehaviorRelationsByActivityId
(
activityId
);
List
<
Integer
>
bizIds
=
activityBehaviorRelations
.
stream
().
map
(
ActivityBehaviorRelationDTO:
:
getBizId
).
collect
(
Collectors
.
toList
());
//根据业务id查询出行为记录
//4.邀请成功记录
Map
<
Integer
,
List
<
CustomerBehaviorNotes
>>
behaviorTypeAndDataOfBizMap
=
new
HashMap
<>();
List
<
ActivityPopularizeRelationDTO
>
popularizeRelations
=
activityFeign
.
findActivityPopularizeRelationByActivityIdAndTime
(
activityId
,
startAtomic
.
get
(),
endAtomic
.
get
());
if
(
CollectionUtils
.
isNotEmpty
(
bizIds
))
{
//5.查询banner点击 弹窗曝光,立即前往,精选活动数据
List
<
ActivityBehaviorRelationDTO
>
activityBehaviorRelations
=
activityBehaviorRelationBiz
.
findActivityBehaviorRelationsByActivityId
(
activityId
);
Map
<
Integer
,
List
<
CustomerBehaviorNotes
>>
behaviorTypeAndDataOfBizMap
=
new
HashMap
<>(
20
);
if
(
CollectionUtils
.
isNotEmpty
(
activityBehaviorRelations
))
{
List
<
Integer
>
bizIds
=
activityBehaviorRelations
.
stream
().
map
(
ActivityBehaviorRelationDTO:
:
getBizId
).
collect
(
Collectors
.
toList
());
List
<
CustomerBehaviorNotes
>
customerBehaviorNotesbiz
=
mapper
.
selectAllByTypeIdsAndTime
(
bizIds
,
startAtomic
.
get
(),
endAtomic
.
get
());
List
<
CustomerBehaviorNotes
>
customerBehaviorNotesbiz
=
mapper
.
selectAllByTypeIdsAndTime
(
bizIds
,
startAtomic
.
get
(),
endAtomic
.
get
());
//业务数据转换map
//业务数据转换map
if
(
CollectionUtils
.
isNotEmpty
(
customerBehaviorNotesbiz
))
{
if
(
CollectionUtils
.
isNotEmpty
(
customerBehaviorNotesbiz
))
{
behaviorTypeAndDataOfBizMap
=
customerBehaviorNotesbiz
.
stream
().
collect
(
Collectors
.
groupingBy
(
CustomerBehaviorNotes:
:
getType
,
Collectors
.
toList
()));
behaviorTypeAndDataOfBizMap
=
customerBehaviorNotesbiz
.
stream
().
collect
(
Collectors
.
groupingBy
(
CustomerBehaviorNotes:
:
getType
,
Collectors
.
toList
()));
}
}
}
}
//根据活动id查询活动行为
List
<
ActivityBehaviorDTO
>
activityBehaviorDTOS
=
activityBehaviorBiz
.
findActivityBehaviorsByActivityId
(
activityId
);
if
(
CollectionUtils
.
isEmpty
(
activityBehaviorDTOS
)){
return
Collections
.
EMPTY_LIST
;
}
List
<
Integer
>
behaviorTypeIds
=
activityBehaviorDTOS
.
stream
().
map
(
ActivityBehaviorDTO:
:
getBehaviorTypeId
).
collect
(
Collectors
.
toList
());
//根据活动行为ids查询行为
List
<
BehaviorTypeDTO
>
behaviorTypeDTOS
=
behaviorTypeBiz
.
findBehaviorTypesByIds
(
behaviorTypeIds
);
List
<
Integer
>
behaviorCodes
=
behaviorTypeDTOS
.
stream
().
map
(
BehaviorTypeDTO:
:
getCode
).
collect
(
Collectors
.
toList
());
//过滤出活动行为的枚举类
Set
<
BehaviorEnum
>
behaviorEnums
=
EnumSet
.
allOf
(
BehaviorEnum
.
class
).
stream
().
filter
(
behaviorEnum
->
behaviorCodes
.
contains
(
behaviorEnum
.
getCode
())).
collect
(
Collectors
.
toSet
());
//数据转换为行为码与行为名称Map
Map
<
Integer
,
String
>
codeAndName
=
behaviorTypeDTOS
.
stream
().
collect
(
Collectors
.
toMap
(
BehaviorTypeDTO:
:
getCode
,
BehaviorTypeDTO:
:
getName
));
//6.数据统计处理
BehaviorNoteCollectVo
behaviorNoteCollectVo
;
BehaviorNoteCollectVo
behaviorNoteCollectVo
;
for
(
BehaviorEnum
behaviorEnum
:
behaviorEnums
)
{
for
(
BehaviorEnum
behaviorEnum
:
behaviorEnums
)
{
behaviorNoteCollectVo
=
new
BehaviorNoteCollectVo
();
behaviorNoteCollectVo
=
new
BehaviorNoteCollectVo
();
behaviorNoteCollectVo
.
setBehavior
(
codeAndName
.
get
(
behaviorEnum
.
getCode
()
));
behaviorNoteCollectVo
.
setBehavior
(
behaviorEnum
.
getName
(
));
long
default_p_total
,
default_p_avg
;
long
default_p_total
,
default_p_avg
;
ActionAcount
actionAcount
;
ActionAcount
actionAcount
;
switch
(
behaviorEnum
)
{
switch
(
behaviorEnum
)
{
//成功邀请人数统计
case
SUCCESS_INVIT:
case
SUCCESS_INVIT:
actionAcount
=
new
ActionAcount
();
actionAcount
=
new
ActionAcount
();
default_p_total
=
popularizeRelations
.
size
();
default_p_total
=
popularizeRelations
.
size
();
...
@@ -112,6 +112,7 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
...
@@ -112,6 +112,7 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
actionAcount
.
setDefault_u_total
(
default_p_total
);
actionAcount
.
setDefault_u_total
(
default_p_total
);
actionAcount
.
setDefault_u_avg
(
default_p_avg
);
actionAcount
.
setDefault_u_avg
(
default_p_avg
);
break
;
break
;
//成功邀请人数大于10的统计
case
SUCCESS_MORE_10_INVIT:
case
SUCCESS_MORE_10_INVIT:
actionAcount
=
new
ActionAcount
();
actionAcount
=
new
ActionAcount
();
default_p_total
=
popularizeRelations
.
stream
().
collect
(
Collectors
.
groupingBy
(
ActivityPopularizeRelationDTO:
:
getMajorUserId
,
Collectors
.
counting
())).
values
().
stream
().
filter
(
x
->
x
>=
10
).
count
();
default_p_total
=
popularizeRelations
.
stream
().
collect
(
Collectors
.
groupingBy
(
ActivityPopularizeRelationDTO:
:
getMajorUserId
,
Collectors
.
counting
())).
values
().
stream
().
filter
(
x
->
x
>=
10
).
count
();
...
@@ -121,6 +122,7 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
...
@@ -121,6 +122,7 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
actionAcount
.
setDefault_u_total
(
default_p_total
);
actionAcount
.
setDefault_u_total
(
default_p_total
);
actionAcount
.
setDefault_u_avg
(
default_p_avg
);
actionAcount
.
setDefault_u_avg
(
default_p_avg
);
break
;
break
;
//App访问量统计
case
APP_VISIT_COUNT:
case
APP_VISIT_COUNT:
actionAcount
=
new
ActionAcount
();
actionAcount
=
new
ActionAcount
();
default_p_total
=
mapper
.
selectAppVvisitsByType
(
BehaviorEnum
.
APP_VISIT_COUNT
.
getCode
());
default_p_total
=
mapper
.
selectAppVvisitsByType
(
BehaviorEnum
.
APP_VISIT_COUNT
.
getCode
());
...
@@ -130,12 +132,14 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
...
@@ -130,12 +132,14 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
actionAcount
.
setDefault_u_total
(
default_p_total
);
actionAcount
.
setDefault_u_total
(
default_p_total
);
actionAcount
.
setDefault_u_avg
(
default_p_avg
);
actionAcount
.
setDefault_u_avg
(
default_p_avg
);
break
;
break
;
//banner点击 精选活动 立即前往 弹窗曝光 数据统计
case
BANNER_CLICK:
case
BANNER_CLICK:
case
WONDERFUL_ACTIVITY_CLICK:
case
WONDERFUL_ACTIVITY_CLICK:
case
DIALOG_WINDOW_TO:
case
DIALOG_WINDOW_TO:
case
DIALOG_WINDOW:
case
DIALOG_WINDOW:
actionAcount
=
new
ActionAcount
(
between_day
,
behaviorTypeAndDataOfBizMap
).
invoke
(
behaviorEnum
);
actionAcount
=
new
ActionAcount
(
between_day
,
behaviorTypeAndDataOfBizMap
).
invoke
(
behaviorEnum
);
break
;
break
;
//其它类型的数据统计
default
:
default
:
actionAcount
=
new
ActionAcount
(
between_day
,
behaviorAndDataMap
).
invoke
(
behaviorEnum
);
actionAcount
=
new
ActionAcount
(
between_day
,
behaviorAndDataMap
).
invoke
(
behaviorEnum
);
break
;
break
;
...
@@ -149,6 +153,13 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
...
@@ -149,6 +153,13 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
return
behaviorNoteCollectVos
;
return
behaviorNoteCollectVos
;
}
}
/**
* 获取时间间隔 和 开始与结束时间的处理
* @param activityId 活动id
* @param startTime 筛选的开始时间
* @param endTime 筛选的结束时间
* @return
*/
private
long
getBetweenDayAndprocessStartTimeAndEndTime
(
Integer
activityId
,
AtomicLong
startTime
,
AtomicLong
endTime
)
{
private
long
getBetweenDayAndprocessStartTimeAndEndTime
(
Integer
activityId
,
AtomicLong
startTime
,
AtomicLong
endTime
)
{
if
(
startTime
.
get
()
==
0
||
endTime
.
get
()
==
0
)
{
if
(
startTime
.
get
()
==
0
||
endTime
.
get
()
==
0
)
{
ActivityListDTO
activityListDTO
=
activityFeign
.
findActivityStartTimeAndEndTimeById
(
activityId
);
ActivityListDTO
activityListDTO
=
activityFeign
.
findActivityStartTimeAndEndTimeById
(
activityId
);
...
@@ -164,7 +175,8 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
...
@@ -164,7 +175,8 @@ public class CustomerBehaviorNotesBiz extends BaseBiz<CustomerBehaviorNotesMappe
endTime
.
set
(
now
.
toEpochMilli
());
endTime
.
set
(
now
.
toEpochMilli
());
}
}
}
}
return
ChronoUnit
.
DAYS
.
between
(
Instant
.
ofEpochMilli
(
startTime
.
get
()),
Instant
.
ofEpochMilli
(
endTime
.
get
()));
long
between_day
=
ChronoUnit
.
DAYS
.
between
(
Instant
.
ofEpochMilli
(
startTime
.
get
()),
Instant
.
ofEpochMilli
(
endTime
.
get
()));
return
Math
.
abs
(
between_day
)
==
0
?
1
:
Math
.
abs
(
between_day
);
}
}
private
class
ActionAcount
{
private
class
ActionAcount
{
...
...
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