From 56fcde8c93a1a10bc50fac775e370a2db57f520e Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 20 一月 2026 17:08:30 +0800
Subject: [PATCH] 小程序   接口开发

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java |  142 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 141 insertions(+), 1 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 0753bde..80590c6 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
@@ -39,9 +39,11 @@
 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;
@@ -83,6 +85,12 @@
     private ShopGoodsRelationMapper shopGoodsRelationMapper;
     @Autowired
     private MemberMapper memberMapper;
+    @Autowired
+    private CouponMapper couponMapper;
+    @Autowired
+    private MemberCouponJoinMapper memberCouponJoinMapper;
+    @Autowired
+    private InviteRecordMapper inviteRecordMapper;
 
     @Autowired
     private GoodsorderDetailMapper goodsorderDetailMapper;
@@ -438,7 +446,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);
@@ -494,6 +501,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;
     }
 
 
@@ -1605,11 +1688,66 @@
         //鏍规嵁璁㈠崟绫诲瀷杩涜绉垎璧犻��
         //涓嬪崟纭鏀惰揣 锛岃禒閫佺粡閿�鍟嗙Н鍒�
         this.orderAddShopIntegral(goodsorder);
+        //涓嬪崟瀹屾垚 鏍规嵁淇℃伅纭鏄惁闇�瑕佽禒閫侀個璇疯�呬紭鎯犲埜
+        this.orderDoneRewardInviteCoupon(goodsorder);
         //娑堣垂鑰呯‘璁ゆ敹璐�
         this.orderAddMemberIntegral(goodsorder);
         //缁忛攢鍟� 缁撶畻閲戦
         this.orderAddShopCash(goodsorder);
     }
+
+
+    /**
+     * 璁㈠崟纭鏀惰揣锛岃禒閫侀個璇疯�呬紭鎯犲埜
+     * @param
+     */
+    public void orderDoneRewardInviteCoupon(Goodsorder goodsorder){
+        PlatformConfigDTO platformConfigDTO = systemDictDataService.getPlatformConfigDTO();
+        if (platformConfigDTO.getShareCouponRewardStatus().equals(Constants.ONE)) {
+            return;
+        }
+        Member member = memberMapper.selectById(goodsorder.getMemberId());
+        if(Objects.isNull(member)||member.getIsdeleted().equals(Constants.ONE)){
+            return;
+        }
+        InviteRecord inviteRecord = inviteRecordMapper.selectOne(new QueryWrapper<InviteRecord>().lambda()
+                .eq(InviteRecord::getMemberId,member.getId())
+                .eq(InviteRecord::getIsdeleted,Constants.ZERO)
+                .eq(InviteRecord::getFirstOrderStatus,Constants.ZERO)
+                .last("limit 1")
+        );
+        if(Objects.isNull(inviteRecord)){
+            return;
+        }
+        Member inviteMember = memberMapper.selectById(inviteRecord.getInviteId());
+        if(Objects.isNull(inviteMember)||inviteMember.getIsdeleted().equals(Constants.ONE)){
+            return;
+        }
+
+        List<JSONObject> shareCouponRewardList = platformConfigDTO.getShareCouponRewardList();
+        //[{"num":"2","couponId":6},{"num":"3","couponId":5}]
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(shareCouponRewardList)){
+            List<MemberCoupon> memberCouponList = new ArrayList<>();
+            for (JSONObject jsonObject:shareCouponRewardList) {
+                Integer couponId = jsonObject.getInteger("couponId");
+                Integer num = jsonObject.getInteger("num");
+                Coupon coupon =  couponMapper.selectById(couponId);
+                if(Objects.isNull(coupon)||Constants.equalsInteger(coupon.getIsdeleted(),Constants.ONE)&&num>Constants.ZERO){
+                    continue;
+                }
+                MemberCoupon memberCoupon = MemberCoupon.couponToBean(coupon,inviteMember,new Date(),Constants.ONE,null);
+                for (int i = 0; i < num; i++) {
+                    memberCouponList.add(memberCoupon);
+                }
+            }
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberCouponList)){
+                memberCouponJoinMapper.insert(memberCouponList);
+            }
+        }
+    }
+
+
+
 
     /**
      * 璁㈠崟鏍搁攢
@@ -1644,6 +1782,8 @@
         if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){
             //璧犻�佹秷璐硅�呯Н鍒�
             this.orderAddMemberIntegral(goodsorder);
+            //涓嬪崟瀹屾垚 鏍规嵁淇℃伅纭鏄惁闇�瑕佽禒閫侀個璇疯�呬紭鎯犲埜
+            this.orderDoneRewardInviteCoupon(goodsorder);
             //缁忛攢鍟� 娣诲姞璧犻�佺Н鍒�
             this.orderAddShopIntegral(goodsorder);
             //缁忛攢鍟� 缁撶畻閲戦

--
Gitblit v1.9.3