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