package com.ydtech.modules.partner.controller; import com.alipay.api.AlipayApiException; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ydtech.core.page.HttpResult; import com.ydtech.exception.SystemException; import com.ydtech.modules.admin.model.SysPartnerAccount; 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.base.model.dto.PageDto; import com.ydtech.modules.order.entity.BasePageResult; import com.ydtech.modules.partner.model.PartnerPartnerAccount; import com.ydtech.modules.partner.model.param.AppHomeParams; import com.ydtech.modules.partner.model.param.PartnerApp; import com.ydtech.modules.partner.service.PartnerUserService; 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("/newAppPartner") public class NewAppPartnerController extends BaseController { @Resource private SysPartnerService sysPartnerService; @Resource private PartnerUserService partnerUserService; /** * (新)查询用户身份信息 */ @GetMapping("/queryIdentityInformation") @ApiOperation(value = "查询用户身份信息") public HttpResult queryIdentityInformation(){ return partnerUserService.queryIdentityInformation(getUserId()); } /** * (新)首页信息 */ @PostMapping("/getHomePage") @ApiOperation(value = "APP首页信息") public HttpResult getHomePage(@RequestBody AppHomeParams params){ params.setUserId(getUserId()); return partnerUserService.getHomePage(params); } /** * (新)首页钱包 */ @PostMapping("/getHomeWallet") @ApiOperation(value = "APP首页信息") public HttpResult getHomeWallet(@RequestBody AppHomeParams params){ params.setUserId(getUserId()); return partnerUserService.getHomeWallet(params); } /** * (新)人员查询 */ @PostMapping("/selectUser") @ApiOperation(value = "人员查询") public HttpResult selectUser(@RequestBody AppHomeParams params){ params.setUserId(getUserId()); return partnerUserService.selectUser(params); } /** * (新)统计视图数据 */ @PostMapping("/userCountVo") @ApiOperation(value = "统计视图数据") public HttpResult userCountVo(@RequestBody AppHomeParams params){ params.setUserId(getUserId()); return partnerUserService.userCountVo(params); } /** * (新)统计视图 汇总统计数据 */ @PostMapping("/userCountStatisticsVo") @ApiOperation(value = "统计视图数据") public HttpResult userCountStatisticsVo(@RequestBody AppHomeParams params){ params.setUserId(getUserId()); return partnerUserService.userCountStatisticsVo(params); } /** * (新)统计视图 占比分析 */ @PostMapping("/userCountProportionVo") @ApiOperation(value = "统计视图数据") public HttpResult userCountProportionVo(@RequestBody AppHomeParams params){ params.setUserId(getUserId()); return partnerUserService.userCountProportionVo(params); } /** * (新)统计视图 排名数据 */ @PostMapping("/userCountRankingVo") @ApiOperation(value = "统计视图数据") public HttpResult userCountRankingVo(@RequestBody AppHomeParams params){ params.setUserId(getUserId()); return partnerUserService.userCountRankingVo(params); } /** * (新)人员列表详情数据查询 通过管理等级查询 */ @PostMapping("/selectByGradeList") @ApiOperation(value = "人员列表详情数据查询") public HttpResult selectByGradeList(@RequestBody PartnerApp partnerApp){ partnerApp.setUserId(getUserId()); partnerApp.setPage(buildPageRequest(partnerApp)); return partnerUserService.selectByGradeList(partnerApp); } /** * (新)人员列表详情数据查询 通过用户ID 查询 */ @PostMapping("/selectByIdList") @ApiOperation(value = "人员列表详情数据查询") public HttpResult selectByIdList(@RequestBody PartnerApp partnerApp){ partnerApp.setPage(buildPageRequest(partnerApp)); return partnerUserService.selectByIdList(partnerApp); } /** * (新)人员列表详情数据查询 通过用户ID 查询 */ @GetMapping("/selectByIdList") @ApiOperation(value = "人员列表详情数据查询") public HttpResult selectByIdList(@RequestParam("id") String id){ return partnerUserService.selectByIdListData(id); } public Page buildPageRequest(PartnerApp partnerApp) { if (partnerApp.getPageNum() == null || partnerApp.getPageSize() == null){ throw new SystemException("分页参数不能为空"); } PageDto pageDto = new PageDto(); pageDto.setPageNum(partnerApp.getPageNum()); pageDto.setPageSize(partnerApp.getPageSize()); return buildPageRequest(pageDto); } /** * (新)个人信息 * * @return */ @GetMapping("/getUserInfo") @ApiOperation(value = "APP个人信息") public HttpResult getUserInfo(@RequestParam("type") Integer type) { return HttpResult.ok("success",partnerUserService.getUserInfo(type)); } /** * (新)我的业绩 * @param partnerApp * @return */ @PostMapping("/myPerformance") public HttpResult myPerformance(@RequestBody PartnerApp partnerApp) { partnerApp.setUserId(getUserId()); partnerApp.setPage(buildPageRequest(partnerApp)); return HttpResult.ok("success",partnerUserService.myPerformance(partnerApp)); } /** * (新)我的业绩 详情 * @param ordersNo * @return */ @GetMapping("/myPerformanceDetails") public HttpResult myPerformance(@RequestParam("ordersNo") String ordersNo) { return partnerUserService.myPerformanceDetails(ordersNo,getUserId()); } /** * (新APP)APP账户金额 * * @return */ @GetMapping("/newGetFee") @ApiOperation(value = "APP账户金额") public HttpResult newGetFee() { return HttpResult.ok("success",this.partnerUserService.newGetFee(getUserId())); } /** * 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("/getFivePartnerCount") @ApiOperation(value = "五级合伙人新增人员统计") public HttpResult getFivePartnerCount(@RequestBody PartnerCountDto partnerCountDto) { return HttpResult.ok("success",this.sysPartnerService.getFivePartnerCount(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)); } /** * 排行榜->查看详情 * @return */ @PostMapping("/getLevelPartnerInfo") @ApiOperation(value = "排行榜->查看详情") public HttpResult> getLevelPartnerInfo(@RequestBody List partnerIds) { return HttpResult.ok("success",this.sysPartnerService.getLevelPartnerInfo(partnerIds)); } /** * 支付宝登录 * @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(); } }