From 4e88d81927a660254005ff247ea79a42616388b4 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 04 Aug 2022 17:32:01 +0800
Subject: [PATCH] 20220804  配送限制

---
 src/main/resources/mapper/modules/MallTeamLeaderMapper.xml                       |    1 
 src/main/resources/templates/febs/views/modules/order/orderDetail.html           |   78 ++--
 src/main/resources/templates/febs/views/modules/goods/deliveryHomeList.html      |  108 +++++++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java  |   23 
 src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java             |    2 
 src/main/java/cc/mrbird/febs/mall/vo/ApiMallGoodsDeliveryVo.java                 |   19 +
 src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java                            |    6 
 src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java                |    5 
 src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java            |    9 
 src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java                           |    3 
 src/main/java/cc/mrbird/febs/mall/dto/ApiXcxOpenDto.java                         |   19 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java |    5 
 src/main/java/cc/mrbird/febs/mall/vo/AdminHomeDeliverySettingVo.java             |   19 +
 src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java           |    7 
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java       |    7 
 src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java                    |    3 
 src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java                |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java        |   29 +
 src/main/resources/templates/febs/views/modules/goods/deliverySetting.html       |   81 +++++
 src/main/java/cc/mrbird/febs/mall/vo/AdminRangeSettingVo.java                    |   17 +
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java       |   48 +++
 src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java             |   12 
 src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderInfoVo.java                   |    6 
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java        |    7 
 src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java              |    3 
 src/main/resources/mapper/modules/MallOrderInfoMapper.xml                        |   11 
 src/main/java/cc/mrbird/febs/common/enumerates/OrderDeliveryStateEnum.java       |   25 +
 src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java            |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java     |   29 +
 src/main/resources/mapper/modules/MallGoodsMapper.xml                            |   11 
 src/main/java/cc/mrbird/febs/mall/vo/ApiMallGoodsDeliverySettingVo.java          |   17 +
 src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java        |   64 ++++
 src/main/resources/templates/febs/views/modules/goods/deliveryHomeUpdate.html    |   85 +++++
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java         |   10 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java      |   33 ++
 src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java                      |    8 
 src/main/resources/templates/febs/views/modules/order/orderList.html             |   43 ++
 src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java                          |    4 
 38 files changed, 786 insertions(+), 75 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
index ae23dd7..8532909 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -5,6 +5,13 @@
 
 @Getter
 public enum DataDictionaryEnum {
+    //配送设置
+    HOME_DELIVERY_AMOUNT("DELIVERY_SETTING", "HOME_DELIVERY_AMOUNT"),
+    FRIST_COST_LEVEL("HOME_DELIVERY_SETTING", "FRIST_COST_LEVEL"),
+    SECOND_COST_LEVEL("HOME_DELIVERY_SETTING", "SECOND_COST_LEVEL"),
+    //范围参数
+    RANGE_SWITCH("RANGE_SETTING", "RANGE_SWITCH"),
+    RANGE_SIZE("RANGE_SETTING", "RANGE_SIZE"),
 
     SCORE_SIGN_SETTING("SCORE_SETTING", "SCORE_SIGN_SETTING"),
     STATIC_BONUS("BONUS_TYPE", "STATIC_BONUS"),
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/OrderDeliveryStateEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/OrderDeliveryStateEnum.java
new file mode 100644
index 0000000..2d639ce
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/OrderDeliveryStateEnum.java
@@ -0,0 +1,25 @@
+package cc.mrbird.febs.common.enumerates;
+
+import lombok.Getter;
+
+@Getter
+public enum OrderDeliveryStateEnum {
+    /**
+     * 待配送
+     */
+    DELIVERY_WAIT(1),
+    /**
+     * 配送中
+     */
+    DELIVERY_ING(2),
+    /**
+     * 已送达
+     */
+    DELIVERY_FINISH(3);
+
+    private final int value;
+
+    OrderDeliveryStateEnum(int value) {
+        this.value = value;
+    }
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java
index 9dd068a..567ff86 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java
@@ -5,15 +5,21 @@
 import cc.mrbird.febs.common.controller.BaseController;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
 import cc.mrbird.febs.common.utils.OssUtils;
 import cc.mrbird.febs.mall.dto.AddMallGoodsDto;
 import cc.mrbird.febs.mall.dto.MallGoodsUpdateDto;
+import cc.mrbird.febs.mall.dto.RankAwardUpdateDto;
 import cc.mrbird.febs.mall.dto.UpMallGoodsDto;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
 import cc.mrbird.febs.mall.entity.MallGoods;
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
 import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
+import cc.mrbird.febs.mall.vo.AdminHomeDeliverySettingVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsTreeVo;
+import cc.mrbird.febs.mall.vo.AdminRangeSettingVo;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import lombok.RequiredArgsConstructor;
@@ -38,6 +44,7 @@
 public class AdminMallGoodsController extends BaseController {
 
     private final IAdminMallGoodsService adminMallGoodsService;
+    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
 
     /**
      *  图片上传
@@ -162,5 +169,46 @@
         return adminMallGoodsService.getAllGoodsTree();
     }
 
+    /**
+     * 商品配送设置 -- 更新
+     */
+    @PostMapping(value = "/deliverySetUpdate")
+    public FebsResponse deliverySetUpdate(AdminRangeSettingVo adminRangeSettingVo) {
+        Integer rangeSwitch = adminRangeSettingVo.getRangeSwitch();
+        DataDictionaryCustom rangeSwitchDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SWITCH.getType(), DataDictionaryEnum.RANGE_SWITCH.getCode());
+        rangeSwitchDic.setValue(rangeSwitch.toString());
+        dataDictionaryCustomMapper.updateById(rangeSwitchDic);
+
+        Integer rangeSize = adminRangeSettingVo.getRangeSize();
+        DataDictionaryCustom rangeSizeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SIZE.getType(), DataDictionaryEnum.RANGE_SIZE.getCode());
+        rangeSizeDic.setValue(rangeSize.toString());
+        dataDictionaryCustomMapper.updateById(rangeSizeDic);
+
+        Double homeDeliveryAmount = adminRangeSettingVo.getHomeDeliveryAmount();
+        DataDictionaryCustom homeDeliveryAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.HOME_DELIVERY_AMOUNT.getType(), DataDictionaryEnum.HOME_DELIVERY_AMOUNT.getCode());
+        homeDeliveryAmountDic.setValue(homeDeliveryAmount.toString());
+        dataDictionaryCustomMapper.updateById(homeDeliveryAmountDic);
+
+        return new FebsResponse().success();
+    }
+
+    /**
+     * 配送费列表
+     */
+    @GetMapping("deliveryHomeList")
+    public FebsResponse deliveryHomeList(AdminHomeDeliverySettingVo adminHomeDeliverySettingVo, QueryRequest request) {
+        Map<String, Object> data = getDataTable(adminMallGoodsService.getDeliveryHomeListInPage(adminHomeDeliverySettingVo, request));
+        return new FebsResponse().success().data(data);
+    }
+
+    /**
+     * 配送费列表-更新
+     */
+    @PostMapping("deliveryHomeUpdate")
+    @ControllerEndpoint(operation = "配送费列表-更新", exceptionMessage = "操作失败")
+    public FebsResponse deliveryHomeUpdate(@Valid AdminHomeDeliverySettingVo adminHomeDeliverySettingVo) {
+        return adminMallGoodsService.deliveryHomeUpdate(adminHomeDeliverySettingVo);
+    }
+
 
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
index b5aa7ad..cfd5b69 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -5,6 +5,8 @@
 import cc.mrbird.febs.common.entity.DeptTree;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum;
+import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.excl.ExcelSheetPO;
 import cc.mrbird.febs.common.utils.excl.ExcelUtil;
@@ -12,6 +14,7 @@
 import cc.mrbird.febs.common.utils.excl.ResponseHeadUtil;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
+import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
 import cc.mrbird.febs.mall.mapper.MallOrderRefundOperationMapper;
 import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
 import cc.mrbird.febs.mall.service.IAdminMallOrderService;
@@ -280,7 +283,7 @@
         ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true);
         return null;
     }
-
+    private final MallOrderInfoMapper mallOrderInfoMapper;
     @GetMapping("exportOrderListOne")
     @ControllerEndpoint(operation = "订单列表", exceptionMessage = "导出失败")
     public FebsResponse exportOrderListOne(MallOrderInfo mallOrderInfo, HttpServletResponse response) throws IOException {
@@ -326,6 +329,8 @@
                 temp.add(item.getAddressArea());
                 temp.add(item.getProvince()+item.getCity()+item.getTownship()+item.getDetailAddress());
                 list.add(temp);
+
+                adminMallOrderService.updateOrderStateAndDeliveryState(item.getId(), OrderStatusEnum.WAIT_FINISH.getValue(), OrderDeliveryStateEnum.DELIVERY_ING.getValue());
             }
         }
         orderSheet.setDataList(list);
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java
index 145379b..c8416aa 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java
@@ -83,4 +83,16 @@
         return memberService.xcxSaveInfo(apiXcxSaveInfoDto);
     }
 
+    /**
+     * 小程序是否允许打开
+     *    先获取系统设置的范围访问开关
+     *      1:开启,获取范围大小,如果范围内没有团长,不允许打开
+     *      2:关闭,允许打开
+     */
+    @ApiOperation(value = "小程序是否允许打开", notes = "小程序是否允许打开")
+    @PostMapping(value = "/xcxOpen")
+    public FebsResponse xcxOpen(@RequestBody ApiXcxOpenDto apiXcxOpenDto){
+        return memberService.xcxOpen(apiXcxOpenDto);
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
index 01d12fc..39afe3f 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.mall.dto.ApiMallGoodsCommentDto;
 import cc.mrbird.febs.mall.dto.MallGoodsQueryDto;
 import cc.mrbird.febs.mall.service.IApiMallGoodsService;
+import cc.mrbird.febs.mall.vo.ApiMallGoodsDeliveryVo;
 import cc.mrbird.febs.mall.vo.MallGoodsCommentVo;
 import cc.mrbird.febs.mall.vo.MallGoodsDetailsVo;
 import cc.mrbird.febs.mall.vo.MallGoodsListVo;
@@ -56,4 +57,13 @@
         return new FebsResponse().success().data(mallGoodsService.findMallGoodsCommentByGoodsId(queryDto));
     }
 
+    @ApiOperation(value = "配送设置", notes = "配送设置")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = ApiMallGoodsDeliveryVo.class)
+    })
+    @GetMapping(value = "/deliverySetting")
+    public FebsResponse deliverySetting() {
+        return new FebsResponse().success().data(mallGoodsService.findDeliverySetting());
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java
index 3119c67..28f8fc8 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java
@@ -2,20 +2,30 @@
 
 import cc.mrbird.febs.common.controller.BaseController;
 import cc.mrbird.febs.common.entity.FebsConstant;
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
 import cc.mrbird.febs.common.utils.FebsUtil;
+import cc.mrbird.febs.mall.dto.ScoreSettingDto;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
 import cc.mrbird.febs.mall.entity.MallGoods;
+import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
 import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
 import cc.mrbird.febs.mall.service.IAdminMallMemberService;
-import cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo;
-import cc.mrbird.febs.mall.vo.AdminMailGoodsUpdateVo;
-import cc.mrbird.febs.mall.vo.MallMemberVo;
+import cc.mrbird.febs.mall.vo.*;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
 import lombok.RequiredArgsConstructor;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+
+import java.util.List;
 
 @Controller("goodsView")
 @RequestMapping(FebsConstant.VIEW_PREFIX + "modules/goods")
@@ -23,6 +33,7 @@
 public class ViewMallGoodsController extends BaseController {
 
     private final IAdminMallGoodsService mallGoodsService;
+    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
 
     /**
      * 商品列表
@@ -81,4 +92,51 @@
         model.addAttribute("goodsInfo", data);
         return FebsUtil.view("modules/goods/goodsUpdateNew");
     }
+
+    /**
+     * 商品配送设置
+     * @param model
+     * @return
+     */
+    @GetMapping("/deliverySetting")
+    public String deliverySetting(Model model) {
+        AdminRangeSettingVo adminRangeSettingVo = new AdminRangeSettingVo();
+        DataDictionaryCustom deliverySetting = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.HOME_DELIVERY_AMOUNT.getType(), DataDictionaryEnum.HOME_DELIVERY_AMOUNT.getCode());
+        if (ObjectUtil.isNotNull(deliverySetting)) {
+            adminRangeSettingVo.setHomeDeliveryAmount(Double.parseDouble(deliverySetting.getValue()));
+        }
+        DataDictionaryCustom rangeSwitch = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SWITCH.getType(), DataDictionaryEnum.RANGE_SWITCH.getCode());
+        if (ObjectUtil.isNotNull(rangeSwitch)) {
+            adminRangeSettingVo.setRangeSwitch(Integer.parseInt(rangeSwitch.getValue()));
+        }
+        DataDictionaryCustom rangeSize = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SIZE.getType(), DataDictionaryEnum.RANGE_SIZE.getCode());
+        if (ObjectUtil.isNotNull(rangeSize)) {
+            adminRangeSettingVo.setRangeSize(Integer.parseInt(rangeSize.getValue()));
+        }
+        model.addAttribute("deliverySetting", adminRangeSettingVo);
+        return FebsUtil.view("modules/goods/deliverySetting");
+    }
+
+    /**
+     * 配送费设置
+     * @return
+     */
+    @GetMapping("deliveryHomeList")
+    @RequiresPermissions("deliveryHomeList:view")
+    public String deliveryHomeList() {
+        return FebsUtil.view("modules/goods/deliveryHomeList");
+    }
+
+    /**
+     * 配送费设置 --- 编辑
+     */
+    @GetMapping("deliveryHomeUpdate/{id}")
+    @RequiresPermissions("deliveryHomeUpdate:update")
+    public String deliveryHomeUpdate(@PathVariable long id, Model model) {
+        DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(id);
+        AdminHomeDeliverySettingVo adminHomeDeliverySettingVo = JSONUtil.toBean(dataDictionaryCustom.getValue(), AdminHomeDeliverySettingVo.class);
+        adminHomeDeliverySettingVo.setId(id);
+        model.addAttribute("homeDeliverySetting", adminHomeDeliverySettingVo);
+        return FebsUtil.view("modules/goods/deliveryHomeUpdate");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java
index 0b7e21c..71fe23b 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java
@@ -28,6 +28,9 @@
     @ApiModelProperty(value = "订单提交类型", example = "1从购物车提交, 2从商品直接提交")
     private Integer type;
 
+    @ApiModelProperty(value = "是否送货上门  1:是 2:否", example = "1")
+    private Integer isHome;
+
     @ApiModelProperty(value = "备注")
     private String remark;
 
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxOpenDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxOpenDto.java
new file mode 100644
index 0000000..2e52b18
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxOpenDto.java
@@ -0,0 +1,19 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiXcxOpenDto", description = "小程序登录")
+public class ApiXcxOpenDto {
+
+    @ApiModelProperty(value = "经度")
+    private Double longitude;
+
+    @ApiModelProperty(value = "纬度")
+    private Double latitude;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
index 72b0f24..1aff7ac 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
@@ -121,4 +121,12 @@
      * 微信订单编号
      */
     private String wxOrderNo;
+    /**
+     * 配送状态 1:待配送 2:配送中 3:已送达
+     */
+    private Integer deliveryState;
+    /**
+     * 是否送货上门  1:是 2:否
+     */
+    private Integer isHome;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
index 59206a4..21696f8 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
@@ -1,6 +1,7 @@
 package cc.mrbird.febs.mall.mapper;
 
 import cc.mrbird.febs.mall.dto.MallGoodsQueryDto;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
 import cc.mrbird.febs.mall.entity.MallGoods;
 import cc.mrbird.febs.mall.entity.MallGoodsComment;
 import cc.mrbird.febs.mall.vo.*;
@@ -43,4 +44,6 @@
     List<MallGoods> selectOrderGoodsList(@Param("memberId") Long memberId, @Param("date") Date date);
 
     IPage<MallGoodsCommentVo> selectMallGoodsCommentListQueryInPage(Page<MallGoodsCommentVo> page,  @Param("record")MallGoodsComment mallGoodsComment);
+
+    IPage<DataDictionaryCustom> getDeliveryHomeListInPage(Page<DataDictionaryCustom> page, @Param("record")AdminHomeDeliverySettingVo adminHomeDeliverySettingVo);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
index f511408..fc4e284 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -61,4 +61,6 @@
     List<MallOrderInfo> selectOrderInfoWithNormalGoods(@Param("date") Date date);
 
     BigDecimal selectSumAmountByPayMethodAndStatue(@Param("payMethod")String name, @Param("statue")int value);
+
+    void updateOrderStateAndDeliveryState(@Param("orderId")Long orderId, @Param("orderState")int orderState, @Param("deliveryState")int deliveryState);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java
index 4b910ee..8f50189 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java
@@ -7,10 +7,7 @@
 import cc.mrbird.febs.mall.dto.UpMallGoodsDto;
 import cc.mrbird.febs.mall.entity.MallGoods;
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
-import cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo;
-import cc.mrbird.febs.mall.vo.AdminMailGoodsUpdateVo;
-import cc.mrbird.febs.mall.vo.AdminMallGoodsTreeVo;
-import cc.mrbird.febs.mall.vo.AdminMallGoodsVo;
+import cc.mrbird.febs.mall.vo.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -41,4 +38,8 @@
     FebsResponse goodsHot(Long id);
 
     FebsResponse goodsNotHot(Long id);
+
+    IPage<AdminHomeDeliverySettingVo> getDeliveryHomeListInPage(AdminHomeDeliverySettingVo adminHomeDeliverySettingVo, QueryRequest request);
+
+    FebsResponse deliveryHomeUpdate(AdminHomeDeliverySettingVo adminHomeDeliverySettingVo);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
index cc13c93..b612bbd 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
@@ -66,4 +66,6 @@
     FebsResponse showStateSwitchOn(Long id);
 
     FebsResponse showStateSwitchOff(Long id);
+
+    void updateOrderStateAndDeliveryState(Long id, int value, int value1);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java
index f5c6b2d..1bd9963 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallGoodsService.java
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.mall.dto.ApiMallGoodsCommentDto;
 import cc.mrbird.febs.mall.dto.MallGoodsQueryDto;
 import cc.mrbird.febs.mall.entity.MallGoods;
+import cc.mrbird.febs.mall.vo.ApiMallGoodsDeliveryVo;
 import cc.mrbird.febs.mall.vo.MallGoodsCommentVo;
 import cc.mrbird.febs.mall.vo.MallGoodsDetailsVo;
 import cc.mrbird.febs.mall.vo.MallGoodsListVo;
@@ -17,4 +18,6 @@
     MallGoodsDetailsVo findMallGoodsDetailsById(@Param("id") Long id);
 
     IPage<MallGoodsCommentVo> findMallGoodsCommentByGoodsId(ApiMallGoodsCommentDto queryDto);
+
+    ApiMallGoodsDeliveryVo findDeliverySetting();
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
index fd5b87a..02f6bb7 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -71,4 +71,6 @@
     FebsResponse xcxSaveInfo(ApiXcxSaveInfoDto apiXcxSaveInfoDto);
 
     FebsResponse xcxPhoneLogin(ApiXcxPhoneLoginDto apiXcxPhoneLoginDto);
+
+    FebsResponse xcxOpen(ApiXcxOpenDto apiXcxOpenDto);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
index 14dcdcf..a65ff45 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -12,6 +12,7 @@
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -495,5 +496,33 @@
         return new FebsResponse().success();
     }
 
+    @Override
+    public IPage<AdminHomeDeliverySettingVo> getDeliveryHomeListInPage(AdminHomeDeliverySettingVo adminHomeDeliverySetting, QueryRequest request) {
+        Page<DataDictionaryCustom> page = new Page<>(request.getPageNum(), request.getPageSize());
+        IPage<DataDictionaryCustom> dataDictionaryCustomIPage = this.baseMapper.getDeliveryHomeListInPage(page, adminHomeDeliverySetting);
+        List<DataDictionaryCustom> records = dataDictionaryCustomIPage.getRecords();
+        List<AdminHomeDeliverySettingVo> adminHomeDeliverySettingVos = new ArrayList<>();
+        if(CollUtil.isNotEmpty(records)){
+            for(DataDictionaryCustom dataDictionaryCustom : records){
+                AdminHomeDeliverySettingVo adminHomeDeliverySettingVo = JSONUtil.toBean(dataDictionaryCustom.getValue(), AdminHomeDeliverySettingVo.class);
+                adminHomeDeliverySettingVo.setId(dataDictionaryCustom.getId());
+                adminHomeDeliverySettingVos.add(adminHomeDeliverySettingVo);
+            }
+        }
+        IPage<AdminHomeDeliverySettingVo> adminHomeDeliverySettingVoIPage = new Page<>();
+        adminHomeDeliverySettingVoIPage.setRecords(adminHomeDeliverySettingVos);
+        adminHomeDeliverySettingVoIPage.setTotal(dataDictionaryCustomIPage.getTotal());
+        return adminHomeDeliverySettingVoIPage;
+    }
 
+
+    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+    @Override
+    public FebsResponse deliveryHomeUpdate(AdminHomeDeliverySettingVo adminHomeDeliverySettingVo) {
+        DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(adminHomeDeliverySettingVo.getId());
+        adminHomeDeliverySettingVo.setId(null);
+        dataDictionaryCustom.setValue(JSONUtil.toJsonStr(adminHomeDeliverySettingVo));
+        dataDictionaryCustomMapper.updateById(dataDictionaryCustom);
+        return new FebsResponse().success();
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
index 4cd454e..bf4b6f1 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
@@ -103,6 +104,7 @@
         mallExpressInfoMapper.insert(mallExpressInfo);
 
         mallOrderInfo.setStatus(3);
+        mallOrderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_ING.getValue());
         mallOrderInfoMapper.updateById(mallOrderInfo);
         return new FebsResponse().success();
     }
@@ -398,6 +400,11 @@
     }
 
     @Override
+    public void updateOrderStateAndDeliveryState(Long id, int value, int value1) {
+        mallOrderInfoMapper.updateOrderStateAndDeliveryState(id,value,value1);
+    }
+
+    @Override
     public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) {
         MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo());
         if (mallOrderInfo == null) {
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
index 6135e77..bab3a30 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
@@ -1,29 +1,35 @@
 package cc.mrbird.febs.mall.service.impl;
 
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
 import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.utils.AppContants;
 import cc.mrbird.febs.mall.conversion.MallGoodsConversion;
 import cc.mrbird.febs.mall.conversion.MallMemberConversion;
 import cc.mrbird.febs.mall.dto.ApiMallGoodsCommentDto;
 import cc.mrbird.febs.mall.dto.MallGoodsQueryDto;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
 import cc.mrbird.febs.mall.entity.MallGoods;
 import cc.mrbird.febs.mall.entity.MallGoodsComment;
+import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
 import cc.mrbird.febs.mall.mapper.MallGoodsCommentMapper;
 import cc.mrbird.febs.mall.mapper.MallGoodsImagesMapper;
 import cc.mrbird.febs.mall.mapper.MallGoodsMapper;
 import cc.mrbird.febs.mall.service.IApiMallGoodsService;
-import cc.mrbird.febs.mall.vo.MallGoodsCommentVo;
-import cc.mrbird.febs.mall.vo.MallGoodsDetailsVo;
-import cc.mrbird.febs.mall.vo.MallGoodsListVo;
+import cc.mrbird.febs.mall.vo.*;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -38,6 +44,7 @@
 
     private final MallGoodsImagesMapper goodsImagesMapper;
     private final MallGoodsCommentMapper mallGoodsCommentMapper;
+    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
 
 
     @Override
@@ -76,4 +83,24 @@
         mallGoodsComment.setGoodsId(queryDto.getGoodsId());
         return this.baseMapper.selectMallGoodsCommentListQueryInPage(page,mallGoodsComment);
     }
+
+    @Override
+    public ApiMallGoodsDeliveryVo findDeliverySetting() {
+        ApiMallGoodsDeliveryVo apiMallGoodsDeliveryVo = new ApiMallGoodsDeliveryVo();
+        DataDictionaryCustom deliverySetting = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.HOME_DELIVERY_AMOUNT.getType(), DataDictionaryEnum.HOME_DELIVERY_AMOUNT.getCode());
+        if(ObjectUtil.isNotNull(deliverySetting)){
+            apiMallGoodsDeliveryVo.setHomeDeliveryServiceAmount(Double.parseDouble(deliverySetting.getValue()));
+        }
+        List<DataDictionaryCustom> homeDeliverySettings = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.FRIST_COST_LEVEL.getType());
+        if(CollUtil.isNotEmpty(homeDeliverySettings)){
+            List<ApiMallGoodsDeliverySettingVo> apiMallGoodsDeliverySettingVos = new ArrayList<>();
+            for(DataDictionaryCustom dic : homeDeliverySettings){
+                String apiMallGoodsDeliverySettingVoJson = dic.getValue();
+                ApiMallGoodsDeliverySettingVo apiMallGoodsDeliverySettingVo = JSONUtil.toBean(apiMallGoodsDeliverySettingVoJson, ApiMallGoodsDeliverySettingVo.class);
+                apiMallGoodsDeliverySettingVos.add(apiMallGoodsDeliverySettingVo);
+            }
+            apiMallGoodsDeliveryVo.setApiMallGoodsDeliverySettingVos(apiMallGoodsDeliverySettingVos);
+        }
+        return apiMallGoodsDeliveryVo;
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 2c4de86..5e28dc2 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -701,6 +701,35 @@
         return new FebsResponse().fail().message("验证码错误");
     }
 
+    @Override
+    public FebsResponse xcxOpen(ApiXcxOpenDto apiXcxOpenDto) {
+        DataDictionaryCustom rangeSwitch = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SWITCH.getType(), DataDictionaryEnum.RANGE_SWITCH.getCode());
+        if(StrUtil.isNotBlank(rangeSwitch.getValue()) && "1".equals(rangeSwitch.getValue())){
+            if(ObjectUtil.isNull(apiXcxOpenDto.getLongitude()) || ObjectUtil.isNull(apiXcxOpenDto.getLatitude())){
+                return new FebsResponse().fail().message("请授权位置信息");
+            }
+            Double longitude = apiXcxOpenDto.getLongitude();
+            Double latitude = apiXcxOpenDto.getLatitude();
+
+            DataDictionaryCustom rangeSize = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SIZE.getType(), DataDictionaryEnum.RANGE_SIZE.getCode());
+            if(ObjectUtil.isEmpty(rangeSize)){
+                return new FebsResponse().fail().message("系统繁忙");
+            }
+            if(StrUtil.isBlank(rangeSize.getValue())){
+                return new FebsResponse().fail().message("系统繁忙");
+            }
+            //方位大小,换成单位:米
+            Integer value = Integer.parseInt(rangeSize.getValue()) * 1000;
+            //根据经纬度获取周围团长的距离
+            MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByLonAndLat(longitude, latitude);
+            Double distance = mallTeamLeader.getDistance();
+            if(value <= distance){
+                return new FebsResponse().fail().message("系统繁忙");
+            }
+        }
+        return new FebsResponse().success();
+    }
+
     private  String getXcxLoginUrl(String code) {
         String wechatLoginUrl =xcxProperties.getWecharLoginUrl();
         return String.format(wechatLoginUrl, xcxProperties.getXcxAppid(), xcxProperties.getXcxSecret(), code);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 1761ef5..9ac608f 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -71,10 +71,6 @@
         if(StrUtil.isEmpty(takeUniqueCode)){
             throw new FebsException("请选择自提点");
         }
-        MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId());
-        if (address == null) {
-            throw new FebsException("地址不存在");
-        }
 
         String orderNo = MallUtils.getOrderNum();
         MallOrderInfo orderInfo = new MallOrderInfo();
@@ -82,11 +78,6 @@
         orderInfo.setOrderTime(new Date());
         orderInfo.setMemberId(member.getId());
         orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue());
-        orderInfo.setName(address.getName());
-        orderInfo.setAddress(address.getArea() + address.getAddress());
-        orderInfo.setPhone(address.getPhone());
-        orderInfo.setLatitude(address.getLatitude());
-        orderInfo.setLongitude(address.getLongitude());
         orderInfo.setRemark(addOrderDto.getRemark());
         orderInfo.setOrderType(addOrderDto.getOrderType());
 
@@ -180,6 +171,20 @@
 
         orderInfo.setAmount(total);
         orderInfo.setCarriage(carriage);
+
+        MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId());
+        orderInfo.setName(address.getName());
+        orderInfo.setPhone(address.getPhone());
+        orderInfo.setIsHome(addOrderDto.getIsHome());
+        //订单金额大于50,且选择送货上门,订单需要选择地址信息
+        if(total.compareTo(new BigDecimal(50)) > 0 && 1 == addOrderDto.getIsHome()){
+            if (StrUtil.isBlank(address.getLatitude())||StrUtil.isBlank(address.getLongitude())) {
+                throw new FebsException("请添加地址");
+            }
+            orderInfo.setAddress(address.getArea() + address.getAddress());
+            orderInfo.setLatitude(address.getLatitude());
+            orderInfo.setLongitude(address.getLongitude());
+        }
         this.baseMapper.updateById(orderInfo);
 
         agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
index 6043076..842a9c0 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallTeamLeaderServiceImpl.java
@@ -1,6 +1,7 @@
 package cc.mrbird.febs.mall.service.impl;
 
 import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum;
 import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.common.utils.ShareCodeUtil;
@@ -121,14 +122,14 @@
             return new FebsResponse().fail().message("订单不存在");
         }
         Integer status = mallOrderInfo.getStatus();
-        if(OrderStatusEnum.WAIT_SHIPPING.getValue() != status){
+        if(OrderStatusEnum.WAIT_FINISH.getValue() != status){
             return new FebsResponse().fail().message("订单不是待确认到货状态");
         }
         Integer deliveryType = mallOrderInfo.getDeliveryType();
         if(1 != deliveryType){
             return new FebsResponse().fail().message("订单的配送方式不是自提");
         }
-        mallOrderInfo.setStatus(OrderStatusEnum.WAIT_FINISH.getValue());
+        mallOrderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_FINISH.getValue());
         mallOrderInfoMapper.updateById(mallOrderInfo);
         return new FebsResponse().success().message("确认成功");
     }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminHomeDeliverySettingVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminHomeDeliverySettingVo.java
new file mode 100644
index 0000000..e400a32
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminHomeDeliverySettingVo.java
@@ -0,0 +1,19 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "AdminHomeDeliverySettingVo", description = "信息返回类")
+public class AdminHomeDeliverySettingVo {
+
+    private Long id;
+
+    @ApiModelProperty(value = "订单金额超过:amount")
+    private Double amount;
+
+    @ApiModelProperty(value = "配送费:cost")
+    private Double cost;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderInfoVo.java
index f5caa96..d45bf3b 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderInfoVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderInfoVo.java
@@ -73,4 +73,10 @@
     private Integer carriage;
     //配送方式 1:自提 2:快递
     private Integer deliveryType;
+
+    private String wxOrderNo;
+    //配送状态 1:待配送 2:配送中 3:已送达
+    private Integer deliveryState;
+    //是否送货上门  1:是 2:否
+    private Integer isHome;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminRangeSettingVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminRangeSettingVo.java
new file mode 100644
index 0000000..c76817f
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminRangeSettingVo.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "AdminRangeSettingVo", description = "信息返回类")
+public class AdminRangeSettingVo {
+
+    //范围访问开关1:开启2:关闭
+    private Integer rangeSwitch;
+    //范围大小(单位:千米)
+    private Integer rangeSize;
+    //超过金额可以提供送货上门服务
+    private Double homeDeliveryAmount;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiMallGoodsDeliverySettingVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiMallGoodsDeliverySettingVo.java
new file mode 100644
index 0000000..f29a5ef
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiMallGoodsDeliverySettingVo.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiMallGoodsDeliverySettingVo", description = "配送设置")
+public class ApiMallGoodsDeliverySettingVo {
+
+    @ApiModelProperty(value = "订单金额超过:amount")
+    private Double amount;
+
+    @ApiModelProperty(value = "配送费:cost")
+    private Double cost;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiMallGoodsDeliveryVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiMallGoodsDeliveryVo.java
new file mode 100644
index 0000000..e2ac246
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiMallGoodsDeliveryVo.java
@@ -0,0 +1,19 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "MallGoodsDeliveryVo", description = "配送设置")
+public class ApiMallGoodsDeliveryVo {
+
+    @ApiModelProperty(value = "超过金额可以提供送货上门服务")
+    private Double homeDeliveryServiceAmount;
+
+    @ApiModelProperty(value = "订单金额超过:amount,配送费:cost")
+    private List<ApiMallGoodsDeliverySettingVo> apiMallGoodsDeliverySettingVos;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
index 2ce0603..2b167ec 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
@@ -107,5 +107,9 @@
     private String addressArea;
     @ApiModelProperty(value = "自提点详细地址")
     private String detailAddress;
+    @ApiModelProperty(value = "配送状态 1:待配送 2:配送中 3:已送达")
+    private Integer deliveryState;
+    @ApiModelProperty(value = "是否送货上门  1:是 2:否")
+    private Integer isHome;
 }
 
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
index 436fe31..181b33c 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
@@ -45,4 +45,10 @@
 
     @ApiModelProperty(value = "提货码")
     private String takeCode;
+
+    @ApiModelProperty(value = "配送状态 1:待配送 2:配送中 3:已送达")
+    private Integer deliveryState;
+
+    @ApiModelProperty(value = "是否送货上门  1:是 2:否")
+    private Integer isHome;
 }
diff --git a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
index 4175218..518328c 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
@@ -1,6 +1,7 @@
 package cc.mrbird.febs.pay.controller;
 
 import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum;
 import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
 import cc.mrbird.febs.mall.entity.MallOrderInfo;
 import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
@@ -22,6 +23,7 @@
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.Date;
 
 @Slf4j
 @RestController
@@ -88,6 +90,9 @@
                         if (order != null && OrderStatusEnum.WAIT_PAY.getValue() == order.getStatus()) {
                             log.debug("检查支付金额payMoney={},order.getPayMoney()={}", payMoney, order.getAmount());
                             order.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
+                            order.setPayResult("1");
+                            order.setPayTime(new Date());
+                            order.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue());
                             mallOrderInfoMapper.updateById(order);
                             threadResult.success().message("支付成功");
                         } else {
diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index 0d125cd..b7498ce 100644
--- a/src/main/resources/mapper/modules/MallGoodsMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -234,4 +234,15 @@
         order by a.created_time desc
     </select>
 
+    <select id="getDeliveryHomeListInPage" resultType="cc.mrbird.febs.mall.entity.DataDictionaryCustom">
+        SELECT
+            a.*
+        FROM
+            data_dictionary_custom a
+        where a.type = 'HOME_DELIVERY_SETTING'
+        GROUP BY a.id
+        ORDER BY
+            a.CREATED_TIME asc
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 247081a..b1ebead 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -59,7 +59,7 @@
     </select>
 
     <select id="selectOrderListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo">
-        select *,
+        select a.*,
                b.name memberName,
                b.bind_phone memberBindPhone,
                b.phone memberPhone
@@ -123,6 +123,8 @@
         <result column="remark" property="remark" />
         <result column="take_code" property="takeCode" />
         <result column="take_unique_code" property="takeUniqueCode" />
+        <result column="delivery_state" property="deliveryState" />
+        <result column="is_home" property="isHome" />
         <result column="del_flag" property="delFlag" />
         <result column="leader_name" property="leaderName" />
         <result column="leader_phone" property="leaderPhone" />
@@ -333,4 +335,11 @@
         select IFNULL(sum(IFNULL(amount,0)),0) from mall_order_info
         where pay_method = #{payMethod} and status = #{statue}
     </select>
+
+    <update id="updateOrderStateAndDeliveryState">
+        update mall_order_info
+        set status = #{orderState},
+            delivery_state = #{deliveryState}
+        where id = #{orderId}
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallTeamLeaderMapper.xml b/src/main/resources/mapper/modules/MallTeamLeaderMapper.xml
index d15f0f8..963961c 100644
--- a/src/main/resources/mapper/modules/MallTeamLeaderMapper.xml
+++ b/src/main/resources/mapper/modules/MallTeamLeaderMapper.xml
@@ -70,6 +70,7 @@
         <result column="latitude" property="latitude" />
         <result column="order_type" property="orderType" />
         <result column="comment_state" property="commentState" />
+        <result column="delivery_state" property="deliveryState" />
         <result column="carriage" property="carriage" />
         <result column="remark" property="remark" />
         <result column="del_flag" property="delFlag" />
diff --git a/src/main/resources/templates/febs/views/modules/goods/deliveryHomeList.html b/src/main/resources/templates/febs/views/modules/goods/deliveryHomeList.html
new file mode 100644
index 0000000..e26ddca
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/goods/deliveryHomeList.html
@@ -0,0 +1,108 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-delivery-home-level" lay-title="配送费列表">
+    <div class="layui-row febs-container">
+        <div class="layui-col-md12">
+            <div class="layui-card">
+                <div class="layui-card-body febs-table-full">
+                    <form class="layui-form layui-table-form" lay-filter="user-table-form">
+                        <div class="layui-row">
+                            <div class="layui-col-md10">
+                                <div class="layui-form-item">
+                                </div>
+                            </div>
+                            <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
+                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
+                                    <i class="layui-icon">&#xe848;</i>
+                                </div>
+                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
+                                    <i class="layui-icon">&#xe79b;</i>
+                                </div>
+                            </div>
+                        </div>
+                    </form>
+                    <table lay-filter="deliveryHomeLevelTable" lay-data="{id: 'deliveryHomeLevelTable'}"></table>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<!-- 表格操作栏 start -->
+<script type="text/html" id="user-option">
+    <span shiro:lacksPermission="user:view,user:update,user:delete">
+        <span class="layui-badge-dot febs-bg-orange"></span> 无权限
+    </span>
+    <a lay-event="edit" shiro:hasPermission="user:update"><i
+            class="layui-icon febs-edit-area febs-blue">&#xe7a5;</i></a>
+</script>
+<!-- 表格操作栏 end -->
+<script data-th-inline="none" type="text/javascript">
+    // 引入组件并初始化
+    layui.use([ 'jquery', 'form', 'table', 'febs'], function () {
+        var $ = layui.jquery,
+            febs = layui.febs,
+            form = layui.form,
+            table = layui.table,
+            $view = $('#febs-delivery-home-level'),
+            $query = $view.find('#query'),
+            $reset = $view.find('#reset'),
+            $searchForm = $view.find('form'),
+            sortObject = {field: '', type: null},
+            tableIns;
+
+        form.render();
+
+        // 表格初始化
+        initTable();
+
+        // 初始化表格操作栏各个按钮功能
+        table.on('tool(deliveryHomeLevelTable)', function (obj) {
+            var data = obj.data,
+                layEvent = obj.event;
+            if (layEvent === 'deliveryHomeUpdate') {
+                febs.modal.open('编辑', 'modules/goods/deliveryHomeUpdate/' + data.id, {
+                    btn: ['确认', '取消'],
+                    yes: function (index, layero) {
+                        $('#delivery-home-edit').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+        });
+
+        // 查询按钮
+        $query.on('click', function () {
+            var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
+            tableIns.reload({where: params, page: {curr: 1}});
+        });
+
+        // 刷新按钮
+        $reset.on('click', function () {
+            $searchForm[0].reset();
+            sortObject.type = 'null';
+            tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
+        });
+
+        function initTable() {
+            tableIns = febs.table.init({
+                elem: $view.find('table'),
+                id: 'deliveryHomeLevelTable',
+                url: ctx + 'admin/goods/deliveryHomeList',
+                cols: [[
+                    {field: 'amount', title: '订单金额超过(元),收取配送费', minWidth: 100,align:'left'},
+                    {field: 'cost', title: '配送费', minWidth: 100,align:'left'},
+                    {title: '操作',
+                        templet: function (d) {
+                                return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="deliveryHomeUpdate" shiro:hasPermission="user:update">编辑</button>'
+                        },minWidth: 300,align:'center'}
+                ]]
+            });
+        }
+
+        // 获取查询参数
+        function getQueryParams() {
+            return {};
+        }
+
+    })
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/goods/deliveryHomeUpdate.html b/src/main/resources/templates/febs/views/modules/goods/deliveryHomeUpdate.html
new file mode 100644
index 0000000..d124068
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/goods/deliveryHomeUpdate.html
@@ -0,0 +1,85 @@
+<style>
+    #delivery-home-edit {
+        padding: 20px 25px 25px 0;
+    }
+
+    #delivery-home-edit .layui-treeSelect .ztree li a, .ztree li span {
+        margin: 0 0 2px 3px !important;
+    }
+    #delivery-home-edit #data-permission-tree-block {
+        border: 1px solid #eee;
+        border-radius: 2px;
+        padding: 3px 0;
+    }
+    #delivery-home-edit .layui-treeSelect .ztree li span.button.switch {
+        top: 1px;
+        left: 3px;
+    }
+    #delivery-home-edit img{
+        max-width:200px
+    }
+
+</style>
+<div class="layui-fluid" id="delivery-home-edit">
+    <form class="layui-form" action="" lay-filter="delivery-home-edit-form">
+        <div class="layui-form-item febs-hide">
+            <label class="layui-form-label">id:</label>
+            <div class="layui-input-block">
+                <input type="text" name="id">
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label febs-form-item-require">订单金额:</label>
+            <div class="layui-input-block">
+                <input type="number" name="amount" class="layui-input">
+                <div class="layui-form-mid layui-word-aux">填入整数</div>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label febs-form-item-require">配送费:</label>
+            <div class="layui-input-block">
+                <input type="number" name="cost" class="layui-input">
+                <div class="layui-form-mid layui-word-aux">填入整数</div>
+            </div>
+        </div>
+        <div class="layui-form-item febs-hide">
+            <button class="layui-btn" lay-submit="" lay-filter="delivery-home-edit-submit" id="submit"></button>
+        </div>
+    </form>
+</div>
+
+<script data-th-inline="javascript">
+    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree'], function () {
+        var $ = layui.$,
+            febs = layui.febs,
+            layer = layui.layer,
+            formSelects = layui.formSelects,
+            treeSelect = layui.treeSelect,
+            form = layui.form,
+            eleTree = layui.eleTree,
+            homeDeliverySetting = [[${homeDeliverySetting}]],
+            $view = $('#delivery-home-edit'),
+            validate = layui.validate,
+            _deptTree;
+        form.render();
+
+        initUserValue();
+
+        function initUserValue() {
+            form.val("delivery-home-edit-form", {
+                "id": homeDeliverySetting.id,
+                "amount": homeDeliverySetting.amount,
+                "cost": homeDeliverySetting.cost
+            });
+        }
+
+        form.on('submit(delivery-home-edit-submit)', function (data) {
+            febs.post(ctx + 'admin/goods/deliveryHomeUpdate', data.field, function () {
+                layer.closeAll();
+                febs.alert.success('操作成功');
+                $('#febs-delivery-home-level').find('#reset').click();
+            });
+            return false;
+        });
+    });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/goods/deliverySetting.html b/src/main/resources/templates/febs/views/modules/goods/deliverySetting.html
new file mode 100644
index 0000000..4000b75
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/goods/deliverySetting.html
@@ -0,0 +1,81 @@
+<div class="layui-fluid layui-anim febs-anim" id="delivery-setting" lay-title="商品配送设置">
+    <div class="layui-row layui-col-space8 febs-container">
+        <form class="layui-form" action="" lay-filter="delivery-setting-form">
+            <div class="layui-card">
+                <div class="layui-card-body">
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">范围访问开关:</label>
+                        <div class="layui-input-block">
+                            <input type="radio" name="rangeSwitch" value="1" title="开启">
+                            <input type="radio" name="rangeSwitch" value="2" title="关闭">
+                        </div>
+                        <div class="layui-form-mid layui-word-aux">范围访问开关,开启之后,如果范围大小内没有自提点,则无法打开程序</div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">范围大小:</label>
+                        <div class="layui-input-block" style="width: 50%">
+                            <input type="text" name="rangeSize" data-th-id="${deliverySetting.rangeSize}"
+                                   lay-verify="number" autocomplete="off" class="layui-input" >
+                            <div class="layui-form-mid layui-word-aux">(填入整数)当前位置的范围,单位:千米,</div>
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">订单金额超过:</label>
+                        <div class="layui-input-inline" style="width: 120px">
+                            <input type="text" name="homeDeliveryAmount" data-th-id="${deliverySetting.homeDeliveryAmount}"
+                                   lay-verify="number" autocomplete="off" class="layui-input" >
+                            <div class="layui-form-mid layui-word-aux">(填入整数)</div>
+                        </div>
+                        <div class="layui-form-mid">元,可以提供送货上门服务</div>
+                    </div>
+                </div>
+                <div class="layui-card-footer">
+                    <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="delivery-setting-form-submit" id="submit">保存</button>
+                </div>
+            </div>
+        </form>
+    </div>
+</div>
+<style>
+    .layui-form-label {
+        width: 120px;
+    }
+
+    .layui-form-item .layui-input-block {
+        margin-left: 150px;
+    }
+
+    .layui-table-form .layui-form-item {
+        margin-bottom: 20px !important;
+    }
+</style>
+<script data-th-inline="javascript" type="text/javascript">
+    layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form', 'eleTree'], function () {
+        var $ = layui.jquery,
+            febs = layui.febs,
+            form = layui.form,
+            validate = layui.validate,
+            deliverySetting = [[${deliverySetting}]],
+            $view = $('#delivery-setting');
+
+        form.verify(validate);
+        form.render();
+        initUserValue();
+
+        function initUserValue() {
+            form.val("delivery-setting-form", {
+                "rangeSwitch": deliverySetting.rangeSwitch,
+                "rangeSize": deliverySetting.rangeSize,
+                "homeDeliveryAmount": deliverySetting.homeDeliveryAmount
+            });
+        }
+
+        form.on('submit(delivery-setting-form-submit)', function (data) {
+            console.log(data);
+            febs.post(ctx + 'admin/goods/deliverySetUpdate', data.field, function (res) {
+                febs.alert.success('设置成功');
+            });
+            return false;
+        });
+    });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/order/orderDetail.html b/src/main/resources/templates/febs/views/modules/order/orderDetail.html
index ed013d2..0348849 100644
--- a/src/main/resources/templates/febs/views/modules/order/orderDetail.html
+++ b/src/main/resources/templates/febs/views/modules/order/orderDetail.html
@@ -39,26 +39,26 @@
                 </div>
             </div>
         </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">地址:</label>
-            <div class="layui-input-block">
-                <input type="text" name="address"
-                       autocomplete="off" class="layui-input" readonly>
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">支付订单号:</label>
-            <div class="layui-input-block">
-                <input type="text" name="payOrderNo"
-                       autocomplete="off" class="layui-input" readonly>
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">支付凭证:</label>
-            <div class="layui-input-block">
-                <img alt="支付凭证" data-th-src="${orderDetail.payImage}"  style="width: 200px">
-            </div>
-        </div>
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label">地址:</label>-->
+<!--            <div class="layui-input-block">-->
+<!--                <input type="text" name="address"-->
+<!--                       autocomplete="off" class="layui-input" readonly>-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label">支付订单号:</label>-->
+<!--            <div class="layui-input-block">-->
+<!--                <input type="text" name="payOrderNo"-->
+<!--                       autocomplete="off" class="layui-input" readonly>-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label">支付凭证:</label>-->
+<!--            <div class="layui-input-block">-->
+<!--                <img alt="支付凭证" data-th-src="${orderDetail.payImage}"  style="width: 200px">-->
+<!--            </div>-->
+<!--        </div>-->
 
         <div class="layui-row layui-col-space10 layui-form-item">
             <div class="layui-col-lg6">
@@ -74,20 +74,20 @@
                 <textarea id="lay_edit" lay-verify="orderItems" name = "orderItems" class="layui-textarea" readonly></textarea>
             </div>
         </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">物流单号:</label>
-            <div class="layui-input-block">
-                <input type="text" name="expressNo"
-                       autocomplete="off" class="layui-input"  readonly>
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">物流公司:</label>
-            <div class="layui-input-block">
-                <input type="text" name="expressCom"
-                       autocomplete="off" class="layui-input" readonly >
-            </div>
-        </div>
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label">物流单号:</label>-->
+<!--            <div class="layui-input-block">-->
+<!--                <input type="text" name="expressNo"-->
+<!--                       autocomplete="off" class="layui-input"  readonly>-->
+<!--            </div>-->
+<!--        </div>-->
+<!--        <div class="layui-form-item">-->
+<!--            <label class="layui-form-label">物流公司:</label>-->
+<!--            <div class="layui-input-block">-->
+<!--                <input type="text" name="expressCom"-->
+<!--                       autocomplete="off" class="layui-input" readonly >-->
+<!--            </div>-->
+<!--        </div>-->
     </form>
 </div>
 
@@ -116,11 +116,11 @@
                 "phone": orderDetail.phone,
                 "amount": orderDetail.amount,
                 "orderItems": orderDetail.orderItems,
-                "expressNo": orderDetail.expressNo,
-                "expressCom": orderDetail.expressCom,
-                "payImage": orderDetail.payImage,
-                "payOrderNo": orderDetail.payOrderNo,
-                "address": orderDetail.address
+                // "expressNo": orderDetail.expressNo,
+                // "expressCom": orderDetail.expressCom,
+                // "payImage": orderDetail.payImage,
+                // "payOrderNo": orderDetail.payOrderNo,
+                // "address": orderDetail.address
             });
         }
 
diff --git a/src/main/resources/templates/febs/views/modules/order/orderList.html b/src/main/resources/templates/febs/views/modules/order/orderList.html
index b7ad4c9..565bdba 100644
--- a/src/main/resources/templates/febs/views/modules/order/orderList.html
+++ b/src/main/resources/templates/febs/views/modules/order/orderList.html
@@ -99,9 +99,9 @@
 </script>
 <script type="text/html" id="tableToolBar">
     <div class="layui-btn-container">
-        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverOne">导出未发货订单(自提)</button>
-        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverTwo">导出未发货订单(快递)</button>
-        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" id="importDeliver" lay-event="importDeliver">导入发货</button>
+        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverOne">导出待发货订单,系统自动发货</button>
+<!--        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverTwo">导出未发货订单(快递)</button>-->
+<!--        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" id="importDeliver" lay-event="importDeliver">导入发货</button>-->
     </div>
 </script>
 <!-- 表格操作栏 end -->
@@ -169,6 +169,17 @@
         table.on('tool(orderTable)', function (obj) {
             var data = obj.data,
                 layEvent = obj.event;
+            // if (layEvent === 'deliverGoods') {
+            //     febs.modal.open('发货', 'modules/order/deliverGoods/' + data.id, {
+            //         btn: ['确认', '取消'],
+            //         yes: function (index, layero) {
+            //             $('#deliver-update').find('#submit').trigger('click');
+            //         },
+            //         btn2: function () {
+            //             layer.closeAll();
+            //         }
+            //     });
+            // }
             if (layEvent === 'deliverGoods') {
                 febs.modal.open('发货', 'modules/order/deliverGoods/' + data.id, {
                     btn: ['确认', '取消'],
@@ -241,10 +252,10 @@
                 cols: [[
                         {field: 'orderNo', title: '订单编号', minWidth: 200,align:'left'},
                         {field: 'memberName', title: '购买人', minWidth: 120,align:'left'},
-                        {field: 'memberPhone', title: '账号', minWidth: 120,align:'left'},
-                        {field: 'memberBindPhone', title: '联系方式', minWidth: 120,align:'left'},
+                        {field: 'memberPhone', title: '联系方式', minWidth: 120,align:'left'},
+                        // {field: 'memberBindPhone', title: '联系方式', minWidth: 120,align:'left'},
                         {field: 'amount', title: '订单金额', minWidth: 120,align:'left'},
-                        {field: 'carriage', title: '运费', minWidth: 120,align:'left'},
+                        // {field: 'carriage', title: '运费', minWidth: 120,align:'left'},
                         {field: 'orderTime', title: '下单时间', minWidth: 200,align:'left'},
                         {field: 'deliveryType', title: '配送方式',
                             templet: function (d) {
@@ -276,18 +287,24 @@
                                     return ''
                                 }
                             }, minWidth: 80,align:'center'},
+                    {field: 'deliveryState', title: '配送状态',
+                        templet: function (d) {
+                            if (d.deliveryState === 1) {
+                                return '<span style="color:dodgerblue;">待配送</span>'
+                            } else if (d.deliveryState === 2) {
+                                return '<span style="color:forestgreen;">配送中</span>'
+                            } else if (d.deliveryState === 3) {
+                                return '<span style="color:forestgreen;">已送达</span>'
+                            }else{
+                                return ''
+                            }
+                        }, minWidth: 120,align:'center'},
                         {field: 'payMethod', title: '支付方式', minWidth: 120,align:'left'},
                         {field: 'payTime', title: '支付时间', minWidth: 200,align:'left'},
-                        {field: 'payOrderNo', title: '支付订单号', minWidth: 200,align:'left'},
+                        {field: 'wxOrderNo', title: '支付订单号', minWidth: 200,align:'left'},
                         {title: '操作',
                             templet: function (d) {
-                                    if (d.status === 2 && d.deliveryType === 2) {
-                                        return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="deliverGoods" shiro:hasPermission="user:update">发货</button>'
-                                            +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>'
-                                    }else{
                                         return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>'
-                                    }
-                                // }
                             },minWidth: 200,align:'center', fixed:'right'}
                 ]]
             });

--
Gitblit v1.9.1