提交 a75d246d authored 作者: 马路路's avatar 马路路

Merge branch 'v29.6_ultimate_interaction_20241017' into dev_jdk17

......@@ -225,6 +225,8 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
OrderGoodsTodaySumDTO countTodayOrderGoodsSumByUserNo(Long userNo);
OrderGoodsTodaySumDTO countTodayOrderGoodsSumByTruckOwnUserNo(Long userNo);
OrderGoodsTodaySumDTO sumOrderChildFreightByDriverUserNo(Long driverUserNo);
Long countNotCancelOrderChild(List<String> cancelOrderGoodsNo);
......
......@@ -737,6 +737,11 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
return baseMapper.countTodayOrderGoodsSumByUserNo(userNo);
}
@Override
public OrderGoodsTodaySumDTO countTodayOrderGoodsSumByTruckOwnUserNo(Long truckOwnUserNo) {
return baseMapper.countTodayOrderGoodsSumByTruckOwnUserNo(truckOwnUserNo);
}
@Override
public OrderGoodsTodaySumDTO sumOrderChildFreightByDriverUserNo(Long driverUserNo) {
return baseMapper.sumOrderChildFreightByDriverUserNo(driverUserNo);
......
......@@ -198,11 +198,28 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
" where order_goods_no=#{orderGoodsNo} and status in(50,60,70,80,90,100)")
int countLoadByOrderGoodsNo(@Param("orderGoodsNo") String orderGoodsNo);
/**
* 统计司机今日的订单数
* @param userNo
* @return
*/
@Select("select count(*) AS todayOrderGoodsSum, IFNULL(SUM(freight),0) AS todayEstimateProfit from order_child " +
" where user_no=#{userNo} and status in(10,20,30,40,50,60,70,80,90,100,110,111,112,113) AND create_time >= CURDATE()" +
" where driver_user_no=#{userNo} and truck_own_user_no != #{userNo} " +
" AND status in(10,20,30,40,50,60,70,80,90,100,110,111,112,113) AND create_time >= CURDATE()" +
" AND create_time <= CURDATE() + INTERVAL 1 DAY - INTERVAL 1 SECOND")
OrderGoodsTodaySumDTO countTodayOrderGoodsSumByUserNo(Long userNo);
/**
* 统计车主今日的订单数
* @param truckOwnUserNo
* @return
*/
@Select("select count(*) AS todayOrderGoodsSum, IFNULL(SUM(freight),0) AS todayEstimateProfit from order_child " +
" where truck_own_user_no=#{truckOwnUserNo} and status in(10,20,30,40,50,60,70,80,90,100,110,111,112,113) " +
" AND create_time >= CURDATE()" +
" AND create_time <= CURDATE() + INTERVAL 1 DAY - INTERVAL 1 SECOND")
OrderGoodsTodaySumDTO countTodayOrderGoodsSumByTruckOwnUserNo(Long truckOwnUserNo);
/**
* 统计司机今日的订单数和运费
*
......
......@@ -50,7 +50,10 @@ import com.clx.performance.vo.pc.OrderGoodsEditVO;
import com.clx.performance.vo.pc.OrderGoodsPendingVO;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.clx.user.enums.driver.DriverInfoEnum;
import com.clx.user.feign.DriverFeign;
import com.clx.user.feign.UserClxFeign;
import com.clx.user.vo.feign.DriverInfoFeignVo;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.base.Optional;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.exception.ServiceSystemException;
......@@ -136,6 +139,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
@Autowired
OrderService orderService;
@Autowired
private DriverFeign driverFeign;
private static Map<Integer, Consumer<OrderGoodsCancelDTO>> orderGoodsCancelMap = new HashMap<>();
......@@ -1106,12 +1112,75 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
@Override
public OrderGoodsTodaySumVO getTodayOrderGoodsSum() {
OrderGoodsTodaySumVO vo = new OrderGoodsTodaySumVO();
OrderGoodsTodaySumDTO dto = orderChildDao.countTodayOrderGoodsSumByUserNo(TokenUtil.getLoginUserInfo().getUserNo());
OrderGoodsTodaySumDTO dtoTwo = orderChildDao.sumOrderChildFreightByDriverUserNo(TokenUtil.getLoginUserInfo().getUserNo());
vo.setTodayOrderGoodsSum(dto.getTodayOrderGoodsSum());
vo.setTodayEstimateProfit(dtoTwo.getTodayEstimateProfit());
Integer ownerTruck = 0;
BigDecimal ownerWeight = BigDecimal.ZERO;
Integer driver = 0;
// 获取当前登录用户是否为车主
boolean ownerFlag = isTruckOwner(TokenUtil.getLoginUserInfo().getUserNo());
// 获取当亲登录用户是否是司机
boolean driverFlag = isDriver(TokenUtil.getLoginUserInfo().getUserNo());
// 若是车主
if (ownerFlag) {
// 计算当前用户关联的所有订单数
ownerTruck = orderChildDao.countTodayOrderGoodsSumByTruckOwnUserNo(TokenUtil.getLoginUserInfo().getUserNo())
.getTodayOrderGoodsSum();
// 计算当前用户今天所有收益
ownerWeight = orderChildDao.sumOrderChildFreightByDriverUserNo(TokenUtil.getLoginUserInfo().getUserNo())
.getTodayEstimateProfit();
vo.setTodayOrderGoodsSum(ownerTruck);
vo.setTodayEstimateProfit(ownerWeight);
}
// 若是司机
if (driverFlag){
// 计算当前用户今天所有订单数(以司机维度查询)
driver = orderChildDao.countTodayOrderGoodsSumByUserNo(TokenUtil.getLoginUserInfo().getUserNo())
.getTodayOrderGoodsSum();
vo.setTodayOrderGoodsSum(driver);
// 计算当前用户(司机)今天所有收益==0
vo.setTodayEstimateProfit(BigDecimal.ZERO);
}
// 若是车主也是司机
if (ownerFlag && driverFlag) {
vo.setTodayOrderGoodsSum(ownerTruck + driver);
vo.setTodayEstimateProfit(ownerWeight);
return vo;
}
return vo;
}
/**
* 判断当前用户是否为车主
*
* @param trunkOwnerUserNo
* @return
*/
private boolean isTruckOwner(Long trunkOwnerUserNo){
// 获取车辆新信息
DriverTruckInfoFeignVo driverTruckInfoFeignVo = Optional.ofNullable(driverFeign
.getDriverTruckInfoByTrunkOwnerUserNo(trunkOwnerUserNo)).filter(Result:: succeed).map(Result::getData)
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if (Objects.nonNull(driverTruckInfoFeignVo)) {
return true;
}
return false;
}
/**
* 判断当前用户是否为司机
*
* @param driverUserNo
* @return
*/
private boolean isDriver(Long driverUserNo) {
DriverInfoFeignVo driverInfoFeignVo = Optional.ofNullable(driverFeign.getDriverInfo(driverUserNo)).filter(Result:: succeed).map(Result::getData)
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if (Objects.nonNull(driverInfoFeignVo)) {
return true;
}
return false;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论