luodangjia
2024-12-19 60f70f7409ec1ece8905e088fb43e0cb0258a70b
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java
@@ -4,9 +4,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.api.model.BalanceChangeRecord;
import com.ruoyi.account.dto.BalanceQuery;
import com.ruoyi.account.excel.BalanceChangeRecordEX;
import com.ruoyi.account.service.BalanceChangeRecordService;
import com.ruoyi.account.vo.CommissionStatistics;
import com.ruoyi.account.vo.WalletStatistics;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import io.swagger.annotations.ApiOperation;
@@ -15,8 +15,6 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
@@ -26,87 +24,68 @@
@RestController
@RequestMapping("/balanceChangeRecord")
public class BalanceChangeRecordController {
   @Resource
   private BalanceChangeRecordService balanceChangeRecordService;
   /**
    * 保存账户流水记录
    * @param balanceChangeRecord
    * @return
    */
   @PostMapping("/saveBalanceChangeRecord")
   public R saveBalanceChangeRecord(@RequestBody BalanceChangeRecord balanceChangeRecord){
      balanceChangeRecordService.save(balanceChangeRecord);
      return R.ok();
   }
   @PostMapping("/page")
   @ApiOperation(value = "余额变更明细", tags = {"后台"})
   public R<IPage<BalanceChangeRecord>> page(@RequestBody BalanceQuery agentQuery) {
    @Resource
    private BalanceChangeRecordService balanceChangeRecordService;
      return R.ok(balanceChangeRecordService.pageList(agentQuery));
   }
   /**
    * 用户分佣统计
    */
   @GetMapping("/commissionStatistics")
   @ApiOperation(value = "用户分佣统计", tags = "管理后台-财务统计-用户分佣统计")
   public R<CommissionStatistics> commissionStatistics(@ApiParam("页码") @RequestParam Integer pageNum,
                                          @ApiParam("每一页数据大小") Integer pageSize,
                                          BalanceChangeRecord balanceChangeRecord) {
      CommissionStatistics commissionStatistics1 = balanceChangeRecordService.commissionStatistics(Page.of(pageNum, pageSize), balanceChangeRecord);
      return R.ok(commissionStatistics1);
   }
//
    /**
     * 保存账户流水记录
     *
     * @param balanceChangeRecord
     * @return
     */
    @PostMapping("/saveBalanceChangeRecord")
    public R saveBalanceChangeRecord(@RequestBody BalanceChangeRecord balanceChangeRecord) {
        balanceChangeRecordService.save(balanceChangeRecord);
        return R.ok();
    }
    @PostMapping("/page")
    @ApiOperation(value = "余额变更明细", tags = {"后台"})
    public R<IPage<BalanceChangeRecord>> page(@RequestBody BalanceQuery agentQuery) {
        return R.ok(balanceChangeRecordService.pageList(agentQuery));
    }
    /**
     * 用户分佣统计
     */
    @GetMapping("/commissionStatistics")
    @ApiOperation(value = "用户分佣统计", tags = "管理后台-财务统计-用户分佣统计")
    public R<CommissionStatistics> commissionStatistics(@ApiParam("页码") @RequestParam Integer pageNum,
                                                        @ApiParam("每一页数据大小") Integer pageSize,
                                                        BalanceChangeRecord balanceChangeRecord) {
        CommissionStatistics commissionStatistics1 = balanceChangeRecordService.commissionStatistics(Page.of(pageNum, pageSize), balanceChangeRecord);
        return R.ok(commissionStatistics1);
    }
    //
//   /**
//    * 导出用户分佣统计
//    */
   @GetMapping("/commissionExport")
   @ApiOperation(value = "用户分佣统计导出", tags = "管理后台-财务统计-用户分佣统计")
   public void commissionExport(HttpServletResponse response, BalanceChangeRecord balanceChangeRecord) {
      CommissionStatistics commissionStatistics1 = balanceChangeRecordService.commissionStatistics(Page.of(1, Integer.MAX_VALUE), balanceChangeRecord);
      IPage<BalanceChangeRecord> userPointPage = commissionStatistics1.getUserPointPage();
      List<BalanceChangeRecord> userPointList = userPointPage.getRecords();
      List<BalanceChangeRecordEX> userPointExList = new ArrayList<>();
      for (BalanceChangeRecord balanceChangeRecord1 : userPointList) {
         BalanceChangeRecordEX balanceChangeRecordEX = new BalanceChangeRecordEX();
         balanceChangeRecordEX.setUserName(balanceChangeRecord1.getUserName());
         balanceChangeRecordEX.setPhone(balanceChangeRecord1.getUserPhone());
         balanceChangeRecordEX.setChangeTime(balanceChangeRecord1.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
         balanceChangeRecordEX.setChangeNum(balanceChangeRecord1.getAfterAmount().toString());
         Integer type = balanceChangeRecord1.getChangeType();
         // 类型:1充值2提现3红包4分佣5商城购物6订单取消回退
         switch (type) {
            case 1:
               balanceChangeRecordEX.setType("充值");
               break;
            case 2:
               balanceChangeRecordEX.setType("提现");
               break;
            case 3:
               balanceChangeRecordEX.setType("红包");
               break;
            case 4:
               balanceChangeRecordEX.setType("分佣");
               break;
            case 5:
               balanceChangeRecordEX.setType("商城购物");
               break;
            case 6:
               balanceChangeRecordEX.setType("订单取消回退");
               break;
            default:
               balanceChangeRecordEX.setType("未知积分");
         }
         userPointExList.add(balanceChangeRecordEX);
      }
      ExcelUtil<BalanceChangeRecordEX> util = new ExcelUtil<>(BalanceChangeRecordEX.class);
      util.exportExcel(response, userPointExList, "用户分佣统计");
   }
    @GetMapping("/commissionExport")
    @ApiOperation(value = "用户分佣统计导出", tags = "管理后台-财务统计-用户分佣统计")
    public void commissionExport(HttpServletResponse response, BalanceChangeRecord balanceChangeRecord) {
        CommissionStatistics commissionStatistics1 = balanceChangeRecordService.commissionStatistics(Page.of(1, Integer.MAX_VALUE), balanceChangeRecord);
        IPage<BalanceChangeRecord> userPointPage = commissionStatistics1.getUserPointPage();
        List<BalanceChangeRecord> userPointList = userPointPage.getRecords();
        ExcelUtil<BalanceChangeRecord> util = new ExcelUtil<>(BalanceChangeRecord.class);
        util.exportExcel(response, userPointList, "用户分佣统计");
    }
    /**
     * 钱包统计
     */
    @GetMapping("/walletStatistics")
    @ApiOperation(value = "钱包统计", tags = "管理后台-财务统计-钱包统计")
    public R<WalletStatistics> walletStatistics(@ApiParam("页码") @RequestParam Integer pageNum,
                                                @ApiParam("每一页数据大小") Integer pageSize,
                                                BalanceChangeRecord balanceChangeRecord) {
        WalletStatistics walletStatistics = balanceChangeRecordService.walletStatistics(Page.of(pageNum, pageSize), balanceChangeRecord);
        return R.ok(walletStatistics);
    }
}