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 |  151 +++++++++++++++++++++++++++++---------------------
 1 files changed, 88 insertions(+), 63 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 7634794..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
@@ -21,6 +21,7 @@
 import com.doumee.dao.business.join.PlanorderDetailJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.system.dto.PlatformConfigDTO;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.dto.CouponDTO;
 import com.doumee.dao.web.request.*;
 import com.doumee.dao.web.request.goods.*;
@@ -275,7 +276,7 @@
                     Constants.UserActionType.CHANGE_ORDER_KD,
                     userActionMapper,
                     update.getEditDate(),
-                    new String[]{user.getUsername(), DateUtil.getPlusTime2(update.getEditDate()),"澶囨敞锛�"+goodsorder.getKdInfo()},
+                    new String[]{goodsorder.getKdInfo()},
                     JSONObject.toJSONString(update) ,
                     query.getKdName()+"(鍗曞彿锛�"+query.getKdCode()+")",
                     goodsorder.getKdName()+"(鍗曞彿锛�"+goodsorder.getKdCode()+")");
@@ -387,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() );
 
     }
 
@@ -404,36 +405,45 @@
 
     @Override
     public Goodsorder findById(Integer id) {
-        Goodsorder result=goodsorderJoinMapper.selectById(id);
+        MPJLambdaWrapper<Goodsorder> q = new MPJLambdaWrapper<Goodsorder>()
+                .selectAll(Goodsorder.class)
+                .selectAs(Shop::getName,Goodsorder::getShopName)
+                .selectAs(Member::getNickname,Goodsorder::getNickName)
+                .selectAs(Member::getPhone,Goodsorder::getPhone)
+                .selectAs(Member::getName,Goodsorder::getMemberName)
+                .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);
-            queryWrapper.selectAs(Shop::getName,Goodsorder::getShopName);
-            queryWrapper.selectAs(Labels::getName,GoodsorderDetail::getLablesName);
-            queryWrapper.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
-            queryWrapper.eq(GoodsorderDetail::getOrderId,result.getId());
-            queryWrapper.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId);
-            queryWrapper.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId);
-            queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getCategoryId);
-            queryWrapper.leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId);
+            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() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACTIVITY_FILE).getCode();
-
+            String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+                    + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode();
             for(GoodsorderDetail model:goodsorderDetailList){
                 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);
-
-            //鏌ヨ鍜栧暋璁″垝璁㈤槄鍛ㄦ湡
-            if(Constants.equalsInteger(result.getType(),Constants.TWO)){
-                MPJLambdaWrapper<PlanorderDetail> queryplan = new MPJLambdaWrapper<>();
-                queryplan.eq(PlanorderDetail::getOrderId,result.getId());
-                queryplan.last("limit 1");
-               PlanorderDetail planorderDetail= planorderDetailJoinMapper.selectOne( queryplan);
-               result.setPlanorderDetail(planorderDetail);
-            }
         }
         return result;
     }
@@ -458,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);
 
@@ -471,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));
         }
@@ -648,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;
     }
 
@@ -1354,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();
@@ -1936,7 +1950,6 @@
         }
     }
 
-
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void orderComment(OrderCommentRequest orderCommentRequest){
@@ -1975,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