From 4b759541dfa1de220f176b5688e0e46b3414e388 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 18 九月 2023 18:08:28 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 84 ++++++++++++++++++++++++++++-------------- 1 files changed, 56 insertions(+), 28 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 fb7a43d..8635275 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 @@ -1211,9 +1211,9 @@ if (appUserOrderPageVoList != null && !appUserOrderPageVoList.isEmpty()) { Long shopId; String activityId; - Shop shop; HashSet<Long> shopSet = new HashSet<Long>(); HashSet<String> activitySet = new HashSet<String>(); + // 遍历订单列表,获取店铺ID和活动ID for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) { shopId = appUserOrderPageVo.getShopId(); shopSet.add(shopId); @@ -1222,22 +1222,25 @@ activitySet.add(activityId); } } - Map<Long, Shop> shopMap = new HashMap<>(); - shopSet.forEach(shopIdLong -> { - Shop shopTemp = remoteShopService.getShop(shopIdLong).getData(); - shopMap.put(shopIdLong, shopTemp); - }); + String shopJoinedString = String.join(",", shopSet.stream().map(Object::toString).collect(Collectors.toList())); + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(shopJoinedString); + List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); + Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() + .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); + MgtSimpleShopVo simpleShopVo; Integer delayTime = 30; if (redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)) { delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME); } + //处理订单回显 for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) { if(member.getBindingFlag()==0&&appUserOrderPageVo.getOrderFrom()==2){ appUserOrderPageVo.setShopName("全部店铺"); }else{ - shop = shopMap.get(appUserOrderPageVo.getShopId()); - appUserOrderPageVo.setShopName(shop.getShopName()); - appUserOrderPageVo.setShopServicePhone(shop.getShopServicePhone()); + simpleShopVo = shopMap.get(appUserOrderPageVo.getShopId()); + appUserOrderPageVo.setShopName(simpleShopVo.getShopName()); + appUserOrderPageVo.setShopServicePhone(simpleShopVo.getShopServicePhone()); if (appUserOrderPageVo.getShopId().equals(appUserOrderPageDto.getShopId())) { appUserOrderPageVo.setSameShop(1); } else { @@ -1830,8 +1833,23 @@ payRecord.setPayType(merVerifyOrderDto.getPayType()); payRecordService.save(payRecord); } - //更新用户消费统计 + //更新用户积分和消费统计 MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); + memberTotalChangeDto.setUserId(order.getUserId()); + // 如果存在积分兑换比例,则计算积分 + if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) { + Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL); + BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue); + BigDecimal integralBig = moneyValueBig.multiply(order.getOnlinePayMoney()).setScale(0,BigDecimal.ROUND_HALF_UP); + Integer integral = Integer.valueOf(integralBig.toString()); + if(integral>0){ + memberTotalChangeDto.setChangeIntegral(integral); + memberTotalChangeDto.setTypeIntegral(1); + memberTotalChangeDto.setOrderId(orderId); + memberTotalChangeDto.setOrderNo(order.getOrderNo()); + } + } + //更新消费时间 memberTotalChangeDto.setConsumeTime(nowTime); remoteMemberService.changeMemberTotal(memberTotalChangeDto); return merVerifyOrderVo; @@ -1992,8 +2010,7 @@ } // 设置其他属性 return merCouponGoods; - }) - .collect(Collectors.toList()); + }).collect(Collectors.toList()); // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList merVerifyCouponVo.setGoodsList(merCouponGoodsList); //生成服务 @@ -4963,17 +4980,19 @@ // 初始化会员统计信息 MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); memberTotalChangeDto.setUserId(order.getUserId()); - // 如果存在积分兑换比例,则计算积分 - if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) { + // 如果存在积分兑换比例,则计算积分 2023-09-14改为核销后获取积分 + /*if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) { Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL); BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue); BigDecimal integralBig = moneyValueBig.multiply(order.getPayMoney()).setScale(0,BigDecimal.ROUND_HALF_UP); Integer integral = Integer.valueOf(integralBig.toString()); - memberTotalChangeDto.setChangeIntegral(integral); - memberTotalChangeDto.setTypeIntegral(1); - memberTotalChangeDto.setOrderId(orderId); - memberTotalChangeDto.setOrderNo(order.getOrderNo()); - } + if(integral>0){ + memberTotalChangeDto.setChangeIntegral(integral); + memberTotalChangeDto.setTypeIntegral(1); + memberTotalChangeDto.setOrderId(orderId); + memberTotalChangeDto.setOrderNo(order.getOrderNo()); + } + }*/ // 设置会员支付金额和支付时间 memberTotalChangeDto.setPayMoney(order.getPayMoney()); memberTotalChangeDto.setPayTime(new Date()); @@ -5003,6 +5022,7 @@ activityTotalChangeDto.setChangeNum(1); activityTotalChangeDto.setMoney(order.getPayMoney()); Integer userActivityNum = orderMapper.countUserActivityByActivity(order.getUserId(), order.getActivityId()); + //判断用户是否下过单 如果只有当前订单则为1 if (userActivityNum == 1) { activityTotalChangeDto.setPersonNum(1); } else { @@ -5175,7 +5195,7 @@ // 初始化会员统计信息 MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); memberTotalChangeDto.setUserId(order.getUserId()); - // 如果存在积分兑换比例,则计算积分 + // 如果存在积分兑换比例,则计算积分 2023-09-14改为核销后获取积分 /*if (redisService.hasKey(SecurityConstant.PAY_MONEY_INTEGRAL)) { Integer moneyValue = redisService.getCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL); BigDecimal moneyValueBig = BigDecimal.valueOf(moneyValue); @@ -5202,7 +5222,6 @@ // 更新会员统计信息 remoteMemberService.changeMemberTotal(memberTotalChangeDto); // 如果订单来源于活动,则更新活动统计信息 - //TODO 可考虑改成定时任务统一查询后增加 减少服务器压力但会增加延后性 if (order.getOrderFrom() == 2) { ActivityTotalChangeDto activityTotalChangeDto = new ActivityTotalChangeDto(); activityTotalChangeDto.setActivityId(order.getActivityId()); @@ -5211,10 +5230,11 @@ activityTotalChangeDto.setRefundNum(1); activityTotalChangeDto.setMoney(order.getPayMoney()); Integer userActivityNum = orderMapper.countUserActivityByActivity(order.getUserId(), order.getActivityId()); + //判断用户是否还有活动订单 无则减少人数 if (userActivityNum > 0) { - activityTotalChangeDto.setPersonNum(1); - } else { activityTotalChangeDto.setPersonNum(0); + } else { + activityTotalChangeDto.setPersonNum(1); } activityTotalChangeDto.setUserId(order.getUserId()); remoteActivityService.changeActivityTotal(activityTotalChangeDto); @@ -5834,30 +5854,39 @@ */ @Override public List<MerOrderPageVo> pageMerMemberPayOrder(Page page,MerMemberNoClearOrderDto merOrderPageDto){ + // 获取订单列表 List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerMemberPayOrder(page, merOrderPageDto); + // 如果订单列表不为空 if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) { Long userId; BigDecimal zeroBig = new BigDecimal("0.00"); StringJoiner userIdSj = new StringJoiner(","); + // 遍历订单列表 for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { userId = merOrderPageVo.getUserId(); userIdSj.add(userId.toString()); - if(merOrderPageVo.getUnPaidMoney().compareTo(zeroBig)<0){ + // 如果未支付金额小于零,则设置为零 + if (merOrderPageVo.getUnPaidMoney().compareTo(zeroBig) < 0) { merOrderPageVo.setUnPaidMoney(zeroBig); } } + // 获取用户列表 MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); mgtBaseBathDto.setIds(userIdSj.toString()); List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData(); + // 将用户列表转换为Map,以便根据用户ID快速查找用户信息 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){ + // 如果订单的用户ID不为空,并且用户Map中存在对应的用户信息 + 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()+"缺少用户"); + } else { + log.debug("订单merOrderPageVo" + merOrderPageVo.getOrderId() + "缺少用户"); } } } @@ -5918,7 +5947,6 @@ public ProfitSharingResult queryBill(String orderId) throws WxPayException { OrderPayment orderPayment = orderPaymentService.getByOrderId(orderId); ProfitSharing profitSharing = profitSharingService.getByOrderId(orderId); - ProfitSharingQueryRequest request = new ProfitSharingQueryRequest(); request.setSubMchid("1650744551"); request.setTransactionId(orderPayment.getTransactionId()); -- Gitblit v1.7.1