From 657d6ca995fade9e0f23002c54263f1c972a254f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 14 Aug 2023 15:16:33 +0800
Subject: [PATCH] 后台修改
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java | 256 ++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 224 insertions(+), 32 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 1f10d5c..e8b8d60 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -11,10 +11,7 @@
import cc.mrbird.febs.dapp.contract.andao.AndaoContractMain;
import cc.mrbird.febs.dapp.dto.*;
import cc.mrbird.febs.dapp.entity.*;
-import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
-import cc.mrbird.febs.dapp.enumerate.FundFlowEnum;
-import cc.mrbird.febs.dapp.enumerate.MemberLevelEnum;
-import cc.mrbird.febs.dapp.enumerate.PoolEnum;
+import cc.mrbird.febs.dapp.enumerate.*;
import cc.mrbird.febs.dapp.mapper.*;
import cc.mrbird.febs.dapp.service.DappMemberService;
import cc.mrbird.febs.dapp.vo.*;
@@ -37,6 +34,7 @@
import org.web3j.utils.Strings;
import java.math.BigDecimal;
+import java.math.BigInteger;
import java.util.*;
import java.util.stream.Collectors;
@@ -68,6 +66,8 @@
private final MallOrderInfoMapper mallOrderInfoMapper;
private final MallOrderItemMapper mallOrderItemMapper;
private final MallAchieveRecordMapper mallAchieveRecordMapper;
+ private final DappAccountMoneyChangeDao dappAccountMoneyChangeDao;
+ private final MallAddressInfoMapper mallAddressInfoMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -148,7 +148,7 @@
int nodeType = 0;
//
if (!"asdf4321".equals(connectDto.getInviteId())) {
- DappMemberEntity parent = dappMemberDao.selectByAddress(connectDto.getInviteId(), null);
+ DappMemberEntity parent = dappMemberDao.selectMemberInfoByInviteId(connectDto.getInviteId());
if (parent == null) {
throw new FebsException("recommender is not exist");
}
@@ -208,27 +208,17 @@
member.setCurrentUser(currentUser.getUserId());
}
IPage<DappMemberEntity> dappMemberEntityIPage = dappMemberDao.selectInPage(member, page);
- List<DappMemberEntity> records = dappMemberEntityIPage.getRecords();
- if(CollUtil.isNotEmpty(records)){
- for(DappMemberEntity memberEntity : records){
- Long memberId = memberEntity.getId();
- //直推收益
- BigDecimal directProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,3,2);
- memberEntity.setDirectProfit(directProfit);
- //购买节点数量
- List<DappMemberNodeVo> dappMemberNodeVos = dappMemberNodeMapper.selectListByMemberId(memberId);
- memberEntity.setMemberNodeCnt(CollUtil.isEmpty(dappMemberNodeVos) ? 0 : dappMemberNodeVos.size());
-
- BigDecimal memberNodeSumPrice = BigDecimal.ZERO;
- if(CollUtil.isNotEmpty(dappMemberNodeVos)){
- for(DappMemberNodeVo dappMemberNodeVo : dappMemberNodeVos){
- BigDecimal nodePrice = dappMemberNodeVo.getNodePrice();
- memberNodeSumPrice = memberNodeSumPrice.add(nodePrice);
- }
- }
- memberEntity.setMemberNodeSumPrice(memberNodeSumPrice.setScale(8,BigDecimal.ROUND_DOWN));
- }
- }
+// List<DappMemberEntity> records = dappMemberEntityIPage.getRecords();
+// if(CollUtil.isNotEmpty(records)){
+// for(DappMemberEntity memberEntity : records){
+// Long memberId = memberEntity.getId();
+// DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberId);
+// memberEntity.setCoinAmount(ObjectUtil.isEmpty(dappWalletCoinEntity) ? BigDecimal.ZERO : dappWalletCoinEntity.getAvailableAmount());
+//
+// DappWalletMineEntity dappWalletMineEntity = dappWalletMineDao.selectByMemberId(memberId);
+// memberEntity.setScoreAmount(ObjectUtil.isEmpty(dappWalletMineEntity) ? BigDecimal.ZERO : dappWalletMineEntity.getAvailableAmount());
+// }
+// }
return dappMemberEntityIPage;
}
@@ -531,6 +521,10 @@
DappWalletMineEntity dappWalletMineEntity = dappWalletMineDao.selectByMemberId(member.getId());
dappMemberInfoVo.setScore(ObjectUtil.isEmpty(dappWalletMineEntity) ? BigDecimal.ZERO : dappWalletMineEntity.getTotalAmount());
+ QueryWrapper<MallOrderInfo> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("status", 1);
+ Integer selectCount = mallOrderInfoMapper.selectCount(objectQueryWrapper);
+ dappMemberInfoVo.setWaitPayCnt(selectCount);
return new FebsResponse().success().data(dappMemberInfoVo);
}
@@ -553,8 +547,7 @@
if(ObjectUtil.isEmpty(dappMemberEntity)) {
return new FebsResponse().fail().message("会员信息不存在");
}
- dappMemberEntity.setNodeType(1);
-// dappMemberEntity.setAccountType(MemberLevelEnum.NODE_5.getType());
+ dappMemberEntity.setActiveStatus(1);
dappMemberDao.updateById(dappMemberEntity);
return new FebsResponse().success();
}
@@ -565,8 +558,7 @@
if(ObjectUtil.isEmpty(dappMemberEntity)) {
return new FebsResponse().fail().message("会员信息不存在");
}
- dappMemberEntity.setNodeType(2);
- dappMemberEntity.setAccountType(MemberLevelEnum.MEMBER.getType());
+ dappMemberEntity.setActiveStatus(2);
dappMemberDao.updateById(dappMemberEntity);
return new FebsResponse().success();
}
@@ -608,6 +600,14 @@
MallOrderListVo mallOrderListVo = dappMemberDao.selectMallOrderListVoById(id);
List<MallOrderItemVo> mallOrderItemVoList = dappMemberDao.selectMallOrderItemVoByOrderId(id);
mallOrderListVo.setItems(mallOrderItemVoList);
+ long addressId = ObjectUtil.isEmpty(mallOrderListVo.getAddressId()) ? 0L : mallOrderListVo.getAddressId();
+ MallAddressInfo mallAddressInfo = mallAddressInfoMapper.selectById(addressId);
+ if(ObjectUtil.isNotEmpty(mallAddressInfo)){
+ mallOrderListVo.setName(mallAddressInfo.getName());
+ mallOrderListVo.setPhone(mallAddressInfo.getPhone());
+ mallOrderListVo.setArea(mallAddressInfo.getArea());
+ mallOrderListVo.setAddress(mallAddressInfo.getAddress());
+ }
return mallOrderListVo;
}
@@ -622,6 +622,7 @@
@Transactional
public Long createOrder(AddOrderDto addOrderDto) {
DappMemberEntity member = LoginUserUtil.getAppUser();
+// DappMemberEntity member = dappMemberDao.selectById(1L);
/**
* 1、商品是否上架
* 2、用户余额是否足够
@@ -657,6 +658,10 @@
mallOrderInfo.setOrderTime(DateUtil.date());
mallOrderInfo.setAmount(totalAmount);
mallOrderInfo.setStatus(MallOrderInfo.STATUS_WAIT);
+ mallOrderInfo.setDeliverType(addOrderDto.getDeliverType());
+ if(1 == addOrderDto.getDeliverType()){
+ mallOrderInfo.setAddressId(addOrderDto.getAddressId());
+ }
mallOrderInfo.setOrderType(1);
mallOrderInfoMapper.insert(mallOrderInfo);
MallOrderItem mallOrderItem = new MallOrderItem();
@@ -673,7 +678,8 @@
@Override
@Transactional
public void cancelOrder(Long id) {
- DappMemberEntity member = LoginUserUtil.getAppUser();
+// DappMemberEntity member = LoginUserUtil.getAppUser();
+ DappMemberEntity member = dappMemberDao.selectById(1L);
MallOrderInfo orderInfo = mallOrderInfoMapper.selectById(id);
if (ObjectUtil.isEmpty(orderInfo)) {
throw new FebsException("订单异常");
@@ -692,6 +698,7 @@
@Transactional
public void payOrder(Long id) {
DappMemberEntity member = LoginUserUtil.getAppUser();
+// DappMemberEntity member = dappMemberDao.selectById(1L);
MallOrderInfo orderInfo = mallOrderInfoMapper.selectById(id);
if (ObjectUtil.isEmpty(orderInfo)) {
throw new FebsException("订单异常");
@@ -747,14 +754,16 @@
String payOrderNo = MallUtils.getOrderNum("PAY");
orderInfo.setPayOrderNo(payOrderNo);
orderInfo.setPayMethod("余额支付");
- orderInfo.setPayResult("成功");
+ orderInfo.setPayResult(1);
orderInfo.setStatus(MallOrderInfo.STATUS_PAY);
+ orderInfo.setDeliverState(MallOrderInfo.DELIVER_STATUS_WAIT);
mallOrderInfoMapper.updateById(orderInfo);
/**
* 更新用户余额
*/
dappWalletCoinDao.reduceTotalAndAvailableByMemberId(member.getId(),totalAmount);
DappFundFlowEntity donateScoreFlow = new DappFundFlowEntity(
+ AccountFlowEnum.AMOUNT.getCode(),
member.getId(),
totalAmount.negate(),
FundFlowEnum.PAY_ORDER.getCode(),
@@ -762,6 +771,7 @@
BigDecimal.ZERO,
payOrderNo,
id);
+ dappFundFlowDao.insert(donateScoreFlow);
/**
* 支付成功,消费后成有效账户后可分享(有效用户可推广)
@@ -777,6 +787,188 @@
chainProducer.sendAutoLevelUpTeamMsg(member.getId());
}
+ @Override
+ public FebsResponse packageInfo() {
+ Long memberId = LoginUserUtil.getAppUser().getId();
+ PackageInfoVo packageInfoVo = new PackageInfoVo();
+ DataDictionaryCustom packageTotalScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
+ DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode()
+ );
+ BigDecimal packageTotalScore = new BigDecimal(ObjectUtil.isEmpty(packageTotalScoreDic) ? "0" : packageTotalScoreDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+ packageInfoVo.setPackageTotalScore(packageTotalScore);
+
+ DataDictionaryCustom packageScorePriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
+ DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode()
+ );
+ BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(2, BigDecimal.ROUND_DOWN);
+ packageInfoVo.setPackageScorePrice(packageScorePrice);
+
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+ BigDecimal balance = dappMemberEntity.getBalance();
+ packageInfoVo.setPackageMemberScore(balance);
+ return new FebsResponse().success().data(packageInfoVo);
+ }
+
+ @Override
+ public FebsResponse salePackage(SalePackageDto salePackageDto) {
+ Long memberId = LoginUserUtil.getAppUser().getId();
+ BigDecimal cnt = salePackageDto.getCnt();
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+ BigDecimal saleDoing = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId, FundFlowEnum.SALE_PACKAGE.getCode(), DappFundFlowEntity.WITHDRAW_STATUS_ING);
+ if(BigDecimal.ZERO.compareTo(saleDoing) < 0){
+ throw new FebsException("正在进行中,请稍后再试");
+ }
+ BigDecimal balance = dappMemberEntity.getBalance();
+ if(BigDecimal.ZERO.compareTo(cnt) >= 0){
+ throw new FebsException("资产不足");
+ }
+ if(cnt.compareTo(balance) > 0){
+ throw new FebsException("资产不足");
+ }
+ //生成一条资金流水
+ DappFundFlowEntity scoreFlow = new DappFundFlowEntity(
+ memberId,
+ cnt,
+ FundFlowEnum.SALE_PACKAGE.getCode(),
+ DappFundFlowEntity.WITHDRAW_STATUS_ING,
+ BigDecimal.ZERO);
+ dappFundFlowDao.insert(scoreFlow);
+
+ BigDecimal subtract = balance.subtract(cnt);
+ dappMemberEntity.setBalance(subtract);
+ dappMemberDao.updateById(dappMemberEntity);
+
+ chainProducer.sendSalePackageMsg(scoreFlow.getId());
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse updateSystemPay(MallSystemPayDto mallSystemPayDto) {
+ Long memberId = mallSystemPayDto.getId();
+ DappMemberEntity mallMember = dappMemberDao.selectById(memberId);
+ if(ObjectUtil.isEmpty(mallMember)){
+ return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
+ }
+
+ BigDecimal bigDecimal = mallSystemPayDto.getAddBalance();
+
+ Integer type = mallSystemPayDto.getType();
+ if (type == 1) {
+ dappWalletCoinDao.addTotalAndaddAvailableByMemberId(memberId,bigDecimal);
+ //插入流水
+ DappFundFlowEntity amountFlow = new DappFundFlowEntity(
+ memberId,
+ bigDecimal,
+ FundFlowEnum.SYSTEM_AMOUNT.getCode(),
+ DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+ BigDecimal.ZERO);
+ dappFundFlowDao.insert(amountFlow);
+ } else if (type == 2) {
+ dappWalletMineDao.addTotalAndaddAvailableById(bigDecimal,memberId);
+ //插入流水
+ DappFundFlowEntity amountFlow = new DappFundFlowEntity(
+ memberId,
+ bigDecimal,
+ FundFlowEnum.SYSTEM_SCORE.getCode(),
+ DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+ BigDecimal.ZERO);
+ dappFundFlowDao.insert(amountFlow);
+ } else if (type == 3) {
+ BigDecimal balance = mallMember.getBalance();
+ balance = balance.add(bigDecimal);
+ mallMember.setBalance(balance);
+ dappMemberDao.updateById(mallMember);
+ //插入流水
+ DappFundFlowEntity amountFlow = new DappFundFlowEntity(
+ memberId,
+ bigDecimal,
+ FundFlowEnum.SYSTEM_PACKAGE.getCode(),
+ DappFundFlowEntity.WITHDRAW_STATUS_AGREE,
+ BigDecimal.ZERO);
+ dappFundFlowDao.insert(amountFlow);
+ } else {
+ throw new FebsException("参数错误");
+ }
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public IPage<MemberMoneyFlowVo> memberMoneyFlow(QueryRequest request, DappMemberEntity dappMemberEntity) {
+ Page<MemberMoneyFlowVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberMoneyFlowVo> memberMoneyFlowVos = dappAccountMoneyChangeDao.selectMemberMoneyFlowInPage(page, dappMemberEntity);
+ return memberMoneyFlowVos;
+ }
+
+ @Override
+ public void delOrder(Long id) {
+ Long memberId = LoginUserUtil.getAppUser().getId();
+
+ mallOrderInfoMapper.deleteById(id);
+ QueryWrapper<MallOrderItem> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("order_id", id);
+ List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(mallOrderItems)){
+ for(MallOrderItem mallOrderItem : mallOrderItems){
+ mallOrderItemMapper.deleteById(mallOrderItem.getId());
+ }
+ }
+ }
+
+ @Override
+ public void createAddress(CreateAddressDto createAddressDto) {
+ Long memberId = LoginUserUtil.getAppUser().getId();
+ MallAddressInfo mallAddressInfo = new MallAddressInfo();
+ mallAddressInfo.setMemberId(memberId);
+ mallAddressInfo.setName(createAddressDto.getName());
+ mallAddressInfo.setPhone(createAddressDto.getPhone());
+ mallAddressInfo.setArea(createAddressDto.getArea());
+ mallAddressInfo.setAddress(createAddressDto.getAddress());
+ mallAddressInfo.setIsDefault(1);
+ mallAddressInfoMapper.insert(mallAddressInfo);
+ }
+
+ @Override
+ public void delAddress(Long id) {
+ Long memberId = LoginUserUtil.getAppUser().getId();
+ MallAddressInfo mallAddressInfo = mallAddressInfoMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallAddressInfo)){
+ throw new FebsException("地址不存在");
+ }
+ mallAddressInfo.setIsDefault(2);
+ mallAddressInfoMapper.updateById(mallAddressInfo);
+ }
+
+ @Override
+ public IPage<MallAddressInfo> findAddressList(MallGoodsQueryDto queryDto) {
+ Long memberId = LoginUserUtil.getAppUser().getId();
+ Page<MallAddressInfo> page = new Page<>(queryDto.getPageNow(), queryDto.getPageSize());
+ return dappMemberDao.selectAddressListInPage(queryDto, page);
+ }
+
+ @Override
+ public MallAddressInfo addressDetails(Long id) {
+ Long memberId = LoginUserUtil.getAppUser().getId();
+ MallAddressInfo mallAddressInfo = mallAddressInfoMapper.selectById(id);
+ return mallAddressInfo;
+ }
+
+ @Override
+ public void updateAddress(CreateAddressDto createAddressDto) {
+ Long memberId = LoginUserUtil.getAppUser().getId();
+
+ MallAddressInfo mallAddressInfo = mallAddressInfoMapper.selectById(createAddressDto.getId());
+ if(ObjectUtil.isEmpty(mallAddressInfo)){
+ throw new FebsException("地址不存在");
+ }
+ mallAddressInfo.setName(createAddressDto.getName());
+ mallAddressInfo.setPhone(createAddressDto.getPhone());
+ mallAddressInfo.setArea(createAddressDto.getArea());
+ mallAddressInfo.setAddress(createAddressDto.getAddress());
+ mallAddressInfoMapper.updateById(mallAddressInfo);
+ }
+
public static List<List<String>> partitionList(List<String> originalList, int partitionSize) {
List<List<String>> partitionedList = new ArrayList<>();
int size = originalList.size();
--
Gitblit v1.9.1