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 |   87 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 85 insertions(+), 2 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 9c6b785..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
@@ -529,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);
         // 设置返回对象的属性值
@@ -574,6 +580,9 @@
         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());
@@ -1349,6 +1358,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;
     }
@@ -2000,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对象
@@ -2243,4 +2275,55 @@
     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