Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx-performance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
姜武杰
clx-performance
Commits
6df86396
提交
6df86396
authored
10月 13, 2023
作者:
aiqingguo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
司机积分定时任务、运单完成积分统计
上级
ef2ad721
隐藏空白字符变更
内嵌
并排
正在显示
32 个修改的文件
包含
654 行增加
和
86 行删除
+654
-86
IntegralOrderAddMqParam.java
...com/clx/performance/param/mq/IntegralOrderAddMqParam.java
+34
-0
IntegralOrderVO.java
.../main/java/com/clx/performance/vo/pc/IntegralOrderVO.java
+1
-1
RabbitOrderIntegralConfig.java
...com/clx/performance/config/RabbitOrderIntegralConfig.java
+12
-0
RabbitKeyIntegralConstants.java
.../clx/performance/constant/RabbitKeyIntegralConstants.java
+6
-0
IntegralOrderDao.java
...c/main/java/com/clx/performance/dao/IntegralOrderDao.java
+7
-0
IntegralRecordDao.java
.../main/java/com/clx/performance/dao/IntegralRecordDao.java
+5
-0
OrderChildDao.java
.../src/main/java/com/clx/performance/dao/OrderChildDao.java
+7
-0
IntegralOrderDaoImpl.java
...va/com/clx/performance/dao/impl/IntegralOrderDaoImpl.java
+18
-0
IntegralRecordDaoImpl.java
...a/com/clx/performance/dao/impl/IntegralRecordDaoImpl.java
+5
-0
IntegralTruckDaoImpl.java
...va/com/clx/performance/dao/impl/IntegralTruckDaoImpl.java
+1
-1
OrderChildDaoImpl.java
.../java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
+12
-0
IntegralJob.java
...eb/src/main/java/com/clx/performance/job/IntegralJob.java
+2
-2
IntegralDelayListener.java
...a/com/clx/performance/listener/IntegralDelayListener.java
+1
-1
IntegralOrderGoodsAddListener.java
...x/performance/listener/IntegralOrderGoodsAddListener.java
+48
-0
RabbitOrderGoodsStatusOnHandler.java
...performance/listener/RabbitOrderGoodsStatusOnHandler.java
+10
-1
IntegraRecordMapper.java
.../java/com/clx/performance/mapper/IntegraRecordMapper.java
+9
-1
IntegralOrderMapper.java
.../java/com/clx/performance/mapper/IntegralOrderMapper.java
+7
-1
IntegralStatisticsMapper.java
.../com/clx/performance/mapper/IntegralStatisticsMapper.java
+1
-1
IntegralTruckMapper.java
.../java/com/clx/performance/mapper/IntegralTruckMapper.java
+1
-0
OrderChildMapper.java
...ain/java/com/clx/performance/mapper/OrderChildMapper.java
+3
-0
OrderChild.java
...b/src/main/java/com/clx/performance/model/OrderChild.java
+1
-0
IntegralJobHandlerService.java
...om/clx/performance/service/IntegralJobHandlerService.java
+5
-42
IntegralMqHandlerService.java
...com/clx/performance/service/IntegralMqHandlerService.java
+1
-0
IntegralMqService.java
...n/java/com/clx/performance/service/IntegralMqService.java
+4
-0
OrderChildService.java
...n/java/com/clx/performance/service/OrderChildService.java
+2
-0
IntegralJobHandlerServiceImpl.java
...rformance/service/impl/IntegralJobHandlerServiceImpl.java
+57
-0
IntegralMqHandlerServiceImpl.java
...erformance/service/impl/IntegralMqHandlerServiceImpl.java
+306
-12
IntegralMqServiceImpl.java
...m/clx/performance/service/impl/IntegralMqServiceImpl.java
+31
-8
IntegralStatisticsServiceImpl.java
...rformance/service/impl/IntegralStatisticsServiceImpl.java
+11
-9
OrderChildServiceImpl.java
...m/clx/performance/service/impl/OrderChildServiceImpl.java
+42
-4
IntegralStatisticsSqlProvider.java
...erformance/sqlProvider/IntegralStatisticsSqlProvider.java
+2
-2
IntegralTruckSqlProvider.java
...clx/performance/sqlProvider/IntegralTruckSqlProvider.java
+2
-0
没有找到文件。
performance-api/src/main/java/com/clx/performance/param/mq/IntegralOrderAddMqParam.java
0 → 100644
浏览文件 @
6df86396
package
com
.
clx
.
performance
.
param
.
mq
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.ToString
;
/**
* @Author: aiqingguo
* @Description: 积分货单新增
* @Date: 2023-10-13 11:02:01
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public
class
IntegralOrderAddMqParam
{
@ApiModelProperty
(
value
=
"货单编号"
,
example
=
"1000000000000"
)
private
String
orderGoodsNo
;
@ApiModelProperty
(
value
=
"发货地址id"
,
example
=
"1"
)
private
Integer
sendAddressId
;
@ApiModelProperty
(
value
=
"发货地址"
,
example
=
"北京"
)
private
String
sendAddress
;
@ApiModelProperty
(
value
=
"收货地址id"
,
example
=
"2"
)
private
Integer
receiveAddressId
;
@ApiModelProperty
(
value
=
"收货地址"
,
example
=
"上海"
)
private
String
receiveAddress
;
@ApiModelProperty
(
value
=
"货单类型:1优质单 2普通单 3流水单 4支援单"
,
example
=
"上海"
)
private
Integer
orderType
;
}
performance-api/src/main/java/com/clx/performance/vo/pc/IntegralOrderVO.java
浏览文件 @
6df86396
...
...
@@ -24,7 +24,7 @@ public class IntegralOrderVO {
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"货单编号"
,
example
=
"1000000000000"
)
private
String
orderNo
;
private
String
order
Goods
No
;
@ApiModelProperty
(
value
=
"发货地址id"
,
example
=
"1"
)
private
Integer
sendAddressId
;
@ApiModelProperty
(
value
=
"发货地址"
,
example
=
"北京"
)
...
...
performance-web/src/main/java/com/clx/performance/config/RabbitOrderIntegralConfig.java
浏览文件 @
6df86396
...
...
@@ -61,6 +61,18 @@ public class RabbitOrderIntegralConfig {
return
BindingBuilder
.
bind
(
integralTruckAddQueue
()).
to
(
integralDefaultExchange
()).
with
(
RabbitKeyIntegralConstants
.
INTEGRAL_TRUCK_ADD_ROUTING_KEY
);
}
/**
* 积分车辆新增
*/
@Bean
public
Queue
integralOrderGoodsAddQueue
()
{
return
new
Queue
(
RabbitKeyIntegralConstants
.
INTEGRAL_ORDER_GOODS_ADD_QUEUE
);
}
@Bean
public
Binding
integralOrderGoodsAddQueueBinding
()
{
return
BindingBuilder
.
bind
(
integralOrderGoodsAddQueue
()).
to
(
integralDefaultExchange
()).
with
(
RabbitKeyIntegralConstants
.
INTEGRAL_ORDER_GOODS_ADD_ROUTING_KEY
);
}
/**
* 积分记录新增
*/
...
...
performance-web/src/main/java/com/clx/performance/constant/RabbitKeyIntegralConstants.java
浏览文件 @
6df86396
...
...
@@ -39,6 +39,12 @@ public class RabbitKeyIntegralConstants {
public
static
final
String
INTEGRAL_TRUCK_ADD_QUEUE
=
PREFIX
+
"truck.add"
+
QUEUE
;
public
static
final
String
INTEGRAL_TRUCK_ADD_ROUTING_KEY
=
PREFIX
+
"truck.add"
+
QUEUE_ROUTING_KEY
;
/**
* 新增积分货单
*/
public
static
final
String
INTEGRAL_ORDER_GOODS_ADD_QUEUE
=
PREFIX
+
"orderGoods.add"
+
QUEUE
;
public
static
final
String
INTEGRAL_ORDER_GOODS_ADD_ROUTING_KEY
=
PREFIX
+
"orderGoods.add"
+
QUEUE_ROUTING_KEY
;
/**
* 新增积分记录
*/
...
...
performance-web/src/main/java/com/clx/performance/dao/IntegralOrderDao.java
浏览文件 @
6df86396
...
...
@@ -5,9 +5,12 @@ import com.clx.performance.mapper.IntegralOrderMapper;
import
com.clx.performance.model.IntegralOrder
;
import
com.clx.performance.param.pc.pageIntegralOrderParam
;
import
com.clx.performance.vo.pc.IntegralOrderVO
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.BaseDao
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* @Author: aiqinguo
* @Description: 积分货单
...
...
@@ -20,4 +23,8 @@ public interface IntegralOrderDao extends BaseDao<IntegralOrderMapper, IntegralO
IPage
<
IntegralOrderVO
>
pageByParam
(
pageIntegralOrderParam
param
);
List
<
String
>
getAllOrderNoList
();
Optional
<
IntegralOrder
>
getByOrderGoodsNo
(
String
orderGoodsNo
);
}
performance-web/src/main/java/com/clx/performance/dao/IntegralRecordDao.java
浏览文件 @
6df86396
...
...
@@ -22,4 +22,9 @@ public interface IntegralRecordDao extends BaseDao<IntegraRecordMapper, Integral
IntegralRecord
selectByStatisticsIdAndType
(
@Param
(
"statisticsId"
)
Integer
statisticsId
,
@Param
(
"type"
)
Integer
type
);
Integer
sumByStatisticsIdAndTypeAndTime
(
@Param
(
"statisticsId"
)
Integer
statisticsId
,
@Param
(
"type"
)
Integer
type
,
@Param
(
"beginTime"
)
String
beginTime
,
@Param
(
"endTime"
)
String
endTime
);
}
performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java
浏览文件 @
6df86396
...
...
@@ -14,6 +14,7 @@ import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import
com.clx.performance.vo.pc.PageOrderChildPoundAuditVO
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.BaseDao
;
import
org.apache.ibatis.annotations.Param
;
import
java.time.LocalDateTime
;
import
java.util.List
;
...
...
@@ -66,4 +67,10 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List
<
OrderChild
>
getOrderChildByOrderNo
(
String
orderNo
);
boolean
updateArriveSendAddress
(
OrderChild
orderChild
);
int
countCompleteByTruckNoAndPayFinishTime
(
@Param
(
"truckNo"
)
String
truckNo
,
@Param
(
"beginTime"
)
String
beginTime
,
@Param
(
"endTime"
)
String
endTime
,
@Param
(
"list"
)
List
<
String
>
orderNoList
);
}
performance-web/src/main/java/com/clx/performance/dao/impl/IntegralOrderDaoImpl.java
浏览文件 @
6df86396
...
...
@@ -7,9 +7,12 @@ import com.clx.performance.mapper.IntegralOrderMapper;
import
com.clx.performance.model.IntegralOrder
;
import
com.clx.performance.param.pc.pageIntegralOrderParam
;
import
com.clx.performance.vo.pc.IntegralOrderVO
;
import
com.msl.common.base.Optional
;
import
com.msl.common.dao.impl.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* @Author: aiqinguo
* @Description: 积分货单
...
...
@@ -30,4 +33,19 @@ public class IntegralOrderDaoImpl extends BaseDaoImpl<IntegralOrderMapper, Integ
return
baseMapper
.
pageByParam
(
Page
.
of
(
param
.
getPage
(),
param
.
getPageSize
()),
param
);
}
@Override
public
List
<
String
>
getAllOrderNoList
()
{
return
baseMapper
.
getAllOrderNoList
();
}
@Override
public
Optional
<
IntegralOrder
>
getByOrderGoodsNo
(
String
orderGoodsNo
)
{
return
Optional
.
of
(
orderGoodsNo
)
.
map
(
item
->
lQrWrapper
()
.
eq
(
IntegralOrder:
:
getOrderGoodsNo
,
item
)
)
.
map
(
super
::
getOne
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/IntegralRecordDaoImpl.java
浏览文件 @
6df86396
...
...
@@ -40,4 +40,9 @@ public class IntegralRecordDaoImpl extends BaseDaoImpl<IntegraRecordMapper, Inte
.
eq
(
IntegralRecord:
:
getType
,
type
));
}
@Override
public
Integer
sumByStatisticsIdAndTypeAndTime
(
Integer
statisticsId
,
Integer
type
,
String
beginTime
,
String
endTime
)
{
return
baseMapper
.
sumByStatisticsIdAndTypeAndTime
(
statisticsId
,
type
,
beginTime
,
endTime
);
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/IntegralTruckDaoImpl.java
浏览文件 @
6df86396
...
...
@@ -80,7 +80,7 @@ public class IntegralTruckDaoImpl extends BaseDaoImpl<IntegralTruckMapper, Integ
public
List
<
IntegralTruck
>
selectListByTime
(
String
beginTime
,
String
endTime
)
{
return
list
(
lQrWrapper
()
.
ge
(
IntegralTruck:
:
getCreateTime
,
beginTime
)
.
l
e
(
IntegralTruck:
:
getCreateTime
,
endTime
));
.
l
t
(
IntegralTruck:
:
getCreateTime
,
endTime
));
}
}
performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java
浏览文件 @
6df86396
...
...
@@ -226,6 +226,18 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
}
@Override
public
int
countCompleteByTruckNoAndPayFinishTime
(
String
truckNo
,
String
beginTime
,
String
endTime
,
List
<
String
>
orderNoList
)
{
return
(
int
)
count
(
lQrWrapper
()
.
eq
(
OrderChild:
:
getTruckNo
,
truckNo
)
.
ge
(
OrderChild:
:
getPayTime
,
beginTime
)
.
le
(
OrderChild:
:
getPayTime
,
endTime
)
.
ge
(
OrderChild:
:
getStatus
,
OrderChildEnum
.
Status
.
CREATED
.
getCode
())
.
le
(
OrderChild:
:
getStatus
,
OrderChildEnum
.
Status
.
COMPLETE
.
getCode
())
.
in
(
OrderChild:
:
getOrderNo
,
orderNoList
)
);
}
@Override
public
List
<
OrderChild
>
getOrderChildByOrderNo
(
String
orderNo
)
{
LambdaQueryWrapper
<
OrderChild
>
query
=
new
LambdaQueryWrapper
();
...
...
performance-web/src/main/java/com/clx/performance/job/IntegralJob.java
浏览文件 @
6df86396
...
...
@@ -29,8 +29,8 @@ public class IntegralJob {
* 下周车辆初始化 (周日)
* @Scheduled(cron = "0 0 22 ? * 7")
*/
@XxlJob
(
"
favoriteStatusSyncTask
"
)
public
void
favoriteStatusSyncTask
()
{
@XxlJob
(
"
nextWeekTruckInit
"
)
public
void
nextWeekTruckInit
()
{
jobHandlerService
.
handler
(
"司机积分-下周车辆初始化"
,
integralJobHandlerService:
:
nextWeekTruckInit
);
}
...
...
performance-web/src/main/java/com/clx/performance/listener/IntegralDelayListener.java
浏览文件 @
6df86396
...
...
@@ -36,7 +36,7 @@ public class IntegralDelayListener {
}
void
process
(
MqDelay
mq
){
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
mq
).
getBytes
()).
build
();
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
mq
.
getData
()
).
getBytes
()).
build
();
rabbitTemplate
.
send
(
mq
.
getExchange
(),
mq
.
getRouterKey
(),
message
);
}
...
...
performance-web/src/main/java/com/clx/performance/listener/IntegralOrderGoodsAddListener.java
0 → 100644
浏览文件 @
6df86396
package
com
.
clx
.
performance
.
listener
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.clx.performance.constant.RabbitKeyIntegralConstants
;
import
com.clx.performance.param.mq.IntegralOrderAddMqParam
;
import
com.clx.performance.service.IntegralMqHandlerService
;
import
com.clx.performance.utils.MqWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author: 艾庆国
* @Description: 积分货单新增 mq
* @Date: 2023-10-13 11:32:08
* @Version: 1.0
*/
@Slf4j
@Component
public
class
IntegralOrderGoodsAddListener
{
@Autowired
private
IntegralMqHandlerService
integralMqHandlerService
;
@RabbitListener
(
queues
=
RabbitKeyIntegralConstants
.
INTEGRAL_ORDER_GOODS_ADD_QUEUE
)
public
void
process
(
Message
message
)
{
try
{
log
.
info
(
"司机积分-新增货单, message:{}"
,
new
String
(
message
.
getBody
()));
process
(
JSON
.
parseObject
(
new
String
(
message
.
getBody
()),
new
TypeReference
<
MqWrapper
<
IntegralOrderAddMqParam
>>(){}).
getData
());
}
catch
(
Exception
e
){
log
.
info
(
"司机积分-新增货单 失败"
,
e
);
}
}
private
void
process
(
IntegralOrderAddMqParam
mq
){
integralMqHandlerService
.
orderGoodsAdd
(
mq
);
}
public
static
void
main
(
String
[]
args
)
{
String
a
=
"{\"data\":{\"data\":{\"orderType\":1,\"receiveAddressId\":2,\"receiveAddress\":\"收货地址\",\"orderGoodsNo\":\"PT2023092100031\",\"sendAddressId\":1,\"sendAddress\":\"发货地址\"},\"createTime\":\"2023-10-13 15:27:05\"},\"exchange\":\"clx-performance.integral.default.exchange\",\"routerKey\":\"clx-performance.integral.orderGoods.add.routing.key\"}"
;
}
}
performance-web/src/main/java/com/clx/performance/listener/RabbitOrderGoodsStatusOnHandler.java
浏览文件 @
6df86396
package
com
.
clx
.
performance
.
listener
;
import
com.clx.order.enums.OrderEnum
;
import
com.clx.performance.constant.RabbitKeyConstants
;
import
com.clx.performance.dao.OrderGoodsDao
;
import
com.clx.performance.enums.OrderGoodsStatusEnum
;
import
com.clx.performance.model.OrderGoods
;
import
com.clx.performance.service.IntegralMqService
;
import
com.msl.common.base.Optional
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -22,6 +22,9 @@ public class RabbitOrderGoodsStatusOnHandler {
@Autowired
private
OrderGoodsDao
orderGoodsDao
;
@Autowired
private
IntegralMqService
integralMqService
;
@RabbitListener
(
queues
=
RabbitKeyConstants
.
ORDER_GOODS_ON_DEAD_QUEUE
)
public
void
onMessage
(
String
message
)
{
log
.
info
(
"处理货单状态由已挂单变为挂弹中监听器执行,货单ID为{}"
,
message
);
...
...
@@ -37,6 +40,12 @@ public class RabbitOrderGoodsStatusOnHandler {
if
(
OrderGoodsStatusEnum
.
Status
.
CREATED
.
getCode
().
equals
(
orderGoods
.
getOrderGoodsStatus
()))
{
log
.
info
(
"处理货单状态由已挂单变为挂单中监听器执行,从状态{}-----变更为{}"
,
orderGoods
.
getOrderGoodsStatus
(),
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getName
());
orderGoodsDao
.
updateOrderGoodsStatusByOrderGoodsNo
(
orderGoods
.
getOrderGoodsNo
(),
OrderGoodsStatusEnum
.
Status
.
PAYING
.
getCode
());
// 添加积分货单
integralMqService
.
orderGoodsAdd
(
orderGoods
.
getOrderGoodsNo
(),
orderGoods
.
getSendAddressId
(),
orderGoods
.
getSendAddressShorter
(),
orderGoods
.
getReceiveAddressId
(),
orderGoods
.
getReceiveAddressShorter
());
}
}
}
performance-web/src/main/java/com/clx/performance/mapper/IntegraRecordMapper.java
浏览文件 @
6df86396
...
...
@@ -10,6 +10,7 @@ import com.clx.performance.sqlProvider.IntegralTruckSqlProvider;
import
com.clx.performance.vo.pc.IntegralRecordVO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.annotations.SelectProvider
;
/**
...
...
@@ -25,7 +26,13 @@ public interface IntegraRecordMapper extends BaseMapper<IntegralRecord> {
/**
* @see IntegralRecordSqlProvider#pageByParam(com.baomidou.mybatisplus.extension.plugins.pagination.Page, com.clx.performance.param.pc.pageIntegralStatisticsDetailParam)
*/
@SelectProvider
(
type
=
Integral
Truck
SqlProvider
.
class
,
method
=
"pageByParam"
)
@SelectProvider
(
type
=
Integral
Record
SqlProvider
.
class
,
method
=
"pageByParam"
)
IPage
<
IntegralRecordVO
>
pageByParam
(
@Param
(
"page"
)
Page
<
IntegralRecordVO
>
page
,
@Param
(
"param"
)
pageIntegralStatisticsDetailParam
param
);
@Select
(
"select sum(integral) from integral_record where statistics_id = #{statisticsId} and type = #{type} and create_time >= #{beginTime} and create_time < #{endTime}"
)
Integer
sumByStatisticsIdAndTypeAndTime
(
@Param
(
"statisticsId"
)
Integer
statisticsId
,
@Param
(
"type"
)
Integer
type
,
@Param
(
"beginTime"
)
String
beginTime
,
@Param
(
"endTime"
)
String
endTime
);
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/mapper/IntegralOrderMapper.java
浏览文件 @
6df86396
...
...
@@ -13,6 +13,8 @@ import org.apache.ibatis.annotations.Param;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.annotations.SelectProvider
;
import
java.util.List
;
/**
* @Author: aiqinguo
* @Description: 积分货单
...
...
@@ -32,7 +34,10 @@ public interface IntegralOrderMapper extends BaseMapper<IntegralOrder> {
/**
* @see IntegralOrderSqlProvider#pageByParam(com.baomidou.mybatisplus.extension.plugins.pagination.Page, com.clx.performance.param.pc.pageIntegralOrderParam)
*/
@SelectProvider
(
type
=
Integral
Truck
SqlProvider
.
class
,
method
=
"pageByParam"
)
@SelectProvider
(
type
=
Integral
Order
SqlProvider
.
class
,
method
=
"pageByParam"
)
IPage
<
IntegralOrderVO
>
pageByParam
(
@Param
(
"page"
)
Page
<
IntegralOrderVO
>
page
,
@Param
(
"param"
)
pageIntegralOrderParam
param
);
@Select
(
"select order_no from integral_order "
)
List
<
String
>
getAllOrderNoList
();
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/mapper/IntegralStatisticsMapper.java
浏览文件 @
6df86396
...
...
@@ -28,7 +28,7 @@ public interface IntegralStatisticsMapper extends BaseMapper<IntegralStatistics>
/**
* @see IntegralStatisticsSqlProvider#pageByParam(com.baomidou.mybatisplus.extension.plugins.pagination.Page, com.clx.performance.param.pc.PageIntegralStatisticsParam)
*/
@SelectProvider
(
type
=
Integral
Truck
SqlProvider
.
class
,
method
=
"pageByParam"
)
@SelectProvider
(
type
=
Integral
Statistics
SqlProvider
.
class
,
method
=
"pageByParam"
)
IPage
<
IntegralStatisticsVO
>
pageByParam
(
@Param
(
"page"
)
Page
<
IntegralStatisticsVO
>
page
,
@Param
(
"param"
)
PageIntegralStatisticsParam
param
);
/**
...
...
performance-web/src/main/java/com/clx/performance/mapper/IntegralTruckMapper.java
浏览文件 @
6df86396
...
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.model.IntegralTruck
;
import
com.clx.performance.param.pc.PageIntegralTruckParam
;
import
com.clx.performance.param.pc.PageIntegralTruckRankParam
;
import
com.clx.performance.sqlProvider.IntegralTruckSqlProvider
;
import
com.clx.performance.vo.pc.IntegralTruckVO
;
import
org.apache.ibatis.annotations.Mapper
;
...
...
performance-web/src/main/java/com/clx/performance/mapper/OrderChildMapper.java
浏览文件 @
6df86396
...
...
@@ -18,6 +18,7 @@ import org.apache.ibatis.annotations.Param;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.annotations.SelectProvider
;
import
java.util.List
;
@Mapper
...
...
@@ -46,4 +47,5 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@Select
(
"select count(1) from order_child where order_goods_no = #{orderGoodsNo} and status < 110"
)
int
countValidByOrderGoodsNo
(
String
orderGoodsNo
);
}
\ No newline at end of file
performance-web/src/main/java/com/clx/performance/model/OrderChild.java
浏览文件 @
6df86396
...
...
@@ -74,6 +74,7 @@ public class OrderChild implements HasKey<Integer> {
private
LocalDateTime
payTime
;
//支付时间(抢单时间)
private
LocalDateTime
arriveSendTime
;
//到达货源地时间
private
LocalDateTime
loadTime
;
//装车时间
private
LocalDateTime
arriveReceiveTime
;
//到达目的地时间
private
LocalDateTime
unloadTime
;
//卸车时间
private
LocalDateTime
settleTime
;
//结算时间
private
LocalDateTime
cancelTime
;
//取消时间
...
...
performance-web/src/main/java/com/clx/performance/service/IntegralJobHandlerService.java
浏览文件 @
6df86396
package
com
.
clx
.
performance
.
service
;
import
com.clx.performance.model.IntegralTruck
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
public
class
IntegralJobHandlerService
{
public
interface
IntegralJobHandlerService
{
void
nextWeekTruckInit
();
@Autowired
private
IntegralMqService
integralMqService
;
void
weekTruckStatistics
();
void
weekTruckStatistics
(
IntegralTruck
truck
)
;
/**
* 下周车辆初始化
*/
public
void
nextWeekTruckInit
(){
// 发送mq (下周车辆初始化)
integralMqService
.
nextWeekTruckInit
(
LocalDateTimeUtils
.
getWeekStart
());
}
/**
* 车辆周统计 (结算上周积分)
*/
public
void
weekTruckStatistics
(){
// 发送mq (下周车辆初始化)
integralMqService
.
weekTruckStatistics
(
LocalDateTimeUtils
.
getWeekStart
());
}
public
void
weekTruckStatistics
(
IntegralTruck
truck
){
// 发送mq (下周车辆初始化)
integralMqService
.
weekTruckStatistics
(
LocalDateTimeUtils
.
getWeekStart
(),
truck
.
getTruckNo
());
}
/**
* 车辆保护取消
*/
public
void
truckProtectionCancel
(
IntegralTruck
truck
){
// 发送mq (车辆保护取消)
integralMqService
.
truckProtectionCancel
(
LocalDateTimeUtils
.
getWeekStart
(),
truck
.
getTruckNo
());
}
void
truckProtectionCancel
(
IntegralTruck
truck
);
}
performance-web/src/main/java/com/clx/performance/service/IntegralMqHandlerService.java
浏览文件 @
6df86396
...
...
@@ -5,6 +5,7 @@ import com.clx.performance.param.mq.*;
public
interface
IntegralMqHandlerService
{
void
truckAdd
(
IntegralTuckAddMqParam
mq
);
void
orderGoodsAdd
(
IntegralOrderAddMqParam
mq
);
void
recordAdd
(
IntegralRecordAddMqParam
mq
);
...
...
performance-web/src/main/java/com/clx/performance/service/IntegralMqService.java
浏览文件 @
6df86396
...
...
@@ -4,6 +4,10 @@ public interface IntegralMqService {
void
truckAdd
(
Integer
statisticsId
,
String
truckNo
);
void
orderGoodsAdd
(
String
orderGoodsNo
,
Integer
sendAddressId
,
String
sendAddress
,
Integer
receiveAddressId
,
String
receiveAddress
);
void
integralRecordAdd
(
Integer
statisticsId
,
String
truckNo
,
Integer
type
,
Integer
integral
,
String
remark
);
void
nextWeekTruckInit
(
String
statisticsDate
);
...
...
performance-web/src/main/java/com/clx/performance/service/OrderChildService.java
浏览文件 @
6df86396
package
com
.
clx
.
performance
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.clx.performance.model.OrderChild
;
import
com.clx.performance.param.app.*
;
import
com.clx.performance.param.pc.OrderChildCarrierCancelParam
;
import
com.clx.performance.param.pc.PageCarrierOrderChildParam
;
...
...
@@ -36,6 +37,7 @@ public interface OrderChildService {
void
updateLoadAndUnloadAgain
(
OrderChildLoadAndUnloadAgainParam
param
);
void
updateDriverConfirm
(
OrderChildDriverConfirmParam
param
);
void
updateSettlement
(
OrderChild
orderChild
);
void
updateDriverCancel
(
OrderChildDriverCancelParam
param
);
void
updateCarrierCancel
(
OrderChildCarrierCancelParam
param
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/IntegralJobHandlerServiceImpl.java
0 → 100644
浏览文件 @
6df86396
package
com
.
clx
.
performance
.
service
.
impl
;
import
com.clx.performance.model.IntegralTruck
;
import
com.clx.performance.service.IntegralJobHandlerService
;
import
com.clx.performance.service.IntegralMqService
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
public
class
IntegralJobHandlerServiceImpl
implements
IntegralJobHandlerService
{
@Autowired
private
IntegralMqService
integralMqService
;
/**
* 下周车辆初始化
*/
@Override
public
void
nextWeekTruckInit
(){
// 发送mq (下周车辆初始化)
integralMqService
.
nextWeekTruckInit
(
LocalDateTimeUtils
.
getWeekStart
());
}
/**
* 车辆周统计 (结算上周积分)
*/
@Override
public
void
weekTruckStatistics
(){
// 发送mq (下周车辆初始化)
integralMqService
.
weekTruckStatistics
(
LocalDateTimeUtils
.
getWeekStart
());
}
@Override
public
void
weekTruckStatistics
(
IntegralTruck
truck
){
// 发送mq (下周车辆初始化)
integralMqService
.
weekTruckStatistics
(
LocalDateTimeUtils
.
getWeekStart
(),
truck
.
getTruckNo
());
}
/**
* 车辆保护取消
*/
@Override
public
void
truckProtectionCancel
(
IntegralTruck
truck
){
// 发送mq (车辆保护取消)
integralMqService
.
truckProtectionCancel
(
LocalDateTimeUtils
.
getWeekStart
(),
truck
.
getTruckNo
());
}
}
performance-web/src/main/java/com/clx/performance/service/impl/IntegralMqHandlerServiceImpl.java
浏览文件 @
6df86396
package
com
.
clx
.
performance
.
service
.
impl
;
import
com.clx.performance.dao.*
;
import
com.clx.performance.model.IntegralRecord
;
import
com.clx.performance.model.IntegralStatistics
;
import
com.clx.performance.model.IntegralTruck
;
import
com.clx.performance.enums.OrderChildEnum
;
import
com.clx.performance.model.*
;
import
com.clx.performance.param.mq.*
;
import
com.clx.performance.service.IntegralMqHandlerService
;
import
com.clx.performance.service.IntegralMqService
;
import
com.clx.performance.service.IntegralRecordService
;
import
com.clx.performance.service.IntegralStatisticsService
;
import
com.clx.performance.service.*
;
import
com.clx.performance.utils.LocalDateTimeUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -16,7 +12,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.time.Duration
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.stream.Collectors
;
...
...
@@ -24,8 +23,6 @@ import java.util.stream.Collectors;
@Service
public
class
IntegralMqHandlerServiceImpl
implements
IntegralMqHandlerService
{
@Autowired
private
IntegralMqService
integralMqService
;
@Autowired
private
IntegralStatisticsDao
integralStatisticsDao
;
@Autowired
...
...
@@ -37,9 +34,6 @@ public class IntegralMqHandlerServiceImpl implements IntegralMqHandlerService {
@Autowired
private
OrderChildDao
orderChildDao
;
@Autowired
private
OrderGoodsDao
orderGoodsDao
;
@Autowired
private
IntegralStatisticsService
integralStatisticsService
;
...
...
@@ -54,6 +48,25 @@ public class IntegralMqHandlerServiceImpl implements IntegralMqHandlerService {
public
void
truckAdd
(
IntegralTuckAddMqParam
mq
){
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
orderGoodsAdd
(
IntegralOrderAddMqParam
mq
)
{
boolean
existFlag
=
integralOrderDao
.
existByOrderGoodsNo
(
mq
.
getOrderGoodsNo
());
if
(
existFlag
)
{
return
;}
IntegralOrder
order
=
new
IntegralOrder
();
order
.
setOrderGoodsNo
(
mq
.
getOrderGoodsNo
());
order
.
setSendAddressId
(
mq
.
getSendAddressId
());
order
.
setSendAddress
(
mq
.
getSendAddress
());
order
.
setReceiveAddressId
(
mq
.
getReceiveAddressId
());
order
.
setReceiveAddress
(
mq
.
getReceiveAddress
());
order
.
setOrderType
(
mq
.
getOrderType
());
order
.
setTruckEchelon
(
1
);
integralOrderDao
.
saveEntity
(
order
);
}
/**
...
...
@@ -244,6 +257,252 @@ public class IntegralMqHandlerServiceImpl implements IntegralMqHandlerService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
orderChildFinish
(
IntegralOrderChildFinishMqParam
mq
)
{
String
statisticsDate
=
LocalDateTimeUtils
.
getStringDayStart
();
OrderChild
orderChild
=
orderChildDao
.
getByChildNo
(
mq
.
getChildNo
()).
orNull
();
if
(
null
==
orderChild
)
{
return
;}
IntegralOrder
integralOrder
=
integralOrderDao
.
getByOrderGoodsNo
(
orderChild
.
getOrderGoodsNo
()).
orNull
();
if
(
null
==
integralOrder
){
return
;}
IntegralStatistics
statistics
=
integralStatisticsDao
.
selectByTruckNoAndStatisticsDate
(
orderChild
.
getTruckNo
(),
statisticsDate
).
orNull
();
if
(
null
==
statistics
)
{
return
;}
IntegralTruck
truck
=
integralTruckDao
.
getByTruckNo
(
orderChild
.
getTruckNo
()).
orNull
();
if
(
null
==
truck
)
{
return
;}
List
<
Integer
>
finishStatusList
=
Arrays
.
asList
(
OrderChildEnum
.
Status
.
COMPLETE
.
getCode
());
List
<
Integer
>
cancelStatusList
=
OrderChildEnum
.
CANCEL_lIST
;;
int
integral
=
0
;
if
(
finishStatusList
.
contains
(
orderChild
.
getStatus
())){
// 完成
integral
=
orderChildCompleteIntegralSettlement
(
statistics
,
integralOrder
,
orderChild
);
}
else
if
(
cancelStatusList
.
contains
(
orderChild
.
getStatus
())){
// 取消
integral
=
orderChildCancelIntegralSettlement
(
statistics
,
integralOrder
,
orderChild
);
}
log
.
info
(
"司机积分, 运单:{}, 累计积分:{}"
,
orderChild
.
getChildNo
(),
integral
);
// 更新积分
statistics
.
setIntegral
(
statistics
.
getIntegral
()+
integral
);
integralStatisticsDao
.
updateIntegral
(
statistics
);
truck
.
setIntegral
(
statistics
.
getIntegral
());
integralTruckDao
.
updateIntegral
(
truck
);
// 实时积分统计
integralRealTimeStatistics
(
statistics
.
getId
());
}
/**
* 运单完成
*/
private
int
orderChildCompleteIntegralSettlement
(
IntegralStatistics
statistics
,
IntegralOrder
integralOrder
,
OrderChild
orderChild
){
LocalDateTime
dateTimeDayStart
=
LocalDateTimeUtils
.
getDayStart
();
LocalDateTime
dateTimeDayNext
=
dateTimeDayStart
.
plusDays
(
1
);
String
dayStartTime
=
LocalDateTimeUtils
.
formatTime
(
dateTimeDayStart
);
String
nextDayStartTime
=
LocalDateTimeUtils
.
formatTime
(
dateTimeDayNext
);
int
integralSum
=
0
;
// 运单完成积分
int
completeIntegral
=
5
;
if
(
completeIntegral
>
0
){
Integer
sum
=
integralRecordDao
.
sumByStatisticsIdAndTypeAndTime
(
statistics
.
getId
(),
IntegralRecord
.
type
.
ORDER_CHILD_COMPLETE
.
getValue
(),
dayStartTime
,
nextDayStartTime
);
if
(
null
==
sum
)
{
sum
=
0
;}
if
(
sum
+
completeIntegral
>
30
)
{
completeIntegral
=
0
;}
}
if
(
completeIntegral
>
0
){
String
remark
=
""
;
if
(
IntegralOrder
.
OrderType
.
HIGH_QUALITY
.
getValue
().
equals
(
integralOrder
.
getOrderType
())){
remark
=
"完成优质单"
;}
else
if
(
IntegralOrder
.
OrderType
.
NORMAL
.
getValue
().
equals
(
integralOrder
.
getOrderType
())){
remark
=
"完成普通单"
;}
else
if
(
IntegralOrder
.
OrderType
.
WATER
.
getValue
().
equals
(
integralOrder
.
getOrderType
())){
remark
=
"完成流水单"
;}
else
if
(
IntegralOrder
.
OrderType
.
SUPPORT
.
getValue
().
equals
(
integralOrder
.
getOrderType
())){
remark
=
"完成支援单"
;}
integralRecordService
.
save
(
statistics
.
getId
(),
statistics
.
getStatisticsDate
(),
statistics
.
getTruckNo
(),
IntegralRecord
.
type
.
ORDER_CHILD_COMPLETE
.
getValue
(),
completeIntegral
,
remark
);
}
// 完成量积分
int
completeNumIntegral
=
0
;
String
completeNumIntegralRemark
=
""
;
List
<
String
>
enableOrderNoList
=
integralOrderDao
.
getAllOrderNoList
();
int
finishNum
=
orderChildDao
.
countCompleteByTruckNoAndPayFinishTime
(
orderChild
.
getTruckNo
(),
LocalDateTimeUtils
.
formatTime
(
dateTimeDayStart
),
LocalDateTimeUtils
.
formatTime
(
dateTimeDayNext
),
enableOrderNoList
);
if
(
finishNum
==
1
){
completeNumIntegral
=
0
;
}
else
if
(
finishNum
==
2
){
completeNumIntegral
=
5
;
completeNumIntegralRemark
=
"运单达量2单"
;
}
else
if
(
finishNum
==
3
){
completeNumIntegral
=
5
;
completeNumIntegralRemark
=
"运单达量3单"
;
}
else
if
(
finishNum
==
4
){
completeNumIntegral
=
10
;
completeNumIntegralRemark
=
"运单达量4单"
;
}
else
if
(
finishNum
>
4
){
completeNumIntegral
=
0
;
}
if
(
completeNumIntegral
>
0
){
integralRecordService
.
save
(
statistics
.
getId
(),
statistics
.
getStatisticsDate
(),
statistics
.
getTruckNo
(),
IntegralRecord
.
type
.
ORDER_CHILD_COMPLETE_NUM
.
getValue
(),
completeNumIntegral
,
completeNumIntegralRemark
);
}
// 奖励积分(低价)
int
waterOrderIntegral
=
0
;
if
(
IntegralOrder
.
OrderType
.
WATER
.
getValue
().
equals
(
integralOrder
.
getOrderType
())){
waterOrderIntegral
=
3
;
}
if
(
waterOrderIntegral
>
0
){
Integer
sum
=
integralRecordDao
.
sumByStatisticsIdAndTypeAndTime
(
statistics
.
getId
(),
IntegralRecord
.
type
.
ORDER_CHILD_COMPLETE_WATER
.
getValue
(),
dayStartTime
,
nextDayStartTime
);
if
(
null
==
sum
)
{
sum
=
0
;}
if
((
sum
+
waterOrderIntegral
)
>
30
)
{
waterOrderIntegral
=
0
;}
}
if
(
waterOrderIntegral
>
0
){
integralRecordService
.
save
(
statistics
.
getId
(),
statistics
.
getStatisticsDate
(),
statistics
.
getTruckNo
(),
IntegralRecord
.
type
.
ORDER_CHILD_COMPLETE_WATER
.
getValue
(),
waterOrderIntegral
,
"流水单奖励"
);
}
// 奖励积分(支持单)
int
supportOrderIntegral
=
0
;
if
(
IntegralOrder
.
OrderType
.
SUPPORT
.
getValue
().
equals
(
integralOrder
.
getOrderType
())){
supportOrderIntegral
=
3
;
}
if
(
supportOrderIntegral
>
0
){
Integer
sum
=
integralRecordDao
.
sumByStatisticsIdAndTypeAndTime
(
statistics
.
getId
(),
IntegralRecord
.
type
.
ORDER_CHILD_COMPLETE_SUPPORT
.
getValue
(),
dayStartTime
,
nextDayStartTime
);
if
(
null
==
sum
)
{
sum
=
0
;}
if
((
sum
+
supportOrderIntegral
)
>
30
)
{
supportOrderIntegral
=
0
;}
}
if
(
supportOrderIntegral
>
0
){
integralRecordService
.
save
(
statistics
.
getId
(),
statistics
.
getStatisticsDate
(),
statistics
.
getTruckNo
(),
IntegralRecord
.
type
.
ORDER_CHILD_COMPLETE_SUPPORT
.
getValue
(),
supportOrderIntegral
,
"支援单奖励"
);
}
// 超时
if
(
null
==
orderChild
.
getExpectSendTime
()
&&
null
==
orderChild
.
getExpectReceiveTime
()){
integralSum
=
completeIntegral
+
completeNumIntegral
+
waterOrderIntegral
+
supportOrderIntegral
;
return
integralSum
;
}
Integer
sendAddressTime
=
null
;
Integer
receiveAddressTime
=
null
;
if
(
null
!=
orderChild
.
getExpectSendTime
())
{
sendAddressTime
=
diffSecond
(
orderChild
.
getPayTime
(),
orderChild
.
getExpectSendTime
());
}
if
(
null
!=
orderChild
.
getExpectReceiveTime
())
{
receiveAddressTime
=
diffSecond
(
orderChild
.
getExpectSendTime
(),
orderChild
.
getExpectReceiveTime
());
}
int
sendAddressTimeoutIntegral
=
0
;
if
(
null
!=
sendAddressTime
){
int
realTime
=
diffSecond
(
orderChild
.
getPayTime
(),
orderChild
.
getArriveSendTime
());
if
(
realTime
>=
sendAddressTime
*
2
&&
realTime
<
sendAddressTime
*
3
)
{
sendAddressTimeoutIntegral
=
-
2
;}
else
if
(
realTime
>=
sendAddressTime
*
3
)
{
sendAddressTimeoutIntegral
=
-
3
;}
}
if
(
sendAddressTimeoutIntegral
<
0
){
integralRecordService
.
save
(
statistics
.
getId
(),
statistics
.
getStatisticsDate
(),
statistics
.
getTruckNo
(),
IntegralRecord
.
type
.
ORDER_CHILD_COMPLETE_TIMEOUT
.
getValue
(),
sendAddressTimeoutIntegral
,
"未按时到达货源地减分"
);
}
int
receivdAddressTimeoutIntegral
=
0
;
if
(
null
!=
receiveAddressTime
){
int
realTime
=
diffSecond
(
orderChild
.
getArriveSendTime
(),
orderChild
.
getArriveReceiveTime
());
if
(
realTime
>=
receiveAddressTime
*
2
&&
realTime
<
receiveAddressTime
*
3
)
{
receivdAddressTimeoutIntegral
=
-
2
;}
else
if
(
realTime
>=
receiveAddressTime
*
3
)
{
receivdAddressTimeoutIntegral
=
-
3
;}
}
if
(
receivdAddressTimeoutIntegral
<
0
){
integralRecordService
.
save
(
statistics
.
getId
(),
statistics
.
getStatisticsDate
(),
statistics
.
getTruckNo
(),
IntegralRecord
.
type
.
ORDER_CHILD_COMPLETE_TIMEOUT
.
getValue
(),
receivdAddressTimeoutIntegral
,
"未按时到达目的地减分"
);
}
integralSum
=
completeIntegral
+
completeNumIntegral
+
waterOrderIntegral
+
supportOrderIntegral
+
sendAddressTimeoutIntegral
+
receivdAddressTimeoutIntegral
;
return
integralSum
;
}
/**
* 运单取消
*/
private
int
orderChildCancelIntegralSettlement
(
IntegralStatistics
statistics
,
IntegralOrder
integralOrder
,
OrderChild
orderChild
){
int
integralSum
=
0
;
// 运单取消积分
Integer
cancelIntegral
=
-
3
;
String
cancelIntegralRemark
=
""
;
if
(
IntegralOrder
.
OrderType
.
HIGH_QUALITY
.
getValue
().
equals
(
integralOrder
.
getOrderType
())){
cancelIntegral
=
-
3
;
cancelIntegralRemark
=
"取消优质单"
;
}
else
if
(
IntegralOrder
.
OrderType
.
NORMAL
.
getValue
().
equals
(
integralOrder
.
getOrderType
())){
cancelIntegral
=
-
3
;
cancelIntegralRemark
=
"取消普通单"
;
}
else
if
(
IntegralOrder
.
OrderType
.
WATER
.
getValue
().
equals
(
integralOrder
.
getOrderType
())){
cancelIntegral
=
-
6
;
cancelIntegralRemark
=
"取消流水单"
;
}
else
if
(
IntegralOrder
.
OrderType
.
SUPPORT
.
getValue
().
equals
(
integralOrder
.
getOrderType
())){
cancelIntegral
=
-
8
;
cancelIntegralRemark
=
"取消支援单"
;
}
if
(
cancelIntegral
<
0
){
integralRecordService
.
save
(
statistics
.
getId
(),
statistics
.
getStatisticsDate
(),
statistics
.
getTruckNo
(),
IntegralRecord
.
type
.
ORDER_CHILD_CANCEL
.
getValue
(),
cancelIntegral
,
cancelIntegralRemark
);
}
// 超时
if
(
null
==
orderChild
.
getExpectSendTime
()
&&
null
==
orderChild
.
getExpectReceiveTime
()){
integralSum
=
cancelIntegral
;
return
integralSum
;
}
Integer
sendAddressTime
=
null
;
Integer
receiveAddressTime
=
null
;
if
(
null
!=
orderChild
.
getExpectSendTime
())
{
sendAddressTime
=
diffSecond
(
orderChild
.
getPayTime
(),
orderChild
.
getExpectSendTime
());
}
if
(
null
!=
orderChild
.
getExpectReceiveTime
())
{
receiveAddressTime
=
diffSecond
(
orderChild
.
getExpectSendTime
(),
orderChild
.
getExpectReceiveTime
());
}
int
sendAddressTimeoutIntegral
=
0
;
if
(
null
!=
orderChild
.
getExpectSendTime
()
&&
null
!=
orderChild
.
getArriveSendTime
()){
int
realTime
=
diffSecond
(
orderChild
.
getPayTime
(),
orderChild
.
getArriveSendTime
());
if
(
realTime
>=
sendAddressTime
*
2
&&
realTime
<
sendAddressTime
*
3
)
{
sendAddressTimeoutIntegral
=
-
3
;}
else
if
(
realTime
>=
sendAddressTime
*
3
)
{
sendAddressTimeoutIntegral
=
-
5
;}
}
else
if
(
null
!=
sendAddressTime
&&
null
==
orderChild
.
getArriveSendTime
()){
int
realTime
=
diffSecond
(
orderChild
.
getPayTime
(),
orderChild
.
getSettleTime
());
if
(
realTime
>=
sendAddressTime
*
2
&&
realTime
<
sendAddressTime
*
3
)
{
sendAddressTimeoutIntegral
=
-
3
;}
else
if
(
realTime
>=
sendAddressTime
*
3
)
{
sendAddressTimeoutIntegral
=
-
5
;}
}
if
(
sendAddressTimeoutIntegral
<
0
){
integralRecordService
.
save
(
statistics
.
getId
(),
statistics
.
getStatisticsDate
(),
statistics
.
getTruckNo
(),
IntegralRecord
.
type
.
ORDER_CHILD_CANCEL_TIMEOUT
.
getValue
(),
sendAddressTimeoutIntegral
,
"未按时到达货源地减分"
);
}
int
receivdAddressTimeoutIntegral
=
0
;
if
(
null
!=
receiveAddressTime
&&
null
!=
orderChild
.
getArriveReceiveTime
()){
int
realTime
=
diffSecond
(
orderChild
.
getArriveSendTime
(),
orderChild
.
getArriveReceiveTime
());
if
(
realTime
>=
receiveAddressTime
*
2
&&
realTime
<
receiveAddressTime
*
3
)
{
receivdAddressTimeoutIntegral
=
-
3
;}
else
if
(
realTime
>=
receiveAddressTime
*
3
)
{
receivdAddressTimeoutIntegral
=
-
5
;}
}
else
if
(
null
!=
receiveAddressTime
&&
null
!=
orderChild
.
getArriveSendTime
()
&&
null
==
orderChild
.
getArriveReceiveTime
()){
int
realTime
=
diffSecond
(
orderChild
.
getArriveSendTime
(),
orderChild
.
getSettleTime
());
if
(
realTime
>=
receiveAddressTime
*
2
&&
realTime
<
receiveAddressTime
*
3
)
{
receivdAddressTimeoutIntegral
=
-
3
;}
else
if
(
realTime
>=
receiveAddressTime
*
3
)
{
receivdAddressTimeoutIntegral
=
-
5
;}
}
if
(
receivdAddressTimeoutIntegral
<
0
){
integralRecordService
.
save
(
statistics
.
getId
(),
statistics
.
getStatisticsDate
(),
statistics
.
getTruckNo
(),
IntegralRecord
.
type
.
ORDER_CHILD_CANCEL_TIMEOUT
.
getValue
(),
receivdAddressTimeoutIntegral
,
"未按时到达目的地减分"
);
}
integralSum
=
cancelIntegral
+
sendAddressTimeoutIntegral
+
receivdAddressTimeoutIntegral
;
return
integralSum
;
}
...
...
@@ -253,7 +512,22 @@ public class IntegralMqHandlerServiceImpl implements IntegralMqHandlerService {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
integralRealTimeStatistics
(
Integer
statisticsId
){
IntegralStatistics
statistics
=
integralStatisticsDao
.
selectById
(
statisticsId
).
orNull
();
if
(
null
==
statistics
)
{
return
;}
Integer
integral
=
integralRecordDao
.
sumIntegral
(
statisticsId
);
if
(
null
==
integral
){
return
;}
statistics
.
setIntegral
(
integral
);
// 更新车辆总积分
integralStatisticsDao
.
updateIntegral
(
statistics
);
// 更新车辆积分
integralTruckDao
.
updateIntegralByTruckNo
(
statistics
.
getTruckNo
(),
statistics
.
getIntegral
());
// 更新本周实时排名
integralRealTimeRankStatistics
(
statistics
.
getStatisticsDate
());
}
/**
...
...
@@ -263,6 +537,26 @@ public class IntegralMqHandlerServiceImpl implements IntegralMqHandlerService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
integralRealTimeRankStatistics
(
String
statisticsDate
){
List
<
IntegralStatistics
>
list
=
integralStatisticsDao
.
selectByStatisticsDate
(
statisticsDate
);
list
.
get
(
0
).
setRank
(
1
);
for
(
int
i
=
1
;
i
<
list
.
size
();
i
++){
if
(
list
.
get
(
i
).
getIntegral
().
equals
(
list
.
get
(
i
-
1
).
getIntegral
())){
list
.
get
(
i
).
setRank
(
list
.
get
(
i
-
1
).
getRank
());}
else
{
list
.
get
(
i
).
setRank
(
i
+
1
);};
}
integralStatisticsDao
.
batchUpdateRank
(
list
);
}
/**
* 时间差
*/
private
int
diffSecond
(
LocalDateTime
startTime
,
LocalDateTime
endTime
){
Duration
duration
=
Duration
.
between
(
startTime
,
endTime
);
return
Long
.
valueOf
(
duration
.
getSeconds
()).
intValue
();
}
}
performance-web/src/main/java/com/clx/performance/service/impl/IntegralMqServiceImpl.java
浏览文件 @
6df86396
...
...
@@ -2,11 +2,9 @@ package com.clx.performance.service.impl;
import
com.alibaba.fastjson.JSON
;
import
com.clx.performance.constant.RabbitKeyIntegralConstants
;
import
com.clx.performance.param.mq.IntegralNextWeekTruckInitMqParam
;
import
com.clx.performance.param.mq.IntegralOrderChildFinishMqParam
;
import
com.clx.performance.param.mq.IntegralTruckProtectionCancelMqParam
;
import
com.clx.performance.param.mq.IntegralWeekTruckStatisticsMqParam
;
import
com.clx.performance.param.mq.*
;
import
com.clx.performance.service.IntegralMqService
;
import
com.clx.performance.utils.MqDelay
;
import
com.clx.performance.utils.MqWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.amqp.core.Message
;
...
...
@@ -38,7 +36,7 @@ public class IntegralMqServiceImpl implements IntegralMqService {
@Override
public
void
truckAdd
(
Integer
statisticsId
,
String
truckNo
){
// IntegralTuckAddM
Q mq = new IntegralTuckAddMQ
();
// IntegralTuckAddM
qParam mq = new IntegralTuckAddMqParam
();
// mq.setStatisticsId(statisticsId);
// mq.setTruckNo(truckNo);
// Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(mq)).getBytes()).build();
...
...
@@ -49,13 +47,36 @@ public class IntegralMqServiceImpl implements IntegralMqService {
}
/**
* 新增货单 (performance)
*/
@Override
public
void
orderGoodsAdd
(
String
orderGoodsNo
,
Integer
sendAddressId
,
String
sendAddress
,
Integer
receiveAddressId
,
String
receiveAddress
){
IntegralOrderAddMqParam
mq
=
new
IntegralOrderAddMqParam
();
mq
.
setOrderGoodsNo
(
orderGoodsNo
);
mq
.
setOrderType
(
1
);
mq
.
setSendAddressId
(
sendAddressId
);
mq
.
setSendAddress
(
sendAddress
);
mq
.
setReceiveAddressId
(
receiveAddressId
);
mq
.
setReceiveAddress
(
receiveAddress
);
MqDelay
<
MqWrapper
<
IntegralOrderAddMqParam
>>
delay
=
new
MqDelay
<>(
RabbitKeyIntegralConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyIntegralConstants
.
INTEGRAL_ORDER_GOODS_ADD_ROUTING_KEY
,
new
MqWrapper
<>(
mq
));
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
delay
)).
getBytes
()).
build
();
message
.
getMessageProperties
().
setExpiration
(
"5000"
);
rabbitTemplate
.
send
(
RabbitKeyIntegralConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyIntegralConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
/**
* 新增积分记录 (performance)
*/
@Override
public
void
integralRecordAdd
(
Integer
statisticsId
,
String
truckNo
,
Integer
type
,
Integer
integral
,
String
remark
){
// IntegralRecordAddM
Q mq = new IntegralRecordAddMQ
();
// IntegralRecordAddM
qParam mq = new IntegralRecordAddMqParam
();
// mq.setStatisticsId(statisticsId);
// mq.setTruckNo(truckNo);
// mq.setType(type);
...
...
@@ -130,8 +151,10 @@ public class IntegralMqServiceImpl implements IntegralMqService {
IntegralOrderChildFinishMqParam
mq
=
new
IntegralOrderChildFinishMqParam
();
mq
.
setChildNo
(
childNo
);
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
mq
)).
getBytes
()).
build
();
rabbitTemplate
.
send
(
RabbitKeyIntegralConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyIntegralConstants
.
INTEGRAL_ORDER_CHILD_FINISH_ROUTING_KEY
,
message
);
MqDelay
<
MqWrapper
<
IntegralOrderChildFinishMqParam
>>
delay
=
new
MqDelay
<>(
RabbitKeyIntegralConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyIntegralConstants
.
INTEGRAL_ORDER_CHILD_FINISH_ROUTING_KEY
,
new
MqWrapper
<>(
mq
));
Message
message
=
MessageBuilder
.
withBody
(
JSON
.
toJSONString
(
new
MqWrapper
<>(
delay
)).
getBytes
()).
build
();
message
.
getMessageProperties
().
setExpiration
(
"5000"
);
rabbitTemplate
.
send
(
RabbitKeyIntegralConstants
.
DEFAULT_EXCHANGE
,
RabbitKeyIntegralConstants
.
DEFAULT_DELAY_ROUTING_KEY
,
message
);
}
...
...
performance-web/src/main/java/com/clx/performance/service/impl/IntegralStatisticsServiceImpl.java
浏览文件 @
6df86396
...
...
@@ -29,16 +29,7 @@ public class IntegralStatisticsServiceImpl implements IntegralStatisticsService
private
final
IntegralRecordDao
integralRecordDao
;
private
IntegralTruckDao
integralTruckDao
;
/**
* 新手积分计算
*/
@Override
public
int
protectionIntegralCalc
(
String
statisticsDate
){
int
day
=
diffDay
(
statisticsDate
,
LocalDateTimeUtils
.
getStringDayStart
());
if
(
day
>=
7
)
{
return
0
;}
return
(
7
-
day
)*
30
;
}
@Override
public
IPage
<
IntegralStatisticsVO
>
pageStatisticsList
(
PageIntegralStatisticsParam
param
)
{
...
...
@@ -63,6 +54,17 @@ public class IntegralStatisticsServiceImpl implements IntegralStatisticsService
}
/**
* 新手积分计算
*/
@Override
public
int
protectionIntegralCalc
(
String
statisticsDate
){
int
day
=
diffDay
(
statisticsDate
,
LocalDateTimeUtils
.
getStringDayStart
());
if
(
day
>=
7
)
{
return
0
;}
return
(
7
-
day
)*
30
;
}
@Override
public
int
protectionIntegralCalc
(
String
createTime
,
String
statisticsDate
){
int
day
=
diffDay
(
LocalDateTimeUtils
.
getStringDayStart
(
createTime
),
statisticsDate
);
...
...
performance-web/src/main/java/com/clx/performance/service/impl/OrderChildServiceImpl.java
浏览文件 @
6df86396
...
...
@@ -23,10 +23,7 @@ import com.clx.performance.param.pc.OrderChildCarrierCancelParam;
import
com.clx.performance.param.pc.PageCarrierOrderChildParam
;
import
com.clx.performance.param.pc.PageMonitorOrderChildQCParam
;
import
com.clx.performance.param.pc.PagePoundAuditParam
;
import
com.clx.performance.service.OrderChildLogService
;
import
com.clx.performance.service.OrderChildPoundLogService
;
import
com.clx.performance.service.OrderChildService
;
import
com.clx.performance.service.OrderGoodsService
;
import
com.clx.performance.service.*
;
import
com.clx.performance.struct.*
;
import
com.clx.performance.utils.gd.GdService
;
import
com.clx.performance.utils.spring.ApplicationContextUtils
;
...
...
@@ -93,6 +90,8 @@ public class OrderChildServiceImpl implements OrderChildService {
private
final
OrderFeign
orderFeign
;
private
final
RedissonClient
redissonClient
;
private
final
IntegralMqService
integralMqService
;
@Override
public
SaveOrderChildVO
saveOrderChild
(
OrderChildSaveParam
param
)
{
...
...
@@ -894,6 +893,27 @@ public class OrderChildServiceImpl implements OrderChildService {
// 日志
orderChildLogService
.
saveDriverOrderChildLog
(
childNo
,
OrderChildLogEnum
.
Type
.
DRIVER_CONFIRM
.
getCode
(),
OrderChildLogEnum
.
Type
.
DRIVER_CONFIRM
.
getMsg
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
// 结算
updateSettlement
(
orderChild
);
}
@Override
public
void
updateSettlement
(
OrderChild
orderChild
)
{
UserSessionData
loginUserInfo
=
TokenUtil
.
getLoginUserInfo
();
Long
userNo
=
loginUserInfo
.
getUserNo
();
String
childNo
=
orderChild
.
getChildNo
();
orderChild
.
setStatus
(
OrderChildEnum
.
Status
.
UNSETTLE
.
getCode
());
orderChildDao
.
updateDriverConfirm
(
orderChild
);
// 日志
orderChildLogService
.
saveDriverOrderChildLog
(
childNo
,
OrderChildLogEnum
.
Type
.
DRIVER_CONFIRM
.
getCode
(),
OrderChildLogEnum
.
Type
.
DRIVER_CONFIRM
.
getMsg
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
// 运单结束
orderChildFinish
(
orderChild
);
}
@Override
...
...
@@ -958,6 +978,9 @@ public class OrderChildServiceImpl implements OrderChildService {
// 日志
orderChildLogService
.
saveDriverOrderChildLog
(
childNo
,
OrderChildLogEnum
.
Type
.
DRIVER_CANCEL
.
getCode
(),
OrderChildLogEnum
.
Type
.
DRIVER_CANCEL
.
getMsg
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
// 运单结束
orderChildFinish
(
orderChild
);
}
@Override
...
...
@@ -1011,6 +1034,20 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChildLogService
.
saveCarrierOrderChildLog
(
childNo
,
OrderChildLogEnum
.
Type
.
PLATFORM_CANCEL
.
getCode
(),
OrderChildLogEnum
.
Type
.
PLATFORM_CANCEL
.
getMsg
(),
loginUserInfo
.
getUserNo
(),
loginUserInfo
.
getUserName
());
// 运单结束
orderChildFinish
(
orderChild
);
}
/**
* 运单结束
*/
private
void
orderChildFinish
(
OrderChild
orderChild
){
// 运单结束 统计积分
integralMqService
.
orderChildFinish
(
orderChild
.
getChildNo
());
}
@Override
...
...
@@ -1137,6 +1174,7 @@ public class OrderChildServiceImpl implements OrderChildService {
return
result
;
}
/**
* 更新货单数据
*/
...
...
performance-web/src/main/java/com/clx/performance/sqlProvider/IntegralStatisticsSqlProvider.java
浏览文件 @
6df86396
...
...
@@ -19,8 +19,8 @@ public class IntegralStatisticsSqlProvider {
FROM
(
"integral_statistics"
);
if
(
StringUtils
.
isNotBlank
(
param
.
getBeginTime
()))
{
WHERE
(
"
create_tim
e >= #{param.beginTime}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getEndTime
()))
{
WHERE
(
"
create_tim
e <= #{param.endTime}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getBeginTime
()))
{
WHERE
(
"
statistics_dat
e >= #{param.beginTime}"
);}
if
(
StringUtils
.
isNotBlank
(
param
.
getEndTime
()))
{
WHERE
(
"
statistics_dat
e <= #{param.endTime}"
);}
ORDER_BY
(
"truck_no asc, statistics_date desc, integral desc "
);
}}.
toString
();
...
...
performance-web/src/main/java/com/clx/performance/sqlProvider/IntegralTruckSqlProvider.java
浏览文件 @
6df86396
...
...
@@ -2,9 +2,11 @@ package com.clx.performance.sqlProvider;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.clx.performance.param.pc.PageIntegralTruckParam
;
import
com.clx.performance.param.pc.PageIntegralTruckRankParam
;
import
com.clx.performance.vo.pc.IntegralTruckVO
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.jdbc.SQL
;
import
java.util.Objects
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论