From d8192db6359084d162afafabaa510e0eefb42476 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sat, 08 Oct 2022 10:34:37 +0800
Subject: [PATCH] 20220902

---
 src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java                           |    3 +
 src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java                          |    3 +
 src/main/java/cc/mrbird/febs/mall/vo/AdminMallOrderInfoVo.java                  |    2 +
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java       |   16 ++++++++
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |    9 ++++
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java      |   12 ++++++
 src/main/resources/mapper/modules/MallOrderInfoMapper.xml                       |    1 
 src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java                     |    4 ++
 src/main/resources/templates/febs/views/modules/order/orderList.html            |   31 ++++++++++++++-
 src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java           |    2 +
 src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java                         |    3 +
 11 files changed, 83 insertions(+), 3 deletions(-)

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 8b66b10..d7b3886 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -85,6 +85,18 @@
     }
 
     /**
+     * 订单列表-自提订单
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("takeGoods/{id}")
+    @ControllerEndpoint(operation = "订单列表-自提订单", exceptionMessage = "操作失败")
+    public FebsResponse takeGoods(@NotNull(message = "{required}") @PathVariable Long id) {
+        return adminMallOrderService.takeGoods(id);
+    }
+
+    /**
      * 订单列表-删除订单
      *
      * @param id
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 11d73f6..93c3787 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 = "1-普通订单/2-积分订单")
     private Integer orderType;
 
+    @ApiModelProperty(value = "配送方式 1:快递寄送2:到店自提")
+    private Integer deliverType;
+
     @ApiModelProperty(value = "商品明细")
     private List<AddOrderItemDto> items;
 
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 eb7f24a..e33922d 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.common.entity.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -87,4 +88,7 @@
      */
     public static final Integer COMMENT_STATE_NO = 1;
     public static final Integer COMMENT_STATE_YES = 2;
+
+    //配送方式 1:快递寄送2:到店自提
+    private Integer deliverType;
 }
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 92ec2ea..c2faf8c 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
@@ -68,4 +68,6 @@
     FebsResponse showStateSwitchOff(Long id);
 
     FebsResponse delOrder(Long id);
+
+    FebsResponse takeGoods(Long id);
 }
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 d7d431d..7d0f04d 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
@@ -447,6 +447,22 @@
     }
 
     @Override
+    public FebsResponse takeGoods(Long id) {
+        MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(id);
+        if(ObjectUtil.isEmpty(mallOrderInfo)){
+            return new FebsResponse().fail().message("订单不存在,刷新后重试");
+        }
+        Integer status = mallOrderInfo.getStatus();
+        if(2 != status){
+            return new FebsResponse().fail().message("订单不是待发货状态");
+        }
+
+        mallOrderInfo.setStatus(3);
+        mallOrderInfoMapper.updateById(mallOrderInfo);
+        return new FebsResponse().success();
+    }
+
+    @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/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 3797798..089f5c7 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
@@ -186,7 +186,14 @@
         }
 
         orderInfo.setAmount(total);
-        orderInfo.setCarriage(carriage);
+        int deliverType = ObjectUtil.isEmpty(addOrderDto.getDeliverType()) ? 1 : addOrderDto.getDeliverType();
+        if(2 == deliverType){
+            orderInfo.setDeliverType(2);
+            orderInfo.setCarriage(BigDecimal.ZERO);
+        }else{
+            orderInfo.setDeliverType(1);
+            orderInfo.setCarriage(carriage);
+        }
         this.baseMapper.updateById(orderInfo);
 
         agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L);
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 b007b28..8807def 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,6 @@
     private Integer carriage;
 
     private String goodsName;
+
+    private Integer deliverType;
 }
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 78242f6..dc6b8c0 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
@@ -84,5 +84,8 @@
 
     @ApiModelProperty(value = "评价状态 1:待评价 2:已评价")
     private Integer commentState;
+
+    @ApiModelProperty(value = "配送方式 1:快递寄送2:到店自提")
+    private Integer deliverType;
 }
 
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 21266e9..4ec2948 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
@@ -37,6 +37,9 @@
     @ApiModelProperty(value = "订单类型 1-普通订单 2-积分订单")
     private Integer orderType;
 
+    @ApiModelProperty(value = "配送方式 1:快递寄送2:到店自提")
+    private Integer deliverType;
+
     @ApiModelProperty(value = "运费")
     private BigDecimal carriage;
 
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 8e07beb..46629af 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -110,6 +110,7 @@
         <result column="carriage" property="carriage" />
         <result column="remark" property="remark" />
         <result column="del_flag" property="delFlag" />
+        <result column="deliver_type" property="deliverType" />
         <collection property="items" ofType="cc.mrbird.febs.mall.entity.MallOrderItem">
             <id property="id" column="item_id" />
             <result property="orderId" column="order_id" />
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 dd46f40..9406ba3 100644
--- a/src/main/resources/templates/febs/views/modules/order/orderList.html
+++ b/src/main/resources/templates/febs/views/modules/order/orderList.html
@@ -188,6 +188,11 @@
                     cancelOrder(data.id);
                 });
             }
+            if (layEvent === 'takeGoods') {
+                febs.modal.confirm('自提商品', '确认自提商品?', function () {
+                    takeGoods(data.id);
+                });
+            }
             if (layEvent === 'delOrder') {
                 febs.modal.confirm('删除订单', '确认删除订单?', function () {
                     delOrder(data.id);
@@ -209,6 +214,13 @@
                 });
             }
         });
+
+        function takeGoods(id) {
+            febs.get(ctx + 'admin/order/takeGoods/' + id, null, function () {
+                febs.alert.success('操作成功');
+                $query.click();
+            });
+        }
 
         function cancelOrder(id) {
             febs.get(ctx + 'admin/order/cancelOrder/' + id, null, function () {
@@ -257,10 +269,20 @@
                         {field: 'memberBindPhone', title: '联系方式', minWidth: 120,align:'left'},
                         {field: 'goodsName', title: '商品信息', minWidth: 200,align:'left'},
                         {field: 'remark', title: '备注', minWidth: 200,align:'left'},
+                        {field: 'deliverType', title: '配送方式',
+                            templet: function (d) {
+                                if (d.deliverType === 1) {
+                                    return '<span style="color:green;">快递寄送</span>'
+                                } else if (d.deliverType === 2) {
+                                    return '<span style="color:blue;">到店自提</span>'
+                                }else{
+                                    return '<span style="color:green;">快递寄送</span>'
+                                }
+                            }, minWidth: 120,align:'center'},
                         {field: 'amount', title: '订单金额', minWidth: 120,align:'left',totalRow: '{{= parseInt(d.amount) }}'},
                         {field: 'carriage', title: '运费', minWidth: 120,align:'left'},
                         {field: 'orderTime', title: '下单时间', minWidth: 200,align:'left'},
-                        {field: 'status', title: '状态',
+                    {field: 'status', title: '状态',
                             templet: function (d) {
                                 if (d.status === 1) {
                                     return '<span style="color:red;">待支付</span>'
@@ -286,8 +308,13 @@
                         {title: '操作',
                             templet: function (d) {
                                     if (d.status === 2) {
-                                        return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="deliverGoods" shiro:hasPermission="user:update">发货</button>'
+                                        if(d.deliverType ===2){
+                                            return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="takeGoods" 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="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 if(d.status === 7){
                                         return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>'
                                             +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="delOrder" shiro:hasPermission="user:update">删除</button>'

--
Gitblit v1.9.1