From 5d3b86a4d0032836c782e5e1319179eced5e5647 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 23 一月 2026 17:35:24 +0800
Subject: [PATCH] 经销商管理

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java |  111 ++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 69 insertions(+), 42 deletions(-)

diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index 0fa21e1..1829afe 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -388,7 +388,7 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),ResponseStatus.DATA_EMPTY.getMessage());
         }
 
-        cancelOrder( query.getId(),  user.getId(),goodsorder.getCancelInfo() );
+        cancelOrderNew( query.getId(),  user.getId(),goodsorder.getCancelInfo() );
 
     }
 
@@ -411,17 +411,27 @@
                 .selectAs(Member::getNickname,Goodsorder::getNickName)
                 .selectAs(Member::getPhone,Goodsorder::getPhone)
                 .selectAs(Member::getName,Goodsorder::getMemberName)
-                .selectAs(SystemUser::getRealname,Goodsorder::getKdUserName)
+                .selectAs(MemberCoupon::getName,Goodsorder::getCouponName)
+                .select("t4.realname",Goodsorder::getKdUserName)
+                .select("t5.realname",Goodsorder::getCancelUserName)
+                .select("t6.realname",Goodsorder::getRefundUserName)
                 .selectAs(Shop::getName,Goodsorder::getShopName)
+                .leftJoin(MemberCoupon.class,MemberCoupon::getId,Goodsorder::getCouponId)
                 .leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId)
                 .leftJoin(Member.class,Member::getId,Goodsorder::getMemberId)
                 .leftJoin(SystemUser.class,SystemUser::getId,Goodsorder::getKdUser)
+                .leftJoin(SystemUser.class,SystemUser::getId,Goodsorder::getCancelUser)
+                .leftJoin(SystemUser.class,SystemUser::getId,Goodsorder::getRefundUserId)
                 .eq(Goodsorder::getId,id);
         Goodsorder result=goodsorderJoinMapper.selectJoinOne(Goodsorder.class,q);
         if(Objects.nonNull(result)){
             MPJLambdaWrapper<GoodsorderDetail> queryWrapper = new MPJLambdaWrapper<>();
             queryWrapper.selectAll(GoodsorderDetail.class)
+                    .selectAs(Labels::getName,GoodsorderDetail::getCategoryName)
                     .eq(GoodsorderDetail::getIsdeleted,Constants.ZERO)
+                    .leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId)
+                    .leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId)
+                    .leftJoin(Labels.class,Labels::getId,Goods::getCategoryId)
                     .eq(GoodsorderDetail::getOrderId,result.getId()) ;
             List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailMapper.selectList(queryWrapper);
             String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
@@ -430,6 +440,8 @@
                 if(StringUtils.isNotBlank(model.getImgurl())){
                    model.setImgurl(path+ model.getImgurl());
                 }
+                //灏忚
+                model.setTotalPrice(Constants.formatBigdecimal(model.getPrice()).multiply(new BigDecimal(Constants.formatIntegerNum(model.getGoodsNum()))));
             }
             result.setGoodsorderDetailList(goodsorderDetailList);
         }
@@ -456,6 +468,8 @@
         queryWrapper.selectAll(Goodsorder.class);
         queryWrapper.selectAs(Shop::getName,Goodsorder::getShopName);
         initPageQueryWrapper(queryWrapper,pageWrap);
+        queryWrapper.selectAs(MemberCoupon::getName,Goodsorder::getCouponName);
+        queryWrapper.leftJoin(MemberCoupon.class,MemberCoupon::getId,Goodsorder::getCouponId);
         queryWrapper.eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus());
         queryWrapper.orderByDesc(Goodsorder::getCreateDate);
 
@@ -469,7 +483,7 @@
             dealOrderDetailsBiz(idList,result);//鏌ヨ璁㈠崟鏄庣粏
         }
         PageData<Goodsorder> rr =  PageData.from(result);
-        if(pageWrap.getPage() == 1){
+        if(pageWrap.getPage() == 1  && pageWrap.getModel().getNeedCount()!=null&& pageWrap.getModel().getNeedCount()){
             //濡傛灉鏌ヨ绗竴椤碉紝鍋氭暟鎹粺璁�
             rr.setCountData(dealCountOrderNum(pageWrap));
         }
@@ -646,41 +660,42 @@
 
 
     @Override
-    public List<Goodsorder> exportExcel(Goodsorder pageWrap) {
-
-        MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
-
-
-        queryWrapper.selectAll(Goodsorder.class);
-        queryWrapper.selectAs(GoodsorderDetail::getName,Goodsorder::getGoodsName);
-        queryWrapper.selectAs(GoodsorderDetail::getSkuName,Goodsorder::getSkuName);
-        queryWrapper.selectAs(GoodsorderDetail::getGoodsNum,Goodsorder::getGoodsNum);
-        queryWrapper.selectAs(GoodsorderDetail::getPrice,Goodsorder::getGoodsPrice);
-        queryWrapper.selectAs(Member::getNickname,Goodsorder::getNickName);
-        queryWrapper.selectAs(Member::getPhone,Goodsorder::getPhone);
-        queryWrapper.selectAs(Addr::getAddr,Goodsorder::getAddr);
-        queryWrapper.select("(select CREATE_DATE  from order_urge where ORDER_ID=t.id and ISDELETED=0 ORDER BY CREATE_DATE desc limit 1) as urgeCreateDate ");
-        queryWrapper.leftJoin(Member.class,Member::getId,Goodsorder::getMemberId);
-        queryWrapper.leftJoin(Addr.class,Addr::getMemberId,Member::getId);
-        queryWrapper.leftJoin(GoodsorderDetail.class,GoodsorderDetail::getOrderId,Goodsorder::getId);
-        queryWrapper.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
-        queryWrapper.eq(Addr::getIsDefault,Constants.ONE);
-
-        queryWrapper.eq(pageWrap.getCode()!=null,Goodsorder::getCode,pageWrap.getCode());
-        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getNickName()),ms->ms.like(Goodsorder::getLinkname,pageWrap.getNickName())
-                .or().like(Goodsorder::getLinkphone,pageWrap.getNickName())
-        );
-        queryWrapper.ge(pageWrap.getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getStarttime());
-        queryWrapper.le(pageWrap.getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getEndtime());
-
-        queryWrapper.eq(pageWrap.getStatus()!=null,Goodsorder::getStatus,pageWrap.getStatus());
-        queryWrapper.eq(pageWrap.getIsdeleted()==null,Goodsorder::getIsdeleted,Constants.ZERO);
-        queryWrapper.eq(pageWrap.getIsdeleted()!=null,Goodsorder::getIsdeleted,pageWrap.getIsdeleted());
-        queryWrapper.orderByDesc(Goodsorder::getCreateDate);
-
-        List<Goodsorder> result = goodsorderJoinMapper.selectJoinList(Goodsorder.class, queryWrapper);
-
-
+    public List<GoodsorderExport> exportExcel(PageWrap<Goodsorder> pageWrap) {
+        pageWrap.getModel().setNeedCount(false);
+        PageData<Goodsorder> list = findPage(pageWrap);
+        List<GoodsorderExport> result = new ArrayList<>();
+        if(list!=null && list.getRecords()!=null){
+            for(Goodsorder order: list.getRecords()){
+                GoodsorderExport param = new GoodsorderExport();
+                param.setCode(order.getCode());
+                String goodsInfo = "";
+                int goodsNum= 0;
+                if(order.getGoodsorderDetailList()!=null && order.getGoodsorderDetailList().size()>0){
+                    for(GoodsorderDetail detail:order.getGoodsorderDetailList()){
+                        goodsNum += Constants.formatIntegerNum(detail.getGoodsNum());
+                        goodsInfo+= StringUtils.defaultString(detail.getName(),"")+"/"+Constants.formatBigdecimal(detail.getGoodsWeight())+"kg"
+                                +"("+Constants.formatBigdecimal(detail.getPrice())+"  x  "+Constants.formatIntegerNum(detail.getGoodsNum())+")锛沑n";
+                    }
+                }
+                param.setTotalNum(goodsNum);
+                param.setGoodsName(goodsInfo);
+                param.setTotalPrice(order.getTotalPrice());
+                param.setIntegralPrice(order.getIntegral());
+                param.setCouponPrice(order.getCouponPrice());
+                param.setMailPrice(order.getMailPrice());
+                param.setPrice(order.getPrice());
+                param.setShopName(order.getShopName());
+                param.setShopSettlement(order.getShopSettlement());
+                param.setReceiveType(order.getReceiveType());
+                param.setLinkname(order.getLinkname());
+                param.setLinkphone(order.getLinkphone());
+                param.setAddr(order.getLinkaddr());
+                param.setKdInfo(StringUtils.defaultString(order.getKdName(),"")+StringUtils.defaultString(order.getKdCode(),""));
+                param.setStatus(order.getStatus());
+                param.setCreateDate(order.getCreateDate());
+                result.add(param);
+            }
+        }
         return result;
     }
 
@@ -1352,11 +1367,12 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(!(Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_PAY.getKey())
-        || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.PAY_DONE.getKey()) 
-        || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey()) )){
+            || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.PAY_DONE.getKey())
+            || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey()) )){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鍙栨秷澶辫触锛氳鍗曠姸鎬佸凡娴佽浆锛�");
         }
-        if(goodsorder.getPrice().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+        if(Constants.formatBigdecimal(goodsorder.getPrice()).compareTo(BigDecimal.ZERO)>Constants.ZERO
+                && Constants.equalsObject(goodsorder.getPayStatus(),Constants.ONE) ){
             //寰俊鐜伴噾閫�娆�
             String refundCode = WxMiniUtilService.wxRefund(goodsorder.getCode().toString(), goodsorder.getPrice(), goodsorder.getPrice());
             Fund fund = new Fund();
@@ -1934,7 +1950,6 @@
         }
     }
 
-
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void orderComment(OrderCommentRequest orderCommentRequest){
@@ -1973,6 +1988,18 @@
         goodsorder.setIsComment(Constants.ONE);
         goodsorderMapper.updateById(goodsorder);
     }
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public  void orderRefund(Goodsorder param){
+        Goodsorder goodsorder = goodsorderMapper.selectById(param.getId());
+        if(!goodsorder.getMemberId().equals(goodsorder.getMemberId())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氱敤鎴蜂俊鎭尮閰嶅け璐ワ紒");
+        }
+        if(!goodsorder.getStatus().equals(Constants.OrderStatus.DONE.getKey())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氳鍗曟湭瀹屾垚锛屾棤娉曢��娆撅紒");
+        }
+
+    }
 
 
     @Override

--
Gitblit v1.9.3