bug
jiangqs
2023-08-31 dbff53150cdc807faa56c0d1a947d24b69f372b9
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -813,7 +813,8 @@
     * @param payerClientIp
     * @param goodsNameList
     */
    public void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
    private void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId,
                                 String goodsName, String outTradeNo,
                                 String orderId, BigDecimal payMoney,
                                 String openid, String payerClientIp, List<String> goodsNameList,Integer orderFrom){
@@ -1226,14 +1227,20 @@
        List<AppUserOrderPageVo> appUserOrderPageVoList = orderMapper.pageUserOrder(page, appUserOrderPageDto);
        if (appUserOrderPageVoList != null && !appUserOrderPageVoList.isEmpty()) {
            Long shopId;
            String activityId;
            Shop shop;
            HashSet<Long> set = new HashSet<Long>();
            HashSet<Long> shopSet = new HashSet<Long>();
            HashSet<String> activitySet = new HashSet<String>();
            for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) {
                shopId = appUserOrderPageVo.getShopId();
                set.add(shopId);
                shopSet.add(shopId);
                if(appUserOrderPageVo.getOrderFrom()==2){
                    activityId = appUserOrderPageVo.getActivityId();
                    activitySet.add(activityId);
                }
            }
            Map<Long, Shop> shopMap = new HashMap<>();
            set.forEach(shopIdLong -> {
            shopSet.forEach(shopIdLong -> {
                Shop shopTemp = remoteShopService.getShop(shopIdLong).getData();
                shopMap.put(shopIdLong, shopTemp);
            });
@@ -1625,7 +1632,10 @@
            payRecord.setPayType(merVerifyOrderDto.getPayType());
            payRecordService.save(payRecord);
        }
        //更新用户消费统计
        MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
        memberTotalChangeDto.setConsumeTime(nowTime);
        remoteMemberService.changeMemberTotal(memberTotalChangeDto);
        return merVerifyOrderVo;
    }
@@ -2308,7 +2318,10 @@
        if (StringUtils.isNotBlank(memberCouponSJ.toString())) {
            remoteCouponService.useMemberCoupon(memberCouponSJ.toString());
        }
        //更新会员消费记录
        MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
        memberTotalChangeDto.setConsumeTime(nowTime);
        remoteMemberService.changeMemberTotal(memberTotalChangeDto);
        //更新商户统计
        /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto();
        shopTotalChangeDto.setShopId(order.getShopId());
@@ -2369,7 +2382,7 @@
                    if (orderFrom == 1) {
                        orderFromDesc = "商城订单";
                    } else if (orderFrom == 2) {
                        orderFromDesc = "店铺砍价活动(" + merOrderPageVo.getActivityName() + ")";
                        orderFromDesc = "平台秒杀活动(" + merOrderPageVo.getActivityName() + ")";
                    } else {
                        orderFromDesc = "线下创建";
                    }
@@ -3447,9 +3460,11 @@
        }
        //订单分布
        //日期全部时固定为5天
        Boolean fillZero = false;
        if(StringUtils.isBlank(mgtBasePlatformDto.getStartDate())){
            mgtBasePlatformDto.setEndDate(DateUtils.getDate());
            mgtBasePlatformDto.setStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(new Date(),-4)));
            fillZero = true;
        }
        List<MgtMapTotalPlusVo> MgtMapIntTotalVos = orderMapper.listPlTotalOrderTotal(mgtBasePlatformDto);
        if (MgtMapIntTotalVos != null && MgtMapIntTotalVos.size() > 0) {
@@ -3461,10 +3476,17 @@
                orderTotalValue[i] = MgtMapIntTotalVos.get(i).getMapValueFirst();
                orderMoneyValue[i] = MgtMapIntTotalVos.get(i).getMapValueSecond();
            }
            MerOrderDistributionTotalVo merOrderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
            mgtTotalOrderTotalVo.setOrderTotalKey(merOrderDistributionTotalVo.getOrderTotalKey());
            mgtTotalOrderTotalVo.setOrderTotalValue(merOrderDistributionTotalVo.getOrderTotalValue());
            mgtTotalOrderTotalVo.setOrderMoneyValue(merOrderDistributionTotalVo.getOrderMoneyValue());
            if(fillZero){
                MerOrderDistributionTotalVo merOrderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
                mgtTotalOrderTotalVo.setOrderTotalKey(merOrderDistributionTotalVo.getOrderTotalKey());
                mgtTotalOrderTotalVo.setOrderTotalValue(merOrderDistributionTotalVo.getOrderTotalValue());
                mgtTotalOrderTotalVo.setOrderMoneyValue(merOrderDistributionTotalVo.getOrderMoneyValue());
            }else{
                mgtTotalOrderTotalVo.setOrderTotalKey(orderTotalKey);
                mgtTotalOrderTotalVo.setOrderTotalValue(orderTotalValue);
                mgtTotalOrderTotalVo.setOrderMoneyValue(orderMoneyValue);
            }
        }
        return mgtTotalOrderTotalVo;
    }
@@ -3497,6 +3519,10 @@
            }
        }*/
        List<Long> shopIdList = remoteShopService.listShopIdByPlTotal(mgtBasePlatformDto).getData();
        if(mgtBasePlatformDto.getShopId()!=null){
            shopIdList = new ArrayList<>();
            shopIdList.add(mgtBasePlatformDto.getShopId());
        }
        mgtBasePlatformDto.setShopIdList(shopIdList);
        //获取基础统计
        MgtPlTotalActivityTotalVo totalActivityTotalVo = orderMapper.getPlTotalActivityTotal(mgtBasePlatformDto);
@@ -3552,6 +3578,8 @@
                    mgtMapBigTotalVo.setMapKey("单品");
                    noGoods = false;
                }
                goodsTypeTotalList.add(mgtMapIntTotalVo);
                goodsTypeMoneyList.add(mgtMapBigTotalVo);
            }
            //补充缺少类型
            if(noCycle){
@@ -4091,6 +4119,7 @@
     */
    @Override
    public MerOrderDistributionTotalVo MerOrderDistributionTotalVo(MerTotalDto merTotalDto) {
        //获取查询的商户列表
        if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) {
            List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData();
            merTotalDto.setShopIdList(shopIdList);
@@ -4149,6 +4178,7 @@
        String[] orderTotalKey = new String[mgtMapTotalPlusVoList.size()];
        Integer[] orderTotalValue = new Integer[mgtMapTotalPlusVoList.size()];
        BigDecimal[] orderMoneyValue = new BigDecimal[mgtMapTotalPlusVoList.size()];
        //数据为空返回空数组
        if (mgtMapTotalPlusVoList != null && !mgtMapTotalPlusVoList.isEmpty()) {
            MgtMapTotalPlusVo mgtMapTotalPlusVo;
            for (int i = 0; i < mgtMapTotalPlusVoList.size(); i++) {
@@ -4157,6 +4187,7 @@
                orderTotalValue[i] = mgtMapTotalPlusVo.getMapValueFirst();
                orderMoneyValue[i] = mgtMapTotalPlusVo.getMapValueSecond();
            }
            //补充日期到近5日
            orderDistributionTotalVo = fillOrderTotalKeyAndValuesToRecentFiveDays(orderTotalKey,orderTotalValue,orderMoneyValue);
        }else{
            orderDistributionTotalVo.setOrderTotalKey(orderTotalKey);
@@ -4546,6 +4577,8 @@
            Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(), orderGoods.getGoodsId());
            if (bugGoodsNum == null || bugGoodsNum < 1) {
                goodsTotalChangeDto.setPersonNum(1);
            }else{
                goodsTotalChangeDto.setPersonNum(0);
            }
            goodsTotalChangeDtoList.add(goodsTotalChangeDto);
        }
@@ -4683,6 +4716,9 @@
        Boolean haveService = false;
        Boolean haveExperience = false;
        Boolean haveGoods = false;
        //商品统计回退
        List<GoodsTotalChangeDto> goodsTotalChangeDtoList = new ArrayList<>();
        GoodsTotalChangeDto goodsTotalChangeDto;
        List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(orderId);
        if (orderGoodsList != null && !orderGoodsList.isEmpty()) {
            StringJoiner memberCouponSJ = new StringJoiner(",");
@@ -4718,6 +4754,7 @@
                } else {
                    memberCouponSJ.add(orderGoods.getCouponId());
                }
                //会员统计更新
                switch (orderGoods.getGoodsType()) {
                    case 1:
                        cycleMoney = cycleMoney.add(orderGoods.getGoodsReceivableMoney());
@@ -4738,7 +4775,21 @@
                    default:
                        break;
                }
                //商品统计更新
                goodsTotalChangeDto = new GoodsTotalChangeDto();
                goodsTotalChangeDto.setGoodsId(orderGoods.getGoodsId());
                goodsTotalChangeDto.setChangeType(2);
                goodsTotalChangeDto.setChangeNum(orderGoods.getBuyNum());
                goodsTotalChangeDto.setMoney(orderGoods.getGoodsReceivableMoney());
                Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(), orderGoods.getGoodsId());
                if (bugGoodsNum == null || bugGoodsNum <= orderGoods.getBuyNum()) {
                    goodsTotalChangeDto.setPersonNum(1);
                }else{
                    goodsTotalChangeDto.setPersonNum(0);
                }
                goodsTotalChangeDtoList.add(goodsTotalChangeDto);
            }
            remoteGoodsService.changeGoodsTotal(goodsTotalChangeDtoList);
            //回退优惠券
            if (memberCouponSJ != null) {
                remoteCouponService.backMemberCoupon(memberCouponSJ.toString());
@@ -5424,17 +5475,6 @@
            for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) {
                userId = merOrderPageVo.getUserId();
                userIdSj.add(userId.toString());
                orderFrom = merOrderPageVo.getOrderFrom();
                if (orderFrom != null) {
                    if (orderFrom == 1) {
                        orderFromDesc = "商城订单";
                    } else {
                        orderFromDesc = "线下创建";
                    }
                } else {
                    orderFromDesc = "商城订单";
                }
                merOrderPageVo.setOrderFromDesc(orderFromDesc);
                if(merOrderPageVo.getUnPaidMoney().compareTo(zeroBig)<0){
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }