package com.ydtech.modules.admin.controller; import com.ydtech.core.page.HttpResult; import com.ydtech.exception.SystemException; import com.ydtech.modules.admin.dao.SysProportionConfigMapper; import com.ydtech.modules.admin.model.SysProportionConfig; import com.ydtech.modules.admin.model.SysUser; import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto; import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto; import com.ydtech.modules.admin.model.dto.SysPartnerDto; import com.ydtech.modules.admin.model.dto.SysPartnerPageDto; import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo; import com.ydtech.modules.admin.model.vo.SysPartnerAPPPageVo; import com.ydtech.modules.admin.model.vo.SysUserPartner; import com.ydtech.modules.admin.service.SysPartnerService; import com.ydtech.modules.admin.service.SysProportionConfigService; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.order.entity.BasePageResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.List; /** * 配置机构合伙人表(SysPartner)表控制层 * * @author makejava * @since 2024-08-01 11:20:57 */ @RestController @RequestMapping("sysPartner") @Api(tags = "配置合伙人") public class SysPartnerController extends BaseController { /** * 服务对象 */ @Resource private SysPartnerService sysPartnerService; @Resource private SysProportionConfigService sysProportionConfigService; @Resource private SysProportionConfigMapper sysProportionConfigMapper; /** * 分页查询 * * @param sysPartnerPageDto 筛选条件 * @return 查询结果 */ @PostMapping("/queryByPage") @ApiOperation(value = "合伙人分页查询") public HttpResult> queryByPage(@RequestBody SysPartnerPageDto sysPartnerPageDto) { if (sysPartnerPageDto.getPageNum() == 0) { sysPartnerPageDto.setPageNum(1); } if (sysPartnerPageDto.getPageSize() == 0) { sysPartnerPageDto.setPageSize(10); } return HttpResult.ok(this.sysPartnerService.queryByPage(sysPartnerPageDto)); } /** * 根据部门id查询配置的合伙人信息 --伙人和工作室管理员使用的推荐人接口 * * @param id 主键 * @return 单条数据 */ @GetMapping("/queryRecommendAndPartner/{id}/{level}") @ApiOperation(value = "根据部门id查询配置的推荐人接口") public HttpResult> queryRecommendAndPartner(@PathVariable(value = "id") @ApiParam("部门id") String id, @PathVariable(value = "level") @ApiParam("合伙人等级") Integer level) { return HttpResult.ok("success", this.sysPartnerService.queryRecommendAndPartner(id,level)); } /** * 新增数据配置合伙人 * * @param sysPartnerDto 实体 * @return 新增结果 */ @PostMapping("/add") @ApiOperation(value = "配置合伙人") public HttpResult add(@RequestBody SysPartnerDto sysPartnerDto) { boolean insert = this.sysPartnerService.insert(sysPartnerDto); if (insert) { return HttpResult.ok("添加成功"); } return HttpResult.error("添加失败"); } @PostMapping("/edit") @ApiOperation(value = "编辑合伙人") public HttpResult edit(@RequestBody SysPartnerDto sysPartnerDto) { boolean insert = this.sysPartnerService.edit(sysPartnerDto); if (insert) { return HttpResult.ok("编辑成功"); } return HttpResult.error("编辑失败"); } /** * 判断当前登陆人是否合伙人 */ @PostMapping("/checkPartner") @ApiOperation(value = "判断当前登陆人是否合伙人") public HttpResult checkPartner() { return HttpResult.ok("success", this.sysPartnerService.checkPartner(getUserId())); } /** * 通过主键查询单条数据 * * @param id 主键 * @return 单条数据 */ @GetMapping("/deleteById/{id}") @ApiOperation(value = "删除合伙人") public HttpResult deleteById(@PathVariable("id") String id) { return HttpResult.ok("success", this.sysPartnerService.deleteById(id)); } // /** // * 所有合伙人的抽层费用 // */ // @PostMapping("/queryPartnerByPages") // @ApiOperation(value = "优化所有合伙人的抽层费用信息") // public HttpResult> queryPartnerByPages(@RequestBody SysPartnerPageDto sysPartnerPageDto) { // if (sysPartnerPageDto.getPageNum() == 0) { // sysPartnerPageDto.setPageNum(1); // } // if (sysPartnerPageDto.getPageSize() == 0) { // sysPartnerPageDto.setPageSize(10); // } // return HttpResult.ok(this.sysPartnerService.queryPartnerByPages(sysPartnerPageDto)); // } /** * 所有合伙人的抽层费用 */ @PostMapping("/queryPartnerByPage") @ApiOperation(value = "所有合伙人的抽层费用信息") public HttpResult> queryPartnerByPage(@RequestBody SysPartnerPageDto sysPartnerPageDto) { if (sysPartnerPageDto.getPageNum() == 0) { sysPartnerPageDto.setPageNum(1); } if (sysPartnerPageDto.getPageSize() == 0) { sysPartnerPageDto.setPageSize(10); } return HttpResult.ok(this.sysPartnerService.queryPartnerByPage(sysPartnerPageDto)); } /** * 合伙人查看直接合伙人、间接合伙人分页查询 */ @PostMapping("/querySysPartnerAPPPage") @ApiOperation(value = "APP合伙人查看直接合伙人、间接合伙人分页查询") public HttpResult> SysPartnerAPPPage(@RequestBody SysPartnerAPPPageDto sysPartnerAPPPageDto) { if (sysPartnerAPPPageDto.getPageNum() == 0) { sysPartnerAPPPageDto.setPageNum(1); } if (sysPartnerAPPPageDto.getPageSize() == 0) { sysPartnerAPPPageDto.setPageSize(10); } return HttpResult.ok(this.sysPartnerService.SysPartnerAPPPage(sysPartnerAPPPageDto)); } /** * 根据合伙人id查询推荐的工作室管理员 */ @PostMapping("/queryAgencyLeaderById") @ApiOperation(value = "根据合伙人id查询推荐的工作室管理员") public HttpResult> queryAgencyLeaderById(@RequestBody SysAgencyLeaderPageDto sysAgencyLeaderPageDto) { if (sysAgencyLeaderPageDto.getPageNum() == 0) { sysAgencyLeaderPageDto.setPageNum(1); } if (sysAgencyLeaderPageDto.getPageSize() == 0) { sysAgencyLeaderPageDto.setPageSize(10); } return HttpResult.ok("success", this.sysPartnerService.queryAgencyLeaderById(sysAgencyLeaderPageDto)); } /** * 比例配置 * * @param sysProportionConfig 实体 * @return 新增结果 */ @PostMapping("/addProportionConfig") @ApiOperation(value = "比例配置") public HttpResult add(@RequestBody SysProportionConfig sysProportionConfig) { String proportion = sysProportionConfig.getProportion(); String oneProportion = sysProportionConfig.getOneProportion(); String twoProportion = sysProportionConfig.getTwoProportion(); String threeProportion = sysProportionConfig.getThreeProportion(); String fourProportion = sysProportionConfig.getFourProportion(); String fiveProportion = sysProportionConfig.getFiveProportion(); BigDecimal d = BigDecimal.ZERO; if (oneProportion != null) { d = d.add(new BigDecimal(sysProportionConfig.getOneProportion())); } if (twoProportion != null) { d = d.add(new BigDecimal(sysProportionConfig.getTwoProportion())); } if (threeProportion != null) { d = d.add(new BigDecimal(sysProportionConfig.getThreeProportion())); } if (fourProportion != null) { d = d.add(new BigDecimal(sysProportionConfig.getFourProportion())); } if (fiveProportion != null) { d = d.add(new BigDecimal(sysProportionConfig.getFiveProportion())); } BigDecimal bigDecimal = new BigDecimal(proportion); // BigDecimal bigDecimal1 = d.setScale(1, RoundingMode.DOWN); if (bigDecimal.compareTo(d) != 0) { throw new SystemException("总比例必须等于每级合伙人比例和"); } Long id = sysProportionConfig.getId(); boolean b = false; if (id == null) { b = sysProportionConfigMapper.insert(sysProportionConfig) > 0; } else { b = sysProportionConfigMapper.updateWithNull(sysProportionConfig); } return HttpResult.ok(b); } /** * 编辑查询 * * @param id * @return */ @GetMapping("/getProportionConfig") @ApiOperation(value = "根据用户id查看比例配置") public HttpResult getProportionConfig(@RequestParam("id") String id) { return HttpResult.ok(sysProportionConfigService.getProportionConfig(id)); } /** * 血缘关系 */ @GetMapping("/getRelationInfo/{userId}") @ApiOperation(value = "血缘关系") public HttpResult getRelationInfo(@PathVariable("userId") String userId) { return HttpResult.ok(sysPartnerService.getRelationInfo(userId)); } }