feat(mall): 后台活动列表添加分页和搜索功能
- 在 ActivityServiceImpl 中实现 getAdminListInPage 方法,支持分页和搜索
- 在 AdminActivityController 中添加 list 接口,返回分页数据
- 在 IActivityService 中定义 getAdminListInPage 接口
- 更新前端模板,根据活动状态控制按钮显示
4 files modified
46 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/AdminActivityController.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IActivityService.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ActivityServiceImpl.java 21 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/activity/list.html 8 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/AdminActivityController.java
@@ -1,12 +1,18 @@
package cc.mrbird.febs.mall.controller;
import cc.mrbird.febs.common.controller.BaseController;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.entity.MallActivity;
import cc.mrbird.febs.mall.service.IActivityService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@Slf4j
@Validated
@@ -17,4 +23,10 @@
    private final IActivityService iActivityService;
    @GetMapping("list")
    public FebsResponse getAdminListInPage(MallActivity mallActivity, QueryRequest request) {
        Map<String, Object> data = getDataTable(iActivityService.getAdminListInPage(mallActivity, request));
        return new FebsResponse().success().data(data);
    }
}
src/main/java/cc/mrbird/febs/mall/service/IActivityService.java
@@ -1,7 +1,12 @@
package cc.mrbird.febs.mall.service;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.entity.MallActivity;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
public interface IActivityService extends IService<MallActivity> {
    IPage<MallActivity> getAdminListInPage(MallActivity mallActivity, QueryRequest request);
}
src/main/java/cc/mrbird/febs/mall/service/impl/ActivityServiceImpl.java
@@ -1,8 +1,14 @@
package cc.mrbird.febs.mall.service.impl;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.entity.MallActivity;
import cc.mrbird.febs.mall.mapper.MallActivityMapper;
import cc.mrbird.febs.mall.service.IActivityService;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -14,4 +20,19 @@
@RequiredArgsConstructor
@Transactional
public class ActivityServiceImpl extends ServiceImpl<MallActivityMapper, MallActivity> implements IActivityService {
    @Override
    public IPage<MallActivity> getAdminListInPage(MallActivity mallActivity, QueryRequest request) {
        Page<MallActivity> page = new Page<>(request.getPageNum(), request.getPageSize());
        LambdaQueryWrapper<MallActivity> mallActivityLambdaQueryWrapper = new LambdaQueryWrapper<>();
        String name = mallActivity.getName();
        if(StrUtil.isNotEmpty(name)){
            mallActivityLambdaQueryWrapper.like(MallActivity::getName,name);
        }
        Integer state = mallActivity.getState();
        if(ObjectUtil.isNotEmpty(state)){
            mallActivityLambdaQueryWrapper.eq(MallActivity::getState,state);
        }
        Page<MallActivity> mallActivityPage = this.baseMapper.selectPage(page, mallActivityLambdaQueryWrapper);
        return mallActivityPage;
    }
}
src/main/resources/templates/febs/views/modules/activity/list.html
@@ -1,4 +1,4 @@
<div class="layui-fluid layui-anim febs-anim" id="febs-activity" lay-title="首页活动">
<div class="layui-fluid layui-anim febs-anim" id="febs-activity" lay-title="活动列表">
    <div class="layui-row febs-container">
        <div class="layui-col-md12">
            <div class="layui-card">
@@ -211,12 +211,12 @@
                    // 遍历每一行数据
                    res.data.forEach(function(item, index) {
                        // 根据状态值控制按钮显示
                        if (item.state === 2) {
                        if (item.state === 0) {
                            // 如果状态为1,显示
                            $('#commissionOption' + index).show();
                            $('#activityOption' + index).show();
                        } else {
                            // 否则,隐藏
                            $('#commissionOption' + index).hide();
                            $('#activityOption' + index).hide();
                        }
                    });
                }