From f214dd3e6828de72ee615097a65a1f2df88e047a Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 28 Nov 2022 16:21:47 +0800
Subject: [PATCH] 20221126
---
src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java | 4 +
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java | 3 +
src/main/resources/templates/febs/views/modules/order/goodsStatistics.html | 38 ++++++++++++
src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java | 12 ++++
src/main/java/cc/mrbird/febs/mall/vo/AdminGoodsStatisticsVo.java | 11 +++
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 7 ++
src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java | 16 +++++
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 17 +++++
src/main/resources/templates/febs/views/modules/order/orderList.html | 20 ++++++
src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java | 3 +
10 files changed, 131 insertions(+), 0 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 4206392..ac9a274 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -9,6 +9,7 @@
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.FebsUtil;
import cc.mrbird.febs.common.utils.SpringContextHolder;
import cc.mrbird.febs.common.utils.excl.ExcelSheetPO;
import cc.mrbird.febs.common.utils.excl.ExcelUtil;
@@ -25,6 +26,7 @@
import cc.mrbird.febs.pay.service.IXcxPayService;
import cc.mrbird.febs.pay.util.WechatConfigure;
import cc.mrbird.febs.system.entity.Dept;
+import cc.mrbird.febs.system.entity.User;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
@@ -606,4 +608,18 @@
return adminMallOrderService.showStateSwitchOff(id);
}
+ /**
+ * 订单列表-统计商品份数
+ */
+ @GetMapping("goodsStatistics")
+ public FebsResponse goodsStatistics(MallOrderItem mallOrderItem, QueryRequest request, Integer parentId) {
+ if (parentId == null) {
+ ViewMallOrderController.orderIdsStr = "";
+ }
+ long[] longs = StrUtil.splitToLong(ViewMallOrderController.orderIdsStr, ',');
+ mallOrderItem.setOrderIdsStr(longs);
+ Map<String, Object> data = getDataTable(adminMallOrderService.goodsStatistics(mallOrderItem,request));
+ return new FebsResponse().success().data(data);
+ }
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java
index b8c5e06..6a55b29 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java
@@ -215,4 +215,16 @@
return FebsUtil.view("modules/order/refundPayInfo");
}
+ /**
+ * 订单列表-统计商品份数
+ * @return
+ */
+ public static String orderIdsStr;
+ @GetMapping("/goodsStatistics/{statistics}")
+ @RequiresPermissions("goodsStatistics:update")
+ public String goodsStatistics(@PathVariable String statistics, Model model) {
+ orderIdsStr = statistics;
+ return FebsUtil.view("modules/order/goodsStatistics");
+ }
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java
index a273b60..c162af5 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderItem.java
@@ -1,6 +1,7 @@
package cc.mrbird.febs.mall.entity;
import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -44,4 +45,7 @@
private Integer hasSettle;
//1:正常 2:退款中3:已退
private Integer state;
+
+ @TableField(exist = false)
+ private long[] orderIdsStr;
}
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 bccbe07..0d655f4 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -5,6 +5,7 @@
import cc.mrbird.febs.mall.dto.OrderListDto;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
import cc.mrbird.febs.mall.entity.MallOrderItem;
+import cc.mrbird.febs.mall.vo.AdminGoodsStatisticsVo;
import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo;
import cc.mrbird.febs.mall.vo.AdminMallOrderVo;
import cc.mrbird.febs.mall.vo.AdminOrderDetailVo;
@@ -76,4 +77,6 @@
MallOrderInfo selectByIdAndTakeUniqueCode(@Param("orderId")long orderId,@Param("takeUniqueCode") String takeUniqueCode);
MallOrderInfo selectAllOrderInfoByIdAndTakeUniqueCode(@Param("orderId")long orderId,@Param("takeUniqueCode") String takeUniqueCode);
+
+ IPage<AdminGoodsStatisticsVo> getGoodsStatisticsInPage(Page<AdminGoodsStatisticsVo> page, @Param("record") MallOrderItem mallOrderItem);
}
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 1be6703..97d8a43 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
+import cc.mrbird.febs.mall.entity.MallOrderItem;
import cc.mrbird.febs.mall.entity.MallOrderRefund;
import cc.mrbird.febs.mall.entity.MallRefundEntity;
import cc.mrbird.febs.mall.vo.*;
@@ -71,4 +72,6 @@
void updateOrderStateAndDeliveryState(Long id, int value, int value1);
IPage<MallRefundEntity> getOrderRefundListInPage(MallRefundEntity mallRefundEntity, QueryRequest request);
+
+ IPage<AdminGoodsStatisticsVo> goodsStatistics(MallOrderItem mallOrderItem, QueryRequest request);
}
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 6713e9a..a9450bd 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
@@ -436,6 +436,13 @@
}
@Override
+ public IPage<AdminGoodsStatisticsVo> goodsStatistics(MallOrderItem mallOrderItem, QueryRequest request) {
+ Page<AdminGoodsStatisticsVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminGoodsStatisticsVo> adminGoodsStatisticsVos = mallOrderInfoMapper.getGoodsStatisticsInPage(page, mallOrderItem);
+ return adminGoodsStatisticsVos;
+ }
+
+ @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/vo/AdminGoodsStatisticsVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminGoodsStatisticsVo.java
new file mode 100644
index 0000000..4b32ba0
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminGoodsStatisticsVo.java
@@ -0,0 +1,11 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "AdminGoodsStatisticsVo", description = "信息返回类")
+public class AdminGoodsStatisticsVo {
+ private String goodsName;
+ private Integer goodsCnt;
+}
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index c4e2735..3c4df5f 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -466,4 +466,21 @@
where a.del_flag=2 and a.id = #{orderId} and a.take_unique_code = #{takeUniqueCode}
order by a.created_time desc
</select>
+
+ <select id="getGoodsStatisticsInPage" resultType="cc.mrbird.febs.mall.vo.AdminGoodsStatisticsVo">
+ select
+ goods_name goodsName,
+ SUM(cnt) goodsCnt
+ from mall_order_item
+ <where>
+ <if test="record.orderIdsStr != null">
+ and order_id in
+ <foreach collection="record.orderIdsStr" item="id" index="index" open="(" close=")" separator=",">
+ #{id}
+ </foreach>
+ </if>
+ </where>
+ GROUP BY goods_id
+ ORDER BY goods_id desc
+</select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/order/goodsStatistics.html b/src/main/resources/templates/febs/views/modules/order/goodsStatistics.html
new file mode 100644
index 0000000..56a1381
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/order/goodsStatistics.html
@@ -0,0 +1,38 @@
+<div className="layui-fluid layui-anim febs-anim" id="febs-order-goods-child" lay-title="商品数量统计">
+ <div className="layui-row febs-container">
+ <div className="layui-col-md12">
+ <div className="layui-card">
+ <div className="layui-card-body febs-table-full">
+ <table lay-filter="orderGoodsChild" lay-data="{id: 'orderGoodsChild'}"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<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-order-goods-child'),
+ tableIns;
+
+ form.render();
+
+ initTable();
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'orderGoodsChild',
+ url: ctx + 'admin/order/goodsStatistics?parentId=1',
+ cols: [[
+ {field: 'goodsName', title: '商品名称', minWidth: 130},
+ {field: 'goodsCnt', title: '总数', minWidth: 130}
+ ]]
+ });
+ }
+
+ })
+</script>
\ No newline at end of file
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 d9e5133..1c8c545 100644
--- a/src/main/resources/templates/febs/views/modules/order/orderList.html
+++ b/src/main/resources/templates/febs/views/modules/order/orderList.html
@@ -116,6 +116,7 @@
<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="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" id="importDeliver" lay-event="importDeliver">导入发货</button>-->
@@ -184,6 +185,25 @@
printSelect(checkStatus.data)
}
}
+ if(event === 'goodsStatistics'){
+ var data = checkStatus.data;
+ let statistics = 0;
+ for(let i = 0;i < data.length;i++){
+ statistics = statistics+ "," + data[i].id;
+ }
+ if(statistics == null || statistics == ""){
+ febs.alert.warn('请选择需要统计的订单');
+ return;
+ }
+ febs.modal.open( '商品数量统计', 'modules/order/goodsStatistics/'+statistics, {
+ maxmin: true,
+ });
+ // febs.get(ctx + 'admin/order/goodsStatistics?orderIds='+ids, null, function () {
+ // febs.alert.success('操作成功');
+ // $query.click();
+ // });
+ // window.location.href = ctx + "admin/order/confirmOrder?takeUniqueCode="+uniqueCodeValue+"&orderIds="+ids;
+ }
if(event === 'confirmOrder'){
let uniqueCodeValue = $searchForm.find("select[name='uniqueCode']").val();
// if(uniqueCodeValue == '' || uniqueCodeValue == null){
--
Gitblit v1.9.1