From b2eda32b99ddc336372f1cd601d4df23d5f729a8 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 13 三月 2023 18:10:22 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java | 44 +++++++++++++++++++++++++++++++------------- 1 files changed, 31 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 06d0859..9b94d76 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 @@ -1,17 +1,20 @@ package com.supersavedriving.driver.modular.system.service.impl; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.driver.core.util.ToolUtil; +import com.supersavedriving.driver.modular.system.service.*; 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.modular.system.service.IDriverService; -import com.supersavedriving.driver.modular.system.service.IDriverWorkService; -import com.supersavedriving.driver.modular.system.service.IOrderService; -import com.supersavedriving.driver.modular.system.service.ISystemConfigService; +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; @@ -34,6 +37,12 @@ @Autowired private IOrderService orderService; + @Autowired + private IOrderTransferService orderTransferService; + + @Autowired + private RedisUtil redisUtil; + @@ -52,8 +61,16 @@ return ResultUtil.error("账户余额不足,请先充值"); } systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 1)); - JSON.parseObject(systemConfig.getContent()).getDouble("num1"); - + JSONObject jsonObject = JSON.parseObject(systemConfig.getContent()); + Integer num5 = jsonObject.getInteger("num5"); + OrderTransfer orderTransfer = orderTransferService.selectOne(new EntityWrapper<OrderTransfer>().eq("oldDriverId", driverId) + .eq("status", 1).isNotNull("successTime").orderBy("createTime desc limit 0, 1")); + if(null != orderTransfer){ + int i = Double.valueOf((System.currentTimeMillis() - orderTransfer.getSuccessTime().getTime()) / 60000).intValue(); + if(num5 > i){ + return ResultUtil.error("暂时还无法上班,请稍后重试"); + } + } DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", 1).eq("status", 1)); if(null != driverWork){ @@ -64,7 +81,7 @@ driverWork.setWorkTime(new Date()); driverWork.setOnlineTime(0L); driverWork.setStatus(1); - this.updateById(driverWork); + this.insert(driverWork); return ResultUtil.success(); } @@ -78,16 +95,17 @@ */ @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("您已下班,不能重复操作"); - } - 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); return ResultUtil.success(); -- Gitblit v1.7.1