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 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> getCompanyUserList(@RequestBody BasePage pageReq) { if (!SecurityUtils.isAgentUser()) { throw new ServiceException("请使用经销商/股东帐号访问"); } // 获取当前登录用户 LoginUser loginUser = SecurityUtils.getLoginUser(); Integer companyId = loginUser.getUser().getCompanyId(); Page page = new Page<>(pageReq.getPageNum(), pageReq.getPageSize()); List list = userService.getCompanyUserList(page,companyId); page.setRecords(list); return R.ok(page); } @ApiOperation(value = "推广记录") @PostMapping("/promotionPageList") public R> promotionPageList(@RequestBody @Valid PromotionPageListQuery query) { if (!SecurityUtils.isAgentUser()) { throw new ServiceException("请使用经销商/股东帐号访问"); } Page page = new Page<>(query.getPageNum(), query.getPageSize()); query.setCompanyId(SecurityUtils.getLoginUser().getUser().getCompanyId()); List list = appUserService.promotionPageList(page,query); page.setRecords(list); return R.ok(page); } @ApiOperation(value = "收益明细") @PostMapping("/profitPageList") public R> profitPageList(@RequestBody @Valid ProfitPageListQuery query) { if (!SecurityUtils.isAgentUser()) { throw new ServiceException("请使用经销商/股东帐号访问"); } Page page = new Page<>(query.getPageNum(), query.getPageSize()); List list = bigGiftPackageOrderService.profitPageList(page,query); page.setRecords(list); return R.ok(page); } }