From 41115bb4b6d0161ff6d2c15ef6b3d5386a14ac9c Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 02 三月 2026 16:40:54 +0800
Subject: [PATCH] 合并

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java |   75 ++++++++++++++++++++++++++++++++-----
 1 files changed, 64 insertions(+), 11 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 dd78f76..057ce21 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
@@ -507,6 +507,9 @@
         queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime());
         queryWrapper.eq(pageWrap.getModel().getReceiveType()!=null,Goodsorder::getReceiveType,pageWrap.getModel().getReceiveType());
         queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId());
+        if (StringUtils.isNotBlank(pageWrap.getModel().getGoodsName())) {
+            queryWrapper.exists("select gs.id  from goodsorder_detail gs  where gs.order_id=t.id and gs.isdeleted=0 and gs.NAME like '%"+pageWrap.getModel().getGoodsName()+"%' ");
+        }
     }
 
 
@@ -586,6 +589,7 @@
         Utils.MP.blankToNull(pageWrap.getModel());
 
         queryWrapper.selectAll(Goodsorder.class)
+         .eq(pageWrap.getModel().getReceiveType()!=null,Goodsorder::getReceiveType,pageWrap.getModel().getReceiveType())
          .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())
@@ -766,6 +770,8 @@
             }
             goodsorder.setPickUpShopId(shop.getId());
             goodsorder.setDistributionShopId(shop.getId());
+            goodsorder.setLinkname(member.getName());
+            goodsorder.setLinkphone(member.getPhone());
             if(Objects.isNull(member.getBindShopId())){
                 member.setBindShopId(shop.getId());
                 member.setBindShopDate(new Date());
@@ -905,7 +911,7 @@
             dealIntegralRequest.setObjId(goodsorder.getId());
             dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
             dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER);
-            integralService.dealIntegral(dealIntegralRequest);
+            integralService.dealIntegral(dealIntegralRequest,null);
         }
 
         if(goodsorder.getPrice().compareTo(orderPayRequest.getTitlePrice())!=Constants.ZERO){
@@ -1191,7 +1197,7 @@
             dealIntegralRequest.setObjId(goodsorder.getId());
             dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
             dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_CANCEL);
-            integralService.dealIntegral(dealIntegralRequest);
+            integralService.dealIntegral(dealIntegralRequest,null);
         }
         //璁㈠崟淇℃伅鍙栨秷
         goodsorder.setStatus(Constants.OrderStatus.CLOSE.getKey());
@@ -1199,6 +1205,10 @@
         goodsorder.setCancelInfo(cancelInfo);
         goodsorder.setCancelUser(optUserId);
         goodsorderMapper.updateById(goodsorder);
+        if(Constants.equalsInteger(goodsorder.getReceiveType(),Constants.ONE)){
+            //閲婃斁鏍搁攢鐮�
+            this.releaseExchangeCode(goodsorder.getExchangeCode());
+        }
         String goodsName = "";
         List<GoodsorderDetail> goodsorderDetailList =  goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().eq("ORDER_ID",goodsorder.getId()));
         if(!Objects.isNull(goodsorderDetailList)&&goodsorderDetailList.size()>Constants.ZERO){
@@ -1268,7 +1278,7 @@
             dealIntegralRequest.setObjId(goodsorder.getId());
             dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
             dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_CANCEL);
-            integralService.dealIntegral(dealIntegralRequest);
+            integralService.dealIntegral(dealIntegralRequest,null);
         }
         //璁㈠崟淇℃伅鍙栨秷
         goodsorder.setStatus(Constants.OrderStatus.CLOSE.getKey());
@@ -1276,6 +1286,10 @@
         goodsorder.setCancelInfo(StringUtils.isBlank(cancelInfo)?"鐢ㄦ埛涓诲姩鍙栨秷":cancelInfo);
         goodsorder.setCancelUser(optUserId);
         goodsorderMapper.updateById(goodsorder);
+        if(Constants.equalsInteger(goodsorder.getReceiveType(),Constants.ONE)){
+            //閲婃斁鏍搁攢鐮�
+            this.releaseExchangeCode(goodsorder.getExchangeCode());
+        }
         String goodsName = "";
         List<GoodsorderDetail> goodsorderDetailList =  goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().eq("ORDER_ID",goodsorder.getId()));
         if(!Objects.isNull(goodsorderDetailList)&&goodsorderDetailList.size()>Constants.ZERO){
@@ -1305,8 +1319,6 @@
                 memberCouponMapper.updateById(memberCoupon);
             }
         }
-
-
     }
 
     public BigDecimal getDeductAmount(List<PayDetailRequest> requestList){
@@ -1653,7 +1665,7 @@
         this.orderAddShopIntegral(goodsorder);
         //涓嬪崟瀹屾垚 鏍规嵁淇℃伅纭鏄惁闇�瑕佽禒閫侀個璇疯�呬紭鎯犲埜
         this.orderDoneRewardInviteCoupon(goodsorder);
-        //娑堣垂鑰呯‘璁ゆ敹璐�
+        //璧犻�佹秷璐硅�呬笅鍗曠Н鍒�
         this.orderAddMemberIntegral(goodsorder);
         //缁忛攢鍟� 缁撶畻閲戦
         this.orderAddShopCash(goodsorder);
@@ -1695,6 +1707,9 @@
             List<MemberCoupon> memberCouponList = new ArrayList<>();
             List<CouponNoticeRequest> requestList = new ArrayList<>();
             for (JSONObject jsonObject:shareCouponRewardList) {
+                if(!jsonObject.containsKey("couponId")||!jsonObject.containsKey("num")){
+                    continue;
+                }
                 Integer couponId = jsonObject.getInteger("couponId");
                 Integer num = jsonObject.getInteger("num");
                 Coupon coupon =  couponMapper.selectById(couponId);
@@ -1703,11 +1718,14 @@
                 }
                 MemberCoupon memberCoupon = MemberCoupon.couponToBean(coupon,inviteMember,new Date(),Constants.ONE,null);
                 for (int i = 0; i < num; i++) {
+                    //婊″噺鍗蜂笉浼氱敓鎴恗axPrice 闇�瑕佹牴鎹紭鎯犲埜鍑忓皯閲戦璁剧疆
+                    if(Constants.equalsInteger(coupon.getCouponType(),Constants.ZERO)){
+                        memberCoupon.setMaxPrice(coupon.getPrice());
+                    }
                     memberCouponList.add(memberCoupon);
                 }
                 couponIds = couponIds + (StringUtils.isBlank(couponIds)? ",":"" )+ couponId ;
                 couponNames = couponNames + (StringUtils.isBlank(couponNames)? ",":"" )+ coupon.getName() ;
-
 
                 CouponNoticeRequest couponNoticeRequest = new CouponNoticeRequest();
                 couponNoticeRequest.setMemberCoupon(memberCoupon);
@@ -1765,6 +1783,8 @@
         goodsorder.setStatus(Constants.OrderStatus.DONE.getKey());
         goodsorder.setDoneDate(new Date());
         goodsorderMapper.updateById(goodsorder);
+        //閲婃斁鏍搁攢鐮�
+        this.releaseExchangeCode(goodsorder.getExchangeCode());
         //瀛樺湪鐜伴噾鏀粯 璧犻�� 绉垎
         if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){
             //璧犻�佹秷璐硅�呯Н鍒�
@@ -1801,7 +1821,7 @@
             if(Objects.nonNull(member)){
                 dealIntegralRequest.setParam1(member.getNickname());
             }
-            integralService.dealShopIntegral(dealIntegralRequest);
+            integralService.dealShopIntegral(dealIntegralRequest,null);
         }
     }
 
@@ -1846,7 +1866,7 @@
             dealIntegralRequest.setObjId(goodsorder.getId());
             dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
             dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.ORDER_DONATE);
-            integralService.dealIntegral(dealIntegralRequest);
+            integralService.dealIntegral(dealIntegralRequest,null);
         }
     }
 
@@ -1899,8 +1919,6 @@
         if(!goodsorder.getStatus().equals(Constants.OrderStatus.DONE.getKey())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氳鍗曟湭瀹屾垚锛屾棤娉曢��娆撅紒");
         }
-
-
     }
 
 
@@ -2210,4 +2228,39 @@
 
 
 
+    @Override
+    public String createExchangeCode(){
+        List<Goodsorder> goodsorderList = goodsorderMapper.selectList(new QueryWrapper<Goodsorder>().lambda()
+                .eq(Goodsorder::getIsdeleted,Constants.ZERO)
+                .eq(Goodsorder::getReceiveType,Constants.ONE)
+                .in(Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey(),
+                Constants.OrderStatus.WAIT_PAY.getKey(),
+                Constants.OrderStatus.PAY_DONE.getKey())
+        );
+        String exchangeCode = UniqueVerificationCodeGenerator.generateNumericCode();
+        if(CollectionUtils.isNotEmpty(goodsorderList)){
+            Boolean flag = true;
+            while (flag){
+                String finalExchangeCode = exchangeCode;
+                flag = goodsorderList.stream().filter(i->i.getExchangeCode().equals(finalExchangeCode)).count()>0L?true:false;
+                if(flag){
+                    exchangeCode = UniqueVerificationCodeGenerator.generateNumericCode();
+                }
+            }
+        }
+        RedisUtil.addObject(redisTemplate,Constants.RedisKeys.EXCHANGE_KEY+exchangeCode,exchangeCode);
+        return exchangeCode;
+    }
+
+
+    /**
+     * 閲婃斁鏍搁攢鐮�
+     * @param code
+     */
+    public void releaseExchangeCode(String code){
+        if(StringUtils.isNotBlank(code)){
+            RedisUtil.deleteObject(redisTemplate,Constants.RedisKeys.EXCHANGE_KEY+code);
+        }
+    }
+
 }

--
Gitblit v1.9.3