提交 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);
......
......@@ -20,6 +20,7 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Slf4j
......@@ -328,28 +329,42 @@ public class IntegralMqHandlerServiceImpl implements IntegralMqHandlerService {
IntegralTruck truck = integralTruckDao.getByTruckNo(orderChild.getTruckNo()).orNull();
if (null == truck) {return;}
List<Integer> finishStatusList = Arrays.asList(OrderChildEnum.Status.UNSETTLE.getCode(), OrderChildEnum.Status.COMPLETE.getCode());
List<Integer> cancelStatusList = Arrays.asList(OrderChildEnum.Status.DRIVER_CANCEL.getCode());;
List<Integer> platformCancelStatusList = Arrays.asList(
OrderChildEnum.Status.OWNER_CANCEL.getCode(),
OrderChildEnum.Status.PLATFORM_CANCEL.getCode(),
OrderChildEnum.Status.ARTIFICIAL_CANCEL.getCode()
);
int integral = 0;
if (finishStatusList.contains(orderChild.getStatus())){
// 完成
integral = orderChildCompleteIntegralSettlement(statistics, ruleInfo, integralOrder, orderChild, orderGoods);
if (Objects.equals(mq.getType(), IntegralOrderChildFinishMqParam.Type.ARRIVE_SEND_ADDRESS_TIMEOUT_CANCEL.getCode())){
// 到达货源地超时
integral = orderChildArriveSendAddress(statistics, ruleInfo);
}
else if (Objects.equals(mq.getType(), IntegralOrderChildFinishMqParam.Type.ARRIVE_RECEIVE_ADDRESS_TIMEOUT.getCode())){
// 到达目的地超时
integral = orderChildArriveReceiveAddress(statistics, ruleInfo, orderChild, orderGoods);
}
else if (cancelStatusList.contains(orderChild.getStatus())){
// 取消
integral = orderChildCancelIntegralSettlement(statistics, ruleInfo, integralOrder, orderChild, orderGoods);
else if (Objects.equals(mq.getType(), IntegralOrderChildFinishMqParam.Type.DRIVER_CONFIRM.getCode())){
// 司机确认收货
integral = orderChildDriverConfirm(statistics, ruleInfo, orderChild);
}
else if (platformCancelStatusList.contains(orderChild.getStatus())){
// 平台取消
orderChildPlatformCancelIntegralSettlement(statistics, ruleInfo, integralOrder, orderChild, orderGoods);
else if (Objects.equals(mq.getType(), IntegralOrderChildFinishMqParam.Type.DRIVER_CANCEL.getCode())){
// 司机取消
integral = orderChildCancel(statistics, ruleInfo);
}
else if (Objects.equals(mq.getType(), IntegralOrderChildFinishMqParam.Type.CARRIER_CANCEL.getCode())){
// 承运取消
integral = orderChildPlatformCancel(statistics, ruleInfo, orderChild);
}
else if (Objects.equals(mq.getType(), IntegralOrderChildFinishMqParam.Type.ARTIFICIAL_CANCEL.getCode())){
// 客服取消
integral = orderChildPlatformCancel(statistics, ruleInfo, orderChild);
}
else if (Objects.equals(mq.getType(), IntegralOrderChildFinishMqParam.Type.ORDER_CANCEL.getCode())){
// 订单取消
integral = orderChildPlatformCancel(statistics, ruleInfo, orderChild);
}
else if (Objects.equals(mq.getType(), IntegralOrderChildFinishMqParam.Type.ORDER_GOODS_CANCEL.getCode())){
// 货单取消
integral = orderChildPlatformCancel(statistics, ruleInfo, orderChild);
}
log.info("司机积分, 运单:{}, 累计积分:{}", orderChild.getChildNo(), integral);
if (integral == 0) {return;}
......@@ -365,33 +380,60 @@ public class IntegralMqHandlerServiceImpl implements IntegralMqHandlerService {
}
/**
* 运单完成
* 到达货源地超时
*/
private int orderChildCompleteIntegralSettlement(IntegralStatistics statistics, AppIntegralRuleVO ruleInfo, IntegralOrder integralOrder, OrderChild orderChild, OrderGoods orderGoods){
private int orderChildArriveSendAddress(IntegralStatistics statistics, AppIntegralRuleVO ruleInfo){
LocalDateTime dateTimeDayStart = LocalDateTimeUtils.getDayStart();
LocalDateTime dateTimeDayNext = dateTimeDayStart.plusDays(1);
int integralSum = 0;
String dayStartTime = LocalDateTimeUtils.formatTime(dateTimeDayStart);
String nextDayStartTime = LocalDateTimeUtils.formatTime(dateTimeDayNext);
Integer cancelIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralSendAddressTimeout();
if (cancelIntegral < 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(),
IntegralRecordEnum.Type.ORDER_CHILD_ARRIVE_SEND_ADDRESS_TIMEOUT_CANCEL.getValue(), cancelIntegral,
IntegralRecordEnum.Type.ORDER_CHILD_ARRIVE_SEND_ADDRESS_TIMEOUT_CANCEL.getMsg());
}
integralSum = cancelIntegral;
return integralSum;
}
/**
* 到达目的地超时
*/
private int orderChildArriveReceiveAddress(IntegralStatistics statistics, AppIntegralRuleVO ruleInfo, OrderChild orderChild, OrderGoods orderGoods){
int integralSum = 0;
// 运单完成积分
int completeIntegral = 0;
// 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);
// }
LocalDateTime lastArriveReceiveTime = orderGoods.getLastArriveReceiveTime();
int receiveAddressTimeoutIntegral = 0;
if (null != lastArriveReceiveTime && orderChild.getArriveReceiveTime().isAfter(lastArriveReceiveTime)){
receiveAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralSendAddressTimeout();
}
if (receiveAddressTimeoutIntegral < 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(),
IntegralRecordEnum.Type.ORDER_CHILD_ARRIVE_RECEIVE_ADDRESS_TIMEOUT.getValue(), receiveAddressTimeoutIntegral,
IntegralRecordEnum.Type.ORDER_CHILD_ARRIVE_RECEIVE_ADDRESS_TIMEOUT.getMsg());
}
integralSum = receiveAddressTimeoutIntegral;
return integralSum;
}
/**
* 司机确认收货
*/
private int orderChildDriverConfirm(IntegralStatistics statistics, AppIntegralRuleVO ruleInfo, OrderChild orderChild){
LocalDateTime dateTimeDayStart = LocalDateTimeUtils.getDayStart();
LocalDateTime dateTimeDayNext = dateTimeDayStart.plusDays(1);
int integralSum = 0;
// 完成量积分
int completeNumIntegral = 0;
......@@ -423,140 +465,34 @@ public class IntegralMqHandlerServiceImpl implements IntegralMqHandlerService {
else if (finishNum > 4){
completeNumIntegral = 0;
}
if (completeNumIntegral > 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecordEnum.Type.ORDER_CHILD_COMPLETE_NUM.getValue(), completeNumIntegral, completeNumIntegralRemark);
}
// 奖励积分(低价)(下期启用)
int waterOrderIntegral = 0;
// if (IntegralOrder.OrderType.WATER.getValue().equals(integralOrder.getOrderType())){
// waterOrderIntegral = ruleInfo.getOrderAwardRule().getIntegerWater();
// }
// if (waterOrderIntegral > 0){
// Integer sum = integralRecordDao.countByStatisticsIdAndTypeAndTime(statistics.getId(), IntegralRecord.type.ORDER_CHILD_COMPLETE_WATER.getValue(), dayStartTime, nextDayStartTime);
// if (null == sum) {sum = 0;}
// if ((sum + 1) > ruleInfo.getOrderAwardRule().getCountWaterLimit()) {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 = ruleInfo.getOrderAwardRule().getIntegerSupport();
// }
// if (supportOrderIntegral > 0){
// Integer sum = integralRecordDao.countByStatisticsIdAndTypeAndTime(statistics.getId(), IntegralRecord.type.ORDER_CHILD_COMPLETE_SUPPORT.getValue(), dayStartTime, nextDayStartTime);
// if (null == sum) {sum = 0;}
// if ((sum + 1) > ruleInfo.getOrderAwardRule().getCountSupportLimit()) {supportOrderIntegral = 0;}
// }
// if (supportOrderIntegral > 0){
// integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecord.type.ORDER_CHILD_COMPLETE_SUPPORT.getValue(), supportOrderIntegral, "支援单奖励");
// }
// 到达货源地目的地超时
if (null == orderGoods.getLastArriveSendTime() && null == orderGoods.getLastArriveReceiveTime()){
integralSum = completeIntegral+completeNumIntegral+waterOrderIntegral+supportOrderIntegral;
return integralSum;
}
LocalDateTime lastArriveSendTime = orderGoods.getLastArriveSendTime();
LocalDateTime lastArriveReceiveTime = orderGoods.getLastArriveReceiveTime();
int sendAddressTimeoutIntegral = 0;
if (null != lastArriveSendTime && orderChild.getArriveSendTime().isAfter(lastArriveSendTime)){
sendAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralSendAddressTimeout();
}
if (sendAddressTimeoutIntegral < 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecordEnum.Type.ORDER_CHILD_COMPLETE_TIMEOUT.getValue(), sendAddressTimeoutIntegral, "未按时到达货源地减分");
}
int receiveAddressTimeoutIntegral = 0;
if (null != lastArriveReceiveTime && orderChild.getArriveReceiveTime().isAfter(lastArriveReceiveTime)){
receiveAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralSendAddressTimeout();
}
if (receiveAddressTimeoutIntegral < 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecordEnum.Type.ORDER_CHILD_COMPLETE_TIMEOUT.getValue(), receiveAddressTimeoutIntegral, "未按时到达目的地减分");
if (completeNumIntegral > 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(),
IntegralRecordEnum.Type.ORDER_CHILD_COMPLETE_NUM.getValue(), completeNumIntegral,
completeNumIntegralRemark);
}
// 装卸车超时(下期开发)
integralSum = completeIntegral+completeNumIntegral+waterOrderIntegral+supportOrderIntegral+sendAddressTimeoutIntegral+receiveAddressTimeoutIntegral;
integralSum = completeNumIntegral;
return integralSum;
}
/**
* 运单取消
* 司机取消
*/
private int orderChildCancelIntegralSettlement(IntegralStatistics statistics, AppIntegralRuleVO ruleInfo, IntegralOrder integralOrder, OrderChild orderChild, OrderGoods orderGoods){
private int orderChildCancel(IntegralStatistics statistics, AppIntegralRuleVO ruleInfo){
int integralSum = 0;
// 运单取消积分
Integer cancelIntegral = -ruleInfo.getOrderChildCancelRule().getIntegralCancel();
String cancelIntegralRemark="取消运单";
//(下期启用)
// if (IntegralOrder.OrderType.HIGH_QUALITY.getValue().equals(integralOrder.getOrderType())){
//
// cancelIntegralRemark = "取消优质单";
// }
// else if (IntegralOrder.OrderType.NORMAL.getValue().equals(integralOrder.getOrderType())){
//
// cancelIntegralRemark = "取消普通单";
// }
// else if (IntegralOrder.OrderType.WATER.getValue().equals(integralOrder.getOrderType())){
// cancelIntegral -= ruleInfo.getOrderChildCancelRule().getIntegralWaterCancel();
// cancelIntegralRemark = "取消流水单";
// }
// else if (IntegralOrder.OrderType.SUPPORT.getValue().equals(integralOrder.getOrderType())){
// cancelIntegral -= ruleInfo.getOrderChildCancelRule().getIntegralSupportCancel();
// cancelIntegralRemark = "取消支援单";
// }
int cancelIntegral = -ruleInfo.getOrderChildCancelRule().getIntegralCancel();
if (cancelIntegral < 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecordEnum.Type.ORDER_CHILD_CANCEL.getValue(), cancelIntegral, cancelIntegralRemark);
}
// 超时
if (null == orderGoods.getLastArriveSendTime() && null == orderGoods.getLastArriveReceiveTime()){
integralSum = cancelIntegral;
return integralSum;
}
LocalDateTime lastArriveSendTime = orderGoods.getLastArriveSendTime();
LocalDateTime lastArriveReceiveTime = orderGoods.getLastArriveReceiveTime();
int sendAddressTimeoutIntegral = 0;
if (null != lastArriveSendTime && null != orderChild.getArriveSendTime() && orderChild.getArriveSendTime().isAfter(lastArriveSendTime)){
sendAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralSendAddressTimeout();
}
else if (null != lastArriveSendTime && null == orderChild.getArriveSendTime() && orderChild.getFinishTime().isAfter(lastArriveSendTime)){
sendAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralSendAddressTimeout();
}
if (sendAddressTimeoutIntegral < 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecordEnum.Type.ORDER_CHILD_CANCEL_TIMEOUT.getValue(), sendAddressTimeoutIntegral, "未按时到达货源地减分");
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(),
IntegralRecordEnum.Type.ORDER_CHILD_CANCEL.getValue(), cancelIntegral,
IntegralRecordEnum.Type.ORDER_CHILD_CANCEL.getMsg());
}
int receiveAddressTimeoutIntegral = 0;
if (null != lastArriveReceiveTime && null != orderChild.getArriveReceiveTime() && orderChild.getArriveReceiveTime().isAfter(lastArriveReceiveTime)){
receiveAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralReceiveAddressTimeout();
}
else if (null != lastArriveReceiveTime && null != orderChild.getLoadTime() && orderChild.getFinishTime().isAfter(lastArriveReceiveTime)){
receiveAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralReceiveAddressTimeout();
}
if (receiveAddressTimeoutIntegral < 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecordEnum.Type.ORDER_CHILD_CANCEL_TIMEOUT.getValue(), receiveAddressTimeoutIntegral, "未按时到达目的地减分");
}
// 装卸车超时(下期开发)
integralSum = cancelIntegral+sendAddressTimeoutIntegral+receiveAddressTimeoutIntegral;
integralSum = cancelIntegral;
return integralSum;
......@@ -565,46 +501,34 @@ public class IntegralMqHandlerServiceImpl implements IntegralMqHandlerService {
/**
* 平台运单取消
*/
private int orderChildPlatformCancelIntegralSettlement(IntegralStatistics statistics, AppIntegralRuleVO ruleInfo, IntegralOrder integralOrder, OrderChild orderChild, OrderGoods orderGoods){
private int orderChildPlatformCancel(IntegralStatistics statistics, AppIntegralRuleVO ruleInfo, OrderChild orderChild){
int integralSum = 0;
int cancelIntegral = 0;
LocalDateTime lastArriveSendTime = orderGoods.getLastArriveSendTime();
LocalDateTime lastArriveReceiveTime = orderGoods.getLastArriveReceiveTime();
int integral = ruleInfo.getPlatformCompensationRule().getIntegralCancel();;
int sendAddressTimeoutIntegral = 0;
if (null != lastArriveSendTime && null != orderChild.getArriveSendTime() && orderChild.getArriveSendTime().isAfter(lastArriveSendTime)){
sendAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralSendAddressTimeout();
}
else if (null != lastArriveSendTime && null == orderChild.getArriveSendTime() && orderChild.getFinishTime().isAfter(lastArriveSendTime)){
sendAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralSendAddressTimeout();
Integer sum = integralRecordDao.sumByStatisticsIdAndTypes(statistics.getId(), Arrays.asList(IntegralRecordEnum.Type.ORDER_CHILD_PLATFORM_CANCEL.getValue()));
if (sum == null) {sum = 0;}
if (sum > ruleInfo.getPlatformCompensationRule().getIntegralCancelLimit()){
log.info("平台取消补偿超上限,本次无效, childNo:{}", orderChild.getChildNo());
integral = 0;
}
if (sendAddressTimeoutIntegral < 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecordEnum.Type.ORDER_CHILD_CANCEL_TIMEOUT.getValue(), sendAddressTimeoutIntegral, "未按时到达货源地减分");
else if (sum+integral > ruleInfo.getPlatformCompensationRule().getIntegralCancelLimit()){
integral = ruleInfo.getPlatformCompensationRule().getIntegralCancelLimit()-sum;
}
else {
int receiveAddressTimeoutIntegral = 0;
if (null != lastArriveReceiveTime && null != orderChild.getArriveReceiveTime() && orderChild.getArriveReceiveTime().isAfter(lastArriveReceiveTime)){
receiveAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralReceiveAddressTimeout();
}
else if (null != lastArriveReceiveTime && null != orderChild.getLoadTime() && orderChild.getFinishTime().isAfter(lastArriveReceiveTime)){
receiveAddressTimeoutIntegral = -ruleInfo.getOrderChildTimeoutRule().getIntegralReceiveAddressTimeout();
}
if (receiveAddressTimeoutIntegral < 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecordEnum.Type.ORDER_CHILD_CANCEL_TIMEOUT.getValue(), receiveAddressTimeoutIntegral, "未按时到达目的地减分");
if (integral > 0){
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(),
IntegralRecordEnum.Type.ORDER_CHILD_PLATFORM_CANCEL.getValue(), integral,
IntegralRecordEnum.Type.ORDER_CHILD_PLATFORM_CANCEL.getMsg());
}
// 装卸车超时(下期开发)
integralSum = cancelIntegral+sendAddressTimeoutIntegral+receiveAddressTimeoutIntegral;
integralSum = integral;
return integralSum;
}
/**
......
......@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论