From 580f4d3c2ca9eee53eee95a4de2f6610b790780a Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 12 二月 2026 18:24:13 +0800
Subject: [PATCH] 小程序   接口开发

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java |  114 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 84 insertions(+), 30 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 0d71799..5068fc0 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
@@ -1027,14 +1027,31 @@
         String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
                 systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
         page.getRecords().forEach(i->{
-            List<MemberOrderDetailResponse> memberOrderDetailResponseList = goodsorderDetailMapper.getDetailList(i.getOrderId());
-            memberOrderDetailResponseList.forEach(j->{
-                j.setImgUrl(fullUrl + j.getImgUrl());
+            List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(new QueryWrapper<GoodsorderDetail>().lambda()
+                    .eq(GoodsorderDetail::getOrderId,i.getOrderId()));
+            goodsorderDetailList.stream().forEach(s ->{
+                if(StringUtils.isNotBlank(s.getImgurl())){
+                    s.setImgurl(fullUrl + s.getImgurl());
+                }
             });
-            i.setMemberOrderDetailResponseList(memberOrderDetailResponseList);
+            i.setGoodsorderDetailList(goodsorderDetailList);
         });
         return page;
     }
+
+
+
+    @Override
+    public MemberOrderResponse getGoodsOrderDetailByCode(String exchangeCode){
+        Goodsorder goodsorder = goodsorderMapper.selectOne(new QueryWrapper<Goodsorder>().lambda().eq(Goodsorder::getExchangeCode,exchangeCode)
+                .last(" limit 1")
+        );
+        if(Objects.isNull(goodsorder)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌璁㈠崟淇℃伅");
+        }
+        return this.getGoodsOrderDetail(goodsorder.getId());
+    }
+
 
 
     /**
@@ -1049,23 +1066,34 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌璁㈠崟淇℃伅");
         }
         if(memberOrderResponse.getOrderStatus().equals(Constants.OrderStatus.WAIT_PAY.getKey())){
-            memberOrderResponse.setCountdown(memberOrderResponse.getCancelDate().getTime()-System.currentTimeMillis());
+            memberOrderResponse.setCountdown(memberOrderResponse.getCancelDate().getTime()>System.currentTimeMillis()?memberOrderResponse.getCancelDate().getTime()-System.currentTimeMillis():Constants.ZERO);
         }
-        List<MemberOrderDetailResponse> memberOrderDetailResponseList = goodsorderDetailMapper.getDetailList(memberOrderResponse.getOrderId());
         String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
                 systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
-        memberOrderDetailResponseList.forEach(j->{
-            j.setImgUrl(fullUrl + j.getImgUrl());
+
+
+        List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(new QueryWrapper<GoodsorderDetail>().lambda()
+                .eq(GoodsorderDetail::getOrderId,memberOrderResponse.getOrderId()));
+        goodsorderDetailList.stream().forEach(s ->{
+            if(StringUtils.isNotBlank(s.getImgurl())){
+                s.setImgurl(fullUrl + s.getImgurl());
+            }
         });
-        memberOrderResponse.setMemberOrderDetailResponseList(memberOrderDetailResponseList);
-        if(Constants.equalsInteger(memberOrderResponse.getReceiveType(),Constants.ONE)){
-            memberOrderResponse.setShopInfo(shopMapper.selectById(memberOrderResponse.getShopId()));
+        memberOrderResponse.setGoodsorderDetailList(goodsorderDetailList);
+        Shop shop = shopMapper.selectById(memberOrderResponse.getShopId());
+        if(Objects.nonNull(shop)){
+            shop.setPassword(null);
+            shop.setUsername(null);
+            shop.setAreas(AreasServiceImpl.getAddressByAreaId(shop.getAreaId()));
+            memberOrderResponse.setShopInfo(shop);
         }
         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());
+            if(StringUtils.isNotBlank(member.getImgurl())){
+                member.setImgFullUrl(memberfullUrl + member.getImgurl());
+            }
             memberOrderResponse.setMember(member);
         }
         return memberOrderResponse;
@@ -1171,9 +1199,7 @@
                 }
             }
         }
-
         SendWxMessage.orderCancel(goodsorder,memberMapper.selectById(goodsorder.getMemberId()),goodsName);
-
         //鏌ヨ浼樻儬鍒镐俊鎭褰�
         if(!Objects.isNull(goodsorder.getCouponId())){
             MemberCoupon memberCoupon = memberCouponMapper.selectById(goodsorder.getCouponId());
@@ -1578,6 +1604,7 @@
      * @param memberId
      */
     @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public void affirmOrder(Integer orderId,Integer memberId){
         Goodsorder goodsorder = goodsorderMapper.selectById(orderId);
         if(!goodsorder.getMemberId().equals(memberId)){
@@ -1687,10 +1714,12 @@
      * @param memberId
      */
     @Override
-    public void orderWriteOff(String exchangeCode,Integer memberId){
-        Goodsorder goodsorder = goodsorderMapper.selectOne(new QueryWrapper<Goodsorder>().lambda()
-                .eq(Goodsorder::getExchangeCode,exchangeCode)
-                .eq(Goodsorder::getIsdeleted,Constants.ZERO).last("limit 1 "));
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public void orderWriteOff(Integer orderId,Integer memberId){
+        if(Objects.isNull(orderId)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Goodsorder goodsorder = goodsorderMapper.selectById(orderId);
         if(Objects.isNull(goodsorder)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
@@ -1704,9 +1733,9 @@
         if(Objects.isNull(shop)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌璁㈠崟鍏宠仈缁忛攢鍟嗕俊鎭�,璇疯仈绯荤鐞嗗憳");
         }
-        if(!Constants.equalsInteger(shop.getMemberId(),memberId)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"["+shop.getName()+"]闈炴偍缁戝畾鐨勭粡閿�鍟嗭紝鏃犳硶杩涜璇ユ搷浣滐紒");
-        } 
+//        if(!Constants.equalsInteger(shop.getMemberId(),memberId)){
+//            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"["+shop.getName()+"]闈炴偍缁戝畾鐨勭粡閿�鍟嗭紝鏃犳硶杩涜璇ユ搷浣滐紒");
+//        }
         goodsorder.setStatus(Constants.OrderStatus.DONE.getKey());
         goodsorder.setDoneDate(new Date());
         goodsorderMapper.updateById(goodsorder);
@@ -1733,7 +1762,7 @@
             return;
         }
         BigDecimal backIntegral = getBackIntegral(goodsorder.getPrice(),Constants.ONE);
-        if (backIntegral.compareTo(BigDecimal.ZERO) >= 0) {
+        if (backIntegral.compareTo(BigDecimal.ZERO) > 0) {
             //鏇存柊浣欓淇℃伅 娣诲姞绉垎鍙樺姩璁板綍
             DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
             dealIntegralRequest.setIntegralNum(backIntegral);
@@ -1782,12 +1811,12 @@
             return;
         }
         BigDecimal backIntegral = getBackIntegral(goodsorder.getPrice(),Constants.ZERO);
-        if (backIntegral.compareTo(BigDecimal.ZERO) >= 0) {
+        if (backIntegral.compareTo(BigDecimal.ZERO) > 0) {
             //鏇存柊浣欓淇℃伅 娣诲姞绉垎鍙樺姩璁板綍
             DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
             dealIntegralRequest.setIntegralNum(backIntegral);
             dealIntegralRequest.setDealType(Constants.ZERO);
-            dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
+            dealIntegralRequest.setMemberId(goodsorder.getMemberId());
             dealIntegralRequest.setObjId(goodsorder.getId());
             dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
             dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.ORDER_DONATE);
@@ -1844,6 +1873,7 @@
         if(!goodsorder.getStatus().equals(Constants.OrderStatus.DONE.getKey())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氳鍗曟湭瀹屾垚锛屾棤娉曢��娆撅紒");
         }
+
 
     }
 
@@ -2101,12 +2131,13 @@
         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.selectAs(Shop::getName,Goodsorder::getShopName);
+        queryWrapper.selectAs(Shop::getPhone,Goodsorder::getShopPhone);
+        queryWrapper.leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId);
         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.eq(Objects.nonNull(model.getShopId())&&Constants.equalsInteger(model.getUserType(),Constants.ONE),Goodsorder::getDistributionShopId,model.getShopId());
+        queryWrapper.eq(Objects.nonNull(model.getShopId())&&Constants.equalsInteger(model.getUserType(),Constants.ZERO),Goodsorder::getMemberId,model.getShopId());
         queryWrapper.orderByDesc(Goodsorder::getCreateDate);
 
         IPage<Goodsorder> result = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper);
@@ -2119,8 +2150,8 @@
             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());
+                if(StringUtils.isNotBlank(s.getImgurl())){
+                    s.setImgurl(path + s.getImgurl());
                 }
             });
             goodsorder.setGoodsorderDetailList(goodsorderDetailList);
@@ -2130,4 +2161,27 @@
 
 
 
+//    public IPage<Shop> getGoodsorderPageForShop(PageWrap pageWrap,String shopId) {
+//        IPage<Shop> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+//
+//        IPage<Goodsorder> goodsorderPage = goodsorderJoinMapper.selectJoinPage(page,Goodsorder.class,
+//                new MPJLambdaWrapper<Goodsorder>()
+//                        .selectAll(Goodsorder.class)
+//                        .selectAs(Member::getPhone,Goodsorder::getPhone)
+//                        .selectAs(Member::getNickname,Goodsorder::getNickName)
+//                        .leftJoin(Member.class,Member::getId,Goodsorder::getMemberId)
+//                        .eq(Goodsorder::getIsdeleted,Constants.ZERO)
+//                        .eq(Goodsorder::getDistributionShopId,shopId)
+//                        .eq(Goodsorder::getStatus,Constants.OrderStatus.PAY_DONE.getKey())
+//                        .eq(Goodsorder::getReceiveType,Constants.ONE)
+//                        .orderByDesc(Goodsorder::getId)
+//        );
+//
+//
+//
+//    }
+
+
+
+
 }

--
Gitblit v1.9.3