Pu Zhibing
2025-06-09 bfa0b11dfbfe5b71e11f4544e688e4d9f325d1b5
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TSubsidyController.java
@@ -1,18 +1,13 @@
package com.stylefeng.guns.modular.system.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
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;
@@ -21,15 +16,14 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -43,17 +37,6 @@
public class TSubsidyController extends BaseController {
   
   private String PREFIX = "/system/subsidy/";
   @RequestMapping("/grant")
   public String index(Model model) {
      return PREFIX + "grant.html";
   }
   @RequestMapping("/use")
   public String watter(Model model) {
      return PREFIX + "use.html";
   }
   @Autowired
   private IIncomeService tIncomeService;
   @Autowired
@@ -94,16 +77,28 @@
   private ISysCouponRecordService sysCouponRecordService;
   @Autowired
   private IUserActivityDiscount1Service userActivityDiscount1Service;
   @Autowired
   private ISysRedPacketRecordService sysRedPacketRecordService;
   
   public static void main(String[] args) {
      String temp = "[{\"money\":14.46,\"id\":91},{\"money\":1,\"id\":90}]";
      JSONArray objects = JSONArray.parseArray(temp);
      BigDecimal temp1 = new BigDecimal(BigInteger.ZERO);
      for (int i = 0; i < objects.size(); i++) {
         String string = objects.getJSONObject(i).getString("money");
         temp1 = temp1.add(new BigDecimal(string));
      }
      System.err.println(temp1);
   @Autowired
   private ITCompanyService companyService;
   @Autowired
   private IDriverActivityService driverActivityService;
   @RequestMapping("/grant")
   public String index(Model model) {
      List<TCompany> tCompanies = companyService.selectList(new EntityWrapper<TCompany>().eq("state", 0).ne("flag", 3));
      model.addAttribute("company", tCompanies);
      return PREFIX + "grant.html";
   }
   @RequestMapping("/use")
   public String watter(Model model) {
      List<TCompany> tCompanies = companyService.selectList(new EntityWrapper<TCompany>().eq("state", 0).ne("flag", 3));
      model.addAttribute("company", tCompanies);
      return PREFIX + "use.html";
   }
   
   /**
@@ -111,7 +106,7 @@
    */
   @RequestMapping(value = "/use/list")
   @ResponseBody
   public Object list1(Integer time, String insertTime, Integer type) {
   public Object list1(Integer time, String insertTime, Integer type, Integer company) {
      if (time == null) {
         time = 1;
      }
@@ -202,51 +197,65 @@
      Wrapper<TOrderLogistics> between33 = new EntityWrapper<TOrderLogistics>();
      // 司机已消费金额
      Wrapper<BalanceUsageRecord> between4 = new EntityWrapper<BalanceUsageRecord>();
      List<Integer> collect = new ArrayList<>();
      if(null != company){
         List<TDriver> driverActivities = driverService.selectList(new EntityWrapper<TDriver>().eq("companyId", company));
         collect = driverActivities.stream().map(TDriver::getId).collect(Collectors.toList());
         collect.add(0);
      }
      if (time == 5 && !StringUtils.hasLength(insertTime)) {
         // 专车wrapper
         between = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("activityId")
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
         ;
         
         // 小件物流wrapper
         between1 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("activityId")
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
         ;
         
         // 已使用优惠券记录wrapper
         between2 = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("couponId")
               .isNotNull("couponMoney")
               .eq(null != company, "companyId", company)
         ;
         
         between22 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("couponId")
               .isNotNull("couponMoney")
               .eq(null != company, "companyId", company)
         ;
         
         // 已使用红包记录wrapper
         between3 = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("redPacketId")
               .isNotNull("redPacketMoney")
               .eq(null != company, "companyId", company)
         ;
         
         between33 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("redPacketId")
               .isNotNull("redPacketMoney")
               .eq(null != company, "companyId", company)
         ;
         
         // 司机已消费金额
         between4 = new EntityWrapper<BalanceUsageRecord>()
               .eq("type", 1)
               .ne("purpose", 6)
               .in(!collect.isEmpty(), "driverId", collect)
         ;
         
         // 司机提现
         driverWrapper = new EntityWrapper<TPubWithdrawal>()
               .eq("state", 2)
               .eq("type", 1)
               .in(!collect.isEmpty(), "userId", collect)
               .eq("userType", 2)
         ;
         
@@ -256,39 +265,47 @@
               .eq("state", 2)
               .eq("type", 1)
               .eq("userType", 2)
               .in(!collect.isEmpty(), "userId", collect)
               .between("insertTime", start, end);
         // 专车wrapper
         between = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("activityId")
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 小件物流wrapper
         between1 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("activityId")
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 已使用优惠券记录wrapper
         between2 = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("couponId")
               .isNotNull("couponMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         between22 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("couponId")
               .isNotNull("couponMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 已使用红包记录wrapper
         between3 = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("redPacketId")
               .isNotNull("redPacketMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         between33 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("redPacketId")
               .isNotNull("redPacketMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 司机已消费金额
         between4 = new EntityWrapper<BalanceUsageRecord>()
               .ne("purpose", 6)
               .eq("type", 1)
               .in(!collect.isEmpty(), "driverId", collect)
               .between("createTime", start, end);
         
         
@@ -543,7 +560,7 @@
   
   @RequestMapping(value = "/use/getCount")
   @ResponseBody
   public Object getCount1(Integer time, String insertTime, Integer type) {
   public Object getCount1(Integer time, String insertTime, Integer type, Integer company) {
      if (time == null) {
         time = 1;
      }
@@ -634,11 +651,18 @@
      Wrapper<TOrderLogistics> between33 = new EntityWrapper<TOrderLogistics>();
      // 司机已消费金额
      Wrapper<BalanceUsageRecord> between4 = new EntityWrapper<BalanceUsageRecord>();
      List<Integer> collect = new ArrayList<>();
      if(null != company){
         List<TDriver> driverActivities = driverService.selectList(new EntityWrapper<TDriver>().eq("companyId", company));
         collect = driverActivities.stream().map(TDriver::getId).collect(Collectors.toList());
         collect.add(0);
      }
      if (time == 5 && !StringUtils.hasLength(insertTime)) {
         // 专车wrapper
         between = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("activityId")
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
//                    .between("insertTime", start, end)
         ;
         
@@ -646,6 +670,7 @@
         between1 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("activityId")
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
//                    .between("insertTime", start, end)
         ;
         
@@ -653,12 +678,14 @@
         between2 = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("couponId")
               .isNotNull("couponMoney")
               .eq(null != company, "companyId", company)
//                    .between("insertTime", start, end)
         ;
         
         between22 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("couponId")
               .isNotNull("couponMoney")
               .eq(null != company, "companyId", company)
//                    .between("insertTime", start, end)
         ;
         
@@ -666,12 +693,14 @@
         between3 = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("redPacketId")
               .isNotNull("redPacketMoney")
               .eq(null != company, "companyId", company)
//                    .between("insertTime", start, end)
         ;
         
         between33 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("redPacketId")
               .isNotNull("redPacketMoney")
               .eq(null != company, "companyId", company)
//                    .between("insertTime", start, end)
         ;
         
@@ -679,6 +708,7 @@
         between4 = new EntityWrapper<BalanceUsageRecord>()
               .eq("type", 1)
               .ne("purpose", 6)
               .in(!collect.isEmpty(), "driverId", collect)
//                    .between("createTime", start, end)
         ;
         
@@ -687,6 +717,7 @@
               .eq("state", 2)
               .eq("type", 1)
               .eq("userType", 2)
               .in(!collect.isEmpty(), "userId", collect)
//                    .between("insertTime", start, end)
         ;
         
@@ -695,39 +726,47 @@
               .eq("state", 2)
               .eq("type", 1)
               .eq("userType", 2)
               .in(!collect.isEmpty(), "userId", collect)
               .between("insertTime", start, end);
         // 专车wrapper
         between = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("activityId")
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 小件物流wrapper
         between1 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("activityId")
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 已使用优惠券记录wrapper
         between2 = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("couponId")
               .isNotNull("couponMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         between22 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("couponId")
               .isNotNull("couponMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 已使用红包记录wrapper
         between3 = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("redPacketId")
               .isNotNull("redPacketMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         between33 = new EntityWrapper<TOrderLogistics>()
               .isNotNull("redPacketId")
               .isNotNull("redPacketMoney")
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 司机已消费金额
         between4 = new EntityWrapper<BalanceUsageRecord>()
               .ne("purpose", 6)
               .eq("type", 1)
               .in(!collect.isEmpty(), "driverId", collect)
               .between("createTime", start, end);
         
         
@@ -955,15 +994,12 @@
      return useMoneyVO;
   }
   
   @Autowired
   private ISysRedPacketRecordService sysRedPacketRecordService;
   /**
    * 发放补贴统计
    */
   @RequestMapping(value = "/grant/list")
   @ResponseBody
   public Object list(Integer time, String insertTime, Integer type) {
   public Object list(Integer time, String insertTime, Integer type, Integer company) {
      if (time == null) {
         time = 1;
      }
@@ -1047,53 +1083,66 @@
      Wrapper<UserRedPacketRecord> between3 = new EntityWrapper<UserRedPacketRecord>();
      // 司机奖励
      Wrapper<DriverActivityHistory> between4 = new EntityWrapper<DriverActivityHistory>();
      List<Integer> collect = new ArrayList<>();
      if(null != company){
         List<DriverActivity> driverActivities = driverActivityService.selectList(new EntityWrapper<DriverActivity>().eq("companyId", company).eq("status", 3));
         collect = driverActivities.stream().map(DriverActivity::getId).collect(Collectors.toList());
         collect.add(0);
      }
      if (time == 5 && !StringUtils.hasLength(insertTime)) {
         // 专车wrapper
         between = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("discountMoney")
               .isNotNull("discountMoney").eq(null != company, "companyId", company)
         
         ;
         // 小件物流wrapper
         between1 = new EntityWrapper<TOrderLogistics>()
               
               .isNotNull("discountMoney")
               .isNotNull("discountMoney").eq(null != company, "companyId", company)
         ;
         // 优惠券领取记录wrapper
         between2 = new EntityWrapper<UserCouponRecord>()
               .ne("couponUseType", 2)
               .ne("couponUseType", 3)
               .eq(null != company, "companyId", company)
         ;
         // 红包领取记录wrapper
         between3 = new EntityWrapper<UserRedPacketRecord>()
               .ne("state", 0)
               .eq(null != company, "companyId", company)
         ;
         // 司机奖励
         between4 = new EntityWrapper<DriverActivityHistory>()
               .eq("carryOut", 2)
               .in(!collect.isEmpty(), "driverActivityId", collect)
         ;
      } else {
         // 专车wrapper
         between = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("discountMoney")
               .isNotNull("discountMoney").eq(null != company, "companyId", company)
               .between("insertTime", start, end)
         ;
         // 小件物流wrapper
         between1 = new EntityWrapper<TOrderLogistics>()
               .between("insertTime", start, end)
               .between("insertTime", start, end).eq(null != company, "companyId", company)
               .isNotNull("discountMoney")
         ;
         // 优惠券领取记录wrapper
         between2 = new EntityWrapper<UserCouponRecord>()
               .ne("couponUseType", 2)
               .ne("couponUseType", 3)
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 红包领取记录wrapper
         between3 = new EntityWrapper<UserRedPacketRecord>()
               .ne("state", 0)
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 司机奖励
         between4 = new EntityWrapper<DriverActivityHistory>()
               .eq("carryOut", 2)
               .in(!collect.isEmpty(), "driverActivityId", collect)
               .between("insertTime", start, end);
      }
      
@@ -1279,10 +1328,10 @@
               grantVO.setRemark("邀请用户注册");
               break;
            case 3:
               grantVO.setRemark("累计在线");
               grantVO.setRemark("在线时长奖励");
               break;
            case 4:
               grantVO.setRemark("订单量");
               grantVO.setRemark("累计接单奖励");
               break;
         }
         driver = driver.add(new BigDecimal(driverActivityHistory.getMoney().toString()));
@@ -1297,7 +1346,7 @@
   
   @RequestMapping(value = "/grant/getCount")
   @ResponseBody
   public Object getCount(Integer time, String insertTime, Integer type) {
   public Object getCount(Integer time, String insertTime, Integer type, Integer company) {
      GrantMoneyVO result = new GrantMoneyVO();
      if (time == null) {
         time = 1;
@@ -1382,53 +1431,69 @@
      Wrapper<UserRedPacketRecord> between3 = new EntityWrapper<UserRedPacketRecord>();
      // 司机奖励
      Wrapper<DriverActivityHistory> between4 = new EntityWrapper<DriverActivityHistory>();
      List<Integer> collect = new ArrayList<>();
      if(null != company){
         List<DriverActivity> driverActivities = driverActivityService.selectList(new EntityWrapper<DriverActivity>().eq("companyId", company).eq("status", 3));
         collect = driverActivities.stream().map(DriverActivity::getId).collect(Collectors.toList());
         collect.add(0);
      }
      if (time == 5 && !StringUtils.hasLength(insertTime)) {
         // 专车wrapper
         between = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
         
         ;
         // 小件物流wrapper
         between1 = new EntityWrapper<TOrderLogistics>()
               
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
         ;
         // 优惠券领取记录wrapper
         between2 = new EntityWrapper<UserCouponRecord>()
               .ne("couponUseType", 2)
               .ne("couponUseType", 3)
               .eq(null != company, "companyId", company)
         ;
         // 红包领取记录wrapper
         between3 = new EntityWrapper<UserRedPacketRecord>()
               .ne("state", 0)
               .eq(null != company, "companyId", company)
         ;
         // 司机奖励
         between4 = new EntityWrapper<DriverActivityHistory>()
               .eq("carryOut", 2)
               .in(!collect.isEmpty(), "driverActivityId", collect)
         ;
      } else {
         // 专车wrapper
         between = new EntityWrapper<TOrderPrivateCar>()
               .isNotNull("discountMoney")
               .between("insertTime", start, end)
               .eq(null != company, "companyId", company)
         ;
         // 小件物流wrapper
         between1 = new EntityWrapper<TOrderLogistics>()
               .between("insertTime", start, end)
               .isNotNull("discountMoney")
               .eq(null != company, "companyId", company)
         ;
         // 优惠券领取记录wrapper
         between2 = new EntityWrapper<UserCouponRecord>()
               .ne("couponUseType", 2)
               .ne("couponUseType", 3)
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 红包领取记录wrapper
         between3 = new EntityWrapper<UserRedPacketRecord>()
               .ne("state", 0)
               .eq(null != company, "companyId", company)
               .between("insertTime", start, end);
         // 司机奖励
         between4 = new EntityWrapper<DriverActivityHistory>()
               .eq("carryOut", 2)
               .in(!collect.isEmpty(), "driverActivityId", collect)
               .between("insertTime", start, end);
      }