1
phpcjl
2024-12-18 83751617ac342e4168cb714106bc009e3f25f99c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
package com.ruoyi.account.controller;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
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.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
 
/**
 * @author zhibing.pu
 * @Date 2024/12/2 15:36
 */
@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) {
 
        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, "用户分佣统计");
    }
 
    
    
}