package cc.mrbird.febs.dapp.controller; import cc.mrbird.febs.common.annotation.EncryptEnable; import cc.mrbird.febs.common.configure.i18n.MessageSourceUtils; import cc.mrbird.febs.common.contants.AppContants; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.dapp.dto.*; import cc.mrbird.febs.dapp.entity.DappMemberEntity; import cc.mrbird.febs.dapp.service.DappMemberService; import cc.mrbird.febs.dapp.service.DappSystemService; import cc.mrbird.febs.dapp.service.DappWalletService; import cc.mrbird.febs.dapp.vo.ActiveNftListVo; import cc.mrbird.febs.dapp.vo.TeamListVo; import cc.mrbird.febs.dapp.vo.WalletInfoVo; 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.*; import javax.validation.Valid; /** * @author * @date 2022-03-17 **/ @Slf4j @EncryptEnable @RequiredArgsConstructor @CrossOrigin("*") @RestController @Api(value = "dapp接口", tags = "dapp接口") @RequestMapping(value = "/dapi/member") public class ApiDappMemberController { private final DappWalletService dappWalletService; private final DappSystemService dappSystemService; private final DappMemberService dappMemberService; private final RedisUtils redisUtils; @ApiOperation(value = "获取账户信息接口", notes = "获取账号信息接口") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = WalletInfoVo.class) }) @PostMapping(value = "/walletInfo") public FebsResponse walletInfo() { WalletInfoVo walletInfoVo = dappWalletService.walletInfo(); return new FebsResponse().success().data(walletInfoVo); } @ApiOperation(value = "转账", notes = "转账") @PostMapping(value = "/transfer") public FebsResponse transfer(@RequestBody TransferDto transferDto) { return new FebsResponse().success().data(dappWalletService.transfer(transferDto)); } @ApiOperation(value = "记录列表", notes = "记录列表") @PostMapping(value = "/recordInPage") public FebsResponse recordInPage(@RequestBody RecordInPageDto recordInPageDto) { return new FebsResponse().success().data(dappWalletService.recordInPage(recordInPageDto)); } @ApiOperation(value = "计算最新价", notes = "计算最新价") @PostMapping(value = "/calPrice") public FebsResponse calPrice(@RequestBody PriceDto priceDto) { return new FebsResponse().success().data(dappWalletService.calPrice(priceDto)); } @ApiOperation(value = "系统参数", notes = "系统参数") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = SystemDto.class) }) @GetMapping(value = "/system") public FebsResponse system() { return new FebsResponse().success().data(dappSystemService.system()); } @ApiOperation(value = "我的团队", notes = "我的团队") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = TeamListVo.class) }) @PostMapping(value = "/team") public FebsResponse team(@RequestBody TeamListDto teamListDto) { return new FebsResponse().success().data(dappMemberService.findTeamList(teamListDto)); } @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ActiveNftListVo.class) }) @ApiOperation(value = "开盲盒", notes = "开盲盒") @PostMapping(value = "/boxSurprise") public FebsResponse boxSurprise() { ActiveNftListVo data = dappWalletService.boxSurprise(); return new FebsResponse().success().data(data); } @ApiOperation(value = "激活卡牌", notes = "激活卡牌") @PostMapping(value = "/activeNft") public FebsResponse activeNft(@RequestBody @Valid ActiveDto activeDto) { dappWalletService.activeNft(activeDto); return new FebsResponse().success().message(MessageSourceUtils.getString("nft_active_002")); } @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ActiveNftListVo.class) }) @ApiOperation(value = "卡牌列表", notes = "卡牌列表") @PostMapping(value = "/findNftList") public FebsResponse findNftList() { return new FebsResponse().success().data(dappWalletService.findUnActiveNftList()); } @PostMapping(value = "/logout") public FebsResponse logout() { DappMemberEntity member = LoginUserUtil.getAppUser(); redisUtils.hdel(AppContants.REDIS_KEY_SIGN, member.getAddress()); return new FebsResponse().success(); } }