package com.ydtech.modules.admin.controller; import com.alipay.api.AlipayApiException; import com.ydtech.core.page.HttpResult; import com.ydtech.exception.SystemException; import com.ydtech.modules.admin.model.SysPartnerAccount; import com.ydtech.modules.admin.model.SysPremiumDetails; import com.ydtech.modules.admin.model.dto.*; import com.ydtech.modules.admin.model.vo.*; import com.ydtech.modules.admin.service.SysPartnerService; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.order.entity.BasePageResult; import com.ydtech.modules.protocol.utils.AssertionUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @Api(tags = "合伙人app") @Slf4j @RestController @RequestMapping("/APPPartner") public class APPPartnerController extends BaseController { @Resource private SysPartnerService sysPartnerService; /** * 首页信息 */ @GetMapping("/getHomePage") @ApiOperation(value = "APP首页信息") public HttpResult getHomePage(@RequestParam("type") Integer type) { return HttpResult.ok("success", this.sysPartnerService.getHomePage(type)); } /** * 个人信息 * * @return */ @GetMapping("/getUserInfo") @ApiOperation(value = "APP个人信息") public HttpResult getUserInfo(@RequestParam("type") Integer type) { return HttpResult.ok("success",this.sysPartnerService.getUserInfo(type)); } /** * APP账户金额 * * @return */ @GetMapping("/getFee") @ApiOperation(value = "APP账户金额") public HttpResult getFee() { return HttpResult.ok("success",this.sysPartnerService.getFee()); } /** * 登陆人下的每个等级合伙人统计信息 */ @PostMapping("/info") @ApiOperation(value = "APP登陆人下的每个等级合伙人统计信息") public HttpResult> partnerInfo(@RequestBody PartnerInfoDto partnerInfoDto) { return HttpResult.ok("success",this.sysPartnerService.partnerInfo(partnerInfoDto)); } /** * 合伙人工作室详情 统计总费用 */ @PostMapping("/partnerLeaderInfo") @ApiOperation(value = "合伙人工作室详情") public HttpResult partnerLeaderInfo(@RequestBody PartnerGradeInfo partnerGradeInfo) { return HttpResult.ok("success",this.sysPartnerService.partnerLeaderInfo(partnerGradeInfo)); } /** * 筛选合伙人详情(未用) * @return */ @PostMapping("/queryFilterPartnerInfo") @ApiOperation(value = "筛选合伙人详情") public HttpResult queryFilterPartnerInfo(@RequestBody FilterPartnerInfoDto filterPartnerInfoDto) { return HttpResult.ok("success",this.sysPartnerService.queryFilterPartnerInfo(filterPartnerInfoDto)); } /** * 等级合伙人详情 * @param partnerGradeInfo * @return */ @PostMapping("/queryPartnerInfo") @ApiOperation(value = "等级合伙人详情") public HttpResult queryPartnerInfo(@RequestBody PartnerGradeInfo partnerGradeInfo) { return HttpResult.ok("success",this.sysPartnerService.queryPartnerInfo(partnerGradeInfo)); } /** * 查看团队 */ @PostMapping("/getTeamInfo") @ApiOperation(value = "查看机构下团队信息") public HttpResult getTeamInfo(@RequestBody PartnerGradeInfo partnerGradeInfo) { return HttpResult.ok("success",this.sysPartnerService.getTeamInfo(partnerGradeInfo)); } @PostMapping("/getTeamUserInfo") @ApiOperation(value = "查看团队下人员信息") public HttpResult getTeamUserInfo(@RequestBody TeamUserInfosDto teamUserInfosDto) { return HttpResult.ok("success",this.sysPartnerService.getTeamUserInfo(teamUserInfosDto)); } /** * 总佣金组成明细 */ @PostMapping("/getCommissionInfo") @ApiOperation(value = "总佣金组成明细") public HttpResult> getCommissionInfo(@RequestBody CommissionInfoDto commissionInfoDto) { if (commissionInfoDto.getPageNum() == 0) { commissionInfoDto.setPageNum(1); } if (commissionInfoDto.getPageSize() == 0) { commissionInfoDto.setPageSize(10); } return HttpResult.ok("success",this.sysPartnerService.getCommissionInfo(commissionInfoDto)); } /** * 改版后的总佣金组成明细 * * @return */ @PostMapping("/getCommissionInfos") @ApiOperation(value = "改版后的总佣金组成明细") public HttpResult> getCommissionInfos(@RequestBody CommissionInfoDto commissionInfoDto) { return HttpResult.ok("success",this.sysPartnerService.getCommissionInfos(commissionInfoDto)); } /** * app工作室新增人员统计 */ @PostMapping("/getCountUser") @ApiOperation(value = "app工作室新增人员统计") public HttpResult getCountUser(@RequestBody CountUserDto countUserDto) { return HttpResult.ok("success",this.sysPartnerService.getCountUser(countUserDto)); } /** * app合伙人新增人员统计 */ @PostMapping("/getPartnerCount") @ApiOperation(value = "app合伙人新增人员统计") public HttpResult getPartnerCount(@RequestBody PartnerCountDto partnerCountDto) { return HttpResult.ok("success",this.sysPartnerService.getPartnerCount(partnerCountDto)); } /** * 新增人员占比分析 */ @PostMapping("/getPartnerProportion") @ApiOperation(value = "新增人员占比分析") public HttpResult getPartnerProportion(@RequestBody PartnerCountDto partnerCountDto) { return HttpResult.ok("success",this.sysPartnerService.getPartnerProportion(partnerCountDto)); } /** * 排行榜 */ @GetMapping("/getLevelPartner") @ApiOperation(value = "排行榜") public HttpResult> getLevelPartner(@RequestParam("type") @ApiParam("等级:1、2、3、4、5") Integer type) { return HttpResult.ok("success",this.sysPartnerService.getLevelPartner(type)); } /** * 支付宝登录 * @param alipayBindVo * @return */ @PostMapping("/loginAlipay") @ApiOperation(value = "支付宝登录") public HttpResult loginAlipay(@RequestBody AlipayBindVo alipayBindVo) { log.info("支付宝登录入参:{}",alipayBindVo); try { return sysPartnerService.loginAlipay(alipayBindVo); } catch (AlipayApiException e) { log.info(e.getMessage()); throw new SystemException("支付宝授权失败"); } } /** * 工号绑定支付宝 * @param alipayBindVo * @return * @throws AlipayApiException */ @PostMapping("/bindAlipay") @ApiOperation(value = "工号绑定支付宝") HttpResult bindAlipay(@RequestBody AlipayBindVo alipayBindVo){ log.info("支付宝绑定入参:{}",alipayBindVo); try { String userId = getUserId(); return sysPartnerService.bindAlipay(alipayBindVo, userId); } catch (AlipayApiException e) { throw new SystemException("支付宝授权失败"); } } /** * 是否绑定支付宝 * @return */ @ApiOperation(value = "是否绑定支付宝") @GetMapping(value = "/checkBindAlipay") public HttpResult checkBindAlipay() { String alipayId = sysPartnerService.checkBindAlipay(); AssertionUtils.isStringEmpty(alipayId, "未绑定支付宝"); return HttpResult.ok(); } /** * 微信登录 * @param wechatLoginVo * @return */ @PostMapping("/loginWechat") @ApiOperation(value = "微信登录") public HttpResult loginWechat(@RequestBody WechatLoginVo wechatLoginVo) { log.info("微信登录入参:{}",wechatLoginVo); try { return sysPartnerService.loginWechat(wechatLoginVo); } catch (WxErrorException e) { log.info(e.getMessage()); throw new SystemException("微信授权失败"); } } /** * 工号绑定微信 * @param wechatBindVo * @return * @throws WxErrorException */ @PostMapping("/bindWechat") @ApiOperation(value = "工号绑定微信") HttpResult bindWechat(@RequestBody WechatBindVo wechatBindVo){ log.info("微信绑定入参:{}",wechatBindVo); try { String userId = getUserId(); return sysPartnerService.bindWechat(wechatBindVo, userId); } catch (WxErrorException e) { log.info(e.getMessage()); throw new SystemException("微信授权失败"); } } /** * 是否绑定微信 */ @ApiOperation(value = "是否绑定微信") @GetMapping(value = "/checkBindWechat") public HttpResult checkBindWechat() { String openId = sysPartnerService.checkBindWechat(); AssertionUtils.isStringEmpty(openId, "未绑定微信"); return HttpResult.ok(); } }