提交 7b40c951 authored 作者: aiqingguo's avatar aiqingguo

司机积分统计逻辑优化

上级 78fb337a
......@@ -22,13 +22,15 @@ public enum IntegralRecordEnum {
ORDER_CHILD_COMPLETE_NUM(12, "运单完成数量"),
ORDER_CHILD_COMPLETE_WATER(13, "流水单"),
ORDER_CHILD_COMPLETE_SUPPORT(14, "支援单"),
ORDER_CHILD_COMPLETE_TIMEOUT(15, "运单完成超时"),
ORDER_CHILD_CANCEL(21, "运单取消"),
ORDER_CHILD_CANCEL_TIMEOUT(22, "运单取消超时"),
ORDER_CHILD_PLATFORM_CANCEL(23, "平台取消"),
ORDER_CHILD_ARRIVE_SEND_ADDRESS_TIMEOUT_CANCEL(22, "超时未到达货源地"),
ORDER_CHILD_ARRIVE_RECEIVE_ADDRESS_TIMEOUT(23, "超时到达目的地"),
ORDER_CHILD_PLATFORM_CANCEL(24, "平台取消补偿"),
ORDER_CHILD_PLATFORM_COMPENSATION(25, "平台补偿"),
REPORT_TRUCK_INFO(50, "提交基础信息"),
REPORT_REFUEL(51, "油表上报"),
REPORT_TRAFFIC(52, "上报交通拥堵"),
......
package com.clx.performance.param.mq;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.*;
import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;
/**
* @Author: aiqingguo
......@@ -18,5 +19,31 @@ import lombok.ToString;
public class IntegralOrderChildFinishMqParam {
private String childNo; //运单编号
private Integer type; //类型:
@Getter
@AllArgsConstructor
public enum Type {
ARRIVE_SEND_ADDRESS_TIMEOUT_CANCEL(11, "到达货源地超时取消"),
ARRIVE_RECEIVE_ADDRESS_TIMEOUT(12, "到达目的地超时"),
DRIVER_CONFIRM(13, "司机确认收货"),
DRIVER_CANCEL(14, "司机取消"),
CARRIER_CANCEL(21, "承运取消"),
ARTIFICIAL_CANCEL(22, "客服取消"),
ORDER_CANCEL(23, "订单取消"),
ORDER_GOODS_CANCEL(24, "货单取消"),
;
private final Integer code;
private final String msg;
public static Optional<Type> getByCode(int code) {
return Arrays.stream(values()).filter(e -> Objects.equals(e.getCode(), code)).findFirst();
}
}
}
......@@ -18,6 +18,6 @@ public interface IntegralMqService {
void truckProtectionCancel(String statisticsDate, String truckNo);
void orderChildFinish(String childNo);
void orderChildFinish(String childNo, Integer type);
}
......@@ -4,6 +4,7 @@ import com.clx.performance.model.OrderChild;
public interface OrderChildPostService {
void orderChildArriveReceiveAddress(OrderChild orderChild);
void orderChildDriverConfirm(OrderChild orderChild);
void orderChildCancelByDriver(OrderChild orderChild, Integer opUserType, Long opUserNo, String opUserName);
......
......@@ -144,10 +144,11 @@ public class IntegralMqServiceImpl implements IntegralMqService {
* 运单结束 (performance)
*/
@Override
public void orderChildFinish(String childNo){
public void orderChildFinish(String childNo, Integer type){
IntegralOrderChildFinishMqParam mq = new IntegralOrderChildFinishMqParam();
mq.setChildNo(childNo);
mq.setType(type);
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();
......
......@@ -204,6 +204,8 @@ public class IntegralTruckServiceImpl implements IntegralTruckService {
IntegralRecordEnum.Type.PROTECTION_CANCEL.getValue(),
IntegralRecordEnum.Type.SETTLEMENT.getValue(),
IntegralRecordEnum.Type.BASE.getValue(),
IntegralRecordEnum.Type.ORDER_CHILD_PLATFORM_CANCEL.getValue(),
IntegralRecordEnum.Type.ORDER_CHILD_PLATFORM_COMPENSATION.getValue()
);
......@@ -211,8 +213,8 @@ public class IntegralTruckServiceImpl implements IntegralTruckService {
IntegralRecordEnum.Type.ORDER_CHILD_CANCEL.getValue()
);
List<Integer> orderChildTimeoutTypeList = Arrays.asList(
IntegralRecordEnum.Type.ORDER_CHILD_COMPLETE_TIMEOUT.getValue(),
IntegralRecordEnum.Type.ORDER_CHILD_CANCEL_TIMEOUT.getValue()
IntegralRecordEnum.Type.ORDER_CHILD_ARRIVE_RECEIVE_ADDRESS_TIMEOUT.getValue(),
IntegralRecordEnum.Type.ORDER_CHILD_ARRIVE_SEND_ADDRESS_TIMEOUT_CANCEL.getValue()
);
List<Integer> reportTypeList = Arrays.asList(
IntegralRecordEnum.Type.REPORT_TRUCK_INFO.getValue(),
......
......@@ -1046,6 +1046,7 @@ public class OrderChildServiceImpl implements OrderChildService {
// 司机确认收货后置逻辑
orderChildPostService.orderChildDriverConfirm(orderChild);
}
@Override
......@@ -1062,9 +1063,7 @@ public class OrderChildServiceImpl implements OrderChildService {
// 日志
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.SETTLEMENT.getCode(),
OrderChildLogEnum.Type.SETTLEMENT.getMsg(), loginUserInfo.getUserNo(), loginUserInfo.getUserName());
// 运单结束
orderChildFinish(orderChild);
}
@Override
......@@ -1224,8 +1223,6 @@ public class OrderChildServiceImpl implements OrderChildService {
*/
private void orderChildFinish(OrderChild orderChild){
// 运单结束 统计积分
integralMqService.orderChildFinish(orderChild.getChildNo());
}
......
......@@ -4,6 +4,7 @@ import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.enums.UserTypeEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.mq.IntegralOrderChildFinishMqParam;
import com.clx.performance.service.IntegralMqService;
import com.clx.performance.service.OrderChildMqService;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
......@@ -25,9 +26,23 @@ public class OrderChildPostServiceImpl implements OrderChildPostService {
@Autowired
private BreakContractDriverRecordService breakContractDriverRecordService;
@Override
public void orderChildArriveReceiveAddress(OrderChild orderChild) {
// 到达货源地 统计积分
integralMqService.orderChildFinish(orderChild.getChildNo(), IntegralOrderChildFinishMqParam.Type.ARRIVE_RECEIVE_ADDRESS_TIMEOUT.getCode());
}
/**
* 司机确认收货
*/
@Override
public void orderChildDriverConfirm(OrderChild orderChild) {
// 司机确认收货 统计积分
integralMqService.orderChildFinish(orderChild.getChildNo(), IntegralOrderChildFinishMqParam.Type.DRIVER_CONFIRM.getCode());
orderChildFinish(orderChild.getChildNo());
// 发送mq 司机确认收货
......@@ -35,12 +50,14 @@ public class OrderChildPostServiceImpl implements OrderChildPostService {
}
/**
* 司机取消
*/
@Override
public void orderChildCancelByDriver(OrderChild orderChild, Integer opUserType, Long opUserNo, String opUserName){
// 司机取消 统计积分
integralMqService.orderChildFinish(orderChild.getChildNo(), IntegralOrderChildFinishMqParam.Type.DRIVER_CANCEL.getCode());
orderChildFinish(orderChild.getChildNo());
// 发送mq (运单取消)
......@@ -52,6 +69,10 @@ public class OrderChildPostServiceImpl implements OrderChildPostService {
*/
@Override
public void orderChildCancelByCarrier(OrderChild orderChild, Integer opUserType, Long opUserNo, String opUserName) {
// 承运取消 统计积分
integralMqService.orderChildFinish(orderChild.getChildNo(), IntegralOrderChildFinishMqParam.Type.CARRIER_CANCEL.getCode());
orderChildFinish(orderChild.getChildNo());
// 发送mq (运单取消)
......@@ -68,6 +89,9 @@ public class OrderChildPostServiceImpl implements OrderChildPostService {
// 保存违约记录
breakContractDriverRecordService.saveDriverRecordOfArriveSendAddressTimeout(orderChild, 0L, "系统");
// 到达货源地超时取消 统计积分
integralMqService.orderChildFinish(orderChild.getChildNo(), IntegralOrderChildFinishMqParam.Type.ARRIVE_SEND_ADDRESS_TIMEOUT_CANCEL.getCode());
orderChildFinish(orderChild.getChildNo());
// 发送mq (运单取消)
......@@ -75,8 +99,15 @@ public class OrderChildPostServiceImpl implements OrderChildPostService {
}
/**
* 订单取消
*/
@Override
public void orderCancel(String childNo) {
// 订单取消 统计积分
integralMqService.orderChildFinish(childNo, IntegralOrderChildFinishMqParam.Type.ORDER_CANCEL.getCode());
orderChildFinish(childNo);
// 发送mq (运单取消)
......@@ -84,8 +115,15 @@ public class OrderChildPostServiceImpl implements OrderChildPostService {
}
/**
* 货单取消
*/
@Override
public void orderGoodsCancel(String childNo) {
// 货单取消 统计积分
integralMqService.orderChildFinish(childNo, IntegralOrderChildFinishMqParam.Type.ORDER_GOODS_CANCEL.getCode());
orderChildFinish(childNo);
// 发送mq (运单取消)
......@@ -93,8 +131,14 @@ public class OrderChildPostServiceImpl implements OrderChildPostService {
}
/**
* 客服取消
*/
@Override
public void orderChildCancelByArtificial(String childNo) {
// 货单取消 统计积分
integralMqService.orderChildFinish(childNo, IntegralOrderChildFinishMqParam.Type.ARTIFICIAL_CANCEL.getCode());
orderChildFinish(childNo);
// 发送mq (运单取消)
......@@ -107,8 +151,7 @@ public class OrderChildPostServiceImpl implements OrderChildPostService {
*/
@Override
public void orderChildFinish(String childNo) {
// 运单结束 统计积分
integralMqService.orderChildFinish(childNo);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论