From 85f6036ad23c66b97bc7c253f4d04c762fe2fde3 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 10 Jan 2025 11:43:45 +0800
Subject: [PATCH] feat(activity): 优化活动列表展示和状态管理

---
 src/main/java/cc/mrbird/febs/common/enumerates/ActivityTypeEnum.java    |    8 ++++
 src/main/java/cc/mrbird/febs/mall/service/impl/ActivityServiceImpl.java |   24 ++++++++++--
 src/main/resources/templates/febs/views/modules/activity/list.html      |   57 ++++++++++++++++++++--------
 src/main/java/cc/mrbird/febs/common/enumerates/YesOrNoOrIngEnum.java    |    9 ++++
 4 files changed, 77 insertions(+), 21 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/ActivityTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/ActivityTypeEnum.java
index d27a2ea..aa7cb38 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/ActivityTypeEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/ActivityTypeEnum.java
@@ -18,4 +18,12 @@
         this.value = value;
         this.desc = desc;
     }
+    public static ActivityTypeEnum getEnum(int value) {
+        for (ActivityTypeEnum activityTypeEnum : ActivityTypeEnum.values()) {
+            if (activityTypeEnum.getValue() == value) {
+                return activityTypeEnum;
+            }
+        }
+        return null;
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/YesOrNoOrIngEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/YesOrNoOrIngEnum.java
index 3b5ea6a..a87c4c9 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/YesOrNoOrIngEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/YesOrNoOrIngEnum.java
@@ -23,4 +23,13 @@
         this.desc = desc;
     }
 
+    public static YesOrNoOrIngEnum getEnum(int value) {
+        for (YesOrNoOrIngEnum type : YesOrNoOrIngEnum.values()) {
+            if (type.getValue() == value) {
+                return type;
+            }
+        }
+        return null;
+    }
+
 }
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 1ca5061..a84321d 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
@@ -201,13 +201,14 @@
         List<MallActivity> mallActivities = this.baseMapper.selectList(
                 new LambdaQueryWrapper<MallActivity>()
                         .select(MallActivity::getId, MallActivity::getName)
-                        .eq(MallActivity::getState, YesOrNoOrIngEnum.YES.getValue())
         );
         if(CollUtil.isNotEmpty(mallActivities)){
             for (MallActivity mallActivity : mallActivities) {
                 AdminMallActivityListVo adminMallActivityListVo = new AdminMallActivityListVo();
                 adminMallActivityListVo.setId(mallActivity.getId());
-                adminMallActivityListVo.setName(mallActivity.getName());
+                String desc = YesOrNoOrIngEnum.getEnum(mallActivity.getState()).getDesc();
+                String desc1 = ActivityTypeEnum.getEnum(mallActivity.getType()).getDesc();
+                adminMallActivityListVo.setName(mallActivity.getName()+desc+desc1);
                 mallActivityList.add(adminMallActivityListVo);
             }
         }
@@ -219,12 +220,27 @@
         MallActivity mallActivity = this.baseMapper.selectById(id);
         mallActivity.setState(state);
         this.baseMapper.updateById(mallActivity);
+
+        if(YesOrNoOrIngEnum.NO.getValue() == state){
+            List<MallGoods> mallGoods = mallGoodsMapper.selectList(
+                    new LambdaQueryWrapper<MallGoods>()
+                            .eq(MallGoods::getActivityId, id)
+            );
+            if(CollUtil.isNotEmpty(mallGoods)){
+                mallGoodsMapper.update(null,
+                        new LambdaQueryWrapper<MallGoods>()
+                                .eq(MallGoods::getIsSale, MallGoods.ISSALE_STATUS_DISABLED)
+                                .eq(MallGoods::getActivityId, id)
+                );
+            }
+        }
         return new FebsResponse().success().message("操作成功");
     }
 
     @Override
     public FebsResponse delAdminActivity(Long id) {
         this.baseMapper.deleteById(id);
+
         return new FebsResponse().success().message("操作成功");
     }
 
@@ -234,14 +250,14 @@
         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());
+                String desc = YesOrNoOrIngEnum.getEnum(mallActivity.getState()).getDesc();
+                adminMallActivityListVo.setName(mallActivity.getName()+desc);
                 mallActivityList.add(adminMallActivityListVo);
             }
         }
diff --git a/src/main/resources/templates/febs/views/modules/activity/list.html b/src/main/resources/templates/febs/views/modules/activity/list.html
index 3cd2f66..0a1b66a 100644
--- a/src/main/resources/templates/febs/views/modules/activity/list.html
+++ b/src/main/resources/templates/febs/views/modules/activity/list.html
@@ -93,7 +93,7 @@
         table.on('tool(activityTable)', function (obj) {
             var data = obj.data,
                 layEvent = obj.event;
-            if (layEvent === 'delAct') {
+            if (layEvent === 'activityDeleteEvent') {
                 febs.modal.confirm('删除', '确认删除该活动?', function () {
                     delAct(data.id);
                 });
@@ -184,25 +184,48 @@
                     {field: 'startTime', title: '开始时间', minWidth: 150,align:'left'},
                     {field: 'endTime', title: '结束时间', minWidth: 150,align:'left'},
                     {field: 'state', title: '状态', templet: '#activityStateSwitch', minWidth: 130,align:'center'},
-                    {field: 'actRemark', title: '活动说明', minWidth: 150,align:'left'},
-                    {title: '操作', toolbar: '#activityOption', minWidth: 200},
-                ]],
-                done: function(res, curr, count) {
-                    // 遍历每一行数据
-                    res.data.forEach(function(item, index) {
-                        // 根据状态值控制按钮显示
-                        if (item.state === 0) {
-                            // 如果状态为1,显示
-                            $('#activityOption' + index).show();
-                        } else {
-                            // 否则,隐藏
-                            $('#activityOption' + index).hide();
-                        }
-                    });
-                }
+                ]]
             });
         }
 
+        // function initTable() {
+        //     tableIns = febs.table.init({
+        //         elem: $view.find('table'),
+        //         id: 'activityTable',
+        //         url: ctx + 'admin/activity/list',
+        //         cols: [[
+        //             {field: 'name', title: '名称', minWidth: 150,align:'left'},
+        //             {field: 'code', title: '编码', minWidth: 150,align:'left'},
+        //             {field: 'maxImage', title: '大图',
+        //                 templet: function (d) {
+        //                     return '<a lay-event="seeImgThumb"><img id="seeImgThumb'+d.id+'" src="'+d.maxImage+'" alt=""></a>';
+        //                 }, minWidth: 150,align:'center'},
+        //             {field: 'minImage', title: '小图',
+        //                 templet: function (d) {
+        //                     return '<a lay-event="seeImgThumb"><img id="seeImgThumb'+d.id+'" src="'+d.minImage+'" alt=""></a>';
+        //                 }, minWidth: 150,align:'center'},
+        //             {field: 'startTime', title: '开始时间', minWidth: 150,align:'left'},
+        //             {field: 'endTime', title: '结束时间', minWidth: 150,align:'left'},
+        //             {field: 'state', title: '状态', templet: '#activityStateSwitch', minWidth: 130,align:'center'},
+        //             {field: 'actRemark', title: '活动说明', minWidth: 150,align:'left'},
+        //             {title: '操作', toolbar: '#activityOption', minWidth: 200},
+        //         ]],
+        //         done: function(res, curr, count) {
+        //             // 遍历每一行数据
+        //             res.data.forEach(function(item, index) {
+        //                 // 根据状态值控制按钮显示
+        //                 if (item.state === 2) {
+        //                     // 如果状态为1,显示
+        //                     $('#activityOption' + index).show();
+        //                 } else {
+        //                     // 否则,隐藏
+        //                     $('#activityOption' + index).hide();
+        //                 }
+        //             });
+        //         }
+        //     });
+        // }
+
         form.on('switch(activityStateSwitch)', function (data) {
             if (data.elem.checked) {
                 changeState(data.value,1);

--
Gitblit v1.9.1