From 9b46e9e116c0f2a51a496da2fb24502ece01f5cd Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 19 一月 2026 18:12:55 +0800
Subject: [PATCH] 经销商管理

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java |  189 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 181 insertions(+), 8 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 4611954..c9de79c 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
@@ -37,9 +37,12 @@
 import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
 import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
 import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
+import com.github.binarywang.wxpay.bean.result.WxPayRefundV3Result;
 import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.auth.In;
+import okhttp3.Address;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.checkerframework.checker.units.qual.C;
@@ -97,6 +100,9 @@
     private ShopMapper shopMapper;
 
     @Autowired
+    private LabelsMapper labelsMapper;
+
+    @Autowired
     private ShopGoodsRelationMapper relationMapper;
 
     @Autowired
@@ -137,6 +143,9 @@
 
     @Autowired
     private AreasService areasService;
+
+    @Autowired
+    private AreasMapper areasMapper;
 
     @Autowired
     private GoodsorderDetailJoinMapper goodsorderDetailJoinMapper;
@@ -194,7 +203,7 @@
         goodsorderMapper.updateById(goodsorder);
     }
 
-    @Override
+    /*@Override
     public IPage<Shop> getShopPage(PageWrap<Shop> pageWrap) {
         IPage<Shop> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         Shop model = pageWrap.getModel();
@@ -213,7 +222,7 @@
                         .like(StringUtils.isNotBlank(model.getName()),Shop::getName,model.getName())
                 .orderByAsc(" distance ")
         );
-    }
+    }*/
 
 
     /**
@@ -429,7 +438,6 @@
         queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId());
         queryWrapper.eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus());
         queryWrapper.eq(pageWrap.getModel().getIsdeleted()==null,Goodsorder::getIsdeleted,Constants.ZERO);
-        queryWrapper.eq(pageWrap.getModel().getIsdeleted()!=null,Goodsorder::getIsdeleted,pageWrap.getModel().getIsdeleted());
         queryWrapper.orderByDesc(Goodsorder::getCreateDate);
 
         IPage<Goodsorder> result = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper);
@@ -485,6 +493,82 @@
            model.setGoodsorderDetailList(goodsorderDetailList);
         }
         return PageData.from(result);
+    }
+    @Override
+    public PageData<Goodsorder> findPageShop(PageWrap<Goodsorder> pageWrap) {
+        IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+
+        queryWrapper.selectAll(Goodsorder.class)
+         .eq(pageWrap.getModel().getDistributionShopId()!=null,Goodsorder::getDistributionShopId,pageWrap.getModel().getDistributionShopId())
+         .eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus())
+         .eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode())
+         .ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime())
+         .le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime())
+         .eq(Goodsorder::getIsdeleted,Constants.ZERO)
+         .exists(StringUtils.isNotBlank(pageWrap.getModel().getGoodsName()),
+                "select d.id from goodsorder_detail d where d.isdeleted=0 and d.order_id=t.id and (d.goods_sku_id ='"+pageWrap.getModel().getGoodsName()+"' or d.name like '%"+pageWrap.getModel().getGoodsName()+"%')")
+         .orderByDesc(Goodsorder::getCreateDate);
+        IPage<Goodsorder> result = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper);
+        PageData<Goodsorder> rr = PageData.from(result);
+        if(result!=null && result.getRecords().size()>0) {
+            List<Integer> idList = new ArrayList<>();
+            for(Goodsorder model:result.getRecords()){
+                idList.add(model.getId());
+            }
+            MPJLambdaWrapper<GoodsorderDetail> queryGoods = new MPJLambdaWrapper<>();
+            queryGoods.selectAll(GoodsorderDetail.class);
+            queryGoods.in(GoodsorderDetail::getOrderId,idList);
+            queryGoods.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
+            queryGoods.and( StringUtils.isNotBlank(pageWrap.getModel().getGoodsName()),w ->{
+                w.like(GoodsorderDetail::getName,pageWrap.getModel().getGoodsName() ).or().eq(GoodsorderDetail::getGoodsSkuId,pageWrap.getModel().getGoodsName());
+            } );
+            List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods);
+            for(Goodsorder model:result.getRecords()){
+                model.setGoodsorderDetailList(getDetailListById(goodsorderDetailList,model.getId()));
+            }
+            if(pageWrap.getPage() == 1 && pageWrap.getModel().getDistributionShopId()!=null){
+                //濡傛灉鏌ヨ绗竴椤碉紝鍋氱粡閿�鍟嗛攢鍞俊鎭粺璁′笟鍔℃煡璇�
+                Goodsorder count = new Goodsorder();
+                count.setOrderCount(rr.getTotal());
+                List<GoodsorderDetail> list =  goodsorderDetailJoinMapper.selectJoinList(GoodsorderDetail.class,new MPJLambdaWrapper<GoodsorderDetail>()
+                        .selectAll(GoodsorderDetail.class)
+                        .leftJoin(Goodsorder.class,Goodsorder::getId,GoodsorderDetail::getOrderId)
+                        .eq(pageWrap.getModel().getDistributionShopId()!=null,Goodsorder::getDistributionShopId,pageWrap.getModel().getDistributionShopId())
+                        .eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus())
+                        .and( StringUtils.isNotBlank(pageWrap.getModel().getGoodsName()),w ->{
+                            w.like(GoodsorderDetail::getName,pageWrap.getModel().getGoodsName() ).or().eq(GoodsorderDetail::getGoodsSkuId,pageWrap.getModel().getGoodsName());
+                        } )
+                        .eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode())
+                        .ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime())
+                        .le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime())
+                        .eq(Goodsorder::getIsdeleted,Constants.ZERO));
+                if(list!=null && list.size()>0){
+                    //鍟嗗搧鎬婚噺
+                    for (GoodsorderDetail d : list){
+                        count.setGoodsNum(Constants.formatIntegerNum(count.getGoodsNum()) + Constants.formatIntegerNum(d.getGoodsNum()));
+                        count.setOrderMoneyCount(Constants.formatBigdecimal(count.getOrderMoneyCount())
+                                .add(Constants.formatBigdecimal(d.getPrice()).multiply(new BigDecimal(Constants.formatIntegerNum(d.getGoodsNum())))));
+                    }
+                }
+                rr.setCountData(count);
+            }
+        }
+
+
+
+        return rr;
+    }
+
+    private List<GoodsorderDetail> getDetailListById(List<GoodsorderDetail> goodsorderDetailList, Integer id) {
+        List<GoodsorderDetail> list = new ArrayList<>();
+        for(GoodsorderDetail d : goodsorderDetailList){
+            if(Constants.equalsInteger(id,d.getOrderId())){
+                list.add(d);
+            }
+        }
+        return list;
     }
 
 
@@ -770,6 +854,7 @@
             goodsorder.setDistributionShopId(shop.getId());
             if(Objects.isNull(member.getBindShopId())){
                 member.setBindShopId(shop.getId());
+                member.setBindShopDate(new Date());
             }
         }
 
@@ -793,8 +878,7 @@
         goodsorder.setPrice(orderPayConfirmResponse.getPayAmount());
         goodsorder.setTotalPrice(orderPayConfirmResponse.getAmount());
         goodsorder.setUseIntegral(orderPayConfirmResponse.getDeductIntegral());
-        goodsorder.setIntegral(goodsorder.getUseIntegral());
-        goodsorder.setIntegralPrice(orderPayConfirmResponse.getIntegralAmount());
+        goodsorder.setIntegral(orderPayConfirmResponse.getIntegralAmount());
         goodsorder.setMailPrice(orderPayConfirmResponse.getMailAmount());
         goodsorder.setPayMethod(goodsorder.getPrice().compareTo(BigDecimal.ZERO)>Constants.ZERO?Constants.ZERO:Constants.ONE);
         if(Objects.nonNull(orderPayConfirmResponse.getMemberCoupon())){
@@ -1055,6 +1139,13 @@
         memberOrderResponse.setMemberOrderDetailResponseList(memberOrderDetailResponseList);
         if(Constants.equalsInteger(memberOrderResponse.getReceiveType(),Constants.ONE)){
             memberOrderResponse.setShopInfo(shopMapper.selectById(memberOrderResponse.getShopId()));
+        }
+        Member member = memberMapper.selectById(memberOrderResponse.getMemberId());
+        if(Objects.nonNull(member)){
+            String memberfullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+                    systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode();
+            member.setImgFullUrl(memberfullUrl + member.getImgurl());
+            memberOrderResponse.setMember(member);
         }
         return memberOrderResponse;
     }
@@ -1375,7 +1466,36 @@
         //閭垂閲戦
         if(Objects.nonNull(request.getReceiveType())){
             if(Constants.equalsInteger(request.getReceiveType(),Constants.ZERO)){
+                if(Objects.nonNull(request.getAddressId())){
+                    Addr addr = addrMapper.selectById(request.getAddressId());
+                    if(Objects.isNull(addr)){
+                        throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏀惰揣鍦板潃淇℃伅");
+                    }
+                    Areas areas = areasMapper.selectOne(new QueryWrapper<Areas>().lambda()
+                            .eq(Areas::getIsdeleted,Constants.ZERO)
+                            .eq(Areas::getId,StringUtils.leftPad(addr.getAreaId().toString().substring(0,2),6,"0"))
+                            .isNotNull(Areas::getYunFeeId)
+                            .last(" limit 1 ")
+                    );
+                    if(Objects.nonNull(areas)){
+                        Labels  labels = labelsMapper.selectById(areas.getYunFeeId());
+                        if(Objects.nonNull(labels)&&StringUtils.isNotBlank(labels.getParam())){
+                            //{weight0:10,fee0:10,weight1:10,fee1:10},{棣栭噸:10,棣栭噸杩愯垂锛�10,缁噸锛�10,缁噸璐癸細10}
+
+                        }
+
+                    }
+
+
+
+                }
+
+
+
                 //TODO  鏍规嵁鏀惰揣鍦板潃 鏌ヨ杩愯垂閰嶇疆
+
+
+
                 //璁$畻鍟嗗搧淇℃伅鎬婚噸閲�
                 BigDecimal totalWeight = goodsCalculateList.stream().map(i->
                         i.getWeight().multiply(new BigDecimal(i.getGoodsNum().toString()))
@@ -1786,10 +1906,12 @@
         RedisUtil.addObject(redisTemplate,Constants.RedisKeys.GOODSORDER_KEY,0);
         //鍔犲叆redis缂撳瓨锛屽埛鏂颁粖澶╁敭鍚庣紪鍙�0寮�濮�
         RedisUtil.addObject(redisTemplate,Constants.RedisKeys.AFTERSALE_KEY,0);
+        //鍔犲叆redis缂撳瓨锛屽埛鏂颁粖澶╁敭鍚庣紪鍙�0寮�濮�
+        RedisUtil.addObject(redisTemplate,Constants.RedisKeys.WITHDRAW_KEY,0);
     }
     @Override
     public  void refreshOrderCodes(){
-        long countOrder = 0,countSign=0,countSale=0;
+        long countOrder = 0,countSign=0,countSale=0,countWithdraw=0;
 
         QueryWrapper<Goodsorder> order = new QueryWrapper<>();
         order.apply(true, "TO_DAYS(NOW())=TO_DAYS(create_date)");
@@ -1818,6 +1940,22 @@
         }
         //鍔犲叆redis缂撳瓨锛屽埛鏂颁粖澶╁敭鍚庣紪鍙�0寮�濮�
         RedisUtil.addObject(redisTemplate,Constants.RedisKeys.AFTERSALE_KEY,countSale);
+
+
+
+        QueryWrapper<WithdrawRecord> withdraw = new QueryWrapper<>();
+        withdraw.apply(true, "TO_DAYS(NOW())=TO_DAYS(create_date)");
+        withdraw.orderByDesc(" CODE ");
+        withdraw.last(" limit 1 ");
+        Aftersale maxWithdrawOrder =  aftersaleMapper.selectOne(sale);
+        if(!Objects.isNull(maxWithdrawOrder)){
+            countWithdraw = Integer.valueOf(maxOrder.getCode().toString().substring(8,12));
+        }
+        //鍔犲叆redis缂撳瓨锛屽埛鏂颁粖澶╁敭鍚庣紪鍙�0寮�濮�
+        RedisUtil.addObject(redisTemplate,Constants.RedisKeys.WITHDRAW_KEY,countWithdraw);
+
+
+
     }
 
 
@@ -1899,11 +2037,13 @@
                         .eq(Goodsorder::getMemberId,member.getId())
                         .eq(Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey()))
         );
+
         homeInfoResponse.setWaitPayNum(
                 goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>().lambda().eq(Goodsorder::getIsdeleted,Constants.ZERO)
                         .eq(Goodsorder::getMemberId,member.getId())
                         .eq(Goodsorder::getStatus,Constants.OrderStatus.WAIT_PAY.getKey()))
         );
+
         homeInfoResponse.setCartTypeNum(
                 shopcartMapper.selectCount(new QueryWrapper<Shopcart>().lambda()
                         .eq(Shopcart::getIsdeleted,Constants.ZERO)
@@ -1925,11 +2065,44 @@
         );
 
         return homeInfoResponse;
-
-
     }
 
 
+    @Override
+    public PageData<Goodsorder> shopOrderPage(PageWrap<ShopOrderRequest> pageWrap) {
+        Integer shopId = null;
+        Integer status = null;
+        IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        ShopOrderRequest model = pageWrap.getModel();
+        queryWrapper.selectAll(Goodsorder.class);
+//        queryWrapper.selectAs(Member::getNickname,Goodsorder::getNickName);
+//        queryWrapper.selectAs(Member::getPhone,Goodsorder::getPhone);
+//        queryWrapper.selectAs(Member::getImgurl,Goodsorder::getImgurl);
+        queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO);
+        queryWrapper.eq(Objects.nonNull(model.getStatus()),Goodsorder::getStatus,model.getStatus());
+        queryWrapper.eq(Objects.nonNull(model.getShopId()),Goodsorder::getDistributionShopId,model.getShopId());
+        queryWrapper.orderByDesc(Goodsorder::getCreateDate);
+
+        IPage<Goodsorder> result = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper);
+
+        String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() +
+                systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode();
+
+        for(Goodsorder goodsorder:result.getRecords()){
+
+            List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(new QueryWrapper<GoodsorderDetail>().lambda()
+                    .eq(GoodsorderDetail::getOrderId,goodsorder.getId()));
+            goodsorderDetailList.stream().forEach(s ->{
+                if(StringUtils.isBlank(s.getImgurl())){
+                    s.setImgurl(path + s.getGoodsImgurl());
+                }
+            });
+            goodsorder.setGoodsorderDetailList(goodsorderDetailList);
+        }
+        return PageData.from(result);
+    }
 
 
 

--
Gitblit v1.9.3