xiaoyong931011
2023-06-20 8fe74ad372762785e8e52d3feb0bb1ead330ed87
src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -1,18 +1,24 @@
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.vo.MallMemberVo;
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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
 * @author wzy
@@ -20,12 +26,15 @@
 **/
@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({
@@ -47,4 +56,170 @@
    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);
    }
}