feat(activity): 优化活动列表展示和状态管理
- 在活动列表中添加活动状态和类型描述
- 实现活动状态切换时更新相关商品销售状态
- 优化活动删除逻辑
- 添加 ActivityTypeEnum 和 YesOrNoOrIngEnum 的 getEnum 方法
- 更新活动列表模板,增加状态显示和操作按钮控制
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | this.desc = desc; |
| | | } |
| | | |
| | | public static YesOrNoOrIngEnum getEnum(int value) { |
| | | for (YesOrNoOrIngEnum type : YesOrNoOrIngEnum.values()) { |
| | | if (type.getValue() == value) { |
| | | return type; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | } |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | 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("操作成功"); |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | 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); |
| | | }); |
| | |
| | | {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); |