SysPartnerController.java 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. package com.ydtech.modules.admin.controller;
  2. import com.ydtech.core.page.HttpResult;
  3. import com.ydtech.exception.SystemException;
  4. import com.ydtech.modules.admin.dao.SysProportionConfigMapper;
  5. import com.ydtech.modules.admin.model.SysProportionConfig;
  6. import com.ydtech.modules.admin.model.SysUser;
  7. import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
  8. import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
  9. import com.ydtech.modules.admin.model.dto.SysPartnerDto;
  10. import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
  11. import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo;
  12. import com.ydtech.modules.admin.model.vo.SysPartnerAPPPageVo;
  13. import com.ydtech.modules.admin.model.vo.SysUserPartner;
  14. import com.ydtech.modules.admin.service.SysPartnerService;
  15. import com.ydtech.modules.admin.service.SysProportionConfigService;
  16. import com.ydtech.modules.base.controller.BaseController;
  17. import com.ydtech.modules.order.entity.BasePageResult;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import io.swagger.annotations.ApiParam;
  21. import org.springframework.http.ResponseEntity;
  22. import org.springframework.web.bind.annotation.*;
  23. import javax.annotation.Resource;
  24. import java.math.BigDecimal;
  25. import java.math.RoundingMode;
  26. import java.util.List;
  27. /**
  28. * 配置机构合伙人表(SysPartner)表控制层
  29. *
  30. * @author makejava
  31. * @since 2024-08-01 11:20:57
  32. */
  33. @RestController
  34. @RequestMapping("sysPartner")
  35. @Api(tags = "配置合伙人")
  36. public class SysPartnerController extends BaseController {
  37. /**
  38. * 服务对象
  39. */
  40. @Resource
  41. private SysPartnerService sysPartnerService;
  42. @Resource
  43. private SysProportionConfigService sysProportionConfigService;
  44. @Resource
  45. private SysProportionConfigMapper sysProportionConfigMapper;
  46. /**
  47. * 分页查询
  48. *
  49. * @param sysPartnerPageDto 筛选条件
  50. * @return 查询结果
  51. */
  52. @PostMapping("/queryByPage")
  53. @ApiOperation(value = "合伙人分页查询")
  54. public HttpResult<BasePageResult<SysUserPartner>> queryByPage(@RequestBody SysPartnerPageDto sysPartnerPageDto) {
  55. if (sysPartnerPageDto.getPageNum() == 0) {
  56. sysPartnerPageDto.setPageNum(1);
  57. }
  58. if (sysPartnerPageDto.getPageSize() == 0) {
  59. sysPartnerPageDto.setPageSize(10);
  60. }
  61. return HttpResult.ok(this.sysPartnerService.queryByPage(sysPartnerPageDto));
  62. }
  63. /**
  64. * 根据部门id查询配置的合伙人信息 --伙人和工作室管理员使用的推荐人接口
  65. *
  66. * @param id 主键
  67. * @return 单条数据
  68. */
  69. @GetMapping("/queryRecommendAndPartner/{id}/{level}")
  70. @ApiOperation(value = "根据部门id查询配置的推荐人接口")
  71. public HttpResult<List<SysUser>> queryRecommendAndPartner(@PathVariable(value = "id") @ApiParam("部门id") String id, @PathVariable(value = "level") @ApiParam("合伙人等级") Integer level) {
  72. return HttpResult.ok("success", this.sysPartnerService.queryRecommendAndPartner(id,level));
  73. }
  74. /**
  75. * 新增数据配置合伙人
  76. *
  77. * @param sysPartnerDto 实体
  78. * @return 新增结果
  79. */
  80. @PostMapping("/add")
  81. @ApiOperation(value = "配置合伙人")
  82. public HttpResult add(@RequestBody SysPartnerDto sysPartnerDto) {
  83. boolean insert = this.sysPartnerService.insert(sysPartnerDto);
  84. if (insert) {
  85. return HttpResult.ok("添加成功");
  86. }
  87. return HttpResult.error("添加失败");
  88. }
  89. @PostMapping("/edit")
  90. @ApiOperation(value = "编辑合伙人")
  91. public HttpResult edit(@RequestBody SysPartnerDto sysPartnerDto) {
  92. boolean insert = this.sysPartnerService.edit(sysPartnerDto);
  93. if (insert) {
  94. return HttpResult.ok("编辑成功");
  95. }
  96. return HttpResult.error("编辑失败");
  97. }
  98. /**
  99. * 判断当前登陆人是否合伙人
  100. */
  101. @PostMapping("/checkPartner")
  102. @ApiOperation(value = "判断当前登陆人是否合伙人")
  103. public HttpResult checkPartner() {
  104. return HttpResult.ok("success", this.sysPartnerService.checkPartner(getUserId()));
  105. }
  106. /**
  107. * 通过主键查询单条数据
  108. *
  109. * @param id 主键
  110. * @return 单条数据
  111. */
  112. @GetMapping("/deleteById/{id}")
  113. @ApiOperation(value = "删除合伙人")
  114. public HttpResult deleteById(@PathVariable("id") String id) {
  115. return HttpResult.ok("success", this.sysPartnerService.deleteById(id));
  116. }
  117. // /**
  118. // * 所有合伙人的抽层费用
  119. // */
  120. // @PostMapping("/queryPartnerByPages")
  121. // @ApiOperation(value = "优化所有合伙人的抽层费用信息")
  122. // public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryPartnerByPages(@RequestBody SysPartnerPageDto sysPartnerPageDto) {
  123. // if (sysPartnerPageDto.getPageNum() == 0) {
  124. // sysPartnerPageDto.setPageNum(1);
  125. // }
  126. // if (sysPartnerPageDto.getPageSize() == 0) {
  127. // sysPartnerPageDto.setPageSize(10);
  128. // }
  129. // return HttpResult.ok(this.sysPartnerService.queryPartnerByPages(sysPartnerPageDto));
  130. // }
  131. /**
  132. * 所有合伙人的抽层费用
  133. */
  134. @PostMapping("/queryPartnerByPage")
  135. @ApiOperation(value = "所有合伙人的抽层费用信息")
  136. public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryPartnerByPage(@RequestBody SysPartnerPageDto sysPartnerPageDto) {
  137. if (sysPartnerPageDto.getPageNum() == 0) {
  138. sysPartnerPageDto.setPageNum(1);
  139. }
  140. if (sysPartnerPageDto.getPageSize() == 0) {
  141. sysPartnerPageDto.setPageSize(10);
  142. }
  143. return HttpResult.ok(this.sysPartnerService.queryPartnerByPage(sysPartnerPageDto));
  144. }
  145. /**
  146. * 合伙人查看直接合伙人、间接合伙人分页查询
  147. */
  148. @PostMapping("/querySysPartnerAPPPage")
  149. @ApiOperation(value = "APP合伙人查看直接合伙人、间接合伙人分页查询")
  150. public HttpResult<BasePageResult<SysPartnerAPPPageVo>> SysPartnerAPPPage(@RequestBody SysPartnerAPPPageDto sysPartnerAPPPageDto) {
  151. if (sysPartnerAPPPageDto.getPageNum() == 0) {
  152. sysPartnerAPPPageDto.setPageNum(1);
  153. }
  154. if (sysPartnerAPPPageDto.getPageSize() == 0) {
  155. sysPartnerAPPPageDto.setPageSize(10);
  156. }
  157. return HttpResult.ok(this.sysPartnerService.SysPartnerAPPPage(sysPartnerAPPPageDto));
  158. }
  159. /**
  160. * 根据合伙人id查询推荐的工作室管理员
  161. */
  162. @PostMapping("/queryAgencyLeaderById")
  163. @ApiOperation(value = "根据合伙人id查询推荐的工作室管理员")
  164. public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryAgencyLeaderById(@RequestBody SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
  165. if (sysAgencyLeaderPageDto.getPageNum() == 0) {
  166. sysAgencyLeaderPageDto.setPageNum(1);
  167. }
  168. if (sysAgencyLeaderPageDto.getPageSize() == 0) {
  169. sysAgencyLeaderPageDto.setPageSize(10);
  170. }
  171. return HttpResult.ok("success", this.sysPartnerService.queryAgencyLeaderById(sysAgencyLeaderPageDto));
  172. }
  173. /**
  174. * 比例配置
  175. *
  176. * @param sysProportionConfig 实体
  177. * @return 新增结果
  178. */
  179. @PostMapping("/addProportionConfig")
  180. @ApiOperation(value = "比例配置")
  181. public HttpResult add(@RequestBody SysProportionConfig sysProportionConfig) {
  182. String proportion = sysProportionConfig.getProportion();
  183. String oneProportion = sysProportionConfig.getOneProportion();
  184. String twoProportion = sysProportionConfig.getTwoProportion();
  185. String threeProportion = sysProportionConfig.getThreeProportion();
  186. String fourProportion = sysProportionConfig.getFourProportion();
  187. String fiveProportion = sysProportionConfig.getFiveProportion();
  188. BigDecimal d = BigDecimal.ZERO;
  189. if (oneProportion != null) {
  190. d = d.add(new BigDecimal(sysProportionConfig.getOneProportion()));
  191. }
  192. if (twoProportion != null) {
  193. d = d.add(new BigDecimal(sysProportionConfig.getTwoProportion()));
  194. }
  195. if (threeProportion != null) {
  196. d = d.add(new BigDecimal(sysProportionConfig.getThreeProportion()));
  197. }
  198. if (fourProportion != null) {
  199. d = d.add(new BigDecimal(sysProportionConfig.getFourProportion()));
  200. }
  201. if (fiveProportion != null) {
  202. d = d.add(new BigDecimal(sysProportionConfig.getFiveProportion()));
  203. }
  204. BigDecimal bigDecimal = new BigDecimal(proportion);
  205. // BigDecimal bigDecimal1 = d.setScale(1, RoundingMode.DOWN);
  206. if (bigDecimal.compareTo(d) != 0) {
  207. throw new SystemException("总比例必须等于每级合伙人比例和");
  208. }
  209. Long id = sysProportionConfig.getId();
  210. boolean b = false;
  211. if (id == null) {
  212. b = sysProportionConfigMapper.insert(sysProportionConfig) > 0;
  213. } else {
  214. b = sysProportionConfigMapper.updateWithNull(sysProportionConfig);
  215. }
  216. return HttpResult.ok(b);
  217. }
  218. /**
  219. * 编辑查询
  220. *
  221. * @param id
  222. * @return
  223. */
  224. @GetMapping("/getProportionConfig")
  225. @ApiOperation(value = "根据用户id查看比例配置")
  226. public HttpResult getProportionConfig(@RequestParam("id") String id) {
  227. return HttpResult.ok(sysProportionConfigService.getProportionConfig(id));
  228. }
  229. /**
  230. * 血缘关系
  231. */
  232. @GetMapping("/getRelationInfo/{userId}")
  233. @ApiOperation(value = "血缘关系")
  234. public HttpResult getRelationInfo(@PathVariable("userId") String userId) {
  235. return HttpResult.ok(sysPartnerService.getRelationInfo(userId));
  236. }
  237. }