提交 c79d1031 authored 作者: aiqingguo's avatar aiqingguo

积分车辆mq

上级 2459eeda
......@@ -17,7 +17,8 @@ import lombok.ToString;
@NoArgsConstructor
public class IntegralTuckAddMqParam {
private Integer statisticsId; //统计id
private String truckNo; //车牌号
private String truckNo; //车牌号
private String driverName; //司机姓名
private String driverMobile; //司机手机号
}
......@@ -2,7 +2,7 @@ package com.clx.performance.service;
public interface IntegralMqService {
void truckAdd(Integer statisticsId, String truckNo);
void truckAdd(String truckNo, String driverName, String driverMobile);
void orderGoodsAdd(String orderGoodsNo,
Integer sendAddressId, String sendAddress,
......
......@@ -46,7 +46,48 @@ public class IntegralMqHandlerServiceImpl implements IntegralMqHandlerService {
@Override
@Transactional(rollbackFor = Exception.class)
public void truckAdd(IntegralTuckAddMqParam mq){
String truckNo = mq.getTruckNo();
boolean existFlag = integralTruckDao.existByTruckNo(truckNo);
if (existFlag) {return;}
IntegralTruck truck = new IntegralTruck();
truck.setTruckNo(truckNo);
truck.setDriverName(mq.getDriverName());
truck.setDriverMobile(mq.getDriverMobile());
truck.setEchelon(1);
String statisticsDate = LocalDateTimeUtils.getWeekStart();
int protectionIntegral = integralStatisticsService.protectionIntegralCalc(statisticsDate);
int baseIntegral = 100;
// 初始化统计
IntegralStatistics statistics = new IntegralStatistics();
statistics.setTruckNo(truckNo);
statistics.setStatisticsDate(statisticsDate);
statistics.setIntegralBase(0);
statistics.setIntegral(protectionIntegral+baseIntegral); //保护分+基础分
statistics.setRank(1);
integralStatisticsDao.saveEntity(statistics);
IntegralStatistics statisticsNext = new IntegralStatistics();
statisticsNext.setTruckNo(truckNo);
statisticsNext.setStatisticsDate(LocalDateTimeUtils.formatTime(LocalDateTimeUtils.parseTime(statistics.getStatisticsDate()).plusDays(7)));
statisticsNext.setIntegralBase(0);
statisticsNext.setIntegral(0);
statisticsNext.setRank(1);
integralStatisticsDao.saveEntity(statisticsNext);
// 新增车辆
truck.setIntegral(statistics.getIntegral());
integralTruckDao.saveEntity(truck);
// 新增积分记录
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecord.type.PROTECTION.getValue(), protectionIntegral, "新用户");
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecord.type.BASE.getValue(), baseIntegral, "基础分");
// 实时积分统计
integralRealTimeStatistics(statistics.getId());
}
......
......@@ -31,19 +31,17 @@ public class IntegralMqServiceImpl implements IntegralMqService {
private IntegralMqHandlerServiceImpl integralMqHandlerService;
/**
* 新增车辆 (performance)
* 新增车辆 (user)
*/
@Override
public void truckAdd(Integer statisticsId, String truckNo){
public void truckAdd(String truckNo, String driverName, String driverMobile){
// IntegralTuckAddMqParam mq = new IntegralTuckAddMqParam();
// mq.setStatisticsId(statisticsId);
// mq.setTruckNo(truckNo);
// Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(mq)).getBytes()).build();
// rabbitTemplate.send(RabbitKeyIntegralConstants.DEFAULT_EXCHANGE, RabbitKeyIntegralConstants.INTEGRAL_TRUCK_ADD_ROUTING_KEY, message);
// 实时积分统计
integralMqHandlerService.integralRealTimeStatistics(statisticsId);
IntegralTuckAddMqParam mq = new IntegralTuckAddMqParam();
mq.setTruckNo(truckNo);
mq.setDriverName(driverName);
mq.setDriverMobile(driverMobile);
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(mq)).getBytes()).build();
rabbitTemplate.send(RabbitKeyIntegralConstants.DEFAULT_EXCHANGE, RabbitKeyIntegralConstants.INTEGRAL_TRUCK_ADD_ROUTING_KEY, message);
}
......
......@@ -3,7 +3,6 @@ package com.clx.performance.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.IntegralStatisticsDao;
import com.clx.performance.dao.IntegralTruckDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.model.IntegralRecord;
import com.clx.performance.model.IntegralStatistics;
......@@ -11,14 +10,10 @@ import com.clx.performance.model.IntegralTruck;
import com.clx.performance.param.pc.IntegralTruckAddParam;
import com.clx.performance.param.pc.PageIntegralTruckParam;
import com.clx.performance.param.pc.PageIntegralTruckRankParam;
import com.clx.performance.service.IntegralMqService;
import com.clx.performance.service.IntegralRecordService;
import com.clx.performance.service.IntegralStatisticsService;
import com.clx.performance.service.IntegralTruckService;
import com.clx.performance.service.*;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.pc.IntegralTruckVO;
import com.clx.user.vo.feign.DriverInfoFeignVo;
import com.msl.common.exception.ServiceSystemException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -48,6 +43,9 @@ public class IntegralTruckServiceImpl implements IntegralTruckService {
@Autowired
private IntegralMqService integralMqService;
@Autowired
private IntegralMqHandlerService integralMqHandlerService;
@Transactional(rollbackFor = Exception.class)
@Override
public void saveTruck(IntegralTruckAddParam param) {
......@@ -91,8 +89,8 @@ public class IntegralTruckServiceImpl implements IntegralTruckService {
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecord.type.PROTECTION.getValue(), protectionIntegral, "新用户");
integralRecordService.save(statistics.getId(), statistics.getStatisticsDate(), statistics.getTruckNo(), IntegralRecord.type.BASE.getValue(), baseIntegral, "基础分");
// 发送mq (车辆新增)
integralMqService.truckAdd(statistics.getId(), param.getTruckNo());
// 实时积分统计
integralMqHandlerService.integralRealTimeStatistics(statistics.getId());
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论