From d02ea504ec952cdc920be3f7ddb6b79dccd24f56 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期日, 30 七月 2023 05:03:09 +0800 Subject: [PATCH] 添加企业流水记录 --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java | 65 ++++++++++++++++++++++++-------- 1 files changed, 49 insertions(+), 16 deletions(-) diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java index e91a032..fffe3d4 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java @@ -42,6 +42,7 @@ import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.math.BigInteger; import java.math.RoundingMode; import java.net.InetAddress; import java.text.SimpleDateFormat; @@ -108,6 +109,9 @@ @Autowired private WeChatUtil weChatUtil; + + @Autowired + private IDriverOnlineTimeService driverOnlineTimeService; @Value("${callbackPath}") private String callbackPath; @@ -555,20 +559,6 @@ */ public void addDurationCredits(Integer driverId) throws Exception { SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); - String value = redisUtil.getValue("ONLINE" + driverId); - if(ToolUtil.isEmpty(value)){ - redisUtil.setStrValue("ONLINE" + driverId, "0_" + sdf1.format(new Date()) + "_0", 25 * 60 * 60); - return; - } - String today = sdf1.format(new Date()); - String[] s = value.split("_"); - if(!today.equals(s[1])){ - redisUtil.setStrValue("ONLINE" + driverId, "0_" + sdf1.format(new Date()) + "_0", 25 * 60 * 60); - return; - } - Integer second = Integer.valueOf(s[0]) + 5; - Integer time = Integer.valueOf(s[2]); - SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 4)); if(null == systemConfig){ return; @@ -582,9 +572,37 @@ long end = sdf.parse(sdf1.format(new Date()) + " " + num2 + ":00").getTime(); long l = System.currentTimeMillis(); if(start <= l && end > l){ + Driver driver = this.selectById(driverId); + String value = redisUtil.getValue("ONLINE" + driverId); + if(ToolUtil.isEmpty(value)){ + redisUtil.setStrValue("ONLINE" + driverId, "0_" + sdf1.format(new Date()) + "_0", 25 * 60 * 60); + return; + } + String today = sdf1.format(new Date()); + String[] s = value.split("_"); + if(!today.equals(s[1])){ + //修改在线时长记录 + DriverOnlineTime driverOnlineTime = driverOnlineTimeService.selectOne(new EntityWrapper<DriverOnlineTime>().eq("driverId", driverId).eq("DATE_FORMAT(`day`, '%Y-%m-%d')", s[1])); + if(null != driverOnlineTime){ + driverOnlineTime.setOnlineTime(new BigInteger(s[0])); + driverOnlineTimeService.updateById(driverOnlineTime); + }else{ + driverOnlineTime = new DriverOnlineTime(); + driverOnlineTime.setDriverId(driverId); + driverOnlineTime.setDay(sdf1.parse(s[1])); + driverOnlineTime.setOnlineTime(new BigInteger(s[0])); + driverOnlineTimeService.insert(driverOnlineTime); + } + driver.setOnlineTime(new BigInteger(s[0])); + this.updateById(driver); + redisUtil.setStrValue("ONLINE" + driverId, "0_" + sdf1.format(new Date()) + "_0", 25 * 60 * 60); + return; + } + Integer second = Integer.valueOf(s[0]) + 5; + Integer time = Integer.valueOf(s[2]); + int h = Double.valueOf(second / 3600).intValue(); if(h > 0 && h > time){ - Driver driver = this.selectById(driverId); AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5)); accountChangeDetail.setUserType(2); @@ -595,11 +613,26 @@ accountChangeDetail.setNewData(driver.getIntegral().doubleValue()); accountChangeDetail.setExplain("在线时长奖励"); accountChangeDetailService.saveData(accountChangeDetail); + driver.setOnlineTime(new BigInteger(s[0])); this.updateById(driver); time++; + + //修改在线时长记录 + DriverOnlineTime driverOnlineTime = driverOnlineTimeService.selectOne(new EntityWrapper<DriverOnlineTime>().eq("driverId", driverId).eq("DATE_FORMAT(`day`, '%Y-%m-%d')", s[1])); + if(null != driverOnlineTime){ + driverOnlineTime.setOnlineTime(new BigInteger(s[0])); + driverOnlineTimeService.updateById(driverOnlineTime); + }else{ + driverOnlineTime = new DriverOnlineTime(); + driverOnlineTime.setDriverId(driverId); + driverOnlineTime.setDay(sdf1.parse(s[1])); + driverOnlineTime.setOnlineTime(new BigInteger(s[0])); + driverOnlineTimeService.insert(driverOnlineTime); + } } + redisUtil.setStrValue("ONLINE" + driverId, second + "_" + s[1] + "_" + time); } - redisUtil.setStrValue("ONLINE" + driverId, second + "_" + s[1] + "_" + time); + } -- Gitblit v1.7.1