44323
2024-05-17 5ed736959185a95c6140378c2db12915cf577dbd
igo所有代码提交
5个文件已添加
5个文件已修改
735 ■■■■ 已修改文件
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TSubsidyController.java 516 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/BalanceUsageRecordMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/BalanceUsageRecordMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BalanceUsageRecord.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IBalanceUsageRecordService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/BalanceUsageRecordServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/grant.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/use.html 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/water.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/subsidy/use.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TSubsidyController.java
@@ -11,6 +11,7 @@
import com.stylefeng.guns.modular.system.vo.GrantMoneyVO;
import com.stylefeng.guns.modular.system.vo.GrantVO;
import com.stylefeng.guns.modular.system.vo.PlatformVO;
import com.stylefeng.guns.modular.system.vo.UseMoneyVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -55,7 +56,8 @@
    private IIncomeService incomeService;
    @Autowired
    private ISettlementRecordService settlementRecordService;
    @Autowired
    private IBalanceUsageRecordService balanceUsageRecordService;
    @Autowired
    private ISettlementDetailService settlementDetailService;
    @Autowired
@@ -148,7 +150,6 @@
                    break;
            }
        }
        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 列表res
        List<GrantVO> res = new ArrayList<>();
@@ -162,10 +163,11 @@
        // 红包领取记录
        List<TOrderPrivateCar> userRedPacketRecords = new ArrayList<>();
        List<TOrderLogistics> userRedPacketRecords1 = new ArrayList<>();
        // 司机消费
        List<TPubTransactionDetails> driverActivityHistories = new ArrayList<>();
        List<BalanceUsageRecord> balanceUsageRecords = new ArrayList<>();
        // 司机提现
        List<TPubWithdrawal> driverWithdrawal = new ArrayList<>();
        List<BalanceUsageRecord> driverWithdrawal = new ArrayList<>();
        // 司机提现wrapper
        Wrapper<TPubWithdrawal> driverWrapper = new EntityWrapper<TPubWithdrawal>()
                .eq("state", 2)
@@ -173,52 +175,53 @@
                .between("handleTime", start, end);
        // 专车wrapper
        Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("activityId")
                .isNotNull("discountMoney")
                .between("insertTime", start, end);
        // 小件物流wrapper
        Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("activityId")
                .isNotNull("discountMoney")
                .between("insertTime", start, end);
        // 已使用优惠券记录wrapper
        Wrapper<TOrderPrivateCar> between2 = new EntityWrapper<TOrderPrivateCar>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("couponId")
                .isNotNull("couponMoney")
                .between("insertTime", start, end);
        Wrapper<TOrderLogistics> between22 = new EntityWrapper<TOrderLogistics>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("couponId")
                .isNotNull("couponMoney")
                .between("insertTime", start, end);
        // 已使用红包记录wrapper
        Wrapper<TOrderPrivateCar> between3 = new EntityWrapper<TOrderPrivateCar>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("redPacketId")
                .isNotNull("redPacketMoney")
                .between("insertTime", start, end);
        Wrapper<TOrderLogistics> between33 = new EntityWrapper<TOrderLogistics>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("redPacketId")
                .isNotNull("redPacketMoney")
                .between("insertTime", start, end);
        // 司机已消费金额
        Wrapper<TPubTransactionDetails> between4 = new EntityWrapper<TPubTransactionDetails>()
                .eq("state", 2)
                .eq("type", 1)
                .eq("userType", 2)
                .ne("orderType", 2)
                .ne("orderType", 3)
                .between("insertTime", start, end);
        Wrapper<BalanceUsageRecord> between4 = new EntityWrapper<BalanceUsageRecord>()
                .ne("purpose", 6)
                .between("createTime", start, end);
        // 司机提现
        Wrapper<BalanceUsageRecord> between44 = new EntityWrapper<BalanceUsageRecord>()
                .eq("purpose", 6)
                .between("createTime", start, end);
        if (type!=null){
            switch (type){
                case 1:
@@ -233,9 +236,9 @@
                    break;
                case 3:
                    // 司机消费记录
                    driverActivityHistories = pubTransactionDetailsService.selectList(between4);
                    balanceUsageRecords = balanceUsageRecordService.selectList(between4);
                    driverWithdrawal = pubWithdrawalService.selectList(driverWrapper);
                    driverWithdrawal = balanceUsageRecordService.selectList(between44);
                    break;
                case 4:
                    // 专车订单
@@ -256,8 +259,9 @@
            // 小件物流订单
            tOrderLogistics = orderLogisticsService.selectList(between1);
            // 消费
            driverActivityHistories = pubTransactionDetailsService.selectList(between4);
            driverWithdrawal = pubWithdrawalService.selectList(driverWrapper);
            balanceUsageRecords = balanceUsageRecordService.selectList(between4);
            // 提现
            driverWithdrawal = balanceUsageRecordService.selectList(between44);
        }
        // 已发放补贴总额
@@ -276,6 +280,9 @@
        BigDecimal driverWithdrawal1 = new BigDecimal("0");
        // 查询已使用折扣总额
        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
                continue;
            }
            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
@@ -289,6 +296,9 @@
        }
        for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
                continue;
            }
            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
@@ -302,6 +312,9 @@
        }
        // 查询已领取红包总额
        for (TOrderPrivateCar userRedPacketRecord : userRedPacketRecords) {
            if (userRedPacketRecord.getState() != 9 &&userRedPacketRecord.getState() != 8){
                continue;
            }
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
            grantVO.setType("红包");
@@ -315,6 +328,9 @@
            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getPayMoney().toString()));
        }
        for (TOrderLogistics userRedPacketRecord : userRedPacketRecords1) {
            if (userRedPacketRecord.getState() != 9 &&userRedPacketRecord.getState() != 8){
                continue;
            }
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
            grantVO.setType("红包");
@@ -329,6 +345,9 @@
        }
        // 查询已领取优惠券总额
        for (TOrderPrivateCar userCouponRecord : userCouponRecords) {
            if (userCouponRecord.getState() != 9 &&userCouponRecord.getState() != 8){
                continue;
            }
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
            grantVO.setType("优惠券");
@@ -342,6 +361,9 @@
            res.add(grantVO);
        }
        for (TOrderLogistics userCouponRecord : userCouponRecords1) {
            if (userCouponRecord.getState() != 9 &&userCouponRecord.getState() != 8){
                continue;
            }
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
            grantVO.setType("优惠券");
@@ -354,41 +376,69 @@
            coupon = coupon.add(new BigDecimal(userCouponRecord.getPayMoney().toString()));
            res.add(grantVO);
        }
        // 已领取司机奖励
//        for (DriverActivityHistory driverActivityHistory : driverActivityHistories) {
//            GrantVO grantVO = new GrantVO();
//            grantVO.setInsertTime(format.format(driverActivityHistory.getInsertTime()));
//            grantVO.setType("司机奖励");
//            grantVO.setAmount(driverActivityHistory.getMoney().toString());
//            TDriver tDriver = driverService.selectById(driverActivityHistory.getDriverId());
//            if (tDriver!=null){
//                grantVO.setName(tDriver.getFirstName()+tDriver.getLastName());
//            }
//            Integer type1 = driverActivityHistory.getType();
//            switch (type1){
//                case 1:
//                    grantVO.setRemark("邀请司机注册");
//                    break;
//                case 2:
//                    grantVO.setRemark("邀请用户注册");
//                    break;
//                case 3:
//                    grantVO.setRemark("累计在线");
//                    break;
//                case 4:
//                    grantVO.setRemark("订单量");
//                    break;
//            }
//            driver = driver.add(new BigDecimal(driverActivityHistory.getMoney().toString()));
//            res.add(grantVO);
//        }
        total = total.add(redPackage).add(coupon).add(discount).add(driver);
        // 司机消费奖励
        for (BalanceUsageRecord balanceUsageRecord : balanceUsageRecords) {
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(balanceUsageRecord.getCreateTime()));
            grantVO.setType("司机奖励");
            grantVO.setAmount(balanceUsageRecord.getMoney().toString());
            TDriver tUser = driverService.selectById(balanceUsageRecord.getDriverId());
            if (tUser!=null){
                grantVO.setName(tUser.getFirstName()+tUser.getLastName());
            }
            switch (balanceUsageRecord.getPurpose()){
                case 1:
                    //打车支付
                    grantVO.setRemark("余额支付"+"【打车支付】");
                    break;
                case 2:
                    grantVO.setRemark("余额支付"+"【包裹支付】");
                    // 包裹支付
                    break;
                case 3:
                    grantVO.setRemark("余额支付"+"【日结算】");
                    // 日结算
                    break;
                case 4:
                    grantVO.setRemark("余额支付"+"【周结算】");
                    // 周结算
                    break;
                case 5:
                    grantVO.setRemark("余额支付"+"【月结算】");
                    // 月结算
                    break;
            }
            driverConsume = driverConsume.add(new BigDecimal(balanceUsageRecord.getMoney().toString()));
            res.add(grantVO);
        }
        // 司机提现
        for (BalanceUsageRecord balanceUsageRecord : driverWithdrawal) {
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(balanceUsageRecord.getCreateTime()));
            grantVO.setType("司机奖励");
            grantVO.setAmount(balanceUsageRecord.getMoney().toString());
            TDriver tUser = driverService.selectById(balanceUsageRecord.getDriverId());
            if (tUser!=null){
                grantVO.setName(tUser.getFirstName()+tUser.getLastName());
            }
            switch (balanceUsageRecord.getPurpose()){
                case 6:
                    grantVO.setRemark("司机提现");
                    break;
            }
            driverWithdrawal1 = driverWithdrawal1.add(new BigDecimal(balanceUsageRecord.getMoney().toString()));
            res.add(grantVO);
        }
        // 总额
        total = total.add(redPackage).add(coupon).add(discount).add(driverConsume).add(driverWithdrawal1);
        // 已使用司机奖励合计
        driver = driverConsume.add(driverWithdrawal1);
        return res;
    }
    @RequestMapping(value = "/use/getCount")
    @ResponseBody
    public Object getCount1(Integer time,String insertTime,Integer type) {
        GrantMoneyVO result = new GrantMoneyVO();
        if (time == null){
            time = 1;
        }
@@ -455,54 +505,90 @@
        // 小件物流
        List<TOrderLogistics> tOrderLogistics = new ArrayList<>();
        // 优惠券领取记录
        List<UserCouponRecord> userCouponRecords = new ArrayList<>();
        List<TOrderPrivateCar> userCouponRecords = new ArrayList<>();
        List<TOrderLogistics> userCouponRecords1 = new ArrayList<>();
        // 红包领取记录
        List<UserRedPacketRecord> userRedPacketRecords = new ArrayList<>();
        // 司机奖励
        List<DriverActivityHistory> driverActivityHistories = new ArrayList<>();
        List<TOrderPrivateCar> userRedPacketRecords = new ArrayList<>();
        List<TOrderLogistics> userRedPacketRecords1 = new ArrayList<>();
        // 司机消费
        List<BalanceUsageRecord> balanceUsageRecords = new ArrayList<>();
        // 司机提现
        List<BalanceUsageRecord> driverWithdrawal = new ArrayList<>();
        // 司机提现wrapper
        Wrapper<TPubWithdrawal> driverWrapper = new EntityWrapper<TPubWithdrawal>()
                .eq("state", 2)
                .eq("userType", 2)
                .between("handleTime", start, end);
        // 专车wrapper
        Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("activityId")
                .isNotNull("discountMoney")
                .between("insertTime", start, end);
                .between("insertTime", start, end)
                ;
        // 小件物流wrapper
        Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("activityId")
                .isNotNull("discountMoney")
                .between("insertTime", start, end);
        // 优惠券领取记录wrapper
        Wrapper<UserCouponRecord> between2 = new EntityWrapper<UserCouponRecord>()
                .ne("couponUseType", 2)
                .ne("couponUseType", 3)
                .between("insertTime", start, end);
        // 红包领取记录wrapper
        Wrapper<UserRedPacketRecord> between3 = new EntityWrapper<UserRedPacketRecord>()
                .ne("orderType", 2)
                .ne("orderType", 3)
                .between("insertTime", start, end);
        // 司机奖励
        Wrapper<DriverActivityHistory> between4 = new EntityWrapper<DriverActivityHistory>()
                .eq("carryOut", 2)
                .between("insertTime", start, end);
        if (type!=null){
                .between("insertTime", start, end)
                ;
        // 已使用优惠券记录wrapper
        Wrapper<TOrderPrivateCar> between2 = new EntityWrapper<TOrderPrivateCar>()
                .isNotNull("couponId")
                .isNotNull("couponMoney")
                .between("insertTime", start, end)
                ;
        Wrapper<TOrderLogistics> between22 = new EntityWrapper<TOrderLogistics>()
                .isNotNull("couponId")
                .isNotNull("couponMoney")
                .between("insertTime", start, end)
                ;
        // 已使用红包记录wrapper
        Wrapper<TOrderPrivateCar> between3 = new EntityWrapper<TOrderPrivateCar>()
                .isNotNull("redPacketId")
                .isNotNull("redPacketMoney")
                .between("insertTime", start, end)
                ;
        Wrapper<TOrderLogistics> between33 = new EntityWrapper<TOrderLogistics>()
                .isNotNull("redPacketId")
                .isNotNull("redPacketMoney")
                .between("insertTime", start, end)
                ;
        // 司机已消费金额
        Wrapper<BalanceUsageRecord> between4 = new EntityWrapper<BalanceUsageRecord>()
                .ne("purpose", 6)
                .between("createTime", start, end);
        // 司机提现
        Wrapper<BalanceUsageRecord> between44 = new EntityWrapper<BalanceUsageRecord>()
                .eq("purpose", 6)
                .between("createTime", start, end);
        if (type!=null){
            switch (type){
                case 1:
                    // 红包
                    userRedPacketRecords = userRedPacketRecordService.selectList(between3);
                    userRedPacketRecords = orderPrivateCarService.selectList(between3);
                    userRedPacketRecords1 = orderLogisticsService.selectList(between33);
                    break;
                case 2:
                    userCouponRecords = userCouponRecordService.selectList(between2);
                    userCouponRecords = orderPrivateCarService.selectList(between2);
                    userCouponRecords1 = orderLogisticsService.selectList(between22);
                    // 优惠券
                    break;
                case 3:
                    // 司机奖励
                    driverActivityHistories = driverActivityHistoryService.selectList(between4);
                    // 司机消费记录
                    balanceUsageRecords = balanceUsageRecordService.selectList(between4);
                    driverWithdrawal = balanceUsageRecordService.selectList(between44);
                    break;
                case 4:
                    // 专车订单
@@ -512,28 +598,41 @@
                    break;
            }
        }else{
            // 红包
            userRedPacketRecords = orderPrivateCarService.selectList(between3);
            userRedPacketRecords1 = orderLogisticsService.selectList(between33);
            // 优惠券
            userCouponRecords = orderPrivateCarService.selectList(between2);
            userCouponRecords1 = orderLogisticsService.selectList(between22);
            // 专车订单
            tOrderPrivateCars = orderPrivateCarService.selectList(between);
            // 小件物流订单
            tOrderLogistics = orderLogisticsService.selectList(between1);
            // 司机奖励
            driverActivityHistories = driverActivityHistoryService.selectList(between4);
            userCouponRecords = userCouponRecordService.selectList(between2);
            userRedPacketRecords = userRedPacketRecordService.selectList(between3);
            // 消费
            balanceUsageRecords = balanceUsageRecordService.selectList(between4);
            // 提现
            driverWithdrawal = balanceUsageRecordService.selectList(between44);
        }
        // 已发放补贴总额
        BigDecimal total = new BigDecimal("0");
        // 已使用折扣总额(用户端)
        BigDecimal discount = new BigDecimal("0");
        // 已领取红包总额(用户端)
        // 已使用红包总额(用户端)
        BigDecimal redPackage = new BigDecimal("0");
        // 已领取优惠券总额(用户端)
        // 已使用优惠券总额(用户端)
        BigDecimal coupon = new BigDecimal("0");
        // 已领取司机奖励总额(司机端)
        // 已使用司机奖励总额(司机端)
        BigDecimal driver = new BigDecimal("0");
        // 司机已消费
        BigDecimal driverConsume = new BigDecimal("0");
        // 司机已提现
        BigDecimal driverWithdrawal1 = new BigDecimal("0");
        // 查询已使用折扣总额
        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
                continue;
            }
            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
@@ -543,15 +642,13 @@
            if (tUser!=null){
                grantVO.setName(tUser.getNickName());
            }
            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
            if (userActivityDiscount1!=null){
                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
                if (userActivity!=null){
                    grantVO.setRemark(userActivity.getName());
                }
            }
            grantVO.setRemark("订单号:"+tOrderPrivateCar.getOrderNum());
        }
        for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
                continue;
            }
            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
@@ -561,89 +658,145 @@
            if (tUser!=null){
                grantVO.setName(tUser.getNickName());
            }
            UserActivityDiscount1 userActivityDiscount1 = userActivityDiscount1Service.selectById(tOrderPrivateCar.getActivityId());
            if (userActivityDiscount1!=null){
                UserActivity userActivity = userActivityService.selectById(userActivityDiscount1.getUserActivityId());
                if (userActivity!=null){
                    grantVO.setRemark(userActivity.getName());
                }
            }
            grantVO.setRemark("订单号:"+tOrderPrivateCar.getOrderNum());
        }
        // 查询已领取红包总额
        for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
        for (TOrderPrivateCar userRedPacketRecord : userRedPacketRecords) {
            if (userRedPacketRecord.getState() != 9 &&userRedPacketRecord.getState() != 8){
                continue;
            }
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
            grantVO.setType("红包");
            grantVO.setAmount(userRedPacketRecord.getMoney().toString());
            grantVO.setAmount(userRedPacketRecord.getPayMoney().toString());
            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
            if (tUser!=null){
                grantVO.setName(tUser.getNickName());
            }
            UserActivityRedenvelope userActivityRedenvelope =
                    userActivityRedenvelopeService.selectById(userRedPacketRecord.getRedPacketActivityId());
            if (userActivityRedenvelope!=null){
                UserActivity userActivity = userActivityService.selectById(userActivityRedenvelope.getUserActivityId());
                if (userActivity!=null){
                    grantVO.setRemark(userActivity.getName());
                }
            }
            grantVO.setRemark("订单号:"+userRedPacketRecord.getOrderNum());
            res.add(grantVO);
            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getMoney().toString()));
            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getPayMoney().toString()));
        }
        for (TOrderLogistics userRedPacketRecord : userRedPacketRecords1) {
            if (userRedPacketRecord.getState() != 9 &&userRedPacketRecord.getState() != 8){
                continue;
            }
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(userRedPacketRecord.getInsertTime()));
            grantVO.setType("红包");
            grantVO.setAmount(userRedPacketRecord.getPayMoney().toString());
            TUser tUser = appUserService.selectById(userRedPacketRecord.getUserId());
            if (tUser!=null){
                grantVO.setName(tUser.getNickName());
            }
            grantVO.setRemark("订单号:"+userRedPacketRecord.getOrderNum());
            res.add(grantVO);
            redPackage = redPackage.add(new BigDecimal(userRedPacketRecord.getPayMoney().toString()));
        }
        // 查询已领取优惠券总额
        for (UserCouponRecord userCouponRecord : userCouponRecords) {
        for (TOrderPrivateCar userCouponRecord : userCouponRecords) {
            if (userCouponRecord.getState() != 9 &&userCouponRecord.getState() != 8){
                continue;
            }
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
            grantVO.setType("优惠券");
            grantVO.setAmount(userCouponRecord.getMoney().toString());
            grantVO.setAmount(userCouponRecord.getPayMoney().toString());
            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
            if (tUser!=null){
                grantVO.setName(tUser.getNickName());
            }
            SysCouponRecord sysCouponRecord =
                    sysCouponRecordService.selectById(userCouponRecord.getCouponId());
            if (sysCouponRecord!=null){
                grantVO.setRemark(sysCouponRecord.getName());
            }
            coupon = coupon.add(new BigDecimal(userCouponRecord.getMoney().toString()));
            grantVO.setRemark("订单号:"+userCouponRecord.getOrderNum());
            coupon = coupon.add(new BigDecimal(userCouponRecord.getPayMoney().toString()));
            res.add(grantVO);
        }
        // 已领取司机奖励
        for (DriverActivityHistory driverActivityHistory : driverActivityHistories) {
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(driverActivityHistory.getInsertTime()));
            grantVO.setType("司机奖励");
            grantVO.setAmount(driverActivityHistory.getMoney().toString());
            TDriver tDriver = driverService.selectById(driverActivityHistory.getDriverId());
            if (tDriver!=null){
                grantVO.setName(tDriver.getFirstName()+tDriver.getLastName());
        for (TOrderLogistics userCouponRecord : userCouponRecords1) {
            if (userCouponRecord.getState() != 9 &&userCouponRecord.getState() != 8){
                continue;
            }
            Integer type1 = driverActivityHistory.getType();
            switch (type1){
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(userCouponRecord.getInsertTime()));
            grantVO.setType("优惠券");
            grantVO.setAmount(userCouponRecord.getPayMoney().toString());
            TUser tUser = appUserService.selectById(userCouponRecord.getUserId());
            if (tUser!=null){
                grantVO.setName(tUser.getNickName());
            }
            grantVO.setRemark("订单号:"+userCouponRecord.getOrderNum());
            coupon = coupon.add(new BigDecimal(userCouponRecord.getPayMoney().toString()));
            res.add(grantVO);
        }
        // 司机消费奖励
        for (BalanceUsageRecord balanceUsageRecord : balanceUsageRecords) {
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(balanceUsageRecord.getCreateTime()));
            grantVO.setType("司机奖励");
            grantVO.setAmount(balanceUsageRecord.getMoney().toString());
            TDriver tUser = driverService.selectById(balanceUsageRecord.getDriverId());
            if (tUser!=null){
                grantVO.setName(tUser.getFirstName()+tUser.getLastName());
            }
            switch (balanceUsageRecord.getPurpose()){
                case 1:
                    grantVO.setRemark("邀请司机注册");
                    //打车支付
                    grantVO.setRemark("余额支付"+"【打车支付】");
                    break;
                case 2:
                    grantVO.setRemark("邀请用户注册");
                    grantVO.setRemark("余额支付"+"【包裹支付】");
                    // 包裹支付
                    break;
                case 3:
                    grantVO.setRemark("累计在线");
                    grantVO.setRemark("余额支付"+"【日结算】");
                    // 日结算
                    break;
                case 4:
                    grantVO.setRemark("订单量");
                    grantVO.setRemark("余额支付"+"【周结算】");
                    // 周结算
                    break;
                case 5:
                    grantVO.setRemark("余额支付"+"【月结算】");
                    // 月结算
                    break;
            }
            driver = driver.add(new BigDecimal(driverActivityHistory.getMoney().toString()));
            driverConsume = driverConsume.add(new BigDecimal(balanceUsageRecord.getMoney().toString()));
            res.add(grantVO);
        }
        total = total.add(redPackage).add(coupon).add(discount).add(driver);
        result.setTotal(total);
        result.setDiscount(discount);
        result.setCoupon(coupon);
        result.setDriver(driver);
        result.setRedPackage(redPackage);
        return result;
        // 司机提现
        for (BalanceUsageRecord balanceUsageRecord : driverWithdrawal) {
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(balanceUsageRecord.getCreateTime()));
            grantVO.setType("司机奖励");
            grantVO.setAmount(balanceUsageRecord.getMoney().toString());
            TDriver tUser = driverService.selectById(balanceUsageRecord.getDriverId());
            if (tUser!=null){
                grantVO.setName(tUser.getFirstName()+tUser.getLastName());
            }
            switch (balanceUsageRecord.getPurpose()){
                case 6:
                    grantVO.setRemark("司机提现");
                    break;
            }
            driverWithdrawal1 = driverWithdrawal1.add(new BigDecimal(balanceUsageRecord.getMoney().toString()));
            res.add(grantVO);
        }
        // 总额
        total = total.add(redPackage).add(coupon).add(discount).add(driverConsume).add(driverWithdrawal1);
        // 已使用司机奖励合计
        driver = driverConsume.add(driverWithdrawal1);
        UseMoneyVO useMoneyVO = new UseMoneyVO();
        useMoneyVO.setTotal(total);
        useMoneyVO.setDiscount(discount);
        useMoneyVO.setRedPackage(redPackage);
        useMoneyVO.setCoupon(coupon);
        useMoneyVO.setDriver(driver);
        useMoneyVO.setDriverWithdrawal(driverWithdrawal1);
        useMoneyVO.setDriverConsume(driverConsume);
        return useMoneyVO;
    }
    /**
     * 发放补贴统计
     */
@@ -708,7 +861,7 @@
                    break;
            }
        }
        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 列表res
        List<GrantVO> res = new ArrayList<>();
@@ -725,18 +878,17 @@
        // 专车wrapper
        Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("activityId")
                .isNotNull("discountMoney")
                .between("insertTime", start, end);
                .between("insertTime", start, end)
                ;
        // 小件物流wrapper
        Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("activityId")
                .between("insertTime", start, end)
                .isNotNull("discountMoney")
                .between("insertTime", start, end);
                ;
        // 优惠券领取记录wrapper
        Wrapper<UserCouponRecord> between2 = new EntityWrapper<UserCouponRecord>()
                .ne("couponUseType", 2)
@@ -796,6 +948,13 @@
        BigDecimal driver = new BigDecimal("0");
        // 查询已使用折扣总额
        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
            if (tOrderPrivateCar.getDiscountMoney()==null){
                continue;
            }
            if (tOrderPrivateCar.getState() != 8 && tOrderPrivateCar.getState()!=9){
                    continue;
            }
            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
@@ -812,12 +971,20 @@
                    grantVO.setRemark(userActivity.getName());
                }
            }
            res.add(grantVO);
        }
        for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
            if (tOrderPrivateCar.getDiscountMoney()==null){
                continue;
            }
            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
                continue;
            }
            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
            grantVO.setType("折扣");
            grantVO.setAmount(tOrderPrivateCar.getDiscountMoney().toString());
            TUser tUser = appUserService.selectById(tOrderPrivateCar.getUserId());
            if (tUser!=null){
@@ -830,6 +997,7 @@
                    grantVO.setRemark(userActivity.getName());
                }
            }
            res.add(grantVO);
        }
        // 查询已领取红包总额
        for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
@@ -979,18 +1147,20 @@
        // 专车wrapper
        Wrapper<TOrderPrivateCar> between = new EntityWrapper<TOrderPrivateCar>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("activityId")
                .between("insertTime", start, end)
                .isNotNull("discountMoney")
                .between("insertTime", start, end);
//                .eq("state", 8)
//                .or()
//                .eq("state", 9)
                ;
        // 小件物流wrapper
        Wrapper<TOrderLogistics> between1 = new EntityWrapper<TOrderLogistics>()
                .eq("state", 8)
                .eq("state", 9)
                .isNotNull("activityId")
                .between("insertTime", start, end)
                .isNotNull("discountMoney")
                .between("insertTime", start, end);
//                .eq("state", 8)
//                .or()
//                .eq("state", 9)
                ;
        // 优惠券领取记录wrapper
        Wrapper<UserCouponRecord> between2 = new EntityWrapper<UserCouponRecord>()
                .ne("couponUseType", 2)
@@ -1050,6 +1220,12 @@
        BigDecimal driver = new BigDecimal("0");
        // 查询已使用折扣总额
        for (TOrderPrivateCar tOrderPrivateCar : tOrderPrivateCars) {
            if (tOrderPrivateCar.getDiscountMoney()== null){
                continue;
            }
            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
                continue;
            }
            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
@@ -1066,8 +1242,15 @@
                    grantVO.setRemark(userActivity.getName());
                }
            }
            res.add(grantVO);
        }
        for (TOrderLogistics tOrderPrivateCar : tOrderLogistics) {
            if (tOrderPrivateCar.getDiscountMoney()== null){
                continue;
            }
            if (tOrderPrivateCar.getState() != 9 &&tOrderPrivateCar.getState() != 8){
                continue;
            }
            discount = discount.add(new BigDecimal(tOrderPrivateCar.getDiscountMoney().toString()));
            GrantVO grantVO = new GrantVO();
            grantVO.setInsertTime(format.format(tOrderPrivateCar.getInsertTime()));
@@ -1084,6 +1267,7 @@
                    grantVO.setRemark(userActivity.getName());
                }
            }
            res.add(grantVO);
        }
        // 查询已领取红包总额
        for (UserRedPacketRecord userRedPacketRecord : userRedPacketRecords) {
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/BalanceUsageRecordMapper.java
New file
@@ -0,0 +1,17 @@
package com.stylefeng.guns.modular.system.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
 * @author zhibing.pu
 * @Date 2024/5/13 10:24
 */
public interface BalanceUsageRecordMapper extends BaseMapper<BalanceUsageRecord> {
}
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/BalanceUsageRecordMapper.xml
New file
@@ -0,0 +1,20 @@
<?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.stylefeng.guns.modular.system.dao.BalanceUsageRecordMapper">
    <select id="queryBalanceUsageRecord" resultType="map">
        select
        DATE_FORMAT(createTime, '%Y-%m-%d') as createTime,
        money,
        purpose
        from t_balance_usage_record type = #{type} and driverId = #{driverId} order by createTime desc limit #{pageNum}, #{size}
    </select>
    <select id="queryBalanceUsageRecordSum" resultType="double">
        select ifnull(sum(money), 0) from t_balance_usage_record where type = #{type} and driverId = #{driverId}
    </select>
</mapper>
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BalanceUsageRecord.java
New file
@@ -0,0 +1,48 @@
package com.stylefeng.guns.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.util.Date;
/**
 * @author zhibing.pu
 * @Date 2024/5/13 10:21
 */
@Data
@TableName("t_balance_usage_record")
public class BalanceUsageRecord {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 司机id
     */
    @TableField("driverId")
    private Integer driverId;
    /**
     * 余额类型(1=奖励,2=收入)
     */
    @TableField("type")
    private Integer type;
    /**
     * 使用金额
     */
    @TableField("money")
    private Double money;
    /**
     * 用途
     */
    @TableField("purpose")
    private Integer purpose;
    /**
     * 使用时间
     */
    @TableField("createTime")
    private Date createTime;
}
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IBalanceUsageRecordService.java
New file
@@ -0,0 +1,15 @@
package com.stylefeng.guns.modular.system.service;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord;
import java.util.List;
/**
 * @author zhibing.pu
 * @Date 2024/5/13 10:25
 */
public interface IBalanceUsageRecordService extends IService<BalanceUsageRecord> {
}
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/BalanceUsageRecordServiceImpl.java
New file
@@ -0,0 +1,24 @@
package com.stylefeng.guns.modular.system.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.system.dao.BalanceUsageRecordMapper;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord;
import com.stylefeng.guns.modular.system.service.IBalanceUsageRecordService;
import com.stylefeng.guns.modular.system.util.DateUtil;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @author zhibing.pu
 * @Date 2024/5/13 10:25
 */
@Service
public class BalanceUsageRecordServiceImpl extends ServiceImpl<BalanceUsageRecordMapper, BalanceUsageRecord> implements IBalanceUsageRecordService {
}
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/grant.html
@@ -76,6 +76,7 @@
                                    <option value="1">红包</option>
                                    <option value="2">优惠券</option>
                                    <option value="3">司机奖励</option>
                                    <option value="4">折扣</option>
                                </#SelectCon>
                            </div>
                            <div class="col-sm-3">
ManagementIGOTravel/guns-admin/src/main/webapp/WEB-INF/view/system/subsidy/use.html
@@ -43,6 +43,19 @@
        margin-left: 40px; /* 设置矩形框之间的间距 */
        margin-top: 15px;
    }
    .rectangle4 {
        width: 250px; /* 设置框的宽度 */
        height: 170px; /* 自适应高度 */
        background-color: #cecece; /* 设置底色为灰色 */
        border-radius: 30px; /* 设置圆角半径为10px */
        display: flex; /* 使用 Flex 布局 */
        flex-direction: column; /* 设置主轴方向为垂直 */
        justify-content: center; /* 垂直居中 */
        align-items: center; /* 水平居中 */
        margin-right: 40px; /* 设置矩形框之间的间距 */
        margin-left: 40px; /* 设置矩形框之间的间距 */
        margin-top: 15px;
    }
    h1, h2 {
        margin: 0; /* 去除默认的外边距 */
    }
@@ -69,23 +82,15 @@
                            <div class="col-sm-3">
                                <#TimeCon id="insertTime" name="时间" isTime="false"/>
                            </div>
                            <div class="col-sm-3">
                                <#SelectCon id="type" name="流水项目" >
                                    <option value="">全部</option>
                                    <option value="1">用户订单消费</option>
                                    <option value="2">用户充值</option>
                                    <option value="3">司机结算</option>
                                    <option value="4">司机提现</option>
                                    <option value="5">用户提现</option>
                                </#SelectCon>
                            </div>
                            <div class="col-sm-3">
                                <#SelectCon id="payType" name="支付方式" >
                                    <option value="">全部</option>
                                    <option value="1">银行卡支付</option>
                                    <option value="2">手机支付</option>
                                </#SelectCon>
                            </div>
                        <div class="col-sm-3">
                            <#SelectCon id="type" name="补贴类型" >
                            <option value="">全部</option>
                            <option value="1">红包</option>
                            <option value="2">优惠券</option>
                            <option value="3">司机奖励</option>
                            <option value="4">折扣</option>
                        </#SelectCon>
                    </div>
                            <div class="col-sm-3">
                                <#button name="查询" icon="fa-search" clickFun="TUser.search()"/>
                                <#button name="重置" icon="fa-trash" clickFun="TUser.resetSearch()" space="true"/>
@@ -95,38 +100,40 @@
                    <div class="rectangle1">
                        <h1 id="num1">0</h1>
                        <br>
                        <h2 id="text1">第三方流水余额合计</h2>
                        <h2 id="text1">已使用补贴总额</h2>
                    </div>
                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/=.png.">
                    <div class="rectangle2">
                        <h1 id="num2">0</h1>
                        <br>
                        <h2 id="text2">用户订单消费</h2>
                        <h2 id="text2">已使用折扣总额(用户端)</h2>
                    </div>
                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/+.png.">
                    <div class="rectangle3">
                        <h1 id="num3">0</h1>
                        <br>
                        <h2 id="text3">用户充值总额</h2>
                        <h2 id="text3">已使用红包总额(用户端)</h2>
                    </div>
                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/+.png.">
                    <div class="rectangle3">
                        <h1 id="num4">0</h1>
                        <br>
                        <h2 id="text4">司机结算总额</h2>
                        <h2 id="text4">已使用优惠券总额(用户端)</h2>
                    </div>
                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/-.png.">
                    <div class="rectangle3">
                    <div class="rectangle4">
                        <h1 id="num5">0</h1>
                        <br>
                        <h2 id="text5">司机提现总额</h2>
                    </div>
                    <img style="margin-top: 70px" width="25px" height="25px" src="${ctxPath}/static/img/-.png.">
                    <div class="rectangle3">
                        <h1 id="num6">0</h1>
                        <h2 id="text5">已使用司机奖励合计</h2>
                        <br>
                        <h2 id="text6">用户提现总额</h2>
                        <div style="display: flex">
                        <span>已提现</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span id="num6">0</span>
                        </div>
                        <br>
                        <div style="display: flex">
                        <span>已消费</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span id="num7">0</span>
                        </div>
                    </div>
                </div>
                    <#table id="TUserTable"/>
@@ -136,7 +143,7 @@
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/system/platform/water.js"></script>
<script src="${ctxPath}/static/modular/system/subsidy/use.js"></script>
<script>
    laydate.render({
        elem: '#insertTime'
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/platform/water.js
@@ -183,8 +183,11 @@
    var ajax = new $ax(Feng.ctxPath + "/platform/water/getCount", function(data){
        document.getElementById("num1").innerHTML = data.total;
        document.getElementById("num2").innerHTML = data.balance;
        document.getElementById("num3").innerHTML = data.unBalance;
        document.getElementById("num2").innerHTML = data.userOrder;
        document.getElementById("num3").innerHTML = data.userCharge;
        document.getElementById("num4").innerHTML = data.balance;
        document.getElementById("num5").innerHTML = data.driverWithdrawal;
        document.getElementById("num6").innerHTML = data.userWithdrawal;
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
@@ -228,7 +231,8 @@
TUser.resetSearch = function () {
    $("#time").val("");
    $("#insertTime").val("");
    $("#state").val("");
    $("#type").val("");
    $("#payType").val("");
    TUser.search();
};
ManagementIGOTravel/guns-admin/src/main/webapp/static/modular/system/subsidy/use.js
@@ -170,8 +170,12 @@
    var ajax = new $ax(Feng.ctxPath + "/subsidy/use/getCount", function(data){
        document.getElementById("num1").innerHTML = data.total;
        document.getElementById("num2").innerHTML = data.balance;
        document.getElementById("num3").innerHTML = data.unBalance;
        document.getElementById("num2").innerHTML = data.discount;
        document.getElementById("num3").innerHTML = data.redPackage;
        document.getElementById("num4").innerHTML = data.coupon;
        document.getElementById("num5").innerHTML = data.driver;
        document.getElementById("num6").innerHTML = data.driverWithdrawal;
        document.getElementById("num7").innerHTML = data.driverConsume;
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
@@ -186,11 +190,12 @@
    var ajax = new $ax(Feng.ctxPath + "/subsidy/use/getCount", function(data){
        document.getElementById("num1").innerHTML = data.total;
        document.getElementById("num2").innerHTML = data.userOrder;
        document.getElementById("num3").innerHTML = data.userCharge;
        document.getElementById("num4").innerHTML = data.balance;
        document.getElementById("num5").innerHTML = data.driverWithdrawal;
        document.getElementById("num6").innerHTML = data.userWithdrawal;
        document.getElementById("num2").innerHTML = data.discount;
        document.getElementById("num3").innerHTML = data.redPackage;
        document.getElementById("num4").innerHTML = data.coupon;
        document.getElementById("num5").innerHTML = data.driver;
        document.getElementById("num6").innerHTML = data.driverWithdrawal;
        document.getElementById("num7").innerHTML = data.driverConsume;
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });