From 8da7ca5f5a5466c76b0d0abe23c7935e13e09136 Mon Sep 17 00:00:00 2001
From: yanghui <2536613402@qq.com>
Date: 星期六, 26 十一月 2022 12:50:34 +0800
Subject: [PATCH] Merge branch 'local_20221104' into huacheng_test

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java |  156 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 146 insertions(+), 10 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java
index b6595b3..6888a49 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java
@@ -1,32 +1,36 @@
 package com.panzhihua.service_community.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.panzhihua.common.model.dtos.shop.ComShopFlowerRefundOrderDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderQueryDTO;
 import com.panzhihua.common.model.dtos.shop.PageComOrderRefundDTO;
 import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderGoodsVO;
 import com.panzhihua.common.model.vos.shop.ComShopFlowerRefundOrderVO;
+import com.panzhihua.common.model.vos.shop.ComShopOrderCountVO;
 import com.panzhihua.common.utlis.OrderNoUtils;
 import com.panzhihua.common.utlis.WxPayUtils;
 import com.panzhihua.common.utlis.wx.WXPayUtil;
-import com.panzhihua.service_community.dao.ComShopFlowerOrderDAO;
-import com.panzhihua.service_community.dao.ComShopFlowerOrderPayDAO;
-import com.panzhihua.service_community.dao.ComShopFlowerRefundOrderDAO;
-import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
-import com.panzhihua.service_community.model.dos.ComShopFlowerOrderPayDO;
-import com.panzhihua.service_community.model.dos.ComShopFlowerRefundOrderDO;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
 import com.panzhihua.service_community.service.ComShopFlowerRefundOrderService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.Date;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
 
 /**
  * @ClassName: ComShopFlowerRefundOrderServiceImpl
@@ -54,14 +58,24 @@
     private ComShopFlowerOrderDAO comShopFlowerOrderDAO;
     @Resource
     private ComShopFlowerOrderPayDAO comShopFlowerOrderPayDAO;
+    @Resource
+    private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO;
+    @Resource
+    private ComShopFlowerGoodsDAO comShopFlowerGoodsDAO;
+
+    @Resource
+    private ComShopFlowerGoodsAttrDAO comShopFlowerGoodsAttrDAO;
+    @Resource
+    private ConvenientMerchantDAO convenientMerchantDAO;
 
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public R createRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) {
         ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = new ComShopFlowerRefundOrderDO();
         BeanUtils.copyProperties(comShopFlowerRefundOrderDTO, comShopFlowerRefundOrderDO);
         // 生成退款订单号
-        String refundOrderNo = OrderNoUtils.NextOrderNo(comShopFlowerRefundOrderDTO.getUserId());
+        String refundOrderNo = OrderNoUtils.NextOrderNoFlower(comShopFlowerRefundOrderDTO.getUserId());
         comShopFlowerRefundOrderDO.setRefundOrderNo(refundOrderNo);
         comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.clz);
         comShopFlowerRefundOrderDO.setDeleteStatus(ComShopFlowerRefundOrderDO.deleteStatus.no);
@@ -73,10 +87,41 @@
     public R pageRefundOrder(PageComOrderRefundDTO pageComOrderRefundDTO) {
         Page page = new Page<>(pageComOrderRefundDTO.getPageNum(), pageComOrderRefundDTO.getPageSize());
         IPage<ComShopFlowerRefundOrderVO> pages = this.baseMapper.pageRefundOrder(page, pageComOrderRefundDTO);
+        for (ComShopFlowerRefundOrderVO comShopFlowerRefundOrderVO : pages.getRecords()) {
+            String orderNo = comShopFlowerRefundOrderVO.getOrderNo();
+            List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
+            // 查询订单下商品信息
+            List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO
+                    .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no",orderNo));
+            StringBuilder sbr = new StringBuilder();
+            if (!orderGoodsDOList.isEmpty()) {
+                orderGoodsDOList.forEach(orderGoods -> {
+                    ComShopFlowerOrderGoodsVO orderGoodsVO = new ComShopFlowerOrderGoodsVO();
+                    BeanUtils.copyProperties(orderGoods, orderGoodsVO);
+                    orderGoodsVO.setNum(orderGoods.getAmount());
+                    orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
+                    orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
+
+                    orderGoodsVOS.add(orderGoodsVO);
+                    sbr.append(orderGoods.getGoodsName()).append(" ");
+                });
+            }
+            comShopFlowerRefundOrderVO.setOrderGoodsVOList(orderGoodsVOS);
+            comShopFlowerRefundOrderVO.setGoodsName(sbr.toString());
+
+            ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
+            // 查询店铺信息
+            ConvenientMerchantDO shopStoreDO = convenientMerchantDAO.selectById(comShopFlowerRefundOrderVO.getStoreId());
+            if (shopStoreDO != null) {
+                BeanUtils.copyProperties(shopStoreDO, shopStoreVO);
+            }
+            comShopFlowerRefundOrderVO.setConvenientMerchantVO(shopStoreVO);
+        }
         return R.ok(pages);
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public R updateRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) {
         ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = this.baseMapper.selectById(comShopFlowerRefundOrderDTO.getId());
 
@@ -118,6 +163,9 @@
 //                        orderPayDO.setWxTradeNo(wxPayNotifyOrderDTO.getWxTradeNo());
                         orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes);
                         orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tkcg);
+                        //更新订单状态
+                        comShopFlowerOrderDO.setStatus(ComShopFlowerOrderDO.status.ytk);
+                        comShopFlowerOrderDAO.updateById(comShopFlowerOrderDO);
                     }else {
                         //退款失败
                         comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tksb);
@@ -141,4 +189,92 @@
         this.baseMapper.updateById(comShopFlowerRefundOrderDO);
         return R.ok();
     }
+
+    @Override
+    public R selectCountGroupStatus(Long storeId){
+        String[] statusStr = {"clz","tkcg","tksb","yqx","tkz"};
+        List<ComShopOrderCountVO> comShopOrderCountVOS = this.baseMapper.selectCountGroupStatus(storeId);
+        Map<Integer, Integer> collect = comShopOrderCountVOS.stream().collect(Collectors.toMap(ComShopOrderCountVO::getStatus, ComShopOrderCountVO::getAmount));
+        Map<String,Integer> retMap = new HashMap<>();
+        int amountTotal = 0;
+        for (int i = 0; i < statusStr.length; i++) {
+            if (collect.containsKey(i)) {
+                Integer amount = collect.get(i);
+                amountTotal = amountTotal + amount;
+                retMap.put(statusStr[i],amount);
+            }else {
+                retMap.put(statusStr[i],0);
+            }
+        }
+        retMap.put("zdd",amountTotal);
+        return R.ok(retMap);
+    }
+
+    /**
+     * 根据订单id取消订单
+     *
+     * @param \
+     * @return 取消结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderCancel(Long id) {
+        this.baseMapper.updateCancel(id,ComShopFlowerRefundOrderDO.status.yqx);
+        return R.ok();
+    }
+
+
+    @Override
+    public R refundOrderDetail(Long id){
+        ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = this.baseMapper.selectById(id);
+        if (isNull(comShopFlowerRefundOrderDO)){
+            return R.fail("未查询到该退款订单");
+        }
+        ComShopFlowerRefundOrderVO comShopFlowerRefundOrderVO = new ComShopFlowerRefundOrderVO();
+        BeanUtils.copyProperties(comShopFlowerRefundOrderDO,comShopFlowerRefundOrderVO);
+        String orderNo = comShopFlowerRefundOrderDO.getOrderNo();
+        List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
+        // 查询订单下商品信息
+        List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO
+                .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no",orderNo));
+        StringBuilder sbr = new StringBuilder();
+        if (!orderGoodsDOList.isEmpty()) {
+            orderGoodsDOList.forEach(orderGoods -> {
+                ComShopFlowerOrderGoodsVO orderGoodsVO = new ComShopFlowerOrderGoodsVO();
+                BeanUtils.copyProperties(orderGoods, orderGoodsVO);
+                orderGoodsVO.setNum(orderGoods.getAmount());
+                orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
+                orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
+                // 查询商品信息判断商品状态
+                ComShopFlowerGoodsDO goodsDO = comShopFlowerGoodsDAO.selectById(orderGoods.getGoodsId());
+                if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.deleteStatus.yes)
+                        || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.status.recovery)) {
+                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.ysc);
+                } else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.lower)) {
+                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.yxj);
+                } else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.sell)) {
+                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.csz);
+                }
+
+                // 根据商品规格id查询商品规格
+                ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId());
+                if (goodsAttrDO != null) {
+                    orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttrName());
+                }
+                orderGoodsVOS.add(orderGoodsVO);
+                sbr.append(orderGoods.getGoodsName()).append(" ");
+            });
+        }
+        comShopFlowerRefundOrderVO.setOrderGoodsVOList(orderGoodsVOS);
+        comShopFlowerRefundOrderVO.setGoodsName(sbr.toString());
+
+        ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
+        // 查询店铺信息
+        ConvenientMerchantDO shopStoreDO = convenientMerchantDAO.selectById(comShopFlowerRefundOrderDO.getStoreId());
+        if (shopStoreDO != null) {
+            BeanUtils.copyProperties(shopStoreDO, shopStoreVO);
+        }
+        comShopFlowerRefundOrderVO.setConvenientMerchantVO(shopStoreVO);
+        return R.ok(comShopFlowerRefundOrderVO);
+    }
 }

--
Gitblit v1.7.1