From ea8e4abfb8c81cdae4d2a8743d81b615000f352d Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 23 May 2025 16:57:23 +0800
Subject: [PATCH] feat(order): 添加自提点订单确认功能

---
 src/main/java/cc/mrbird/febs/mall/controller/order/AdminMallOrderController.java   |   40 +++++++++++++
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java |    2 
 src/main/resources/templates/febs/views/modules/order/orderList.html               |   93 ++++++++++++++++++++----------
 3 files changed, 101 insertions(+), 34 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/order/AdminMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/order/AdminMallOrderController.java
index 48aa205..852b5b5 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/order/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/order/AdminMallOrderController.java
@@ -399,6 +399,44 @@
         return new FebsResponse().success();
     }
 
+    @GetMapping("confirmLeaderOrder")
+    @ControllerEndpoint(operation = "确认货到达自提点", exceptionMessage = "操作失败")
+    public FebsResponse confirmLeaderOrder(MallOrderInfo mallOrderInfoDto){
+        String orderIds = mallOrderInfoDto.getOrderIds();
+        List<String> ids = StrUtil.splitTrim(orderIds, ",");
+        for(String id : ids){
+            long orderId = Long.parseLong(id);
+            MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
+            if(ObjectUtil.isEmpty(mallOrderInfo)){
+//                continue;
+                return new FebsResponse().fail().message("订单不存在");
+            }
+            Integer status = mallOrderInfo.getStatus() == null ? 0 : mallOrderInfo.getStatus();
+            if(OrderStatusEnum.WAIT_SHIPPING.getValue() != status){
+//                continue;
+                return new FebsResponse().fail().message("订单不是待发货状态");
+            }
+            mallOrderInfo.setStatus(OrderStatusEnum.WAIT_FINISH.getValue());
+            mallOrderInfoMapper.updateById(mallOrderInfo);
+
+//            OrderStateDto orderStateDto = new OrderStateDto();
+//            String productNames = getProductNames(mallOrderInfo.getMemberId(), mallOrderInfo.getId());
+//            orderStateDto.setGoodsName(StrUtil.sub(productNames,0,15)+"...");
+//            String takeUniqueCode = mallOrderInfo.getTakeUniqueCode();
+//            MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode);
+//            orderStateDto.setAddressArea(mallTeamLeader.getAddressArea());
+//            orderStateDto.setDetailAddress(StrUtil.sub(mallTeamLeader.getDetailAddress(),0,20)+"...");
+//            orderStateDto.setRemark("果蔬等生鲜,请尽快取货");
+//            orderStateDto.setLeaderPhone(mallTeamLeader.getPhone());
+//            orderStateDto.setOpenId(mallMemberMapper.selectById(mallOrderInfo.getMemberId()).getOpenId());
+//            DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WX_TEMPLATE_ID_THREE.getType(), DataDictionaryEnum.WX_TEMPLATE_ID_THREE.getCode());
+//            orderStateDto.setTemplateId(dataDictionaryCustom.getValue());
+//            iXcxPayService.pushOrderToAddress(orderStateDto);
+//            iXcxPayService.uniformMessageSend(orderStateDto);
+        }
+        return new FebsResponse().success();
+    }
+
     @GetMapping("deliverOrder")
     @ControllerEndpoint(operation = "导出订单列表,系统自动发货", exceptionMessage = "操作失败")
     public FebsResponse deliverOrder(MallOrderInfo mallOrderInfoDto){
@@ -475,7 +513,7 @@
         orderSheet.setTitle(title);
 //        String[] header = {"订单编号", "订单详情(商品*数量)", "订单金额", "用户提货码", "配送方式", "用户姓名", "用户电话","用户地址", "团长名称", "团长手机号码", "自提点名称"};
 
-        String[] header = {"订单编号", "订单详情(商品*数量)", "订单金额", "用户提货码", "用户姓名", "用户电话","用户地址", "团长名称", "团长手机号码", "自提点名称"};
+        String[] header = {"订单编号", "订单详情(商品*数量)", "订单金额", "用户提货码", "用户姓名", "用户电话","用户地址", "自提点名称", "自提点号码", "自提点名称"};
         orderSheet.setHeaders(header);
 
         QueryRequest request = new QueryRequest();
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
index 0741d49..394b113 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallTeamLeaderServiceImpl.java
@@ -138,7 +138,7 @@
             for(MallTeamLeader teamLeader : mallTeamLeaders){
                 AdminSelectListLeaderVo adminSelectListLeaderVo = new AdminSelectListLeaderVo();
                 adminSelectListLeaderVo.setUniqueCode(teamLeader.getUniqueCode());
-                adminSelectListLeaderVo.setName(teamLeader.getName());
+                adminSelectListLeaderVo.setName(teamLeader.getName() + "-" + teamLeader.getAddressArea());
                 list.add(adminSelectListLeaderVo);
             }
         }
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 e1aa6b5..92c616c 100644
--- a/src/main/resources/templates/febs/views/modules/order/orderList.html
+++ b/src/main/resources/templates/febs/views/modules/order/orderList.html
@@ -19,7 +19,7 @@
                                     </div>
                                 </div>
                                 <div class="layui-inline">
-                                    <label class="layui-form-label layui-form-label-sm">状态:</label>
+                                    <label class="layui-form-label">订单状态:</label>
                                     <div class="layui-input-inline">
                                         <select name="status">
                                             <option value="">请选择</option>
@@ -33,14 +33,14 @@
                                         </select>
                                     </div>
                                 </div>
-<!--                                <div class="layui-inline">-->
-<!--                                    <label class="layui-form-label">团长:</label>-->
-<!--                                    <div class="layui-input-inline">-->
-<!--                                        <select name="uniqueCode" class="order-takeUniqueCode">-->
-<!--                                            <option value="">请选择</option>-->
-<!--                                        </select>-->
-<!--                                    </div>-->
-<!--                                </div>-->
+                                <div class="layui-inline">
+                                    <label class="layui-form-label">自提点:</label>
+                                    <div class="layui-input-inline">
+                                        <select name="uniqueCode" class="order-takeUniqueCode">
+                                            <option value="">请选择</option>
+                                        </select>
+                                    </div>
+                                </div>
 <!--                                <div class="layui-inline">-->
 <!--                                    <label class="layui-form-label layui-form-label-sm">配送方式</label>-->
 <!--                                    <div class="layui-input-inline">-->
@@ -120,14 +120,14 @@
 </script>
 <script type="text/html" id="tableToolBarOrder">
     <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="confirmOrder">确认到货</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="confirmLeaderOrder">自提确认到货</button>
         <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="refundOrder">仅退款</button>
 <!--        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="refundOrderAndAmount">退款退货</button>-->
         <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="printSelect">自定义打印</button>
         <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="goodsStatistics">统计商品份数</button>
 <!--        <button id="printSelect" type="button" class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain">自定义打印</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" 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>
@@ -170,7 +170,7 @@
         $.get(ctx + 'admin/leader/selectList', function (data) {
             for (var k in data)
             {
-                $(".order-takeUniqueCode").append("<option value='" + data[k].uniqueCode + "'>" + data[k].name + "</option>");
+                $(".order-takeUniqueCode").append("<option value='" + data[k].uniqueCode + "'>" + data[k].name+ "</option>");
             }
             layui.use('form', function () {
                 var form = layui.form;
@@ -219,6 +219,34 @@
                 //     febs.alert.success('操作成功');
                 //     $query.click();
                 // });
+                // window.location.href = ctx + "admin/order/confirmOrder?takeUniqueCode="+uniqueCodeValue+"&orderIds="+ids;
+            }
+            if(event === 'confirmLeaderOrder'){
+                let uniqueCodeValue = $searchForm.find("select[name='uniqueCode']").val();
+                if(uniqueCodeValue == '' || uniqueCodeValue == null){
+                    febs.alert.warn('请选择自提点');
+                    return;
+                }
+                var data = checkStatus.data;
+                let ids = "";
+                for(let i = 0;i < data.length;i++){
+                    if(data[i].status != 2){
+                        febs.alert.warn('请选择待发货的订单');
+                        return;
+                    }else{
+                        ids = ids + data[i].id+",";
+                    }
+                }
+                // layer.alert(layui.util.escape(JSON.stringify(data)));
+                console.log(ids);
+                if(ids == null || ids == ""){
+                    febs.alert.warn('请选择待发货的订单');
+                    return;
+                }
+                febs.get(ctx + 'admin/order/confirmOrder?orderIds='+ids, null, function () {
+                    febs.alert.success('操作成功');
+                    $query.click();
+                });
                 // window.location.href = ctx + "admin/order/confirmOrder?takeUniqueCode="+uniqueCodeValue+"&orderIds="+ids;
             }
             if(event === 'confirmOrder'){
@@ -301,11 +329,11 @@
                 });
             }
             if (event == 'exportDeliverOne') {
-                // let uniqueCodeValue = $searchForm.find("select[name='uniqueCode']").val();
-                // if(uniqueCodeValue == '' || uniqueCodeValue == null){
-                //     febs.alert.warn('请选择团长');
-                //     return;
-                // }
+                let uniqueCodeValue = $searchForm.find("select[name='uniqueCode']").val();
+                if(uniqueCodeValue == '' || uniqueCodeValue == null){
+                    febs.alert.warn('请选择自提点');
+                    return;
+                }
                 var data = checkStatus.data;
                 let ids = "";
                 for(let i = 0;i < data.length;i++){
@@ -458,12 +486,25 @@
                 toolbar: '#tableToolBarOrder',
                 cols: [[
                         {type: 'checkbox', fixed: 'left'},
+                        {type: 'numbers', title: '', width: 80},
+                        {title: '操作',
+                            templet: function (d) {
+                                if(d.status === 2){
+                                    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="deliverGoods" shiro:hasPermission="user:update">发货</button>'
+                                }else if(d.status === 3){
+                                    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="updateDeliver" 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'},
                         {field: 'orderNo', title: '订单编号', minWidth: 200,align:'left' ,totalRowText:"合计"},
                         {field: 'memberName', title: '购买人', minWidth: 100,align:'left'},
                         {field: 'memberPhone', title: '联系方式', minWidth: 120,align:'left'},
                         {field: 'refererName', title: '推荐人', minWidth: 100,align:'left'},
                         {field: 'goodsName', title: '商品', minWidth: 160,align:'left'},
-                        {field: 'remark', title: '备注', minWidth: 160,align:'left'},
                         {field: 'goodsAmount', title: '价格', minWidth: 80,align:'left', totalRow:true},
                         {field: 'carriage', title: '邮费', minWidth: 80,align:'left', totalRow:true},
                         {field: 'amount', title: '总金额', minWidth: 100,align:'left', totalRow:true},
@@ -502,20 +543,8 @@
                     //     }, minWidth: 80,align:'center'},
                         {field: 'payMethod', title: '支付方式', minWidth: 100,align:'left'},
                         {field: 'payTime', title: '支付时间', minWidth: 120,align:'left'},
+                        {field: 'remark', title: '备注', minWidth: 160,align:'left'},
                         // {field: 'wxOrderNo', title: '支付订单号', minWidth: 120,align:'left'},
-                        {title: '操作',
-                            templet: function (d) {
-                                if(d.status === 2){
-                                    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="deliverGoods" shiro:hasPermission="user:update">发货</button>'
-                                }else if(d.status === 3){
-                                    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="updateDeliver" 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