From c9551ed9098d91ddc477d4ccd9f98cf89900a463 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期日, 06 八月 2023 11:23:15 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 150 insertions(+), 14 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index 9d319da..7555d77 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -243,7 +243,7 @@ } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { discountPercent = appMemberCouponVo.getDiscountPercent(); goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN,2,BigDecimal.ROUND_HALF_UP); - discountMoney = goodsRealPrice.subtract(goodsTotalPrice); + discountMoney = goodsTotalPrice.subtract(goodsRealPrice); useCoupon = 1; userCouponIdSet.add(memberCouponId); appSureOrderGoodsVo.setMemberCouponId(memberCouponId); @@ -597,7 +597,7 @@ } else if (couponType == 2 && appMemberCouponVo.getDiscountPercent() != null) { discountPercent = appMemberCouponVo.getDiscountPercent(); goodsRealPrice = goodsTotalPrice.multiply(discountPercent).divide(BigDecimal.TEN,2, BigDecimal.ROUND_HALF_UP); - discountMoney = goodsRealPrice.subtract(goodsTotalPrice); + discountMoney = goodsTotalPrice.subtract(goodsRealPrice); useCoupon = 1; } else if (couponType == 3 && appMemberCouponVo.getDiscountMoney() != null) { discountMoney = appMemberCouponVo.getDiscountMoney(); @@ -648,6 +648,7 @@ orderGoods.setServiceNum(serviceNum); orderGoods.setGoodsType(goods.getGoodsType()); orderGoods.setGoodsName(goods.getGoodsName()); + orderGoods.setGoodsTag(goods.getGoodsTags()); orderGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); orderGoods.setGoodsPicture(goodsFile.getFileUrl()); // 保存订单商品 @@ -900,6 +901,7 @@ orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); orderGoods.setServiceNum(serviceNum); orderGoods.setGoodsType(goods.getGoodsType()); + orderGoods.setGoodsTag(goods.getGoodsTags()); orderGoods.setGoodsName(goods.getGoodsName()); orderGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); orderGoods.setGoodsPicture(goodsFile.getFileUrl()); @@ -1224,6 +1226,18 @@ merVerifyOrderVo.setPayTime(order.getPayTime()); merVerifyOrderVo.setUseTime(order.getUseTime()); merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); + merVerifyOrderVo.setPayType(order.getPayType()); + merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney()); + if(order.getPayType()==1){ + merVerifyOrderVo.setReceiveMoney(order.getPayMoney()); + }else{ + if(order.getOfflinePayMoney()!=null){ + merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney()); + }else{ + merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); + } + } + merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(order.getReceivableMoney())); // 根据订单用户ID获取用户信息 Member member = remoteMemberService.getMember(order.getUserId()).getData(); merVerifyOrderVo.setUserName(member.getRealName()); @@ -1302,6 +1316,7 @@ consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); + consumerGoods.setGoodsTag(appUserOrderGoodsPageVo.getGoodsTag()); consumerGoods.setCreateTime(nowTime); consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); @@ -1327,6 +1342,7 @@ consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); + consumerGoods.setGoodsTag(appUserOrderGoodsPageVo.getGoodsTag()); consumerGoods.setCreateTime(nowTime); consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); @@ -1353,6 +1369,18 @@ merVerifyOrderVo.setCreateTime(order.getCreateTime()); merVerifyOrderVo.setPayTime(order.getPayTime()); merVerifyOrderVo.setUseTime(order.getUseTime()); + merVerifyOrderVo.setPayType(order.getPayType()); + merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney()); + if(order.getPayType()==1){ + merVerifyOrderVo.setReceiveMoney(order.getPayMoney()); + }else{ + if(order.getOfflinePayMoney()!=null){ + merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney()); + }else{ + merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); + } + } + merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(order.getReceivableMoney())); Member member = remoteMemberService.getMember(order.getUserId()).getData(); merVerifyOrderVo.setUserName(member.getRealName()); merVerifyOrderVo.setUserMobile(member.getMobile()); @@ -1369,7 +1397,7 @@ payRecord.setOrderId(order.getOrderId()); payRecord.setPayMoney(merVerifyOrderDto.getRelPayMoney()); payRecord.setPayTime(new Date()); - payRecord.setPayType(2); + payRecord.setPayType(merVerifyOrderDto.getPayType()); payRecordService.save(payRecord); return merVerifyOrderVo; @@ -1455,6 +1483,7 @@ } consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(goods.getGoodsType()); + consumerGoods.setGoodsTag(goods.getGoodsTags()); consumerGoods.setCreateTime(new Date()); consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); goodsFile = remoteGoodsService.getGoodsFile(goods.getGoodsId()).getData(); @@ -1573,7 +1602,7 @@ @Override public List<MerMemberNoClearOrderVo> pageMerMemberNoClearOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto) { List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderMapper.pageMerMemberNoClearOrder(page, merMemberNoClearOrderDto.getMemberUserId()); - if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) { + /*if (merMemberNoClearOrderVoList != null && !merMemberNoClearOrderVoList.isEmpty()) { BigDecimal zeroBig = new BigDecimal("0.00"); for (MerMemberNoClearOrderVo merMemberNoClearOrderVo : merMemberNoClearOrderVoList) { merMemberNoClearOrderVo.setUnPaidMoney(merMemberNoClearOrderVo.getReceivableMoney().subtract(merMemberNoClearOrderVo.getPayMoney())); @@ -1581,7 +1610,7 @@ merMemberNoClearOrderVo.setUnPaidMoney(zeroBig); } } - } + }*/ return merMemberNoClearOrderVoList; } @@ -1608,7 +1637,7 @@ payRecord.setOrderId(order.getOrderId()); payRecord.setPayMoney(merCloseOrderDto.getPayMoney()); payRecord.setPayTime(new Date()); - payRecord.setPayType(2); + payRecord.setPayType(merCloseOrderDto.getPayType()); payRecordService.save(payRecord); } @@ -1766,6 +1795,7 @@ orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); orderGoods.setServiceNum(serviceNum); orderGoods.setGoodsType(goods.getGoodsType()); + orderGoods.setGoodsTag(goods.getGoodsTags()); orderGoods.setGoodsName(goods.getGoodsName()); orderGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); orderGoods.setGoodsPicture(goodsFile.getFileUrl()); @@ -1813,7 +1843,6 @@ order.setOrderRemark(merNewOrderDto.getOrderRemark()); order.setGoodsNum(goodsNum); order.setCreateTime(nowTime); - order.setPayTime(nowTime); order.setUseTime(nowTime); order.setUseUserId(merNewOrderDto.getUserId()); order.setPayMoney(merNewOrderDto.getPayMoney()); @@ -1851,6 +1880,7 @@ consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); + consumerGoods.setGoodsTag(appUserOrderGoodsPageVo.getGoodsTag()); consumerGoods.setCreateTime(nowTime); consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); @@ -1876,6 +1906,7 @@ consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); + consumerGoods.setGoodsTag(appUserOrderGoodsPageVo.getGoodsTag()); consumerGoods.setCreateTime(nowTime); consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); @@ -1921,6 +1952,18 @@ */ @Override public List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto) { + if(StringUtils.isNotBlank(merOrderPageDto.getKeyword())){ + MgtUserIdByKeywordDto userIdByKeywordDto = new MgtUserIdByKeywordDto(); + userIdByKeywordDto.setKeyword(merOrderPageDto.getKeyword()); + MgtUserIdByKeywordVo userIdByKeywordVo = remoteMemberService.getUserIdByKeyword(userIdByKeywordDto).getData(); + if(StringUtils.isNotBlank(userIdByKeywordVo.getUserIds())){ + List<Long> userIdList = Arrays.stream(userIdByKeywordVo.getUserIds().split(",")) + .map(Long::parseLong) + .collect(Collectors.toList()); + merOrderPageDto.setMemberUserIdList(userIdList); + merOrderPageDto.setMemberUserId(null); + } + } List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerOrder(page, merOrderPageDto); if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) { Long userId; @@ -1936,6 +1979,9 @@ if (orderFrom != null) { if (orderFrom == 1) { orderFromDesc = "商城订单"; + } else if(orderFrom == 2){ + + orderFromDesc = "店铺砍价活动("+merOrderPageVo.getActivityName()+")"; } else { orderFromDesc = "线下创建"; } @@ -1954,9 +2000,13 @@ Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { - merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getRealName()); - merOrderPageVo.setNickName(userMap.get(merOrderPageVo.getUserId()).getNickName()); - merOrderPageVo.setUserMobile(userMap.get(merOrderPageVo.getUserId()).getUserMobile()); + if(merOrderPageVo.getUserId()!=null&&userMap.get(merOrderPageVo.getUserId())!=null){ + merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getRealName()); + merOrderPageVo.setNickName(userMap.get(merOrderPageVo.getUserId()).getNickName()); + merOrderPageVo.setUserMobile(userMap.get(merOrderPageVo.getUserId()).getUserMobile()); + }else{ + log.debug("订单merOrderPageVo"+merOrderPageVo.getOrderId()+"缺少用户"); + } } } return merOrderPageVoList; @@ -2139,7 +2189,7 @@ } } MgtOrderTotal mgtOrderTotal = new MgtOrderTotal(); - MgtOrderTotal mgtOrderTotalFirst = orderMapper.totalOrderFirst(); + MgtOrderTotal mgtOrderTotalFirst = orderMapper.totalOrderFirst(mgtShopOrderPageDto); MgtOrderTotal mgtOrderTotalSecond = orderMapper.totalOrderSecond(mgtShopOrderPageDto); MgtOrderTotal mgtOrderTotalThird = orderMapper.totalOrderThird(mgtShopOrderPageDto); mgtOrderTotal.setOrderTotal(mgtOrderTotalFirst.getOrderTotal()); @@ -2322,7 +2372,11 @@ mgtOrderDetailVo.setCancelTime(order.getCancelTime()); mgtOrderDetailVo.setOrderRemark(order.getOrderRemark()); mgtOrderDetailVo.setShopId(order.getShopId()); - mgtOrderDetailVo.setShopName(shop.getShopName()); + if(shop!=null){ + mgtOrderDetailVo.setShopName(shop.getShopName()); + }else{ + mgtOrderDetailVo.setShopName("商户已被删除"); + } mgtOrderDetailVo.setVerifyTime(order.getUseTime()); //获取支付记录 List<MgtOrderPayListVo> orderPayListVoList = payRecordService.listMgtOrderPayVo(orderId); @@ -2340,6 +2394,8 @@ @Override public MgtBulletinBoardVo boardOrderTotal() { MgtBulletinBoardVo mgtBulletinBoardVo = orderMapper.boardOrderTotal(); + Integer activityUserTotal = orderMapper.activityUserTotal(); + mgtBulletinBoardVo.setActivityUserTotal(activityUserTotal); return mgtBulletinBoardVo; } @@ -3248,6 +3304,18 @@ @Override public MerTotalOrderVo totalMerOrder(MerOrderPageDto merOrderPageDto) { MerTotalOrderVo merTotalOrderVo = new MerTotalOrderVo(); + if(StringUtils.isNotBlank(merOrderPageDto.getKeyword())){ + MgtUserIdByKeywordDto userIdByKeywordDto = new MgtUserIdByKeywordDto(); + userIdByKeywordDto.setKeyword(merOrderPageDto.getKeyword()); + MgtUserIdByKeywordVo userIdByKeywordVo = remoteMemberService.getUserIdByKeyword(userIdByKeywordDto).getData(); + if(StringUtils.isNotBlank(userIdByKeywordVo.getUserIds())){ + List<Long> userIdList = Arrays.stream(userIdByKeywordVo.getUserIds().split(",")) + .map(Long::parseLong) + .collect(Collectors.toList()); + merOrderPageDto.setMemberUserIdList(userIdList); + merOrderPageDto.setMemberUserId(null); + } + } merTotalOrderVo = orderMapper.totalMerOrder(merOrderPageDto); return merTotalOrderVo; } @@ -3476,6 +3544,9 @@ } if (haveGoods) { memberTotalChangeDto.setGoodsOrderChange(1); + } + if(order.getOrderFrom()==2){ + memberTotalChangeDto.setActivityTime(order.getCreateTime()); } // 更新会员统计信息 remoteMemberService.changeMemberTotal(memberTotalChangeDto); @@ -3921,14 +3992,14 @@ delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME); } delayTime = delayTime + 5; - Date checkTime = DateUtils.addMinutes(new Date(),delayTime); + Date checkTime = DateUtils.addMinutes(new Date(),-delayTime); LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Order::getDelFlag,0); queryWrapper.lt(Order::getCreateTime,checkTime); queryWrapper.eq(Order::getOrderStatus,1); List<Order> orderList = this.list(queryWrapper); if(orderList!=null&&!orderList.isEmpty()){ - for(Order order: orderList){ + for(Order order: orderList){ autoTimeCancelOrder(order); } } @@ -3989,4 +4060,69 @@ } } } + + /** + * @description 获取商户订单统计 + * @author jqs + * @date 2023/8/4 10:25 + * @param mgtShopAllOrderPageDto + * @return MgtShopAllOrderTotal + */ + @Override + public MgtShopAllOrderTotal getMgtShopAllOrderTotal(MgtShopAllOrderPageDto mgtShopAllOrderPageDto){ + MgtShopAllOrderTotal shopAllOrderTotal = orderMapper.getMgtShopAllOrderTotal(mgtShopAllOrderPageDto); + return shopAllOrderTotal; + } + + /** + * 分页获取会员消费记录 + * @param merOrderPageDto + * @return + */ + @Override + public List<MerOrderPageVo> pageMerMemberPayOrder(Page page,MerMemberNoClearOrderDto merOrderPageDto){ + List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerMemberPayOrder(page, merOrderPageDto); + if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) { + Long userId; + Member member; + Integer orderFrom; + String orderFromDesc; + BigDecimal zeroBig = new BigDecimal("0.00"); + StringJoiner userIdSj = new StringJoiner(","); + 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); + merOrderPageVo.setUnPaidMoney(merOrderPageVo.getPayMoney().subtract(merOrderPageVo.getReceiveMoney())); + if (merOrderPageVo.getUnPaidMoney() == null) { + merOrderPageVo.setUnPaidMoney(zeroBig); + } + } + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(userIdSj.toString()); + List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData(); + Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() + .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); + for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { + if(merOrderPageVo.getUserId()!=null&&userMap.get(merOrderPageVo.getUserId())!=null){ + merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getRealName()); + merOrderPageVo.setNickName(userMap.get(merOrderPageVo.getUserId()).getNickName()); + merOrderPageVo.setUserMobile(userMap.get(merOrderPageVo.getUserId()).getUserMobile()); + }else{ + log.debug("订单merOrderPageVo"+merOrderPageVo.getOrderId()+"缺少用户"); + } + } + } + return merOrderPageVoList; + } } -- Gitblit v1.7.1