xiaoyong931011
2023-08-17 3f5070951e0125069cfe5ee335fcf8a674238138
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -69,6 +69,8 @@
    private final DappAccountMoneyChangeDao dappAccountMoneyChangeDao;
    private final MallAddressInfoMapper mallAddressInfoMapper;
    private final MallGoodsCategoryMapper mallGoodsCategoryMapper;
    private final PlatformBannerMapper platformBannerMapper;
    private final MallGoodsImagesMapper goodsImagesMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -399,6 +401,7 @@
                    teamChildListVo.setOrderCnt(mallAchieveRecords.size());
                }
            }
            myTeamVo.setTeam(list);
        }
        return myTeamVo;
    }
@@ -522,10 +525,12 @@
        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);
        Integer waitPayCnt = dappMemberDao.selectOrderCntByMemberIdAndStatus(member.getId(),1);
        Integer payCnt = dappMemberDao.selectOrderCntByMemberIdAndStatus(member.getId(),2);
        Integer cancelCnt = dappMemberDao.selectOrderCntByMemberIdAndStatus(member.getId(),3);
        dappMemberInfoVo.setWaitPayCnt(waitPayCnt);
        dappMemberInfoVo.setPayCnt(payCnt);
        dappMemberInfoVo.setCancelCnt(cancelCnt);
        return new FebsResponse().success().data(dappMemberInfoVo);
    }
@@ -616,6 +621,9 @@
    public MallGoodsListVo findGoodsDetailsById(Long id) {
        DappMemberEntity member = LoginUserUtil.getAppUser();
        MallGoodsListVo mallGoodsListVo = dappMemberDao.selectMallGoodsListVoById(id);
        List<String> images = goodsImagesMapper.selectGoodsImagesByGoodsId(id);
        mallGoodsListVo.setImages(images);
        return mallGoodsListVo;
    }
@@ -660,9 +668,10 @@
        mallOrderInfo.setAmount(totalAmount);
        mallOrderInfo.setStatus(MallOrderInfo.STATUS_WAIT);
        mallOrderInfo.setDeliverType(addOrderDto.getDeliverType());
        if(1 == addOrderDto.getDeliverType()){
            mallOrderInfo.setAddressId(addOrderDto.getAddressId());
        }
        mallOrderInfo.setAddressId(addOrderDto.getAddressId());
//        if(1 == addOrderDto.getDeliverType()){
//            mallOrderInfo.setAddressId(addOrderDto.getAddressId());
//        }
        mallOrderInfo.setOrderType(1);
        mallOrderInfoMapper.insert(mallOrderInfo);
        MallOrderItem mallOrderItem = new MallOrderItem();
@@ -803,7 +812,7 @@
                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);
        BigDecimal packageScorePrice = new BigDecimal(ObjectUtil.isEmpty(packageScorePriceDic) ? "0" : packageScorePriceDic.getValue()).setScale(8, BigDecimal.ROUND_DOWN);
        packageInfoVo.setPackageScorePrice(packageScorePrice);
        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
@@ -816,6 +825,9 @@
    public FebsResponse salePackage(SalePackageDto salePackageDto) {
        Long memberId = LoginUserUtil.getAppUser().getId();
        BigDecimal cnt = salePackageDto.getCnt();
        if(ObjectUtil.isEmpty(salePackageDto.getCnt())){
            throw new FebsException("请输入正确的数量");
        }
        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
        BigDecimal saleDoing = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId, FundFlowEnum.SALE_PACKAGE.getCode(), DappFundFlowEntity.WITHDRAW_STATUS_ING);
        if(BigDecimal.ZERO.compareTo(saleDoing) < 0){
@@ -945,6 +957,7 @@
    public IPage<MallAddressInfo> findAddressList(MallGoodsQueryDto queryDto) {
        Long memberId = LoginUserUtil.getAppUser().getId();
        Page<MallAddressInfo> page = new Page<>(queryDto.getPageNow(), queryDto.getPageSize());
        queryDto.setMemberId(memberId);
        return dappMemberDao.selectAddressListInPage(queryDto, page);
    }
@@ -1050,28 +1063,32 @@
                //获取每个人的业绩
                //业绩集合
                List<BigDecimal> list = new ArrayList<>();
                //总业绩
                BigDecimal teamIncomeMax = BigDecimal.ZERO;
                //所有直推团队,就是这个会员的所有区域的业绩。
                // 直推用户
                List<DappMemberEntity> childs = dappMemberDao.selectMemberInfoByRefererId(dappMemberEntity.getInviteId());
                List<String> childsInviteIds = childs.stream().map(DappMemberEntity::getInviteId).collect(Collectors.toList());
                if(CollUtil.isNotEmpty(childsInviteIds)){
                    for(String inviteId : childsInviteIds){
                        BigDecimal totalIncomeMember = dappMemberDao.selectAchieveRecordByInviteId(inviteId);
                        teamIncomeMax = teamIncomeMax.add(totalIncomeMember);
                        list.add(totalIncomeMember);
                    }
                    //去掉一个最大区的业绩
                    BigDecimal bigMax = list.stream().max(BigDecimal::compareTo).get();
                    teamIncomeMax = teamIncomeMax.subtract(bigMax);
                    MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
                    mallAchieveRecord.setMemberId(dappMemberEntity.getId());
                    mallAchieveRecord.setAmount(teamIncomeMax);
                    mallAchieveRecordList.add(mallAchieveRecord);
                BigDecimal teamIncomeMax = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(dappMemberEntity.getId(),
                        FundFlowEnum.ADD_AMOUNT_REAL.getCode(),
                        DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
                if(BigDecimal.ZERO.compareTo(teamIncomeMax) >= 0){
                    continue;
                }
                MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
                mallAchieveRecord.setMemberId(dappMemberEntity.getId());
                mallAchieveRecord.setAmount(teamIncomeMax);
                mallAchieveRecordList.add(mallAchieveRecord);
//                // 直推用户
//                List<DappMemberEntity> childs = dappMemberDao.selectMemberInfoByRefererId(dappMemberEntity.getInviteId());
//                List<String> childsInviteIds = childs.stream().map(DappMemberEntity::getInviteId).collect(Collectors.toList());
//                if(CollUtil.isNotEmpty(childsInviteIds)){
//                    for(String inviteId : childsInviteIds){
//                        BigDecimal totalIncomeMember = dappMemberDao.selectAchieveRecordByInviteId(inviteId);
//                        teamIncomeMax = teamIncomeMax.add(totalIncomeMember);
//                        list.add(totalIncomeMember);
//                    }
//                    //去掉一个最大区的业绩
//                    BigDecimal bigMax = list.stream().max(BigDecimal::compareTo).get();
//                    teamIncomeMax = teamIncomeMax.subtract(bigMax);
//                }
            }
            if(CollUtil.isNotEmpty(mallAchieveRecordList)){
                //按照小区业绩的多少排名
@@ -1223,6 +1240,53 @@
        return new FebsResponse().success();
    }
    @Override
    public IPage<MallAddressInfo> shopAddressList(MallGoodsQueryDto queryDto) {
        Long memberId = LoginUserUtil.getAppUser().getId();
        Page<MallAddressInfo> page = new Page<>(queryDto.getPageNow(), queryDto.getPageSize());
        queryDto.setMemberId(1L);
        return dappMemberDao.selectShopAddressListInPage(queryDto, page);
    }
    @Override
    public FebsResponse findAllBanner() {
        QueryWrapper<PlatformBanner> queryWrapper = new QueryWrapper<>();
        queryWrapper.orderByAsc("is_top");
        List<PlatformBanner> paymentMethodList = platformBannerMapper.selectList(queryWrapper);
        return new FebsResponse().success().data(paymentMethodList);
    }
    @Override
    public void setDefaultAddress(Long id) {
        Long memberId = LoginUserUtil.getAppUser().getId();
        MallAddressInfo addressInfo = mallAddressInfoMapper.selectById(id);
        if (addressInfo == null) {
            throw new FebsException("地址不存在");
        }
        this.baseMapper.updateIsDefault(MallAddressInfo.IS_YOUR_N, memberId, null);
        this.baseMapper.updateIsDefault(MallAddressInfo.IS_YOUR_Y, memberId, id);
    }
    @Override
    public void confirmOrder(Long id) {
        Long memberId = LoginUserUtil.getAppUser().getId();
        MallOrderInfo orderInfo = mallOrderInfoMapper.selectById(id);
        if (ObjectUtil.isEmpty(orderInfo)) {
            throw new FebsException("订单不存在");
        }
        if (orderInfo.getStatus() != MallOrderInfo.STATUS_PAY) {
            throw new FebsException("该状态不能确认收货");
        }
        if (orderInfo.getDeliverState() != MallOrderInfo.DELIVER_STATUS_DONE) {
            throw new FebsException("该状态不能确认收货");
        }
        orderInfo.setDeliverState(MallOrderInfo.DELIVER_STATUS_OVER);
        mallOrderInfoMapper.updateById(orderInfo);
    }
    public static List<List<String>> partitionList(List<String> originalList, int partitionSize) {
        List<List<String>> partitionedList = new ArrayList<>();
        int size = originalList.size();