From e15c348bc992de7331d14d76451032358aae9289 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 09 Jan 2025 15:44:14 +0800
Subject: [PATCH] feat(mall): 商品列表增加活动筛选功能

---
 src/main/resources/mapper/modules/MallGoodsMapper.xml                     |    3 +++
 src/main/java/cc/mrbird/febs/mall/vo/ApiCouponVo.java                     |    2 ++
 src/main/java/cc/mrbird/febs/mall/service/impl/ActivityServiceImpl.java   |   20 ++++++++++++++++++++
 src/main/resources/templates/febs/views/modules/goods/goodsList.html      |   27 +++++++++++++++++++++++++--
 src/main/java/cc/mrbird/febs/mall/controller/AdminActivityController.java |    6 ++++++
 src/main/java/cc/mrbird/febs/mall/service/IActivityService.java           |    2 ++
 6 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminActivityController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminActivityController.java
index 2575c9d..e128691 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminActivityController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminActivityController.java
@@ -57,6 +57,12 @@
         return new FebsResponse().success().data(iActivityService.getAdminActivityList());
     }
 
+
+    @GetMapping(value = "/activityListByType/{type}")
+    public FebsResponse activityListByType(@NotNull(message = "{required}") @PathVariable Integer type) {
+        return new FebsResponse().success().data(iActivityService.getAdminActivityListByType(type));
+    }
+
     /**
      * 活动-开启
      */
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IActivityService.java b/src/main/java/cc/mrbird/febs/mall/service/IActivityService.java
index 13cc50d..f777311 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IActivityService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IActivityService.java
@@ -24,4 +24,6 @@
     FebsResponse changeAdminState(Long id, Integer state);
 
     FebsResponse delAdminActivity(Long id);
+
+    List<AdminMallActivityListVo> getAdminActivityListByType(Integer type);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ActivityServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ActivityServiceImpl.java
index 7c6da9b..1ca5061 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ActivityServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ActivityServiceImpl.java
@@ -227,4 +227,24 @@
         this.baseMapper.deleteById(id);
         return new FebsResponse().success().message("操作成功");
     }
+
+    @Override
+    public List<AdminMallActivityListVo> getAdminActivityListByType(Integer type) {
+        List<AdminMallActivityListVo> mallActivityList = new ArrayList<>();
+        List<MallActivity> mallActivities = this.baseMapper.selectList(
+                new LambdaQueryWrapper<MallActivity>()
+                        .select(MallActivity::getId, MallActivity::getName)
+                        .eq(MallActivity::getState, YesOrNoOrIngEnum.YES.getValue())
+                        .eq(MallActivity::getType, type)
+        );
+        if(CollUtil.isNotEmpty(mallActivities)){
+            for (MallActivity mallActivity : mallActivities) {
+                AdminMallActivityListVo adminMallActivityListVo = new AdminMallActivityListVo();
+                adminMallActivityListVo.setId(mallActivity.getId());
+                adminMallActivityListVo.setName(mallActivity.getName());
+                mallActivityList.add(adminMallActivityListVo);
+            }
+        }
+        return mallActivityList;
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiCouponVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiCouponVo.java
index 7b38c7c..748ee31 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/ApiCouponVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiCouponVo.java
@@ -10,6 +10,8 @@
 @ApiModel(value = "ApiCouponVo", description = "信息返回类")
 public class ApiCouponVo {
 
+    private Long id;
+
     @ApiModelProperty(value = "名称")
     private String name;
     @ApiModelProperty(value = "过期天数")
diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index 5006b94..4bf2c36 100644
--- a/src/main/resources/mapper/modules/MallGoodsMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -190,6 +190,9 @@
                 <if test="record.goodsType != null and record.goodsType != ''">
                     and a.goods_type=#{record.goodsType}
                 </if>
+                <if test="record.activityId != null">
+                    and a.activity_id=#{record.activityId}
+                </if>
             </if>
         </where>
         group by a.id
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsList.html b/src/main/resources/templates/febs/views/modules/goods/goodsList.html
index 518d7a3..42e075a 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsList.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsList.html
@@ -13,6 +13,14 @@
                                             <input type="text" placeholder="商品名称" name="goodsName" autocomplete="off" class="layui-input">
                                         </div>
                                     </div>
+                                    <div class="layui-inline">
+                                        <label class="layui-form-label layui-form-label-sm">活动</label>
+                                        <div class="layui-input-inline">
+                                            <select name="activityId" class="activity-option">
+                                                <option value="">请选择</option>
+                                            </select>
+                                        </div>
+                                    </div>
                                 </div>
                             </div>
                             <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
@@ -111,8 +119,22 @@
         let currPageGoods = 1;//首先默认值为1,防止出错
         //获取当前页
         currPageGoods = $view.find(".layui-laypage-em").next().html();
+
+        //(下拉框)
+        $.get(ctx + 'admin/activity/activityListByType/1', function (res) {
+            var data = res.data;
+            for (var k in data)
+            {
+                $(".activity-option").append("<option value='" + data[k].id + "'>" + data[k].name + "</option>");
+            }
+            layui.use('form', function () {
+                var form = layui.form;
+                form.render();
+            });
+        });
+
         // 表格初始化
-        initTable();
+        initGoodsTable();
 
         // 初始化表格操作栏各个按钮功能
         table.on('tool(goodsListTable)', function (obj) {
@@ -224,7 +246,7 @@
             });
         });
 
-        function initTable() {
+        function initGoodsTable() {
             tableIns = febs.table.init({
                 elem: $view.find('table'),
                 id: 'goodsListTable',
@@ -283,6 +305,7 @@
         function getQueryParams() {
             return {
                 goodsName: $searchForm.find('input[name="goodsName"]').val().trim(),
+                activityId: $searchForm.find("select[name='activityId']").val(),
             };
         }
 

--
Gitblit v1.9.1