| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- package com.etotem.cfc.controller;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.etotem.cfc.common.Result;
- import com.etotem.cfc.dto.CommissionSummaryDTO;
- import com.etotem.cfc.entity.CommissionRecord;
- import com.etotem.cfc.service.CommissionService;
- import org.springframework.web.bind.annotation.*;
- import javax.annotation.Resource;
- import java.util.HashMap;
- import java.util.Map;
- @RestController
- @RequestMapping("/api/commission")
- public class CommissionController {
- @Resource
- private CommissionService commissionService;
- @PostMapping("/summary")
- public Result<CommissionSummaryDTO> summary(@RequestAttribute("userId") Long userId) {
- return Result.success(commissionService.getSummary(userId));
- }
- @PostMapping("/list")
- public Result<Page<CommissionRecord>> list(@RequestAttribute("userId") Long userId,
- @RequestBody Map<String, Integer> params) {
- int page = params.getOrDefault("page", 1);
- int size = params.getOrDefault("size", 20);
- return Result.success(commissionService.getList(userId, page, size));
- }
- /**
- * 获取团队统计(L1/L2人数、团队佣金)
- */
- @PostMapping("/team")
- public Result<Map<String, Object>> team(@RequestAttribute("userId") Long userId) {
- Map<String, Object> stats = commissionService.getTeamStats(userId);
- return Result.success(stats);
- }
- /**
- * 获取佣金统计面板数据(今日/本月/累计/可提现/L1/L2)
- */
- @PostMapping("/stats")
- public Result<Map<String, Object>> stats(@RequestAttribute("userId") Long userId) {
- Map<String, Object> stats = commissionService.getCommissionStats(userId);
- return Result.success(stats);
- }
- /**
- * 获取可提现余额详情
- */
- @PostMapping("/balance")
- public Result<Map<String, Object>> balance(@RequestAttribute("userId") Long userId) {
- CommissionSummaryDTO summary = commissionService.getSummary(userId);
- Map<String, Object> balanceInfo = new HashMap<>();
- balanceInfo.put("availableAmount", summary.getAvailableAmount());
- balanceInfo.put("settledAmount", summary.getSettledAmount());
- balanceInfo.put("pendingAmount", summary.getPendingAmount());
- balanceInfo.put("totalCommission", summary.getTotalCommission());
- balanceInfo.put("withdrawnAmount", summary.getWithdrawnAmount());
- return Result.success(balanceInfo);
- }
- /**
- * 获取团队成员列表(L1/L2分页)
- */
- @PostMapping("/team/list")
- public Result<Map<String, Object>> teamList(@RequestAttribute("userId") Long userId,
- @RequestBody Map<String, Object> params) {
- int page = params.get("page") != null ? (Integer) params.get("page") : 1;
- int size = params.get("size") != null ? (Integer) params.get("size") : 20;
- String level = params.get("level") != null ? (String) params.get("level") : "ALL";
- return Result.success(commissionService.getTeamList(userId, level, page, size));
- }
- /**
- * 获取佣金转化漏斗数据
- */
- @PostMapping("/funnel")
- public Result<Map<String, Object>> funnel(@RequestAttribute("userId") Long userId) {
- return Result.success(commissionService.getCommissionFunnel(userId));
- }
- /**
- * 团队消费额分级汇总
- */
- @PostMapping("/team/consumption")
- public Result<Map<String, Object>> teamConsumption(@RequestAttribute("userId") Long userId,
- @RequestBody Map<String, Object> params) {
- Integer maxLevel = params.get("maxLevel") != null
- ? ((Number) params.get("maxLevel")).intValue()
- : 3;
- return Result.success(commissionService.getTeamConsumption(userId, maxLevel));
- }
- /**
- * 获取我的推荐人
- */
- @PostMapping("/my-referrer")
- public Result<Map<String, Object>> myReferrer(@RequestAttribute("userId") Long userId) {
- return Result.success(commissionService.getMyReferrer(userId));
- }
- /**
- * 团队树形扁平数据
- */
- @PostMapping("/team/tree")
- public Result<Map<String, Object>> teamTree(@RequestAttribute("userId") Long userId,
- @RequestBody Map<String, Object> params) {
- Integer maxLevel = params.get("maxLevel") != null
- ? ((Number) params.get("maxLevel")).intValue()
- : 3;
- return Result.success(commissionService.getTeamTree(userId, maxLevel));
- }
- }
|