package com.yami.shop.api.controller.cdn;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.yami.shop.bean.model.CdnUserWallet;
|
import com.yami.shop.bean.param.CdnNodeInfoParam;
|
import com.yami.shop.bean.param.CdnWalletInfoParam;
|
import com.yami.shop.bean.param.MyCdnTeamParam;
|
import com.yami.shop.common.enums.WalletEnum;
|
import com.yami.shop.common.response.ServerResponseEntity;
|
import com.yami.shop.security.api.util.SecurityUtils;
|
import com.yami.shop.service.CdnBindService;
|
import com.yami.shop.service.CdnTeamRelationService;
|
import com.yami.shop.service.CdnUserWalletService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.math.BigDecimal;
|
|
@RestController
|
@RequestMapping("/p/cdn/index")
|
@Tag(name = "Cdn个人中心相关接口")
|
public class CdnIndexController {
|
@Autowired
|
private CdnTeamRelationService cdnTeamRelationService;
|
|
@Autowired
|
private CdnUserWalletService cdnUserWalletService;
|
|
@Autowired
|
private CdnBindService cdnBindService;
|
|
@GetMapping("/myTeam")
|
@Operation(summary = "我的团队", description = "我的团队")
|
@Parameters({
|
@Parameter(name = "userId",description = "用户id"),
|
@Parameter(name = "pattern", description = "模式 0托管 1自主")
|
})
|
public ServerResponseEntity<MyCdnTeamParam> getMyTeam(@RequestParam(name = "userId") String userId){
|
// 直推人数: 统计 pid = userId 的用户
|
// 团队人数:统计 pids 包含 userId 的用户
|
// 个人设备:统计个人设备数
|
// 团队设备:统计团队设备数
|
// 姓名,账号,等级,注册时间:在 user 表查询
|
// 团队设备:pids 包含 userId 的用户设备
|
MyCdnTeamParam myCdnTeamParam = cdnTeamRelationService.getMyCdnTeamInfo(userId);
|
return ServerResponseEntity.success(myCdnTeamParam);
|
}
|
|
/**
|
* 团队列表展示接口
|
*/
|
|
|
/**
|
* 个人中心展示数据
|
*/
|
@GetMapping("/getWalletInfo")
|
@Operation(summary = "获取个人中心钱包展示数据", description = "获取个人中心钱包展示数据")
|
@Parameters({
|
@Parameter(name = "userId",description = "用户id")
|
})
|
public ServerResponseEntity<CdnWalletInfoParam> getWalletInfo(){
|
String userId = SecurityUtils.getUser().getUserId();
|
// 查询钱包币种数额
|
CdnWalletInfoParam cdnWalletInfoParam = new CdnWalletInfoParam();
|
// 根据币种查询钱包相关币种余额
|
CdnUserWallet flow = cdnUserWalletService.getOne(Wrappers.lambdaQuery(CdnUserWallet.class)
|
.eq(CdnUserWallet::getUserId, userId)
|
.eq(CdnUserWallet::getWalletId, WalletEnum.FLOW.value()));
|
CdnUserWallet goldCowBean = cdnUserWalletService.getOne(Wrappers.lambdaQuery(CdnUserWallet.class)
|
.eq(CdnUserWallet::getUserId,userId)
|
.eq(CdnUserWallet::getWalletId, WalletEnum.GOLDCOWBEAN.value()));
|
CdnUserWallet luckPool = cdnUserWalletService.getOne(Wrappers.lambdaQuery(CdnUserWallet.class)
|
.eq(CdnUserWallet::getUserId,userId)
|
.eq(CdnUserWallet::getWalletId, WalletEnum.LUCKPOOL.value()));
|
CdnUserWallet integral = cdnUserWalletService.getOne(Wrappers.lambdaQuery(CdnUserWallet.class)
|
.eq(CdnUserWallet::getUserId,userId)
|
.eq(CdnUserWallet::getWalletId, WalletEnum.INTEGRAL.value()));
|
CdnUserWallet credit = cdnUserWalletService.getWalletByUserId(userId,WalletEnum.CREDIT.value());
|
CdnUserWallet alloy = cdnUserWalletService.getWalletByUserId(userId,WalletEnum.ALLOY.value());
|
BigDecimal b = new BigDecimal(0);
|
cdnWalletInfoParam.setFlow(flow != null ? flow.getMoney() : b);
|
cdnWalletInfoParam.setGoldCowBean(goldCowBean != null ? goldCowBean.getMoney() : b);
|
cdnWalletInfoParam.setLuckPool(luckPool != null ? luckPool.getMoney() : b);
|
cdnWalletInfoParam.setIntegral(integral != null ? integral.getMoney() : b);
|
cdnWalletInfoParam.setCredit(credit != null ? credit.getMoney() : b);
|
cdnWalletInfoParam.setAlloy(alloy != null ? alloy.getMoney() : b);
|
return ServerResponseEntity.success(cdnWalletInfoParam);
|
}
|
@GetMapping("/getNodeInfo")
|
@Operation(summary = "获取节点建设进度数据", description = "获取节点建设进度数据")
|
@Parameters({
|
@Parameter(name = "userId",description = "用户id"),
|
})
|
public ServerResponseEntity<CdnNodeInfoParam> getNodeInfo(@RequestParam(name = "userId") String userId){
|
return ServerResponseEntity.success(cdnBindService.getNodeInfo(userId));
|
}
|
|
}
|