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.MallMemberPayment; import cc.mrbird.febs.mall.service.IApiMallMemberService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.ICommonService; import cc.mrbird.febs.mall.service.IMallMemberWithdrawService; import cc.mrbird.febs.mall.vo.*; 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; /** * @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; @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()); } }