NewAppPartnerController.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. package com.ydtech.modules.partner.controller;
  2. import cn.hutool.extra.spring.SpringUtil;
  3. import com.alipay.api.AlipayApiException;
  4. import com.ydtech.core.page.HttpResult;
  5. import com.ydtech.exception.SystemException;
  6. import com.ydtech.modules.admin.model.SysPartnerAccount;
  7. import com.ydtech.modules.admin.model.dto.*;
  8. import com.ydtech.modules.admin.model.vo.*;
  9. import com.ydtech.modules.admin.service.SysPartnerService;
  10. import com.ydtech.modules.base.controller.BaseController;
  11. import com.ydtech.modules.order.entity.BasePageResult;
  12. import com.ydtech.modules.partner.UpdateRatioUtils;
  13. import com.ydtech.modules.partner.model.param.AppHomeParams;
  14. import com.ydtech.modules.partner.service.PartnerUserService;
  15. import com.ydtech.modules.protocol.utils.AssertionUtils;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import io.swagger.annotations.ApiParam;
  19. import lombok.extern.slf4j.Slf4j;
  20. import me.chanjar.weixin.common.error.WxErrorException;
  21. import org.springframework.web.bind.annotation.*;
  22. import javax.annotation.Resource;
  23. import java.util.List;
  24. import java.util.Map;
  25. @Api(tags = "(新)合伙人app")
  26. @Slf4j
  27. @RestController
  28. @RequestMapping("/newAppPartner")
  29. public class NewAppPartnerController extends BaseController {
  30. @Resource
  31. private SysPartnerService sysPartnerService;
  32. @Resource
  33. private PartnerUserService partnerUserService;
  34. /**
  35. * (新)首页信息
  36. */
  37. @PostMapping("/getHomePage")
  38. @ApiOperation(value = "APP首页信息")
  39. public HttpResult<AppPartnerNumVo> getHomePage(@RequestBody AppHomeParams params){
  40. params.setUserId(getUserId());
  41. //SpringUtil.getBean(UpdateRatioUtils.class).loginChange(getUserId());
  42. return partnerUserService.getHomePage(params);
  43. }
  44. /**
  45. * (新)人员查询
  46. */
  47. @PostMapping("/selectUser")
  48. @ApiOperation(value = "人员查询")
  49. public HttpResult selectUser(@RequestBody AppHomeParams params){
  50. params.setUserId(getUserId());
  51. return partnerUserService.selectUser(params);
  52. }
  53. /**
  54. * (新)统计视图数据
  55. */
  56. @PostMapping("/userCountVo")
  57. @ApiOperation(value = "统计视图数据")
  58. public HttpResult userCountVo(@RequestBody AppHomeParams params){
  59. params.setUserId(getUserId());
  60. return partnerUserService.userCountVo(params);
  61. }
  62. /**
  63. * (新)统计视图 汇总统计数据
  64. */
  65. @PostMapping("/userCountStatisticsVo")
  66. @ApiOperation(value = "统计视图数据")
  67. public HttpResult userCountStatisticsVo(@RequestBody AppHomeParams params){
  68. params.setUserId(getUserId());
  69. return partnerUserService.userCountStatisticsVo(params);
  70. }
  71. /**
  72. * (新)统计视图 占比分析
  73. */
  74. @PostMapping("/userCountProportionVo")
  75. @ApiOperation(value = "统计视图数据")
  76. public HttpResult userCountProportionVo(@RequestBody AppHomeParams params){
  77. params.setUserId(getUserId());
  78. return partnerUserService.userCountProportionVo(params);
  79. }
  80. /**
  81. * (新)统计视图 排名数据
  82. */
  83. @PostMapping("/userCountRankingVo")
  84. @ApiOperation(value = "统计视图数据")
  85. public HttpResult userCountRankingVo(@RequestBody AppHomeParams params){
  86. params.setUserId(getUserId());
  87. return partnerUserService.userCountRankingVo(params);
  88. }
  89. /**
  90. * (新)人员列表详情数据查询 通过管理等级查询
  91. */
  92. @GetMapping("/selectByGradeList")
  93. @ApiOperation(value = "人员列表详情数据查询")
  94. public HttpResult selectByGradeList(@RequestParam Map<String,String> map){
  95. return partnerUserService.selectByGradeList(map, this.getUserId());
  96. }
  97. /**
  98. * (新)人员列表详情数据查询 通过用户ID 查询
  99. */
  100. @GetMapping("/selectByIdList")
  101. @ApiOperation(value = "人员列表详情数据查询")
  102. public HttpResult selectByIdList(@RequestParam("id") String id){
  103. return partnerUserService.selectByIdList(id);
  104. }
  105. /**
  106. * (新)个人信息
  107. *
  108. * @return
  109. */
  110. @GetMapping("/getUserInfo")
  111. @ApiOperation(value = "APP个人信息")
  112. public HttpResult<AppUserInfoVo> getUserInfo(@RequestParam("type") Integer type) {
  113. return HttpResult.ok("success",partnerUserService.getUserInfo(type));
  114. }
  115. /**
  116. * (新)我的业绩
  117. * @param map
  118. * @return
  119. */
  120. @GetMapping("/myPerformance")
  121. public HttpResult myPerformance(@RequestParam Map<String,String> map) {
  122. map.put("userId",getUserId());
  123. return HttpResult.ok("success",partnerUserService.myPerformance(map));
  124. }
  125. /**
  126. * (新)我的业绩 详情
  127. * @param ordersNo
  128. * @return
  129. */
  130. @GetMapping("/myPerformanceDetails")
  131. public HttpResult myPerformance(@RequestParam String ordersNo) {
  132. return partnerUserService.myPerformanceDetails(ordersNo);
  133. }
  134. /**
  135. * (新APP)APP账户金额
  136. *
  137. * @return
  138. */
  139. @GetMapping("/newGetFee")
  140. @ApiOperation(value = "APP账户金额")
  141. public HttpResult newGetFee() {
  142. return HttpResult.ok("success",this.partnerUserService.newGetFee(getUserId()));
  143. }
  144. /**
  145. * APP账户金额
  146. *
  147. * @return
  148. */
  149. @GetMapping("/getFee")
  150. @ApiOperation(value = "APP账户金额")
  151. public HttpResult<SysPartnerAccount> getFee() {
  152. return HttpResult.ok("success",this.sysPartnerService.getFee());
  153. }
  154. /**
  155. * 登陆人下的每个等级合伙人统计信息
  156. */
  157. @PostMapping("/info")
  158. @ApiOperation(value = "APP登陆人下的每个等级合伙人统计信息")
  159. public HttpResult<List<AppSysPartnerVo>> partnerInfo(@RequestBody PartnerInfoDto partnerInfoDto) {
  160. return HttpResult.ok("success",this.sysPartnerService.partnerInfo(partnerInfoDto));
  161. }
  162. /**
  163. * 合伙人工作室详情 统计总费用
  164. */
  165. @PostMapping("/partnerLeaderInfo")
  166. @ApiOperation(value = "合伙人工作室详情")
  167. public HttpResult<PartnerLeaderInfoVo> partnerLeaderInfo(@RequestBody PartnerGradeInfo partnerGradeInfo) {
  168. return HttpResult.ok("success",this.sysPartnerService.partnerLeaderInfo(partnerGradeInfo));
  169. }
  170. /**
  171. * 筛选合伙人详情(未用)
  172. * @return
  173. */
  174. @PostMapping("/queryFilterPartnerInfo")
  175. @ApiOperation(value = "筛选合伙人详情")
  176. public HttpResult<FilterPartnerInfoVo> queryFilterPartnerInfo(@RequestBody FilterPartnerInfoDto filterPartnerInfoDto) {
  177. return HttpResult.ok("success",this.sysPartnerService.queryFilterPartnerInfo(filterPartnerInfoDto));
  178. }
  179. /**
  180. * 等级合伙人详情
  181. * @param partnerGradeInfo
  182. * @return
  183. */
  184. @PostMapping("/queryPartnerInfo")
  185. @ApiOperation(value = "等级合伙人详情")
  186. public HttpResult<PartnerInfoFreeVo> queryPartnerInfo(@RequestBody PartnerGradeInfo partnerGradeInfo) {
  187. return HttpResult.ok("success",this.sysPartnerService.queryPartnerInfo(partnerGradeInfo));
  188. }
  189. /**
  190. * 查看团队
  191. */
  192. @PostMapping("/getTeamInfo")
  193. @ApiOperation(value = "查看机构下团队信息")
  194. public HttpResult<APPPartnerInfoFreeVo> getTeamInfo(@RequestBody PartnerGradeInfo partnerGradeInfo) {
  195. return HttpResult.ok("success",this.sysPartnerService.getTeamInfo(partnerGradeInfo));
  196. }
  197. @PostMapping("/getTeamUserInfo")
  198. @ApiOperation(value = "查看团队下人员信息")
  199. public HttpResult<TeamUserInfosFreeVo> getTeamUserInfo(@RequestBody TeamUserInfosDto teamUserInfosDto) {
  200. return HttpResult.ok("success",this.sysPartnerService.getTeamUserInfo(teamUserInfosDto));
  201. }
  202. /**
  203. * 总佣金组成明细
  204. */
  205. @PostMapping("/getCommissionInfo")
  206. @ApiOperation(value = "总佣金组成明细")
  207. public HttpResult<BasePageResult<SysPremiumDetailsVo>> getCommissionInfo(@RequestBody CommissionInfoDto commissionInfoDto) {
  208. if (commissionInfoDto.getPageNum() == 0) {
  209. commissionInfoDto.setPageNum(1);
  210. }
  211. if (commissionInfoDto.getPageSize() == 0) {
  212. commissionInfoDto.setPageSize(10);
  213. }
  214. return HttpResult.ok("success",this.sysPartnerService.getCommissionInfo(commissionInfoDto));
  215. }
  216. /**
  217. * 改版后的总佣金组成明细
  218. *
  219. * @return
  220. */
  221. @PostMapping("/getCommissionInfos")
  222. @ApiOperation(value = "改版后的总佣金组成明细")
  223. public HttpResult<List<SysPremiumDetailsVo>> getCommissionInfos(@RequestBody CommissionInfoDto commissionInfoDto) {
  224. return HttpResult.ok("success",this.sysPartnerService.getCommissionInfos(commissionInfoDto));
  225. }
  226. /**
  227. * app工作室新增人员统计
  228. */
  229. @PostMapping("/getCountUser")
  230. @ApiOperation(value = "app工作室新增人员统计")
  231. public HttpResult<CountUserVo> getCountUser(@RequestBody CountUserDto countUserDto) {
  232. return HttpResult.ok("success",this.sysPartnerService.getCountUser(countUserDto));
  233. }
  234. /**
  235. * app合伙人新增人员统计
  236. */
  237. @PostMapping("/getPartnerCount")
  238. @ApiOperation(value = "app合伙人新增人员统计")
  239. public HttpResult<PartnerCountVo> getPartnerCount(@RequestBody PartnerCountDto partnerCountDto) {
  240. return HttpResult.ok("success",this.sysPartnerService.getPartnerCount(partnerCountDto));
  241. }
  242. /**
  243. * 五级合伙人新增人员统计
  244. */
  245. @PostMapping("/getFivePartnerCount")
  246. @ApiOperation(value = "五级合伙人新增人员统计")
  247. public HttpResult<PartnerCountVo> getFivePartnerCount(@RequestBody PartnerCountDto partnerCountDto) {
  248. return HttpResult.ok("success",this.sysPartnerService.getFivePartnerCount(partnerCountDto));
  249. }
  250. /**
  251. * 新增人员占比分析
  252. */
  253. @PostMapping("/getPartnerProportion")
  254. @ApiOperation(value = "新增人员占比分析")
  255. public HttpResult<PartnerProportionVo> getPartnerProportion(@RequestBody PartnerCountDto partnerCountDto) {
  256. return HttpResult.ok("success",this.sysPartnerService.getPartnerProportion(partnerCountDto));
  257. }
  258. /**
  259. * 排行榜
  260. */
  261. @GetMapping("/getLevelPartner")
  262. @ApiOperation(value = "排行榜")
  263. public HttpResult<List<LevelPartnerVo>> getLevelPartner(@RequestParam("type") @ApiParam("等级:1、2、3、4、5") Integer type) {
  264. return HttpResult.ok("success",this.sysPartnerService.getLevelPartner(type));
  265. }
  266. /**
  267. * 排行榜->查看详情
  268. * @return
  269. */
  270. @PostMapping("/getLevelPartnerInfo")
  271. @ApiOperation(value = "排行榜->查看详情")
  272. public HttpResult<List<LevelPartnerInfoVo>> getLevelPartnerInfo(@RequestBody List<String> partnerIds) {
  273. return HttpResult.ok("success",this.sysPartnerService.getLevelPartnerInfo(partnerIds));
  274. }
  275. /**
  276. * 支付宝登录
  277. * @param alipayBindVo
  278. * @return
  279. */
  280. @PostMapping("/loginAlipay")
  281. @ApiOperation(value = "支付宝登录")
  282. public HttpResult<AAPLoginVo> loginAlipay(@RequestBody AlipayBindVo alipayBindVo) {
  283. log.info("支付宝登录入参:{}",alipayBindVo);
  284. try {
  285. return sysPartnerService.loginAlipay(alipayBindVo);
  286. } catch (AlipayApiException e) {
  287. log.info(e.getMessage());
  288. throw new SystemException("支付宝登录失败");
  289. }
  290. }
  291. /**
  292. * 工号绑定支付宝
  293. * @param alipayBindVo
  294. * @return
  295. * @throws AlipayApiException
  296. */
  297. @PostMapping("/bindAlipay")
  298. @ApiOperation(value = "工号绑定支付宝")
  299. HttpResult<Object> bindAlipay(@RequestBody AlipayBindVo alipayBindVo){
  300. log.info("支付宝绑定入参:{}",alipayBindVo);
  301. try {
  302. String userId = getUserId();
  303. return sysPartnerService.bindAlipay(alipayBindVo, userId);
  304. } catch (AlipayApiException e) {
  305. throw new SystemException("支付宝绑定失败");
  306. }
  307. }
  308. /**
  309. * 是否绑定支付宝
  310. * @return
  311. */
  312. @ApiOperation(value = "是否绑定支付宝")
  313. @GetMapping(value = "/checkBindAlipay")
  314. public HttpResult checkBindAlipay() {
  315. String alipayId = sysPartnerService.checkBindAlipay();
  316. AssertionUtils.isStringEmpty(alipayId, "未绑定支付宝");
  317. return HttpResult.ok();
  318. }
  319. /**
  320. * 微信登录
  321. * @param wechatLoginVo
  322. * @return
  323. */
  324. @PostMapping("/loginWechat")
  325. @ApiOperation(value = "微信登录")
  326. public HttpResult<AAPLoginVo> loginWechat(@RequestBody WechatLoginVo wechatLoginVo) {
  327. log.info("微信登录入参:{}",wechatLoginVo);
  328. try {
  329. return sysPartnerService.loginWechat(wechatLoginVo);
  330. } catch (WxErrorException e) {
  331. log.info(e.getMessage());
  332. throw new SystemException("微信登录失败");
  333. }
  334. }
  335. /**
  336. * 工号绑定微信
  337. * @param wechatBindVo
  338. * @return
  339. * @throws WxErrorException
  340. */
  341. @PostMapping("/bindWechat")
  342. @ApiOperation(value = "工号绑定微信")
  343. HttpResult<Object> bindWechat(@RequestBody WechatBindVo wechatBindVo){
  344. log.info("微信绑定入参:{}",wechatBindVo);
  345. try {
  346. String userId = getUserId();
  347. return sysPartnerService.bindWechat(wechatBindVo, userId);
  348. } catch (WxErrorException e) {
  349. log.info(e.getMessage());
  350. throw new SystemException("微信绑定失败");
  351. }
  352. }
  353. /**
  354. * 是否绑定微信
  355. */
  356. @ApiOperation(value = "是否绑定微信")
  357. @GetMapping(value = "/checkBindWechat")
  358. public HttpResult checkBindWechat() {
  359. String openId = sysPartnerService.checkBindWechat();
  360. AssertionUtils.isStringEmpty(openId, "未绑定微信");
  361. return HttpResult.ok();
  362. }
  363. }