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