From ac33a3140ef8ef20dfd2537fce2dfdd0f374f30e Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 26 二月 2026 17:42:10 +0800
Subject: [PATCH] 调试

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java |  772 +++++++++++++++++++++++++++++++----------------------------
 1 files changed, 404 insertions(+), 368 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 80590c6..dd78f76 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.*;
@@ -35,6 +36,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.doumee.service.business.IntegralService;
+import com.doumee.service.business.NoticeService;
 import com.doumee.service.system.SystemDictDataService;
 import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
 import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
@@ -78,6 +80,8 @@
     @Autowired
     private GoodsorderMapper goodsorderMapper;
     @Autowired
+    private UserActionMapper userActionMapper;
+    @Autowired
     private ActivitySignMapper activitySignMapper;
     @Autowired
     private AftersaleMapper  aftersaleMapper;
@@ -87,6 +91,10 @@
     private MemberMapper memberMapper;
     @Autowired
     private CouponMapper couponMapper;
+    @Autowired
+    private NoticeService noticeService;
+    @Autowired
+    private NoticeMapper noticeMapper;
     @Autowired
     private MemberCouponJoinMapper memberCouponJoinMapper;
     @Autowired
@@ -240,22 +248,47 @@
     @Override
     public void orderSendOutGoods(Goodsorder goodsorder) {
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-
+        if(StringUtils.isBlank(goodsorder.getKdCode()) ||StringUtils.isBlank(goodsorder.getKdName())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
         Goodsorder query=goodsorderMapper.selectById(goodsorder.getId());
         if(query==null){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),ResponseStatus.DATA_EMPTY.getMessage());
         }
-        if(!Constants.equalsInteger(query.getStatus(),Constants.ONE)){
+        if(!Constants.equalsInteger(query.getStatus(),Constants.OrderStatus.PAY_DONE.getKey())
+                && !Constants.equalsInteger(query.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆锛岃鍒锋柊椤甸潰锛�");
         }
-        goodsorder.setEditDate(new Date());
-        goodsorder.setEditor(user.getId());
-        goodsorder.setKdDate(new Date());
-        goodsorder.setKdUser(user.getId());
-        goodsorder.setStatus(Constants.OrderStatus.WAIT_RECEIVE.getKey());
-        goodsorderMapper.updateById(goodsorder);
+        if(!Constants.equalsInteger(query.getReceiveType(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ヨ鍗曟湁瀹㈡埛鍒板簵鑷彁锛屾棤闇�鍙戣揣鎿嶄綔锛�");
+        }
+        Goodsorder update = new Goodsorder();
+        update.setId(goodsorder.getId());
+        update.setKdName(goodsorder.getKdName());
+        update.setKdCode(goodsorder.getKdCode());
+        update.setKdInfo(goodsorder.getKdInfo());
+        update.setKdId(goodsorder.getKdId());
+        update.setEditDate(new Date());
+        update.setEditor(user.getId());
+        update.setKdDate(new Date());
+        update.setKdUser(user.getId());
+        update.setStatus(Constants.OrderStatus.WAIT_RECEIVE.getKey());
+        goodsorderMapper.updateById(update);
 
-        // TODO 鍙戦�佸井淇℃ā鏉挎秷鎭�
+        if(Constants.equalsInteger(query.getStatus(), Constants.OrderStatus.WAIT_RECEIVE.getKey())){
+            //濡傛灉鏄揩閫掑彉鏇�
+            UserActionServiceImpl.saveUserActionBiz(user,query.getId(),
+                    Constants.UserActionType.CHANGE_ORDER_KD,
+                    userActionMapper,
+                    update.getEditDate(),
+                    new String[]{goodsorder.getKdInfo()},
+                    JSONObject.toJSONString(update) ,
+                    query.getKdName()+"(鍗曞彿锛�"+query.getKdCode()+")",
+                    goodsorder.getKdName()+"(鍗曞彿锛�"+goodsorder.getKdCode()+")");
+
+        }
+
+      /*  // TODO 鍙戦�佸井淇℃ā鏉挎秷鎭�
         Member member=memberMapper.selectById(query.getMemberId());
         MPJLambdaWrapper<GoodsorderDetail> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
@@ -263,7 +296,7 @@
         queryWrapper.orderByDesc(GoodsorderDetail::getCreateDate);
         queryWrapper.last("limit 1");
         GoodsorderDetail goodsorderDetail=goodsorderDetailMapper.selectOne(queryWrapper);
-        SendWxMessage.orderSendNotice(goodsorder,goodsorderDetail!=null?goodsorderDetail.getName():"",member);
+        SendWxMessage.orderSendNotice(goodsorder,goodsorderDetail!=null?goodsorderDetail.getName():"",member);*/
     }
 
 
@@ -360,7 +393,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() );
 
     }
 
@@ -377,34 +410,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(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.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;
     }
@@ -426,82 +470,115 @@
         IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-
         queryWrapper.selectAll(Goodsorder.class);
-        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.eq(Addr::getIsDefault,Constants.ONE);
-
-        queryWrapper.eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode());
-        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNickName()),ms->ms.like(Goodsorder::getLinkname,pageWrap.getModel().getNickName())
-         .or().like(Goodsorder::getLinkphone,pageWrap.getModel().getNickName())
-        );
-        queryWrapper.ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime());
-        queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime());
-
-        queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId());
+        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.eq(pageWrap.getModel().getIsdeleted()==null,Goodsorder::getIsdeleted,Constants.ZERO);
         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();
-
+        List<Integer> idList = new ArrayList<>();
         for(Goodsorder model:result.getRecords()){
-            model.setResourcePath(path);
-            //璁㈠崟鎬婚噾棰濈瓑浜庡疄浠橀噾棰濆姞浼樻儬閲戦锛屽啀鍑忓幓閫�娆鹃噾棰�
-            BigDecimal sumMoney=new BigDecimal(0);
-            if(model.getPrice()!=null){
-                if(model.getIntegral()!=null){
-                    sumMoney=model.getPrice().add(model.getIntegral());
-                    if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){
-                        sumMoney.subtract(model.getAftersaleMoney());
-                        model.setOrderMoneyCount(sumMoney);
-                    }else{
-                        model.setOrderMoneyCount(sumMoney);
-                    }
-                }else{
-                    model.setOrderMoneyCount(model.getPrice());
-                }
-            }else   if(model.getIntegral()!=null){
-                sumMoney=model.getIntegral();
+            idList.add(model.getId());
+        }
+        if(idList.size()>0){
+            dealOrderDetailsBiz(idList,result);//鏌ヨ璁㈠崟鏄庣粏
+        }
+        PageData<Goodsorder> rr =  PageData.from(result);
+        if(pageWrap.getPage() == 1  && pageWrap.getModel().getNeedCount()!=null&& pageWrap.getModel().getNeedCount()){
+            //濡傛灉鏌ヨ绗竴椤碉紝鍋氭暟鎹粺璁�
+            rr.setCountData(dealCountOrderNum(pageWrap));
+        }
+        return rr;
+    }
+
+    private void initPageQueryWrapper(MPJLambdaWrapper<Goodsorder> queryWrapper, PageWrap<Goodsorder> pageWrap) {
+        queryWrapper.leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId);
+        queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO);
+        queryWrapper.eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode());
+        queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getShopName()),Shop::getName,pageWrap.getModel().getShopName());
+        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNickName()),ms->ms.like(Goodsorder::getLinkname,pageWrap.getModel().getNickName())
+                .or().like(Goodsorder::getLinkphone,pageWrap.getModel().getNickName())
+        );
+        queryWrapper.ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime());
+        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());
+    }
+
+
+    private Goodsorder dealCountOrderNum( PageWrap<Goodsorder>  pageWrap) {
+        MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
+        initPageQueryWrapper(queryWrapper,pageWrap);
+        Goodsorder goodsorder = new Goodsorder();
+        queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.WAIT_PAY.getKey());
+        goodsorder.setWaitPayNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//寰呮敮浠�
+
+        queryWrapper = new MPJLambdaWrapper<>();
+        initPageQueryWrapper(queryWrapper,pageWrap);
+        queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.PAY_DONE.getKey());
+        goodsorder.setWaitKdNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//寰呭彂璐э紝寰呰嚜鎻�
+
+        queryWrapper = new MPJLambdaWrapper<>();
+        initPageQueryWrapper(queryWrapper,pageWrap);
+        queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey());
+        goodsorder.setWaitDoneNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//寰呮敹璐�
+        return goodsorder;
+
+    }
+
+    private void dealOrderDetailsBiz(List<Integer> idList, IPage<Goodsorder> result) {
+        MPJLambdaWrapper<GoodsorderDetail> queryGoods = new MPJLambdaWrapper<>();
+        queryGoods.selectAll(GoodsorderDetail.class);
+        queryGoods.selectAs(Goods::getImgurl,GoodsorderDetail::getGoodsImgurl);
+        queryGoods.selectAs(Labels::getName, GoodsorderDetail::getCategoryName);
+        queryGoods.select("ls.name as parentName ");
+
+        queryGoods.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId);
+        queryGoods.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId);
+
+        queryGoods.leftJoin(Labels.class, Labels::getId, Goods::getCategoryId);
+        queryGoods.leftJoin("labels ls on ls.id=t2.PARENT_CATEGORY_ID");
+        queryGoods.in(GoodsorderDetail::getOrderId,idList);
+        queryGoods.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
+        List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods);
+        String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+                systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
+        for(Goodsorder model :result.getRecords()){
+            initOrderPrice(model);
+            model.setGoodsorderDetailList(getDetailListById(fullUrl,goodsorderDetailList,model.getId()));
+        }
+    }
+
+    private void initOrderPrice(Goodsorder model) {
+        //璁㈠崟鎬婚噾棰濈瓑浜庡疄浠橀噾棰濆姞浼樻儬閲戦锛屽啀鍑忓幓閫�娆鹃噾棰�
+        BigDecimal sumMoney=new BigDecimal(0);
+        if(model.getPrice()!=null){
+            if(model.getIntegral()!=null){
+                sumMoney=model.getPrice().add(model.getIntegral());
                 if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){
                     sumMoney.subtract(model.getAftersaleMoney());
                     model.setOrderMoneyCount(sumMoney);
                 }else{
                     model.setOrderMoneyCount(sumMoney);
                 }
+            }else{
+                model.setOrderMoneyCount(model.getPrice());
             }
-
-
-            MPJLambdaWrapper<GoodsorderDetail> queryGoods = new MPJLambdaWrapper<>();
-            queryGoods.selectAll(GoodsorderDetail.class);
-            queryGoods.selectAs(Goods::getImgurl,GoodsorderDetail::getGoodsImgurl);
-            queryGoods.selectAs(Labels::getName, GoodsorderDetail::getCategoryName);
-            queryGoods.select("ls.name as parentName ");
-
-            queryGoods.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId);
-            queryGoods.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId);
-
-            queryGoods.leftJoin(Labels.class, Labels::getId, Goods::getCategoryId);
-            queryGoods.leftJoin("labels ls on ls.id=t2.PARENT_CATEGORY_ID");
-            queryGoods.eq(GoodsorderDetail::getOrderId,model.getId());
-            queryGoods.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
-           List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods);
-           goodsorderDetailList.stream().forEach(s ->{
-               if(StringUtils.isBlank(s.getImgurl())){
-                   s.setImgurl(s.getGoodsImgurl());
-               }
-           });
-           model.setGoodsorderDetailList(goodsorderDetailList);
+        }else   if(model.getIntegral()!=null){
+            sumMoney=model.getIntegral();
+            if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){
+                sumMoney.subtract(model.getAftersaleMoney());
+                model.setOrderMoneyCount(sumMoney);
+            }else{
+                model.setOrderMoneyCount(sumMoney);
+            }
         }
-        return PageData.from(result);
     }
+
     @Override
     public PageData<Goodsorder> findPageShop(PageWrap<Goodsorder> pageWrap) {
         IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -533,8 +610,10 @@
                 w.like(GoodsorderDetail::getName,pageWrap.getModel().getGoodsName() ).or().eq(GoodsorderDetail::getGoodsSkuId,pageWrap.getModel().getGoodsName());
             } );
             List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods);
+            String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+                    systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
             for(Goodsorder model:result.getRecords()){
-                model.setGoodsorderDetailList(getDetailListById(goodsorderDetailList,model.getId()));
+                model.setGoodsorderDetailList(getDetailListById(fullUrl,goodsorderDetailList,model.getId()));
             }
             if(pageWrap.getPage() == 1 && pageWrap.getModel().getDistributionShopId()!=null){
                 //濡傛灉鏌ヨ绗竴椤碉紝鍋氱粡閿�鍟嗛攢鍞俊鎭粺璁′笟鍔℃煡璇�
@@ -569,11 +648,16 @@
         return rr;
     }
 
-    private List<GoodsorderDetail> getDetailListById(List<GoodsorderDetail> goodsorderDetailList, Integer id) {
+    private List<GoodsorderDetail> getDetailListById( String fullUrl ,List<GoodsorderDetail> goodsorderDetailList, Integer id) {
         List<GoodsorderDetail> list = new ArrayList<>();
-        for(GoodsorderDetail d : goodsorderDetailList){
-            if(Constants.equalsInteger(id,d.getOrderId())){
-                list.add(d);
+        if(goodsorderDetailList!=null && goodsorderDetailList.size()>0){
+            for(GoodsorderDetail d : goodsorderDetailList){
+                if(Constants.equalsInteger(id,d.getOrderId())){
+                    if(d.getImgurl()!=null){
+                        d.setImgurl(fullUrl+d.getImgurl());
+                    }
+                    list.add(d);
+                }
             }
         }
         return list;
@@ -581,41 +665,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;
     }
 
@@ -627,187 +712,6 @@
 
 
     /****************************************绉诲姩绔帴鍙e紑濮�********************************************************************/
-
-
-    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public PayResponse orderPay(OrderPayRequest orderPayRequest){
-        Member member = memberMapper.selectById(orderPayRequest.getMemberId());
-        //鏌ヨ鏀惰揣鍦板潃
-        Addr addr = addrMapper.selectById(orderPayRequest.getAddressId());
-        if(Objects.isNull(addr)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏀惰揣鍦板潃淇℃伅锛�");
-        }
-        Areas area = areasService.findById(addr.getAreaId(), Constants.TWO);
-        if(Objects.isNull(area)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏀惰揣鍦板潃鍖哄垝淇℃伅鍙戠敓鍙樺寲锛岃鏇存柊鍚庝笅鍗曪紒");
-        }
-        Goodsorder goodsorder = new Goodsorder();
-        goodsorder.setCreator(orderPayRequest.getMemberId());
-        goodsorder.setIntegral(BigDecimal.ZERO);
-        goodsorder.setCreateDate(new Date());
-        goodsorder.setIsdeleted(Constants.ZERO);
-        goodsorder.setMemberInfo(orderPayRequest.getRemark());
-        goodsorder.setAddrId(addr.getId());
-        goodsorder.setLinkaddr(area.getProvinceName()+area.getCityName() + area.getName() + addr.getAddr());
-        goodsorder.setLinkphone(addr.getPhone());
-        goodsorder.setLinkname(addr.getName());
-        goodsorder.setMemberId(member.getId());
-        goodsorder.setType(orderPayRequest.getOrderType());
-        //鍗曟嵁缂栧彿 鑷
-        goodsorder.setCode(getNextInCode());
-        //璁$畻璁㈠崟鎬婚噾棰�
-        BigDecimal sumPrice = BigDecimal.ZERO;
-        //瀛樺偍璁板綍鏄庣粏
-        List<PayDetailRequest> payDetailRequestList = orderPayRequest.getPayDetailRequestList();
-        if(Objects.isNull(payDetailRequestList)||payDetailRequestList.size()==Constants.ZERO){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏃犳槑缁嗘暟鎹�,璇锋鏌ラ�夋嫨鏁版嵁锛�");
-        }
-        List<GoodsorderDetail> goodsOrderDetailList = new ArrayList<>();
-        for (PayDetailRequest payDetailRequest:payDetailRequestList) {
-            //鏌ヨ鍟嗗搧
-            GoodsSku goodsSku = goodsSkuMapper.selectById(payDetailRequest.getGoodsSkuId());
-            if(Objects.isNull(goodsSku)){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍟嗗搧SKU淇℃伅锛�");
-            }
-            Goods goods = goodsMapper.selectById(goodsSku.getGoodsId());
-            if(Objects.isNull(goods)){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍟嗗搧淇℃伅锛�");
-            }
-            if(goods.getStatus().equals(Constants.ONE)){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鍟嗗搧宸插垹闄ゆ垨宸蹭笅鏋讹紝鏃犳硶涓嬪崟");
-            }
-            if(goodsSku.getStock().compareTo(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum())))<Constants.ZERO){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鍟嗗搧搴撳瓨涓嶈冻锛屾棤娉曚笅鍗曪紒");
-            }
-            //鍟嗗搧搴撳瓨鎵i櫎
-            goodsSku.setStock(goodsSku.getStock().subtract(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum()))));
-            goodsSkuMapper.updateById(goodsSku);
-            GoodsorderDetail goodsOrderDetail = new GoodsorderDetail();
-            goodsOrderDetail.setCreator(member.getId());
-            goodsOrderDetail.setCreateDate(new Date());
-            goodsOrderDetail.setImgurl(StringUtils.isBlank(goodsSku.getImgurl())?goods.getImgurl():goodsSku.getImgurl());
-            goodsOrderDetail.setName(goods.getName());
-            goodsOrderDetail.setGoodsSkuId(goodsSku.getId().toString());
-            goodsOrderDetail.setSkuName(goodsSku.getName());
-            goodsOrderDetail.setPrice(goodsSku.getPrice());
-            goodsOrderDetail.setGoodsNum(payDetailRequest.getGoodsNum());
-            goodsOrderDetailList.add(goodsOrderDetail);
-            sumPrice = sumPrice.add(goodsSku.getPrice().multiply(new BigDecimal(payDetailRequest.getGoodsNum())));
-            //璐墿杞︽敮浠� 鍒犻櫎璐墿杞﹀晢鍝�
-            if(orderPayRequest.getIsShopChart().equals(Constants.ONE)){
-                shopcartMapper.deleteById(payDetailRequest.getShopCartId());
-            }
-        }
-
-        //璁㈠崟鏀粯鐜伴噾閲戦
-        goodsorder.setPrice((sumPrice.subtract(orderPayRequest.getDeductionBalance())));
-        MemberCoupon memberCoupon = new MemberCoupon();
-        if(!Objects.isNull(orderPayRequest.getCouponId())){
-            memberCoupon = memberCouponMapper.selectById(orderPayRequest.getCouponId());
-            if(Objects.isNull(memberCoupon)){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌浼樻儬鍒镐俊鎭紒");
-            }
-            if(sumPrice.compareTo(memberCoupon.getLimitPrice())<Constants.ZERO){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"璁㈠崟閲戦灏忎簬浼樻儬鍒告�婚噾棰濓紝鏃犳硶浣跨敤锛�");
-            }
-            if(memberCoupon.getStatus().equals(Constants.ONE)){
-                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浼樻儬鍒稿凡浣跨敤锛�");
-            }
-            sumPrice = sumPrice.subtract(memberCoupon.getPrice());
-            goodsorder.setCouponId(orderPayRequest.getCouponId());
-            goodsorder.setCouponPrice(memberCoupon.getPrice());
-        }
-
-        goodsorder.setCode(getNextInCode());
-        if(!Objects.isNull(memberCoupon)){
-            memberCoupon.setStatus(Constants.ONE);
-            memberCouponMapper.updateById(memberCoupon);
-        }
-        //鍜栬眴鍟嗗煄璁㈠崟 鍗曠嫭澶勭悊 鎵e噺绉垎 娣诲姞绉垎鍙樺姩璁板綍
-        if(orderPayRequest.getOrderType().equals(Constants.ONE)){
-            if(member.getIntegral().compareTo(sumPrice)<=Constants.ZERO){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍜栬眴涓嶈冻,鏃犳硶鍏戞崲锛�");
-            }
-            goodsorder.setStatus(Constants.OrderStatus.PAY_DONE.getKey());
-            goodsorder.setPayStatus(Constants.ZERO);
-            goodsorder.setPayDate(new Date());
-            goodsorderMapper.insert(goodsorder);
-            //鏇存柊鐢ㄦ埛绉垎
-            memberMapper.subtractIntegral(member.getId(),sumPrice);
-            PayResponse payResponse = new PayResponse();
-            payResponse.setOrderId(goodsorder.getId());
-            return payResponse;
-        }
-        goodsorder.setIntegral(orderPayRequest.getDeductionBalance());
-        goodsorderMapper.insert(goodsorder);
-        //鏁版嵁瀛樺偍
-        BigDecimal total = Constants.formatBigdecimal(goodsorder.getPrice()).add(Constants.formatBigdecimal(goodsorder.getIntegral())).add(Constants.formatBigdecimal(goodsorder.getCouponPrice()));
-        BigDecimal rate =Constants.formatBigdecimal(goodsorder.getCouponPrice()).divide(total,4,BigDecimal.ROUND_HALF_UP);
-        BigDecimal totalWxMoney = new BigDecimal(0);
-        BigDecimal totalIntegral = new BigDecimal(0);
-        for (int i =0;i< goodsOrderDetailList.size();i++) {
-            GoodsorderDetail goodsOrderDetail= goodsOrderDetailList.get(i);
-            goodsOrderDetail.setOrderId(goodsorder.getId());
-            BigDecimal wxMoney ;
-            BigDecimal integral;
-            if(i!=0 && i == goodsOrderDetailList.size() -1){
-                //澶勭悊鍥犱负鍥涜垗浜斿叆閫犳垚鐨勫彲閫�閲戦鎹熷け
-                wxMoney = Constants.formatBigdecimal(goodsorder.getPrice()).subtract(totalWxMoney);
-                integral = Constants.formatBigdecimal(goodsorder.getIntegral()).subtract(totalIntegral);;
-            }else{
-                //褰撳墠鏄庣粏瀹為檯浠锋牸
-                BigDecimal detialTotal = Constants.formatBigdecimal(goodsOrderDetail.getPrice()).multiply(new BigDecimal(Constants.formatIntegerNum(goodsOrderDetail.getGoodsNum())));
-                //鎶樼畻浼樻儬鍒稿悗鏀粯浠锋牸锛堝寘鍚幇閲戝拰浣欓閮ㄥ垎锛�
-                BigDecimal  actDetialTotal = detialTotal.subtract(detialTotal.multiply(rate));
-                //鎸夌幇閲戝拰绉垎鏀粯姣斾緥锛屾姌绠楁瘡涓槑缁嗙幇閲戝拰绉垎鏀粯鐨勬暟閲�
-                BigDecimal rate1 = detialTotal .divide(total,4,BigDecimal.ROUND_HALF_UP);
-                //鍙��鐜伴噾閲戦
-                wxMoney = Constants.formatBigdecimal(goodsorder.getPrice()).multiply(rate1);
-                //鍓╀笅鐨勬槸浣欓鎶垫墸
-                integral =actDetialTotal.subtract(wxMoney);
-                totalWxMoney = totalWxMoney.add(wxMoney);//绱
-                totalIntegral= totalIntegral.add(integral);//绱
-            }
-            goodsOrderDetail.setMoney(wxMoney);
-            goodsOrderDetail.setIntegral(integral);
-            goodsorderDetailMapper.insert(goodsOrderDetail);
-        }
-        //濡傛灉鎶垫墸閲戦澶т簬 0 鍒欒繘琛屼綑棰濅笟鍔″鐞�
-        if(orderPayRequest.getDeductionBalance().compareTo(BigDecimal.ZERO)>Constants.ZERO){
-            //鎶垫墸閲戦灏忎簬浼氬憳鍓╀綑浣欓
-            if(orderPayRequest.getDeductionBalance().compareTo(member.getIntegral())<=Constants.ZERO){
-                //鏇存柊浣欓淇℃伅 娣诲姞绉垎鍙樺姩璁板綍
-                DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
-                dealIntegralRequest.setIntegralNum(orderPayRequest.getDeductionBalance());
-                dealIntegralRequest.setDealType(Constants.ONE);
-                dealIntegralRequest.setMemberId(member.getId());
-                dealIntegralRequest.setObjId(goodsorder.getId());
-                dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
-                dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER);
-                integralService.dealIntegral(dealIntegralRequest);
-                //鍙戦�佸井淇″皬绋嬪簭璁㈤槄娑堟伅
-                SendWxMessage.integralChangeNotice(member,orderPayRequest.getDeductionBalance());
-                //浣欓鍏ㄩ儴鎶垫墸
-                if(goodsorder.getPrice().compareTo(BigDecimal.ZERO)==Constants.ZERO){
-                    goodsorder.setStatus(Constants.OrderStatus.PAY_DONE.getKey());
-                    goodsorder.setPayStatus(Constants.ONE);
-                    goodsorder.setPayDate(new Date());
-                    goodsorderMapper.updateById(goodsorder);
-                    PayResponse payResponse = new PayResponse();
-                    payResponse.setOrderId(goodsorder.getId());
-                    return payResponse;
-                }
-            }else{
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浣欓涓嶈冻锛屾棤娉曡繘琛屾敮浠橈紝褰撳墠鍓╀綑浣欓锛氥��"+member.getIntegral()+"銆戯紒");
-            }
-        }
-        if(goodsorder.getPrice().compareTo(orderPayRequest.getTitlePrice())!=Constants.ZERO){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍟嗗搧浠锋牸鍙戠敓鍙樺寲锛岃鍒锋柊鍚庨噸鏂版敮浠橈紒");
-        }
-        return this.wxPay(goodsorder,member);
-    }
-
-
 
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -823,6 +727,8 @@
         goodsorder.setMemberId(member.getId());
         goodsorder.setType(Constants.ZERO);
         goodsorder.setStatus(Constants.ZERO);
+        goodsorder.setReceiveType(orderPayRequest.getReceiveType());
+        goodsorder.setCouponPrice(BigDecimal.ZERO);
         Shop shop = null;
         if(Constants.equalsInteger(orderPayRequest.getReceiveType(),Constants.ZERO)){
             //鏌ヨ鏀惰揣鍦板潃
@@ -878,6 +784,7 @@
         payConfirmRequest.setAddressId(orderPayRequest.getAddressId());
         payConfirmRequest.setMemberId(member.getId());
         payConfirmRequest.setCouponId(orderPayRequest.getCouponId());
+        payConfirmRequest.setUseIntegral(orderPayRequest.getUseIntegral());
         //閫氳繃鏀粯纭鎺ュ彛鑾峰彇鐢熸垚鏀粯淇℃伅
         OrderPayConfirmResponse orderPayConfirmResponse = this.orderPayConfirm(payConfirmRequest,memberCouponService);
         if(Objects.isNull(orderPayConfirmResponse)){
@@ -889,6 +796,7 @@
         goodsorder.setIntegral(orderPayConfirmResponse.getIntegralAmount());
         goodsorder.setMailPrice(orderPayConfirmResponse.getMailAmount());
         goodsorder.setPayMethod(goodsorder.getPrice().compareTo(BigDecimal.ZERO)>Constants.ZERO?Constants.ZERO:Constants.ONE);
+        goodsorder.setGoodsNum(orderPayRequest.getPayDetailRequestList().stream().mapToInt(PayDetailRequest::getGoodsNum).sum());
         if(Objects.nonNull(orderPayConfirmResponse.getMemberCoupon())){
             sumPrice = sumPrice.subtract(orderPayConfirmResponse.getMemberCoupon().getPrice());
             goodsorder.setCouponId(orderPayConfirmResponse.getMemberCoupon().getId());
@@ -907,6 +815,7 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏃犳槑缁嗘暟鎹�,璇锋鏌ラ�夋嫨鏁版嵁锛�");
         }
         List<GoodsorderDetail> goodsOrderDetailList = new ArrayList<>();
+        BigDecimal shopSettlement = BigDecimal.ZERO;
         for (OrderGoodsCalculateResponse payDetailRequest:goodsCalculateList) {
             //鏌ヨ鍟嗗搧
             GoodsSku goodsSku = goodsSkuMapper.selectById(payDetailRequest.getSkuId());
@@ -939,6 +848,7 @@
             goodsOrderDetail.setCouponDeduct(payDetailRequest.getCouponDeductCash());
             goodsOrderDetail.setIntegralDeduct(payDetailRequest.getIntegralDeductCash());
             goodsOrderDetail.setOrderId(goodsorder.getId());
+            goodsOrderDetail.setGoodsId(goodsSku.getGoodsId());
 
             //鍒ゆ柇闂ㄥ簵鏄惁璁剧疆鍟嗗搧鐨勪环鏍间俊鎭�
             if(Objects.nonNull(goodsorder.getDistributionShopId())){
@@ -952,7 +862,6 @@
                 if(Objects.isNull(shopGoodsRelation)){
                     throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝缁忛攢鍟嗘湭缁戝畾["+goods.getName()+"]鍟嗗搧锛岃鑱旂郴绠$悊鍛橈紒");
                 }
-
                 PlatformConfigDTO platformConfigDTO = systemDictDataService.getPlatformConfigDTO();
                 //缁忛攢鍟嗕紭鎯犳壙鎷呭崰姣�
                 BigDecimal shopRate = new BigDecimal("100").subtract(platformConfigDTO.getTotalRate());
@@ -963,8 +872,11 @@
                 if(shop.getSaleType().equals(Constants.ONE)){
                     goodsOrderDetail.setShopSettlement(goodsOrderDetail.getPrice().subtract(shopDeductAmount));
                 }else {
+                    //骞冲彴閾鸿揣
                     goodsOrderDetail.setShopSettlement(
-                            shopGoodsRelation.getPrice().subtract(shopGoodsRelation.getPrice()).subtract(shopDeductAmount));
+                            goodsOrderDetail.getPrice()
+                                    .subtract(shopGoodsRelation.getPrice())
+                                    .subtract(shopDeductAmount));
                 }
                 if(goodsOrderDetail.getShopSettlement().compareTo(BigDecimal.ZERO)<Constants.ZERO){
                     goodsOrderDetail.setShopSettlement(BigDecimal.ZERO);
@@ -972,12 +884,16 @@
             }else{
                 goodsOrderDetail.setShopSettlement(BigDecimal.ZERO);
             }
+            shopSettlement = shopSettlement.add(goodsOrderDetail.getShopSettlement());
             goodsOrderDetailList.add(goodsOrderDetail);
             //鍒犻櫎璐墿杞﹀晢鍝�
             shopcartMapper.delete(new QueryWrapper<Shopcart>().lambda()
                     .eq(Shopcart::getMemberId,member.getId())
                     .eq(Shopcart::getGoodsSkuId,goodsOrderDetail.getGoodsSkuId())
             );
+        }
+        if(CollectionUtils.isNotEmpty(goodsOrderDetailList)){
+            goodsorderDetailMapper.insert(goodsOrderDetailList);
         }
         //绉垎鍙樺姩璁板綍
         if(goodsorder.getUseIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
@@ -988,13 +904,15 @@
             dealIntegralRequest.setMemberId(member.getId());
             dealIntegralRequest.setObjId(goodsorder.getId());
             dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
-            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER);
+            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER);
             integralService.dealIntegral(dealIntegralRequest);
         }
 
         if(goodsorder.getPrice().compareTo(orderPayRequest.getTitlePrice())!=Constants.ZERO){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍟嗗搧浠锋牸鍙戠敓鍙樺寲锛岃鍒锋柊鍚庨噸鏂版敮浠橈紒");
         }
+
+
         //瀛樺湪鐜伴噾鏀粯
         if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){
             return this.wxPay(goodsorder,member);
@@ -1002,6 +920,7 @@
         //鏃犵幇閲戞敮浠�
         goodsorderMapper.update(null,new UpdateWrapper<Goodsorder>().lambda()
                 .set(Goodsorder::getStatus,Constants.ONE)
+                .set(Goodsorder::getShopSettlement,shopSettlement)
                 .set(Goodsorder::getPayStatus,Constants.OrderStatus.PAY_DONE.getKey())
                 .set(Goodsorder::getPayDate,DateUtil.getCurrDateTime())
                 .set(Goodsorder::getId,goodsorder.getId())
@@ -1009,6 +928,13 @@
         PayResponse payResponse = new PayResponse();
         payResponse.setOrderId(goodsorder.getId());
         payResponse.setPayType(Constants.ONE);
+        //鍙戦�侀�氱煡
+        if(Objects.nonNull(goodsorder.getPickUpShopId())){
+            //鍙戦�佺珯鍐呬俊 - 缁忛攢鍟�
+            noticeService.orderPayNotice(goodsorder.getPickUpShopId(),goodsorder.getId(),goodsorder.getReceiveType());
+        }
+
+
         return payResponse;
     }
 
@@ -1082,7 +1008,7 @@
             request.setBody("骞冲彴鍟嗗煄");
             request.setAttach("shopGoods");
             request.setOutTradeNo(goodsorder.getCode().toString());
-            request.setTotalFee(BaseWxPayRequest.yuanToFen(goodsorder.getPrice().toString()));
+            request.setTotalFee(1);//BaseWxPayRequest.yuanToFen(goodsorder.getPrice().toString()));
           //  request.setTotalFee(2);
             request.setTimeStart(DateUtil.DateToString(new Date(), "yyyyMMddHHmmss"));
             request.setSpbillCreateIp(this.getIpAddr());
@@ -1116,14 +1042,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());
+    }
+
 
 
     /**
@@ -1138,23 +1081,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;
@@ -1236,7 +1190,7 @@
             dealIntegralRequest.setMemberId(goodsorder.getMemberId());
             dealIntegralRequest.setObjId(goodsorder.getId());
             dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
-            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_CANCEL);
+            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_CANCEL);
             integralService.dealIntegral(dealIntegralRequest);
         }
         //璁㈠崟淇℃伅鍙栨秷
@@ -1260,11 +1214,7 @@
                 }
             }
         }
-
         SendWxMessage.orderCancel(goodsorder,memberMapper.selectById(goodsorder.getMemberId()),goodsName);
-
-
-
         //鏌ヨ浼樻儬鍒镐俊鎭褰�
         if(!Objects.isNull(goodsorder.getCouponId())){
             MemberCoupon memberCoupon = memberCouponMapper.selectById(goodsorder.getCouponId());
@@ -1287,11 +1237,11 @@
             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()) )){
             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();
@@ -1308,6 +1258,7 @@
             fund.setNum(goodsorder.getPrice());
             fundMapper.insert(fund);
         }
+        //璁㈠崟宸叉敮浠樼姸鎬� 锛� 浣跨敤浜嗙Н鍒� 涓旂Н鍒嗕娇鐢ㄥぇ浜�0
         if(goodsorder.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
             //鏇存柊浣欓淇℃伅 娣诲姞绉垎鍙樺姩璁板綍
             DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
@@ -1316,7 +1267,7 @@
             dealIntegralRequest.setMemberId(goodsorder.getMemberId());
             dealIntegralRequest.setObjId(goodsorder.getId());
             dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
-            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_CANCEL);
+            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_CANCEL);
             integralService.dealIntegral(dealIntegralRequest);
         }
         //璁㈠崟淇℃伅鍙栨秷
@@ -1341,7 +1292,10 @@
             }
         }
 
-        //SendWxMessage.orderCancel(goodsorder,memberMapper.selectById(goodsorder.getMemberId()),goodsName);
+        // 鐢ㄦ埛涓诲姩鍙栨秷 鍙戦�佺粡閿�鍟嗙珯鍐呮秷鎭�
+        if(Objects.nonNull(goodsorder.getPickUpShopId())&&StringUtils.isBlank(cancelInfo)){
+            noticeService.orderCancelNotice(goodsorder.getPickUpShopId(),goodsorder.getId(),goodsorder.getCode().toString());
+        }
 
         //鏌ヨ浼樻儬鍒镐俊鎭褰�
         if(!Objects.isNull(goodsorder.getCouponId())){
@@ -1351,11 +1305,9 @@
                 memberCouponMapper.updateById(memberCoupon);
             }
         }
+
+
     }
-
-
-
-
 
     public BigDecimal getDeductAmount(List<PayDetailRequest> requestList){
         List<MemberCoupon> memberCouponList = new ArrayList<>();
@@ -1403,6 +1355,7 @@
         OrderPayConfirmResponse orderPayConfirmResponse = new OrderPayConfirmResponse();
         List<Goods> goodsList = goodsMapper.selectJoinList(Goods.class,
                 new MPJLambdaWrapper<Goods>()
+                        .selectAll(Goods.class)
                         .selectAs(GoodsSku::getPrice,Goods::getSkuPrice)
                         .selectAs(GoodsSku::getId,Goods::getSkuId)
                         .selectAs(GoodsSku::getIntegralRate,Goods::getDeductRata)
@@ -1413,8 +1366,17 @@
         if(CollectionUtils.isEmpty(goodsList)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈尮閰嶅埌鍟嗗搧淇℃伅");
         }
-        List<OrderGoodsCalculateResponse> goodsCalculateList = ListUtil.copyProperties(goodsList,OrderGoodsCalculateResponse::new);
 
+        List<OrderGoodsCalculateResponse> goodsCalculateList = ListUtil.copyProperties(goodsList,OrderGoodsCalculateResponse::new);
+        String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+                systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
+        for (OrderGoodsCalculateResponse orderGoodsCalculateResponse:goodsCalculateList) {
+            orderGoodsCalculateResponse.setSkuImg(StringUtils.isNotBlank(orderGoodsCalculateResponse.getSkuImg())?fullUrl+orderGoodsCalculateResponse.getSkuImg():null);
+            if(Objects.isNull(orderGoodsCalculateResponse.getCouponDeductCash())){
+                orderGoodsCalculateResponse.setCouponDeductCash(BigDecimal.ZERO);
+            }
+//            orderGoodsCalculateResponse.setIntegralDeductCash(BigDecimal.ZERO);
+        }
         //璁㈠崟鎬婚噾棰�
         BigDecimal amount = BigDecimal.ZERO;
         //浼樻儬鍒告姷鎵i噾棰�
@@ -1447,7 +1409,7 @@
                 if(CollectionUtils.isEmpty(memberCoupons)){
                     throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閫夋嫨鐨勪紭鎯犲埜鏃犳晥锛岃鍒锋柊閲嶈瘯");
                 }
-                memberCoupon = memberCouponList.get(Constants.ZERO);
+                memberCoupon = memberCoupons.get(Constants.ZERO);
                 couponAmount = memberCoupon.getValidAmount();
                 memberCouponService.calculateCouponRata(memberCoupon,goodsCalculateList,amount);
                 orderPayConfirmResponse.setMemberCoupon(memberCoupon);
@@ -1554,12 +1516,12 @@
         if(Constants.equalsInteger(type,Constants.ZERO)){
             if( Constants.equalsInteger(platformConfigDTO.getReturnMemberIntegralStatus(),Constants.ZERO)
                 && Objects.nonNull(platformConfigDTO.getReturnMemberIntegral())){
-                integralBack = payAmount.divide(platformConfigDTO.getReturnMemberIntegral(),0,BigDecimal.ROUND_DOWN);
+                integralBack = payAmount.multiply(platformConfigDTO.getReturnMemberIntegral()).divide(BigDecimal.ONE,0,BigDecimal.ROUND_DOWN);
             }
         }else{
             if( Constants.equalsInteger(platformConfigDTO.getReturnShopIntegralStatus(),Constants.ZERO)
                     && Objects.nonNull(platformConfigDTO.getReturnShopIntegral())){
-                integralBack = payAmount.divide(platformConfigDTO.getReturnShopIntegral(),0,BigDecimal.ROUND_DOWN);
+                integralBack = payAmount.multiply(platformConfigDTO.getReturnShopIntegral()).divide(BigDecimal.ONE,0,BigDecimal.ROUND_DOWN);
             }
         }
         return integralBack;
@@ -1575,14 +1537,14 @@
      */
     public BigDecimal  calculateIntegralRata(OrderPayConfirmResponse orderPayConfirmResponse,List<OrderGoodsCalculateResponse> goodsCalculateList,BigDecimal totalIntegral){
         //褰撳墠閫夋嫨鍟嗗搧鏈�澶у彲鐢ㄧН鍒嗘姷鎵g殑閲戦
-        BigDecimal maxDeductionCash =  goodsCalculateList.stream().map(i->i.getSkuAmount().subtract(i.getCouponDeductCash())
+        BigDecimal maxDeductionCash =  goodsCalculateList.stream().map(i->i.getSkuAmount().subtract(Objects.isNull(i.getCouponDeductCash())?BigDecimal.ZERO:i.getCouponDeductCash())
                 .multiply(i.getDeductRata()).multiply(new BigDecimal("0.01"))).reduce(BigDecimal.ZERO,BigDecimal::add);
-        //绉垎 - 鐜伴噾 姣斾緥
+        //绉垎-鐜伴噾鍏戞崲姣斾緥锛圶XX绉垎鎶垫墸1鍏冿級
         BigDecimal cashToIntegralRata = new BigDecimal(systemDictDataBiz.queryByCode(Constants.SHOP_CONFIG,Constants.INTEGRAL_EXCHANGE_CASH_RATA).getCode());
         //褰撳墠閫夋嫨鍟嗗搧鎶垫墸闇�瑕佷娇鐢ㄧ殑绉垎
-        BigDecimal maxDeductionIntegral =  maxDeductionCash.multiply(cashToIntegralRata).multiply(new BigDecimal("100"));
+        BigDecimal maxDeductionIntegral =  maxDeductionCash.multiply(cashToIntegralRata);
         //鑾峰彇褰撳墠闇�瑕佹敮浠樼殑鐜伴噾鎬婚
-        BigDecimal payCash =  goodsCalculateList.stream().map(i->i.getSkuAmount().subtract(i.getCouponDeductCash())).reduce(BigDecimal.ZERO,BigDecimal::add);
+        BigDecimal payCash =  goodsCalculateList.stream().map(i->i.getSkuAmount().subtract(Objects.isNull(i.getCouponDeductCash())?BigDecimal.ZERO:i.getCouponDeductCash())).reduce(BigDecimal.ZERO,BigDecimal::add);
 
         //濡傛灉瀹為檯绉垎灏戜簬鏈�澶ч渶瑕佺Н鍒� 闇�瑕佽绠楁瘮渚嬪崰姣� 鍘诲搴旀坊鍔犺嚦瀵瑰簲鐨勫晢鍝侀噷
         //寰幆涓嬪崟鍟嗗搧鍒楄〃 璁$畻搴旇浣跨敤鐨勭Н鍒嗗��
@@ -1600,7 +1562,7 @@
         //鍓╀綑绉垎鍊�
         orderPayConfirmResponse.setSurplusIntegral(totalIntegral);
         //瀹為檯鎶垫墸浣跨敤绉垎
-        orderPayConfirmResponse.setDeductIntegral(totalIntegral.compareTo(maxDeductionCash)<=Constants.ZERO?totalIntegral:maxDeductionIntegral);
+        orderPayConfirmResponse.setDeductIntegral(totalIntegral.compareTo(maxDeductionIntegral)<=Constants.ZERO?totalIntegral:maxDeductionIntegral);
         return realDeductionCash;
 
     }
@@ -1668,6 +1630,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)){
@@ -1726,8 +1689,11 @@
 
         List<JSONObject> shareCouponRewardList = platformConfigDTO.getShareCouponRewardList();
         //[{"num":"2","couponId":6},{"num":"3","couponId":5}]
+        String couponIds = "";
+        String couponNames = "";
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(shareCouponRewardList)){
             List<MemberCoupon> memberCouponList = new ArrayList<>();
+            List<CouponNoticeRequest> requestList = new ArrayList<>();
             for (JSONObject jsonObject:shareCouponRewardList) {
                 Integer couponId = jsonObject.getInteger("couponId");
                 Integer num = jsonObject.getInteger("num");
@@ -1739,11 +1705,30 @@
                 for (int i = 0; i < num; i++) {
                     memberCouponList.add(memberCoupon);
                 }
+                couponIds = couponIds + (StringUtils.isBlank(couponIds)? ",":"" )+ couponId ;
+                couponNames = couponNames + (StringUtils.isBlank(couponNames)? ",":"" )+ coupon.getName() ;
+
+
+                CouponNoticeRequest couponNoticeRequest = new CouponNoticeRequest();
+                couponNoticeRequest.setMemberCoupon(memberCoupon);
+                couponNoticeRequest.setNum(num);
+                requestList.add(couponNoticeRequest);
             }
             if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberCouponList)){
                 memberCouponJoinMapper.insert(memberCouponList);
             }
+            if(CollectionUtils.isNotEmpty(requestList)){
+                //鍙戦�佺珯鍐呬俊
+                noticeService.couponNotice(inviteMember.getId(),requestList);
+            }
         }
+        inviteRecordMapper.update(new UpdateWrapper<InviteRecord>().lambda()
+                .set(InviteRecord::getFirstOrderStatus,Constants.ONE)
+                .set(InviteRecord::getFirstFinishDate,new Date())
+                .set(InviteRecord::getCouponIds,couponIds)
+                .set(InviteRecord::getCouponNames,couponNames)
+                .eq(InviteRecord::getId,inviteRecord.getId())
+        );
     }
 
 
@@ -1755,10 +1740,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);
         }
@@ -1772,9 +1759,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);
@@ -1801,7 +1788,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);
@@ -1809,7 +1796,11 @@
             dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
             dealIntegralRequest.setObjId(goodsorder.getId());
             dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
-            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.ORDER_DONATE);
+            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER);
+            Member member = memberMapper.selectById(goodsorder.getMemberId());
+            if(Objects.nonNull(member)){
+                dealIntegralRequest.setParam1(member.getNickname());
+            }
             integralService.dealShopIntegral(dealIntegralRequest);
         }
     }
@@ -1830,6 +1821,7 @@
             dealIntegralRequest.setObjId(goodsorder.getId());
             dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
             dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.ORDER_DONE_AMOUNT);
+            dealIntegralRequest.setParam1(goodsorder.getCode().toString());
             integralService.dealShopAmount(dealIntegralRequest);
         }
     }
@@ -1845,12 +1837,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);
@@ -1897,6 +1889,19 @@
         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
@@ -1921,7 +1926,7 @@
         ));
         myPageResponse.setAfterOrders(aftersaleMapper.selectCount(new QueryWrapper<Aftersale>()
                 .apply(" ID in ( select g.id from goodsorder g where g.MEMBER_ID = '"+memberId+"'  ) ")
-                .notIn("STATUS",Constants.AftersaleStatus.DONE,Constants.AftersaleStatus.SHOP_REFUSE,Constants.AftersaleStatus.CANCEL)
+                .notIn("STATUS",Constants.AftersaleStatus.DONE.getKey(),Constants.AftersaleStatus.SHOP_REFUSE.getKey(),Constants.AftersaleStatus.CANCEL.getKey())
         ));
 
 
@@ -2131,6 +2136,13 @@
                         .eq(Collect::getMemberId,member.getId())
                 )
         );
+        homeInfoResponse.setUnRead(
+                noticeMapper.selectCount(new QueryWrapper<Notice>().lambda()
+                        .eq(Notice::getIsdeleted,Constants.ZERO)
+                        .eq(Notice::getMemberId,member.getId())
+                        .eq(Notice::getStatus,Constants.ZERO)
+                )>=Constants.ZERO?Constants.ZERO:Constants.ONE
+        );
 
         return homeInfoResponse;
     }
@@ -2145,12 +2157,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);
@@ -2163,8 +2176,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);
@@ -2174,4 +2187,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