From 92e00dafd06ec748b51f565c7a4c98986a618de9 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期六, 03 六月 2023 02:01:40 +0800 Subject: [PATCH] 新增加分账功能 --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java | 43 ++++++++++++++++++++++++++++++------------- 1 files changed, 30 insertions(+), 13 deletions(-) diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java index da70ede..c15dbd5 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java @@ -4,17 +4,20 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import com.supersavedriving.driver.modular.system.dao.DriverWorkMapper; -import com.supersavedriving.driver.modular.system.model.Driver; -import com.supersavedriving.driver.modular.system.model.DriverWork; -import com.supersavedriving.driver.modular.system.model.OrderTransfer; -import com.supersavedriving.driver.modular.system.model.SystemConfig; +import com.supersavedriving.driver.core.util.ToolUtil; +import com.supersavedriving.driver.modular.system.model.*; import com.supersavedriving.driver.modular.system.service.*; +import com.supersavedriving.driver.modular.system.dao.DriverWorkMapper; +import com.supersavedriving.driver.modular.system.service.*; +import com.supersavedriving.driver.modular.system.util.RedisUtil; import com.supersavedriving.driver.modular.system.util.ResultUtil; +import com.supersavedriving.driver.modular.system.service.IDriverWorkService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.Date; +import java.util.List; /** * 司机上下班操作记录 @@ -36,6 +39,8 @@ @Autowired private IOrderTransferService orderTransferService; + @Autowired + private RedisUtil redisUtil; @@ -48,6 +53,9 @@ @Override public ResultUtil driverWork(Integer driverId) throws Exception { Driver driver = driverService.selectById(driverId); + if(ToolUtil.isEmpty(driver.getMerchantNumber())){ + return ResultUtil.error("请先注册商户号"); + } SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 6)); Double num1 = JSON.parseObject(systemConfig.getContent()).getDouble("num1"); if(driver.getBalance() == null || driver.getBalance().compareTo(num1) < 0){ @@ -61,11 +69,11 @@ if(null != orderTransfer){ int i = Double.valueOf((System.currentTimeMillis() - orderTransfer.getSuccessTime().getTime()) / 60000).intValue(); if(num5 > i){ - return ResultUtil.error("暂时还无法上班,请稍后重试"); + return ResultUtil.error("暂时还无法上班,请" + (num5 - i) + "分钟后重试"); } } - DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", 1).eq("status", 1)); + DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driverId).eq("status", 1)); if(null != driverWork){ return ResultUtil.error("您正在上班中"); } @@ -74,7 +82,7 @@ driverWork.setWorkTime(new Date()); driverWork.setOnlineTime(0L); driverWork.setStatus(1); - this.updateById(driverWork); + this.insert(driverWork); return ResultUtil.success(); } @@ -88,18 +96,27 @@ */ @Override public ResultUtil driverOffWork(Integer driverId, Long onlineTime) throws Exception { - DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", 1).eq("status", 2)); - if(null != driverWork){ - return ResultUtil.error("您已下班,不能重复操作"); + List<Integer> state = Arrays.asList(102, 103, 104, 105, 106, 201, 401); + int count = orderService.selectCount(new EntityWrapper<Order>().eq("driverId", driverId).eq("status", 1).in("state", state)); + if(count > 0){ + return ResultUtil.error("还有未完成的订单"); } - driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", 1).eq("status", 1)); + DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driverId).eq("status", 1)); if(null == driverWork){ return ResultUtil.error("您还未上班"); } driverWork.setOffWorkTime(new Date()); - driverWork.setOnlineTime(onlineTime); + driverWork.setOnlineTime(0L); + String value = redisUtil.getValue("ONLINE" + driverId); + if(ToolUtil.isNotEmpty(value)){ + Integer online = Integer.valueOf(value.split("_")[0]); + driverWork.setOnlineTime(online.longValue()); + } driverWork.setStatus(2); this.updateById(driverWork); + Driver driver = driverService.selectById(driverId); + driver.setServerStatus(1); + driverService.updateById(driver); return ResultUtil.success(); } } -- Gitblit v1.7.1