From 52771015a502e09ddae72de202874cd0d995c8fc Mon Sep 17 00:00:00 2001 From: willy <2462310981@qq.com> Date: Tue, 15 Jul 2025 11:39:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=B8=80=E4=BA=9B=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 ++++ .idea/compiler.xml | 22 ++++++++++ .idea/encodings.xml | 10 +++++ .idea/jarRepositories.xml | 20 +++++++++ .idea/lottery.iml | 9 ++++ .idea/misc.xml | 14 ++++++ .idea/modules.xml | 8 ++++ .idea/vcs.xml | 6 +++ .../src/main/java/com/lottery/vo/PageInfo.java | 37 ++++++++++++++++ .../src/main/java/com/lottery/vo/PrizeVo.java | 13 +++++- .../admin/controller/AdminGradeController.java | 10 +++-- .../admin/controller/AdminPrizeController.java | 39 +++++++++++++++++ .../lottery/admin/service/AdminGradeService.java | 10 +++++ .../lottery/admin/service/AdminPrizeService.java | 18 ++++++++ .../admin/service/Impl/AdminGradeServiceImpl.java | 26 +++++++++++ .../admin/service/Impl/AdminPrizeServiceImpl.java | 50 ++++++++++++++++++++++ .../java/com/lottery/api/mapper/IPrizeMapper.java | 4 ++ .../java/com/lottery/config/MybatisPageConfig.java | 39 +++++++++++++++++ .../src/main/resources/application.yml | 2 +- .../src/main/resources/mapper/api/prizeMapper.xml | 7 +++ lottery-system/pom.xml | 5 +-- 21 files changed, 348 insertions(+), 9 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/lottery.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 lottery-system/lottery-pojo/src/main/java/com/lottery/vo/PageInfo.java create mode 100644 lottery-system/lottery-service/src/main/java/com/lottery/admin/controller/AdminPrizeController.java create mode 100644 lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminPrizeService.java create mode 100644 lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminPrizeServiceImpl.java create mode 100644 lottery-system/lottery-service/src/main/java/com/lottery/config/MybatisPageConfig.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b89bc14 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..8d952cd --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..abb532a --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/lottery.iml b/.idea/lottery.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/lottery.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..8544af1 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..ab684d5 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lottery-system/lottery-pojo/src/main/java/com/lottery/vo/PageInfo.java b/lottery-system/lottery-pojo/src/main/java/com/lottery/vo/PageInfo.java new file mode 100644 index 0000000..4f45221 --- /dev/null +++ b/lottery-system/lottery-pojo/src/main/java/com/lottery/vo/PageInfo.java @@ -0,0 +1,37 @@ +package com.lottery.vo; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @program: lottery + * @ClassName PageInfo + * @description: + * @author: wwl + * @create: 2025-07-15 10:20 + * @Version 1.0 + **/ +@Data +public class PageInfo implements Serializable { + private static final long serialVersionUID = 1L; + + private List list; // 当前页数据 + private long total; // 总记录数 + private int pageNum; // 当前页码 + private int pageSize; // 每页数量 + private int pages; // 总页数 + + // 可以从Page对象构造 + public static PageInfo of(Page page, List list) { + PageInfo pageInfo = new PageInfo<>(); + pageInfo.setList(list); + pageInfo.setTotal(page.getTotal()); + pageInfo.setPageNum((int) page.getCurrent()); + pageInfo.setPageSize((int) page.getSize()); + pageInfo.setPages((int) page.getPages()); + return pageInfo; + } +} \ No newline at end of file diff --git a/lottery-system/lottery-pojo/src/main/java/com/lottery/vo/PrizeVo.java b/lottery-system/lottery-pojo/src/main/java/com/lottery/vo/PrizeVo.java index 4b76a3c..e8cc434 100644 --- a/lottery-system/lottery-pojo/src/main/java/com/lottery/vo/PrizeVo.java +++ b/lottery-system/lottery-pojo/src/main/java/com/lottery/vo/PrizeVo.java @@ -2,6 +2,9 @@ package com.lottery.vo; import lombok.Data; +import java.security.PrivateKey; +import java.util.Date; + /** * @program: lottery-system * @ClassName PrizeVo @@ -13,10 +16,18 @@ import lombok.Data; @Data public class PrizeVo { - private String name; + private Long prizeId; + + private String PrizeName; private String imageUrl; + private String gradeName; + + private Date createTime; + + private Date updateTime; + // private int amount; // // private int grade; diff --git a/lottery-system/lottery-service/src/main/java/com/lottery/admin/controller/AdminGradeController.java b/lottery-system/lottery-service/src/main/java/com/lottery/admin/controller/AdminGradeController.java index f5efe7c..686afbc 100644 --- a/lottery-system/lottery-service/src/main/java/com/lottery/admin/controller/AdminGradeController.java +++ b/lottery-system/lottery-service/src/main/java/com/lottery/admin/controller/AdminGradeController.java @@ -8,6 +8,7 @@ import com.lottery.exception.SomeException; import com.lottery.result.Result; import com.lottery.utils.ConvertBeanUtil; import com.lottery.vo.GradeVo; +import com.lottery.vo.PageInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -39,9 +40,12 @@ public class AdminGradeController { @GetMapping("/list") - public Result> selectGrade(){ - LOGGER.info("查询所有等级"); - return Result.success(ConvertBeanUtil.convertList(adminGradeService.list(), GradeVo.class)); + public Result> selectGrade( @RequestParam(defaultValue = "1") Integer pageNum, + @RequestParam(defaultValue = "10") Integer pageSize){ + LOGGER.info("列分页查询等级表, 页码: {}, 每页大小: {}", pageNum, pageSize); + + PageInfo pageSelectGrade = adminGradeService.pageSelectGrade(pageNum, pageSize); + return Result.success(pageSelectGrade); } @GetMapping("/details") diff --git a/lottery-system/lottery-service/src/main/java/com/lottery/admin/controller/AdminPrizeController.java b/lottery-system/lottery-service/src/main/java/com/lottery/admin/controller/AdminPrizeController.java new file mode 100644 index 0000000..ec77096 --- /dev/null +++ b/lottery-system/lottery-service/src/main/java/com/lottery/admin/controller/AdminPrizeController.java @@ -0,0 +1,39 @@ +package com.lottery.admin.controller; + +import com.lottery.admin.service.AdminPrizeService; +import com.lottery.result.Result; +import com.lottery.vo.PageInfo; +import com.lottery.vo.PrizeVo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * @program: lottery + * @ClassName AdminPrizeController + * @description: + * @author: wwl + * @create: 2025-07-15 10:06 + * @Version 1.0 + **/ +@RestController +@RequestMapping("/admin/prize") +public class AdminPrizeController { + + @Autowired + private AdminPrizeService adminPrizeService; + + private final static Logger LOGGER = LoggerFactory.getLogger(AdminPrizeController.class); + + @GetMapping("list") + public Result> listPrize(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) { + LOGGER.info("列分页查询l礼品表, 页码: {}, 每页大小: {}", pageNum, pageSize); + + PageInfo pageInfo = adminPrizeService.pageListPrize(pageNum, pageSize); + return Result.success(pageInfo); + } +} diff --git a/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminGradeService.java b/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminGradeService.java index 1b9b61a..20181c4 100644 --- a/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminGradeService.java +++ b/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminGradeService.java @@ -1,10 +1,18 @@ package com.lottery.admin.service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.lottery.dto.GradeDto; import com.lottery.entity.Grade; +import com.lottery.vo.GradeVo; +import com.lottery.vo.PageInfo; import org.springframework.stereotype.Service; +import javax.persistence.criteria.CriteriaBuilder; + /** * @program: lottery-system * @ClassName IGradeService @@ -16,6 +24,8 @@ import org.springframework.stereotype.Service; public interface AdminGradeService extends IService { + PageInfo pageSelectGrade(Integer pageNum, Integer pageSize); + // boolean updateGrade(GradeDto gradeDto); } diff --git a/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminPrizeService.java b/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminPrizeService.java new file mode 100644 index 0000000..1b9744c --- /dev/null +++ b/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminPrizeService.java @@ -0,0 +1,18 @@ +package com.lottery.admin.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.lottery.entity.Prize; +import com.lottery.vo.PageInfo; +import com.lottery.vo.PrizeVo; + +/** + * @program: lottery + * @ClassName AdminPrizeService + * @description: + * @author: wwl + * @create: 2025-07-15 10:07 + * @Version 1.0 + **/ +public interface AdminPrizeService extends IService { + PageInfo pageListPrize(int pageNum, int pageSize); +} diff --git a/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminGradeServiceImpl.java b/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminGradeServiceImpl.java index a5a3d72..f7c30a0 100644 --- a/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminGradeServiceImpl.java +++ b/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminGradeServiceImpl.java @@ -1,6 +1,9 @@ package com.lottery.admin.service.Impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lottery.LotteryApplication; import com.lottery.admin.mapper.AdminGradeMapper; import com.lottery.admin.service.AdminGradeService; import com.lottery.dto.GradeDto; @@ -8,10 +11,14 @@ import com.lottery.entity.Grade; import com.lottery.exception.SomeException; import com.lottery.result.Result; import com.lottery.utils.ConvertBeanUtil; +import com.lottery.vo.GradeVo; +import com.lottery.vo.PageInfo; import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.stereotype.Service; import java.util.Date; +import java.util.List; /** * @program: lottery-system @@ -25,6 +32,25 @@ import java.util.Date; @Service public class AdminGradeServiceImpl extends ServiceImpl implements AdminGradeService { + /** + * |分页查询 + * @param pageNum + * @param pageSize + * @return + */ + @Override + public PageInfo pageSelectGrade(Integer pageNum, Integer pageSize) { + + Page page = new Page<>(pageNum, pageSize); + + LambdaQueryWrapper gradeLambdaQueryWrapper = new LambdaQueryWrapper<>(); + gradeLambdaQueryWrapper.orderByDesc(Grade::getSort); + Page gradePage = this.page(page, gradeLambdaQueryWrapper); + + List gradeVos = ConvertBeanUtil.convertList(gradePage.getRecords(), GradeVo.class); + return PageInfo.of(gradePage, gradeVos); + } + // @Autowired // private AdminGradeMapper adminGradeMapper; diff --git a/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminPrizeServiceImpl.java b/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminPrizeServiceImpl.java new file mode 100644 index 0000000..5aa87f2 --- /dev/null +++ b/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminPrizeServiceImpl.java @@ -0,0 +1,50 @@ +package com.lottery.admin.service.Impl; + +import ch.qos.logback.classic.spi.EventArgUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lottery.admin.service.AdminPrizeService; +import com.lottery.api.mapper.IGradeMapper; +import com.lottery.api.mapper.IPrizeMapper; +import com.lottery.entity.Prize; +import com.lottery.utils.ConvertBeanUtil; +import com.lottery.vo.PageInfo; +import com.lottery.vo.PrizeVo; +import net.bytebuddy.implementation.auxiliary.AuxiliaryType; +import org.hibernate.engine.jdbc.connections.internal.ConnectionValidator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.lang.module.Configuration; +import java.util.List; + +/** + * @program: lottery + * @ClassName AdminPrizeServiceImpl + * @description: + * @author: wwl + * @create: 2025-07-15 10:07 + * @Version 1.0 + **/ +@Service +public class AdminPrizeServiceImpl extends ServiceImpl implements AdminPrizeService { + + @Autowired + private IGradeMapper gradeMapper; + + @Autowired + private IPrizeMapper prizeMapper; + + @Override + public PageInfo pageListPrize(int pageNum, int pageSize) { + Page page = new Page<>(pageNum, pageSize); + + //关联grade查询sort,prize表也按照g.sort排序 + LambdaQueryWrapper prizeLambdaQueryWrapper = new LambdaQueryWrapper<>(); + Page pagePrize = prizeMapper.pageListPrize(page, prizeLambdaQueryWrapper); + + List prizeVos = ConvertBeanUtil.convertList(pagePrize.getRecords(), PrizeVo.class); + return PageInfo.of(pagePrize, prizeVos); + } +} diff --git a/lottery-system/lottery-service/src/main/java/com/lottery/api/mapper/IPrizeMapper.java b/lottery-system/lottery-service/src/main/java/com/lottery/api/mapper/IPrizeMapper.java index e83886d..8db8eae 100644 --- a/lottery-system/lottery-service/src/main/java/com/lottery/api/mapper/IPrizeMapper.java +++ b/lottery-system/lottery-service/src/main/java/com/lottery/api/mapper/IPrizeMapper.java @@ -1,6 +1,8 @@ package com.lottery.api.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.lottery.entity.Prize; import com.lottery.vo.PrizeAndGradeVo; import org.apache.ibatis.annotations.Insert; @@ -21,4 +23,6 @@ import java.util.List; public interface IPrizeMapper extends BaseMapper { List selectPrizeAndGrade(); + + Page pageListPrize(Page page, LambdaQueryWrapper prizeLambdaQueryWrapper); } diff --git a/lottery-system/lottery-service/src/main/java/com/lottery/config/MybatisPageConfig.java b/lottery-system/lottery-service/src/main/java/com/lottery/config/MybatisPageConfig.java new file mode 100644 index 0000000..58e7da9 --- /dev/null +++ b/lottery-system/lottery-service/src/main/java/com/lottery/config/MybatisPageConfig.java @@ -0,0 +1,39 @@ +package com.lottery.config; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Collections; + +/** + * @Author idea + * @Date: Created in 18:56 2023/7/23 + * @Description + */ +@Configuration +public class MybatisPageConfig { + + /** + * 分页插件 3.5.X + */ + @Bean + public PaginationInnerInterceptor paginationInnerInterceptor() { + PaginationInnerInterceptor paginationInterceptor = new PaginationInnerInterceptor(); + // 设置最大单页限制数量,默认 500 条,-1 不受限制 + paginationInterceptor.setMaxLimit(1000L); + paginationInterceptor.setDbType(DbType.MYSQL); + // 开启 count 的 join 优化,只针对部分 left join + paginationInterceptor.setOptimizeJoin(true); + return paginationInterceptor; + } + + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor(){ + MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); + mybatisPlusInterceptor.setInterceptors(Collections.singletonList(paginationInnerInterceptor())); + return mybatisPlusInterceptor; + } +} diff --git a/lottery-system/lottery-service/src/main/resources/application.yml b/lottery-system/lottery-service/src/main/resources/application.yml index 7cc8330..c1cf29a 100644 --- a/lottery-system/lottery-service/src/main/resources/application.yml +++ b/lottery-system/lottery-service/src/main/resources/application.yml @@ -6,7 +6,7 @@ spring: datasource: url: jdbc:mysql://localhost:3306/lottery_system?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root - password: root + password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver hikari: pool-name: LotteryHikariCP diff --git a/lottery-system/lottery-service/src/main/resources/mapper/api/prizeMapper.xml b/lottery-system/lottery-service/src/main/resources/mapper/api/prizeMapper.xml index dd72444..4cbc009 100644 --- a/lottery-system/lottery-service/src/main/resources/mapper/api/prizeMapper.xml +++ b/lottery-system/lottery-service/src/main/resources/mapper/api/prizeMapper.xml @@ -8,4 +8,11 @@ left join grade g on p.grade_id = g.id order by g.sort desc + + \ No newline at end of file diff --git a/lottery-system/pom.xml b/lottery-system/pom.xml index 8de5a64..95166ac 100644 --- a/lottery-system/pom.xml +++ b/lottery-system/pom.xml @@ -103,10 +103,7 @@ 0.11.5 runtime - - - - +