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/OrderServiceImpl.java | 23 +++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java | 6 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverOnlineTimeService.java | 11 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java | 28 +++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CompanyFundFlowServiceImpl.java | 15 ++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java | 21 +++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java | 65 +++++++-- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/RevenueMapper.java | 15 ++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IRevenueService.java | 16 ++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/CompanyFundFlowMapper.xml | 15 ++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverOnlineTimeServiceImpl.java | 15 ++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/CompanyFundFlow.java | 54 +++++++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/DriverOnlineTime.java | 39 +++++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml | 25 +++ driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/DriverOnlineTimeMapper.java | 11 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/ICompanyFundFlowService.java | 11 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/CompanyFundFlowMapper.java | 11 + driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverOnlineTimeMapper.xml | 12 + 18 files changed, 372 insertions(+), 21 deletions(-) diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/CompanyFundFlowMapper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/CompanyFundFlowMapper.java new file mode 100644 index 0000000..027a7cc --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/CompanyFundFlowMapper.java @@ -0,0 +1,11 @@ +package com.supersavedriving.driver.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.supersavedriving.driver.modular.system.model.CompanyFundFlow; + +/** + * @author zhibing.pu + * @Date 2023/7/30 3:05 + */ +public interface CompanyFundFlowMapper extends BaseMapper<CompanyFundFlow> { +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/DriverOnlineTimeMapper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/DriverOnlineTimeMapper.java new file mode 100644 index 0000000..a189a2e --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/DriverOnlineTimeMapper.java @@ -0,0 +1,11 @@ +package com.supersavedriving.driver.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.supersavedriving.driver.modular.system.model.DriverOnlineTime; + +/** + * @author zhibing.pu + * @Date 2023/7/30 2:23 + */ +public interface DriverOnlineTimeMapper extends BaseMapper<DriverOnlineTime> { +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/RevenueMapper.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/RevenueMapper.java index 9a35336..4d05a16 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/RevenueMapper.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/RevenueMapper.java @@ -28,4 +28,19 @@ */ List<PerformanceRankingWarpper> queryDriverRank(@Param("type") Integer type, @Param("time") String time, @Param("dayType") Integer dayType); + + + /** + * 获取代理商账户余额 + * @param companyId + * @return + */ + Double queryAgentBalance(@Param("companyId") Integer companyId); + + + /** + * 获取平台账户余额 + * @return + */ + Double queryCompanyBalance(); } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/CompanyFundFlowMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/CompanyFundFlowMapper.xml new file mode 100644 index 0000000..f8ea348 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/CompanyFundFlowMapper.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.supersavedriving.driver.modular.system.dao.CompanyFundFlowMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.supersavedriving.driver.modular.system.model.CompanyFundFlow"> + <id column="id" property="id"/> + <result column="type" property="type"/> + <result column="objectType" property="objectType"/> + <result column="objectId" property="objectId"/> + <result column="balance" property="balance"/> + <result column="money" property="money"/> + <result column="createTime" property="createTime"/> + </resultMap> +</mapper> \ No newline at end of file diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverOnlineTimeMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverOnlineTimeMapper.xml new file mode 100644 index 0000000..bdfc6f4 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/DriverOnlineTimeMapper.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.supersavedriving.driver.modular.system.dao.DriverOnlineTimeMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.supersavedriving.driver.modular.system.model.DriverOnlineTime"> + <id column="id" property="id"/> + <result column="driverId" property="driverId"/> + <result column="day" property="day"/> + <result column="onlineTime" property="onlineTime"/> + </resultMap> +</mapper> \ No newline at end of file diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml index 8dec2cb..c442367 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/dao/mapping/RevenueMapper.xml @@ -57,4 +57,29 @@ group by a.userId,b.`name` ) as aa,( SELECT @ROW := 0 ) AS itable order by aa.number desc </select> + + + <select id="queryAgentBalance" resultType="double"> + select + sum(aa.income) - sum(aa.disburse) as balance + from ( + select sum(amount) as income, 0 as disburse from t_revenue where userType = 3 and userId = #{companyId} + union all + select 0 as ncome, sum(amount) as disburse from t_settlement_record where type = 2 and objectId = #{companyId} + ) as aa + </select> + + + + <select id="queryCompanyBalance" resultType="double"> + select + sum(aa.income) - sum(aa.disburse) + sum(aa.recharge) as balance + from ( + select sum(amount) as income, 0 as disburse, 0 as recharge from t_revenue where userType = 4 + union all + select 0 as ncome, sum(amount) as disburse, 0 as recharge from t_settlement_record where type = 1 + union all + select 0 as ncome, 0 as disburse, sum(surplusDividedAmount) as recharge from t_recharge_record where type = 4 and payStatus = 2 + ) as aa + </select> </mapper> diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/CompanyFundFlow.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/CompanyFundFlow.java new file mode 100644 index 0000000..6b9f662 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/CompanyFundFlow.java @@ -0,0 +1,54 @@ +package com.supersavedriving.driver.modular.system.model; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author zhibing.pu + * @Date 2023/7/30 3:02 + */ +@Data +@TableName("t_company_fund_flow") +public class CompanyFundFlow { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 变动类型(1=充值,2=提现,3=佣金收入,4=保险收入) + */ + @TableField("type") + private Integer type; + /** + * 对象类型(1=平台,2=代理商) + */ + @TableField("objectType") + private Integer objectType; + /** + * 代理商id + */ + @TableField("objectId") + private Integer objectId; + /** + * 历史账户余额 + */ + @TableField("balance") + private BigDecimal balance; + /** + * 变动金额 + */ + @TableField("money") + private BigDecimal money; + /** + * 变动时间 + */ + @TableField("createTime") + private Date createTime; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java index 63b141a..dcbad55 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/Driver.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.enums.IdType; import lombok.Data; +import java.math.BigInteger; import java.util.Date; /** @@ -128,6 +129,11 @@ @TableField("backgroundBalance") private Double backgroundBalance; /** + * 司机在线时长 + */ + @TableField("onlineTime") + private BigInteger onlineTime; + /** * 优惠券余额(订单优惠券支付的金额) */ @TableField("couponBalance") diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/DriverOnlineTime.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/DriverOnlineTime.java new file mode 100644 index 0000000..6040dd0 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/model/DriverOnlineTime.java @@ -0,0 +1,39 @@ +package com.supersavedriving.driver.modular.system.model; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; + +import java.math.BigInteger; +import java.util.Date; + +/** + * @author zhibing.pu + * @Date 2023/7/30 1:31 + */ +@Data +@TableName("t_driver_online_time") +public class DriverOnlineTime { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 司机id + */ + @TableField("driverId") + private Integer driverId; + /** + * 统计日期 + */ + @TableField("day") + private Date day; + /** + * 在线时长(秒) + */ + @TableField("onlineTime") + private BigInteger onlineTime; +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/ICompanyFundFlowService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/ICompanyFundFlowService.java new file mode 100644 index 0000000..63d0af5 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/ICompanyFundFlowService.java @@ -0,0 +1,11 @@ +package com.supersavedriving.driver.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.supersavedriving.driver.modular.system.model.CompanyFundFlow; + +/** + * @author zhibing.pu + * @Date 2023/7/30 3:09 + */ +public interface ICompanyFundFlowService extends IService<CompanyFundFlow> { +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverOnlineTimeService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverOnlineTimeService.java new file mode 100644 index 0000000..5fb99c3 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IDriverOnlineTimeService.java @@ -0,0 +1,11 @@ +package com.supersavedriving.driver.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.supersavedriving.driver.modular.system.model.DriverOnlineTime; + +/** + * @author zhibing.pu + * @Date 2023/7/30 2:24 + */ +public interface IDriverOnlineTimeService extends IService<DriverOnlineTime> { +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IRevenueService.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IRevenueService.java index fcd2779..4a83721 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IRevenueService.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/IRevenueService.java @@ -39,4 +39,20 @@ * @return */ List<PerformanceRankingWarpper> queryDriverRank(Integer type, String time, Integer dayType); + + + /** + * 获取代理商账户余额 + * @param companyId + * @return + */ + Double queryAgentBalance(Integer companyId); + + + + /** + * 获取平台账户余额 + * @return + */ + Double queryCompanyBalance(); } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java index 41c7c86..2fb86c8 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/AccountChangeDetailServiceImpl.java @@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.supersavedriving.driver.modular.system.dao.AccountChangeDetailMapper; -import com.supersavedriving.driver.modular.system.model.AccountChangeDetail; -import com.supersavedriving.driver.modular.system.model.Driver; -import com.supersavedriving.driver.modular.system.model.RechargeRecord; -import com.supersavedriving.driver.modular.system.model.SystemConfig; +import com.supersavedriving.driver.modular.system.model.*; import com.supersavedriving.driver.modular.system.service.*; import com.supersavedriving.driver.modular.system.util.ResultUtil; import com.supersavedriving.driver.modular.system.util.UUIDUtil; @@ -43,6 +40,12 @@ @Autowired private IOrderService orderService; + + @Autowired + private IRevenueService revenueService; + + @Autowired + private ICompanyFundFlowService companyFundFlowService; @@ -127,6 +130,7 @@ Double num1 = jsonObject.getDouble("num1"); List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("approvalStatus", 2).eq("status", 1)); for (Driver driver : drivers) { + Double balance1 = revenueService.queryCompanyBalance(); Double backgroundBalance = driver.getBackgroundBalance(); Double balance = driver.getBalance(); double all = backgroundBalance + balance; @@ -168,6 +172,13 @@ accountChangeDetail.setCreateTime(new Date()); this.insert(accountChangeDetail); + Revenue revenue = new Revenue(); + revenue.setType(3); + revenue.setUserType(4); + revenue.setAmount(d); + revenue.setCreateTime(new Date()); + revenueService.insert(revenue); + List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 2).eq("userId", driver.getId()).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime")); for (RechargeRecord rechargeRecord : rechargeRecords) { Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount(); @@ -192,8 +203,15 @@ } } - driverService.updateById(driver); + + CompanyFundFlow companyFundFlow = new CompanyFundFlow(); + companyFundFlow.setType(4); + companyFundFlow.setObjectType(1); + companyFundFlow.setBalance(new BigDecimal(balance1)); + companyFundFlow.setMoney(new BigDecimal(num1)); + companyFundFlow.setCreateTime(new Date()); + companyFundFlowService.insert(companyFundFlow); } } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CompanyFundFlowServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CompanyFundFlowServiceImpl.java new file mode 100644 index 0000000..2795d23 --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/CompanyFundFlowServiceImpl.java @@ -0,0 +1,15 @@ +package com.supersavedriving.driver.modular.system.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.driver.modular.system.dao.CompanyFundFlowMapper; +import com.supersavedriving.driver.modular.system.model.CompanyFundFlow; +import com.supersavedriving.driver.modular.system.service.ICompanyFundFlowService; +import org.springframework.stereotype.Service; + +/** + * @author zhibing.pu + * @Date 2023/7/30 3:10 + */ +@Service +public class CompanyFundFlowServiceImpl extends ServiceImpl<CompanyFundFlowMapper, CompanyFundFlow> implements ICompanyFundFlowService { +} diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverOnlineTimeServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverOnlineTimeServiceImpl.java new file mode 100644 index 0000000..85a41cb --- /dev/null +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverOnlineTimeServiceImpl.java @@ -0,0 +1,15 @@ +package com.supersavedriving.driver.modular.system.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.driver.modular.system.dao.DriverOnlineTimeMapper; +import com.supersavedriving.driver.modular.system.model.DriverOnlineTime; +import com.supersavedriving.driver.modular.system.service.IDriverOnlineTimeService; +import org.springframework.stereotype.Service; + +/** + * @author zhibing.pu + * @Date 2023/7/30 2:25 + */ +@Service +public class DriverOnlineTimeServiceImpl extends ServiceImpl<DriverOnlineTimeMapper, DriverOnlineTime> implements IDriverOnlineTimeService { +} 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); + } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java index 52240af..34b1756 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java @@ -114,6 +114,9 @@ @Autowired private IOrderPositionService orderPositionService; + @Autowired + private ICompanyFundFlowService companyFundFlowService; + @Value("${callbackPath}") private String callbackPath;//支付回调网关地址 @@ -1424,6 +1427,8 @@ accountChangeDetailService.insert(accountChangeDetail); //补贴中分账 + Double balance = revenueService.queryCompanyBalance();//平台账户余额 + Double discountedPrice = order.getDiscountedPrice(); List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 4).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime")); for (RechargeRecord rechargeRecord : rechargeRecords) { @@ -1448,6 +1453,14 @@ } } } + + CompanyFundFlow companyFundFlow = new CompanyFundFlow(); + companyFundFlow.setType(5); + companyFundFlow.setObjectType(1); + companyFundFlow.setBalance(new BigDecimal(balance)); + companyFundFlow.setMoney(new BigDecimal(order.getDiscountedPrice())); + companyFundFlow.setCreateTime(new Date()); + companyFundFlowService.insert(companyFundFlow); } } this.updateById(order); @@ -1966,6 +1979,7 @@ } //处理代理商抽佣 if(num3 > 0){ + Double balance = revenueService.queryAgentBalance(driver.getAgentId()); Revenue revenue = new Revenue(); revenue.setType(1); revenue.setUserType(3); @@ -1997,6 +2011,15 @@ } } } + + CompanyFundFlow companyFundFlow = new CompanyFundFlow(); + companyFundFlow.setType(3); + companyFundFlow.setObjectType(2); + companyFundFlow.setObjectId(driver.getAgentId()); + companyFundFlow.setBalance(new BigDecimal(balance)); + companyFundFlow.setMoney(new BigDecimal(num3)); + companyFundFlow.setCreateTime(new Date()); + companyFundFlowService.insert(companyFundFlow); } } } diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java index 7ebd975..4cba21d 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/RevenueServiceImpl.java @@ -94,4 +94,25 @@ public List<PerformanceRankingWarpper> queryDriverRank(Integer type, String time, Integer dayType) { return this.baseMapper.queryDriverRank(type, time, dayType); } + + + /** + * 获取代理商账户余额 + * @param companyId + * @return + */ + @Override + public Double queryAgentBalance(Integer companyId) { + return this.baseMapper.queryAgentBalance(companyId); + } + + + /** + * 获取平台账户余额 + * @return + */ + @Override + public Double queryCompanyBalance() { + return this.baseMapper.queryCompanyBalance(); + } } -- Gitblit v1.7.1