From 32bd52ec49d25021b6a35d8ee5f32c70df788165 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期三, 05 七月 2023 21:30:21 +0800 Subject: [PATCH] bug 用户端 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 122 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 109 insertions(+), 13 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 ec6cfb0..c2de81f 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 @@ -354,7 +354,7 @@ order.setOrderId(orderId); order.setDelFlag(0); //为对接支付 直接付款成功 - order.setOrderStatus(2); + order.setOrderStatus(1); order.setOrderNo(orderNo); order.setOrderFrom(1); order.setShopId(appPlaceOrderDto.getShopId()); @@ -364,6 +364,7 @@ order.setDiscountMoney(couponDiscount); order.setReceivableMoney(orderPayMoney); order.setReceivableDeposit(orderPayDeposit); + order.setChangeReceivableMoney(orderPayMoney); order.setPayType(appPlaceOrderDto.getPayType()); if (order.getPayType() == 1) { order.setPayMoney(orderPayMoney); @@ -528,11 +529,17 @@ * @return */ @Override - public MerVerifyOrderVo verifyOrder(String orderId) { + public MerVerifyOrderVo verifyOrder(String orderId,Long shopId) { // 创建返回对象 MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); // 根据订单ID获取订单信息 Order order = this.getById(orderId); + if(order.getOrderStatus()!=2){ + throw new ServiceException(AppErrorConstant.VERIFY_USED); + } + if(!order.getShopId().equals(shopId)){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } // 根据订单ID获取订单商品列表 List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); // 设置返回对象的属性值 @@ -573,13 +580,17 @@ Date nowTime = new Date(); //更新订单信息 Order order = this.getById(orderId); + if(order.getOrderStatus()!=2){ + throw new ServiceException(AppErrorConstant.VERIFY_USED); + } order.setOrderStatus(3); order.setUseTime(nowTime); order.setUseUserId(merVerifyOrderDto.getUserId()); order.setOfflinePayMoney(relPayMoney); order.setOffPayTime(nowTime); - order.setPayMoney(relReceiveMoney.add(relPayMoney)); + order.setPayMoney(order.getPayMoney().add(relPayMoney)); order.setCloseFlag(1); + order.setChangeReceivableMoney(relReceiveMoney); this.saveOrUpdate(order); //创建服务商品 List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); @@ -853,7 +864,6 @@ if (null != appMemberCouponVoList) { appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); } - AppMemberCouponVo appMemberCouponVo; Integer couponType; BigDecimal moneyThreshold; @@ -972,15 +982,15 @@ order.setReceivableMoney(orderPayMoney); order.setReceivableDeposit(new BigDecimal("0.00")); order.setPayType(1); - if (order.getPayType() == 1) { - order.setPayMoney(orderPayMoney); - order.setOnlinePayMoney(orderPayMoney); - order.setCloseFlag(1); - } else if (order.getPayType() == 2) { - order.setPayMoney(orderPayDeposit); - order.setOnlinePayMoney(orderPayDeposit); - order.setCloseFlag(0); + if(merNewOrderDto.getChangeMoney()!=null){ + order.setChangeReceivableMoney(merNewOrderDto.getChangeMoney()); + }else{ + order.setChangeReceivableMoney(orderPayMoney); } + order.setPayMoney(orderPayMoney); + order.setOnlinePayMoney(new BigDecimal("0.00")); + order.setOfflinePayMoney(orderPayMoney); + order.setCloseFlag(1); order.setOrderRemark(merNewOrderDto.getOrderRemark()); order.setGoodsNum(goodsNum); order.setCreateTime(nowTime); @@ -1347,6 +1357,16 @@ } BigDecimal unPaidMoney = mgtShopOrderPageVo.getReceivableMoney().subtract(mgtShopOrderPageVo.getPayMoney()); mgtShopOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney); + } + //处理商品信息 + List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList; + String goodsString; + for(MgtShopOrderPageVo entity : shopOrderPageVoList){ + mgtOrderGoodsVoList = entity.getMgtOrderGoodsPageVoList(); + goodsString = mgtOrderGoodsVoList.stream() + .map(goods -> goods.getGoodsName() + "*" + goods.getBuyNum()) + .collect(Collectors.joining(";")); + entity.setGoodsInfo(goodsString); } } return shopOrderPageVoList; @@ -1999,11 +2019,24 @@ * @date 2023/6/27 11:10 */ @Override - public MerVerifyCouponVo verifyCoupon(String verifyCode) { + public MerVerifyCouponVo verifyCoupon(String verifyCode,Long shopId) { // 创建MerVerifyCouponVo对象 MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo(); // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象 MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(verifyCode).getData(); + MemberCoupon memberCoupon = verifyCouponGetVo.getMemberCoupon(); + // 检查优惠券状态 + int couponStatus = memberCoupon.getCouponStatus(); + if (couponStatus == 0) { + throw new ServiceException(AppErrorConstant.COUPON_EXPIRED); + } else if (couponStatus == 2) { + throw new ServiceException(AppErrorConstant.COUPON_USED); + } else if (couponStatus != 0) { + throw new ServiceException(AppErrorConstant.COUPON_NO_FIND); + } + if(!memberCoupon.getShopId().equals(shopId)){ + throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); + } List<Goods> goodsList = verifyCouponGetVo.getGoodsList(); Long userId = verifyCouponGetVo.getUserId(); // 调用remoteMemberService的getMember方法获取Member对象 @@ -2230,4 +2263,67 @@ } return merOrderFromRankVo; } + + /** + * @description 商户端订单管理统计 + * @author jqs + * @date 2023/7/4 16:27 + * @param merBaseDto + * @return MerTotalOrderVo + */ + @Override + public MerTotalOrderVo totalMerOrder(MerBaseDto merBaseDto){ + return orderMapper.totalMerOrder(merBaseDto.getShopId()); + } + + /** + * @description 平台获取商户订单记录 + * @author jqs + * @date 2023/7/5 20:17 + * @param page + * @param mgtShopAllOrderPageDto + * @return List<MgtShopAllOrderPageVo> + */ + @Override + public List<MgtShopAllOrderPageVo> pageMgtShopAllOrder(Page page, MgtShopAllOrderPageDto mgtShopAllOrderPageDto){ + List<MgtShopAllOrderPageVo> shopAllOrderPageVoList = orderMapper.pageMgtShopAllOrder(page, mgtShopAllOrderPageDto); + if(!shopAllOrderPageVoList.isEmpty()){ + // 定义变量 + HashSet<Long> userIdSet = new HashSet<>(); + BigDecimal zeroBig = new BigDecimal("0.00"); + // 遍历列表,获取店铺 ID 和用户 ID + for (MgtShopAllOrderPageVo mgtShopOrderPageVo : shopAllOrderPageVoList) { + userIdSet.add(mgtShopOrderPageVo.getUserId()); + } + // 从远程服务获取店铺和用户信息 + Map<Long, MgtSimpleMemberVo> userMap = null; + if (userIdSet != null && !userIdSet.isEmpty()) { + String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(userJoinedString); + List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData(); + userMap = simpleMemberVoList.stream() + .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); + } + // 遍历列表,设置店铺名称、用户名称和未支付金额 + for (MgtShopAllOrderPageVo mgtShopOrderPageVo : shopAllOrderPageVoList) { + if (userMap != null && !userMap.isEmpty()) { + if (userMap.get(mgtShopOrderPageVo.getUserId()) != null) { + mgtShopOrderPageVo.setUserInfo(userMap.get(mgtShopOrderPageVo.getUserId()).getNickName()+"("+userMap.get(mgtShopOrderPageVo.getUserId()).getUserMobile()+")"); + } + } + } + //处理商品信息 + List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList; + String goodsString; + for(MgtShopAllOrderPageVo entity : shopAllOrderPageVoList){ + mgtOrderGoodsVoList = entity.getMgtOrderGoodsPageVoList(); + goodsString = mgtOrderGoodsVoList.stream() + .map(goods -> goods.getGoodsName() + "*" + goods.getBuyNum()) + .collect(Collectors.joining(";")); + entity.setGoodsInfo(goodsString); + } + } + return shopAllOrderPageVoList; + } } -- Gitblit v1.7.1