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 @CrossOrigin("*") @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 = "H金劵转余额") @PostMapping(value = "/withdrawalScore") public FebsResponse withdrawalScore(@RequestBody @Validated WithdrawalScoreDto withdrawalScoreDto) { mallMemberWithdrawService.withdrawalScore(withdrawalScoreDto); 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 = "可提现金额 1:余额 2:H金劵") @GetMapping(value = "/canWithdrawal/{type}") public FebsResponse canWithdrawal(@PathVariable("type") int type) { return new FebsResponse().success().data(memberService.canMoney(type)); } @ApiOperation(value = "用户消费排名") @PostMapping(value = "/findRankList") public FebsResponse findRankList(@RequestBody RankListDto rankListDto) { // return new FebsResponse().success().data(memberService.findRankList(rankListDto)); return new FebsResponse().success(); } @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 = "/addMemberBank") public FebsResponse addMemberBank(@RequestBody AddMemberBankDto addMemberBankDto) { return memberService.addMemberBank(addMemberBankDto); } @ApiOperation(value = "银行卡列表", notes = "银行卡列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = MemberBankListVo.class) }) @PostMapping(value = "/memberBankList") public FebsResponse memberBankList(@RequestBody MemberBankListDto memberBankListDto) { return memberService.findMemberBankList(memberBankListDto); } @ApiOperation(value = "银行卡详情", notes = "银行卡详情") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = MemberBankListVo.class) }) @GetMapping(value = "/memberBankDetails/{id}") public FebsResponse memberBankDetails(@PathVariable("id") Long id) { return memberService.findBankDetailsById(id); } @ApiOperation(value = "更新银行卡") @PostMapping(value = "/updateMemberBank") public FebsResponse updateMemberBank(@RequestBody UpdateMemberBankDto updateMemberBankDto) { return memberService.updateMemberBank(updateMemberBankDto); } @ApiOperation(value = "删除银行卡", notes = "删除银行卡") @PostMapping(value = "/delMemberBank/{id}") public FebsResponse delMemberBank(@PathVariable("id") Long id) { return memberService.delMemberBank(id); } }