package com.xcong.excoin.modules.yunding.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper; import com.xcong.excoin.modules.yunding.entity.BasicSettingEntity; import com.xcong.excoin.modules.yunding.entity.YdOrderEntity; import com.xcong.excoin.modules.yunding.entity.YdProductEntity; import com.xcong.excoin.modules.yunding.mapper.BasicSettingMapper; import com.xcong.excoin.modules.yunding.service.IBasicSettingService; import com.xcong.excoin.modules.yunding.vo.YdAgentOrderVo; import com.xcong.excoin.modules.yunding.vo.YdMemberVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class BasicSettingServiceImpl extends ServiceImpl implements IBasicSettingService { @Resource private BasicSettingMapper basicSettingMapper; @Resource private MemberWalletCoinMapper memberWalletCoinMapper; @Override public IPage getOrderList(YdOrderEntity ydOrderEntity, QueryRequest request) { log.info("产品订单列表"); Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage ydOrderEntitys = basicSettingMapper.getOrderList(page, ydOrderEntity); return ydOrderEntitys; } @Override public IPage getYdProductList(YdProductEntity ydProductEntity, QueryRequest request) { log.info("产品列表"); Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage ydProductEntitys = basicSettingMapper.getYdProductList(page, ydProductEntity); return ydProductEntitys; } @Override public IPage getYdMemberList(YdOrderEntity ydOrderEntity, QueryRequest request) { log.info("会员算力查询"); Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage ydMemberVos = basicSettingMapper.getYdMemberList(page, ydOrderEntity); List records = ydMemberVos.getRecords(); if(CollUtil.isNotEmpty(records)){ for(YdMemberVo ydMemberVo : records){ long memberId = ydMemberVo.getId(); int quantityReady = basicSettingMapper.selectPowerByMemberIdAndState(memberId,YdOrderEntity.ORDER_STATE_READY); ydMemberVo.setQuantityReady(quantityReady); int quantityWork = basicSettingMapper.selectPowerByMemberIdAndState(memberId,YdOrderEntity.ORDER_STATE_WORK); ydMemberVo.setQuantityWork(quantityWork); int quantityEnd = basicSettingMapper.selectPowerByMemberIdAndState(memberId,YdOrderEntity.ORDER_STATE_END); ydMemberVo.setQuantityEnd(quantityEnd); BigDecimal totalUsed = basicSettingMapper.selectAmountByMemberId(memberId,1); ydMemberVo.setTotalUsed(totalUsed == null ? BigDecimal.ZERO : totalUsed); BigDecimal agentUsed = basicSettingMapper.selectAmountByMemberId(memberId,2); ydMemberVo.setAgentUsed(agentUsed == null ? BigDecimal.ZERO : agentUsed); MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId, "USDT"); if(ObjectUtil.isNotEmpty(memberWalletCoinEntity)){ ydMemberVo.setAvailableBalance(memberWalletCoinEntity.getAvailableBalance() == null ? BigDecimal.ZERO : memberWalletCoinEntity.getAvailableBalance()); }else{ ydMemberVo.setAvailableBalance(BigDecimal.ZERO); } BigDecimal inBalance = basicSettingMapper.selectChargeAmountByMemberIdAndStatus(memberId,1); ydMemberVo.setInBalance(inBalance == null ? BigDecimal.ZERO : inBalance); BigDecimal outBalance = basicSettingMapper.selectWithdrawAmountByMemberIdAndStatusAndIsInside(memberId,2,"N"); ydMemberVo.setOutBalance(outBalance == null ? BigDecimal.ZERO : outBalance); BigDecimal returnAgent = basicSettingMapper.selectAgentReturnByMemberId(memberId); ydMemberVo.setReturnAgent(returnAgent == null ? BigDecimal.ZERO : returnAgent); BigDecimal totalProfit = basicSettingMapper.selectTotalProfitByMemberIdAndType(memberId,1); ydMemberVo.setTotalProfit(totalProfit); } } return ydMemberVos; } @Override public IPage getAgentOrderList(YdOrderEntity ydOrderEntity, QueryRequest request) { log.info("代理订单列表"); Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage ydOrderEntitys = basicSettingMapper.getAgentOrderList(page, ydOrderEntity); return ydOrderEntitys; } @Override public IPage seeAgentReturn(QueryRequest request, MemberEntity memberEntity) { log.info("会员算力查询---返利详情"); Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage memberAccountMoneyChangeEntitys = basicSettingMapper.seeAgentReturn(page, memberEntity); return memberAccountMoneyChangeEntitys; } @Override public IPage seeReturn(QueryRequest request, MemberEntity memberEntity) { log.info("会员算力查询---挖矿详情"); Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage memberAccountMoneyChangeEntitys = basicSettingMapper.seeReturn(page, memberEntity); return memberAccountMoneyChangeEntitys; } @Override public IPage seeOrder(QueryRequest request, MemberEntity memberEntity) { log.info("会员算力查询---订单详情"); Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage ydOrderEntitys = basicSettingMapper.seeOrder(page, memberEntity); return ydOrderEntitys; } }