liujie
2025-12-26 cdb22d98f54b8e761fc6216d0b1871a183f5deb0
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
package com.ruoyi.web.controller.api.agent;
 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.BasePage;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.model.TCompany;
import com.ruoyi.system.query.CompanyUserQuery;
import com.ruoyi.system.query.ProfitPageListQuery;
import com.ruoyi.system.query.PromotionPageListQuery;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.TAppUserService;
import com.ruoyi.system.service.TBigGiftPackageOrderService;
import com.ruoyi.system.service.TCompanyService;
import com.ruoyi.system.vo.ProfitPageListVo;
import com.ruoyi.system.vo.PromotionPageListVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Lazy;
import org.springframework.web.bind.annotation.*;
 
import javax.validation.Valid;
import java.util.List;
 
/**
 * 经销商管理后台 - 公司信息 前端控制器
 *
 * @author xiaochen
 * @since 2025-12-23
 */
@RestController
@RequestMapping("/agent/company")
@Api(tags = "(嘉视达经销商后台)公司信息")
@RequiredArgsConstructor(onConstructor_ = @Lazy)
public class AgentCompanyController extends BaseController {
 
    private final TCompanyService companyService;
    private final ISysUserService userService;
    private final TAppUserService appUserService;
    private final TBigGiftPackageOrderService bigGiftPackageOrderService;
    @ApiOperation(value = "获取当前用户所属公司详情")
    @GetMapping("/detail")
    public R<TCompany> getDetail() {
        // 获取当前登录用户
        LoginUser loginUser = SecurityUtils.getLoginUser();
        SysUser user = loginUser.getUser();
        if (SecurityUtils.isAgentUser()) {
            throw new ServiceException("请使用经销商/股东帐号访问");
        }
        // 获取用户所属公司ID
        Integer companyId = user.getCompanyId();
        if (companyId == null) {
            return R.fail("当前用户未关联公司");
        }
 
        // 查询公司详情
        TCompany company = companyService.getById(companyId);
        if (company == null) {
            return R.fail("公司信息不存在");
        }
 
        return R.ok(company);
    }
 
    @ApiOperation(value = "公司详情-管理人员列表")
    @PostMapping(value = "/getCompanyUserList")
    public R<Page<SysUser>> getCompanyUserList(@RequestBody BasePage pageReq) {
        if (SecurityUtils.isAgentUser()) {
            throw new ServiceException("请使用经销商/股东帐号访问");
        }
        // 获取当前登录用户
        LoginUser loginUser = SecurityUtils.getLoginUser();
        Integer companyId = loginUser.getUser().getCompanyId();
        Page<SysUser> page = new Page<>(pageReq.getPageNum(), pageReq.getPageSize());
        List<SysUser> list =  userService.getCompanyUserList(page,companyId);
        page.setRecords(list);
        return R.ok(page);
    }
 
    @ApiOperation(value = "推广记录")
    @PostMapping("/promotionPageList")
    public R<Page<PromotionPageListVo>> promotionPageList(@RequestBody @Valid PromotionPageListQuery query) {
        if (SecurityUtils.isAgentUser()) {
            throw new ServiceException("请使用经销商/股东帐号访问");
        }
        Page<PromotionPageListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
        query.setCompanyId(SecurityUtils.getLoginUser().getUser().getCompanyId());
        List<PromotionPageListVo> list = appUserService.promotionPageList(page,query);
        page.setRecords(list);
        return R.ok(page);
    }
 
    @ApiOperation(value = "收益明细")
    @PostMapping("/profitPageList")
    public R<Page<ProfitPageListVo>> profitPageList(@RequestBody @Valid ProfitPageListQuery query) {
        if (SecurityUtils.isAgentUser()) {
            throw new ServiceException("请使用经销商/股东帐号访问");
        }
        Page<ProfitPageListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
        List<ProfitPageListVo> list = bigGiftPackageOrderService.profitPageList(page,query);
        page.setRecords(list);
        return R.ok(page);
    }
}