简介:Mybatis-plus-分页插件配置+优惠劵列表开发

MybatisPlus分页插件配置(Common项目配置)

/**
 * @date:2023/6/28 17:06
 * @author:Carl
 * @Description:  分页配置类
 */
@Configuration
public class MybatisPlusPageConfig {

    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,
     * 需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题
     */
    @Bean
    MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}

优惠券列表分页接口开发

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Carl
 * @since 2023-06-26
 */
public interface CouponService {
    /**
     * 分页查询优惠卷
     * @param page
     * @param size
     * @return
     */
    Map<String,Object> pageCouponActivity(int page,int size);

}
/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author Carl
 * @since 2023-06-26
 */
@Service
@Slf4j
public class CouponServiceImpl implements CouponService {

    @Autowired
    CouponMapper couponMapper;

    /**
     * 分页具体业务操作
     * @param page
     * @param size
     * @return
     */
    @Override
    public Map<String, Object> pageCouponActivity(int page, int size) {

        //第1页,每页2条
        Page<CouponDO> pageInfo = new Page<>(page, size);


        IPage<CouponDO> couponDOIPage =  couponMapper.selectPage(pageInfo,new QueryWrapper<CouponDO>()
                .eq("publish", CouponPulishEnum.PUBLISH)  //发布的
                .eq("category", CouponCategoryEnum.PROMOTION) //促销券
                .orderByDesc("create_time")); //根据创建时间倒排

        HashMap<String, Object> pageMap = new HashMap<>(3);
        //总条数
        pageMap.put("total_record",couponDOIPage.getTotal());
        pageMap.put("total_page",couponDOIPage.getPages());
        pageMap.put("current_data",couponDOIPage.getRecords()
                .stream()
                .map(obj -> beanProcess(obj))
                .collect(Collectors.toList()));

        return pageMap;
    }


    /**
     * DO-VO工具类
     * @param couponDO
     * @return
     */
    private CouponVO beanProcess(CouponDO couponDO) {

        CouponVO couponVO = new CouponVO();

        BeanUtil.copyProperties(couponDO,couponVO);

        return couponVO;

    }
}

展示层:

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author Carl
 * @since 2023-06-26
 */
@RestController
@RequestMapping("/api/coupon/vi")
public class CouponController {

   @Autowired
   CouponService couponService;

   /**
     * 优惠卷分页接口
     * @param page
     * @param size
     * @return
     */
    @RequestMapping(value = "page_coupon",method = {RequestMethod.POST,RequestMethod.POST})
    JsonData pageCouponList(int page,int size){
        Map<String, Object> pageMap = couponService.pageCouponActivity(page, size);
        return JsonData.buildSuccess(pageMap);
    }
}

测试:

image

最后修改:2026 年 06 月 06 日
如果觉得我的文章对你有用,请随意赞赏