package cc.mrbird.febs.mall.controller; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.entity.MallMemberCoupon; import cc.mrbird.febs.mall.entity.MallMemberPayment; import cc.mrbird.febs.mall.service.*; import cc.mrbird.febs.mall.vo.*; import cc.mrbird.febs.vip.service.IMallVipBenefitsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.Map; /** * @author wzy * @date 2021-09-16 **/ @Slf4j @RestController @RequestMapping(value = "/api/member") @RequiredArgsConstructor @Api(value = "ApiMallMemberController", tags = "商城用户接口类") public class ApiMallMemberController { private final IApiMallMemberService memberService; private final IMallMemberWithdrawService mallMemberWithdrawService; private final IApiMallMemberWalletService walletService; private final IApiMallAgentService iApiMallAgentService; private final IMallVipBenefitsService mallVipBenefitsService; /** * 小程序接收用户数据,更新用户信息 */ @ApiOperation(value = "小程序接收用户数据", notes = "小程序接收用户数据") @PostMapping(value = "/xcxSaveInfo") public FebsResponse xcxSaveInfo(@RequestBody ApiXcxSaveInfoDto apiXcxSaveInfoDto){ return memberService.xcxSaveInfo(apiXcxSaveInfoDto); } @ApiOperation(value = "获取商城用户信息", notes = "获取商城用户信息") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = MallMemberVo.class) }) @GetMapping(value = "/findMemberInfo") public FebsResponse findMemberInfo() { return memberService.findMemberInfo(); } @ApiOperation(value = "推出登录", notes = "推出登录") @PostMapping(value = "/logout") public FebsResponse logout() { return memberService.logout(); } @ApiOperation(value = "获取购物车、订单等角标数量") @GetMapping(value = "/findMarkCnt") public FebsResponse findMarkCnt() { return memberService.findMemberMarkCnt(); } @ApiOperation(value = "设置支付密码") @PostMapping(value = "/setTradePwd") public FebsResponse setTradePwd(@RequestBody ForgetPwdDto forgetPwdDto) { return memberService.setTradePwd(forgetPwdDto); } @ApiOperation(value = "修改用户信息") @PostMapping(value = "/modifyInfo") public FebsResponse modifyInfo(@RequestBody ModifyMemberInfoDto modifyMemberInfoDto) { return memberService.modifyMemberInfo(modifyMemberInfoDto); } @ApiOperation(value = "我的团队列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = MyTeamVo.class) }) @PostMapping(value = "/teamList") public FebsResponse teamList(@RequestBody TeamListDto teamListDto) { return memberService.teamList(teamListDto); } @ApiOperation(value = "资金流水列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = MoneyFlowVo.class) }) @PostMapping(value = "/moneyFlow") public FebsResponse moneyFlow(@RequestBody MoneyFlowDto moneyFlowDto) { return memberService.moneyFlows(moneyFlowDto); } @ApiOperation(value = "转账") @PostMapping(value = "/transfer") public FebsResponse transfer(@RequestBody @Validated TransferDto transferDto) { memberService.transfer(transferDto); return new FebsResponse().success().message("转账成功"); } @ApiOperation(value = "提现规则", notes = "提现规则") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = CashOutSettingVo.class) }) @GetMapping(value = "/cashOutSetting") public FebsResponse cashOutSetting() { return new FebsResponse().success().data(memberService.cashOutSetting()); } @ApiOperation(value = "提现") @PostMapping(value = "/withdrawal") public FebsResponse withdrawal(@RequestBody @Validated WithdrawalDto withdrawalDto) { mallMemberWithdrawService.withdrawal(withdrawalDto); return new FebsResponse().success().message("提交成功"); } @ApiOperation(value = "设置收款方式") @PostMapping(value = "/setPayment") public FebsResponse setPayment(@RequestBody MallMemberPayment mallMemberPayment) { memberService.setPayment(mallMemberPayment); return new FebsResponse().success().message("设置成功"); } @ApiOperation(value = "获取收款方式") @GetMapping(value = "/findPayment") public FebsResponse findPayment() { return new FebsResponse().success().data(memberService.findMemberPayment()); } @ApiOperation(value = "绑定手机号") @PostMapping(value = "/bindPhone") public FebsResponse bindPhone(@RequestBody AccountAndCodeDto accountAndCodeDto) { memberService.bindPhone(accountAndCodeDto); return new FebsResponse().success().message("绑定成功"); } @ApiOperation(value = "可提现金额") @GetMapping(value = "/canWithdrawal") public FebsResponse canWithdrawal() { return new FebsResponse().success().data(memberService.canMoney()); } @ApiOperation(value = "用户消费排名") @PostMapping(value = "/findRankList") public FebsResponse findRankList(@RequestBody RankListDto rankListDto) { return new FebsResponse().success().data(memberService.findRankList(rankListDto)); } @ApiOperation(value = "根据邀请码或者手机号获取昵称") @PostMapping(value = "/findMemberInfoByAccount/{phone}") public FebsResponse findMemberInfoByAccount(@PathVariable("phone") String phone) { MallMember account = memberService.findMemberInfoByAccount(phone); if (account == null) { return new FebsResponse().fail().message("用户不存在"); } MallMemberVo member = new MallMemberVo(); member.setName(account.getName()); return new FebsResponse().success().data(member); } @ApiOperation(value = "佣金划转") @PostMapping(value = "/commissionChange") public FebsResponse commissionChange(@RequestBody @Validated CommissionChangeDto commissionChange) { walletService.commissionChange(commissionChange); return new FebsResponse().success(); } @ApiOperation(value = "我的权益") @ApiResponses( @ApiResponse(code = 200, message = "success", response = MyCommissionVo.class) ) @PostMapping(value = "/myCommission") public FebsResponse myCommission() { return new FebsResponse().success().data(memberService.myCommission()); } @ApiOperation(value = "商铺申请是否存在") @PostMapping(value = "/shopApplyIsExist") public FebsResponse shopApplyIsExist() { return null; } @ApiOperation(value = "充值余额") @PostMapping(value = "/rechargeWallet") public FebsResponse rechargeWallet(@RequestBody @Validated ApiRechargeWalletDto apiRechargeWalletDto) { return memberService.rechargeWallet(apiRechargeWalletDto); } /** * 申请代理 * @param apiAgentApplyDto * @return */ @ApiOperation(value = "申请代理") @PostMapping(value = "/agentApply") public FebsResponse agentApply(@RequestBody @Validated ApiAgentApplyDto apiAgentApplyDto) { return iApiMallAgentService.agentApply(apiAgentApplyDto); } /** * 绑定默认推荐人 */ @ApiOperation(value = "绑定默认推荐人") @PostMapping(value = "/setInvite") public FebsResponse setInvite(@RequestBody @Validated ApiSetInviteDto apiSetInviteDto) { return memberService.setInvite(apiSetInviteDto); } @ApiOperation(value = "代理申请信息") @GetMapping(value = "/agentApplyInfo") public FebsResponse agentApplyInfo() { return memberService.agentApplyInfo(); } @ApiOperation(value = "合伙人权益") @GetMapping(value = "/agentDetail") public FebsResponse agentDetail() { return memberService.agentDetail(); } @ApiOperation(value = "活动公告") @GetMapping(value = "/activityInfo") public FebsResponse activityInfo() { return memberService.activityInfo(); } @ApiOperation(value = "通过邀请链接领取优惠卷") @PostMapping(value = "/getCoupon") public FebsResponse getCoupon(@RequestBody GetCouponDto getCouponDto) { return memberService.getCoupon(getCouponDto); } @ApiOperation(value = "扫码推销员领取优惠卷") @PostMapping(value = "/scanCoupon") public FebsResponse scanCoupon(@RequestBody GetCouponDto getCouponDto) { return memberService.scanCoupon(getCouponDto); } @ApiOperation(value = "优惠卷列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = MallMemberCouponVo.class) }) @PostMapping(value = "/memberCoupon") public FebsResponse memberCoupon(@RequestBody MallMemberCouponDto mallMemberCouponDto) { return memberService.memberCoupon(mallMemberCouponDto); } @ApiOperation(value = "创建订单优惠卷列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = MallMemberCouponVo.class) }) @PostMapping(value = "/memberPayCoupon") public FebsResponse memberPayCoupon(@RequestBody MallMemberCouponDto mallMemberCouponDto) { return memberService.memberPayCoupon(mallMemberCouponDto); } @ApiOperation(value = "优惠卷详情", notes = "优惠卷详情") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = MallMemberCouponVo.class) }) @GetMapping(value = "/couponDetails/{id}") public FebsResponse couponDetails(@PathVariable("id") Long id) { return memberService.couponDetails(id); } @ApiOperation(value = "登录事件", notes = "登录事件") @GetMapping(value = "/birthdayEvent") public FebsResponse birthdayEvent() { Map birthdayEvent = mallVipBenefitsService.birthdayEvent(); return new FebsResponse().success().data(birthdayEvent); } @ApiOperation(value = "登录事件", notes = "登录事件") @GetMapping(value = "/loginEvent") public FebsResponse loginEvent() { Map loginEvent = memberService.loginEvent(); return new FebsResponse().success().data(loginEvent); } }