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