From 6fa2b91b69b4f656bfc0d0711523e33f6cce0761 Mon Sep 17 00:00:00 2001 From: lihuilin Date: Fri, 25 Jul 2025 11:09:22 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A5=96=E5=93=81bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/service/Impl/AdminPrizeServiceImpl.java | 30 ++++++++++++---------- 1 file changed, 17 insertions(+), 13 deletions(-) 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 index 0e3d9e2..b073dd6 100644 --- 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 @@ -14,6 +14,7 @@ import com.lottery.result.Result; import com.lottery.utils.ConvertBeanUtil; import com.lottery.vo.PageInfo; import com.lottery.vo.PrizeVo; +import org.apache.ibatis.annotations.Lang; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -124,10 +125,14 @@ public class AdminPrizeServiceImpl extends ServiceImpl Long gradeId = prizeDto.getGradeId(); Grade grade = adminGradeMapper.selectById(gradeId); - Long l = adminPrizeMapper.selectByName(prizeDto.getPrizeName()); - if (l != null) { - return Result.failure("奖品名已存在"); - } + //LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + //lambdaUpdateWrapper.eq(Prize::getPrizeName, prizeDto.getPrizeName()).ne(Prize::getId, prizeDto.getId()); + //this.update(null, lambdaUpdateWrapper); + + //Long l = adminPrizeMapper.selectByName(prizeDto.getPrizeName()); + //if (l != null){ + // return Result.failure("奖品名已存在"); + //} // 2. 检查是否是修改现有奖品(需要传入prizeId) // 1. 查询原奖品信息 @@ -151,19 +156,18 @@ public class AdminPrizeServiceImpl extends ServiceImpl // 3. 如果修改后的等级和原等级不同,检查目标等级是否已有奖品 if (!targetGrade.getId().equals(originalPrize.getGradeId())) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Prize::getGradeId, targetGrade.getId()); + wrapper.eq(Prize::getGradeId, targetGrade.getId()).eq(Prize::getIs_del, 0); if (this.count(wrapper) > 0) { return Result.failure("目标等级已有奖品,不能修改"); // 目标等级已有奖品,不能修改 } } -// -// // 4. 检查奖品名称是否重复(排除自己) -// LambdaQueryWrapper nameCheckWrapper = new LambdaQueryWrapper<>(); -// nameCheckWrapper.eq(Prize::getPrizeName, prizeDto.getPrizeName()) -// .ne(Prize::getId, prizeDto.getId()); -// if (this.count(nameCheckWrapper) > 0) { -// return false; // 奖品名称已存在 -// } + // 4. 检查奖品名称是否重复(排除自己) + LambdaQueryWrapper nameCheckWrapper = new LambdaQueryWrapper<>(); + nameCheckWrapper.eq(Prize::getPrizeName, prizeDto.getPrizeName()) + .ne(Prize::getId, prizeDto.getId()); + if (this.count(nameCheckWrapper) > 0) { + return Result.failure("奖品名称已存在"); // 奖品名称已存在 + } // LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); // wrapper.eq(Prize::getGradeId, grade.getId()); From 14d9f6b36961c1ea0090665eb6a3690cef7d6b8f Mon Sep 17 00:00:00 2001 From: willy <2462310981@qq.com> Date: Fri, 25 Jul 2025 12:00:32 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lottery-pojo/src/main/java/com/lottery/dto/FixUserDto.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lottery-system/lottery-pojo/src/main/java/com/lottery/dto/FixUserDto.java b/lottery-system/lottery-pojo/src/main/java/com/lottery/dto/FixUserDto.java index 852ff6c..27f4f38 100644 --- a/lottery-system/lottery-pojo/src/main/java/com/lottery/dto/FixUserDto.java +++ b/lottery-system/lottery-pojo/src/main/java/com/lottery/dto/FixUserDto.java @@ -3,6 +3,8 @@ package com.lottery.dto; import lombok.Data; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; /** * @program: lottery @@ -16,8 +18,12 @@ import javax.validation.constraints.NotNull; public class FixUserDto { @NotNull(message = "用户名不能为空") + @Size(max = 30, message = "姓名长度不能超过30个字符") + @Pattern(regexp = "^[\\u4e00-\\u9fa5\\u3400-\\u4dbf\\u20000-\\u2a6df\\u2a700-\\u2b73f\\u2b740-\\u2b81f\\u2b820-\\u2ceaf\\uf900-\\ufaffa-zA-Z]+$", + message = "姓名只能包含中文(简繁体)或英文字符") private String username; + @Pattern(regexp = "^\\d{5,12}$", message = "精网号必须是5到12位的数字") @NotNull(message = "精网号不能为空") private String jwcode; From ac69c5fa7455052d6c7c9a27458e4b6430d28523 Mon Sep 17 00:00:00 2001 From: willy <2462310981@qq.com> Date: Fri, 25 Jul 2025 13:04:50 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=9D=A1=E6=95=B0=E4=B8=8D=E5=BE=97=E5=A4=A7=E4=BA=8E10000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/lottery/admin/service/Impl/AdminWinServiceImpl.java | 9 +++++++++ .../src/main/java/com/lottery/config/MybatisPageConfig.java | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminWinServiceImpl.java b/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminWinServiceImpl.java index 54e6ce4..bc484a8 100644 --- a/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminWinServiceImpl.java +++ b/lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminWinServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.databind.ser.Serializers; import com.lottery.LotteryApplication; import com.lottery.admin.mapper.AdminGradeMapper; import com.lottery.admin.mapper.AdminUserMapper; @@ -19,6 +20,9 @@ import com.lottery.dto.UserQueryDto; import com.lottery.dto.WinUserExportDto; import com.lottery.dto.WinUserQueryDto; import com.lottery.entity.*; +import com.lottery.exception.BaseException; +import com.lottery.exception.BusinessException; +import com.lottery.exception.GlobalExceptionHandler; import com.lottery.result.Result; import com.lottery.utils.ConvertBeanUtil; import com.lottery.vo.PageInfo; @@ -175,6 +179,11 @@ public class AdminWinServiceImpl extends ServiceImpl winUserVoPageInfo = listWinUser(1, Integer.MAX_VALUE, winUserQueryDto); + List list = winUserVoPageInfo.getList(); + if (list.size() > 10000) { + throw new BusinessException(400,"导出数据大于10000条,请筛选条件后导出"); + } + // 4. 使用EasyExcel导出 EasyExcel.write(response.getOutputStream(), WinUserExportDto.class) .excelType(ExcelTypeEnum.XLSX) 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 index 1c65598..248ef43 100644 --- 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 @@ -25,7 +25,7 @@ public class MybatisPageConfig { public PaginationInnerInterceptor paginationInnerInterceptor() { PaginationInnerInterceptor paginationInterceptor = new PaginationInnerInterceptor(); // 设置最大单页限制数量,默认 500 条,-1 不受限制 - paginationInterceptor.setMaxLimit(10000L); + paginationInterceptor.setMaxLimit(20000L); paginationInterceptor.setDbType(DbType.MYSQL); // 开启 count 的 join 优化,只针对部分 left join paginationInterceptor.setOptimizeJoin(true); From d53137da2e2c98d9f684fb881988f208e528ab83 Mon Sep 17 00:00:00 2001 From: lihuilin Date: Fri, 25 Jul 2025 14:01:25 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=A4=BC=E5=93=81=E5=B0=8F=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/service/Impl/AdminPrizeServiceImpl.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) 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 index b073dd6..754c0e7 100644 --- 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 @@ -83,10 +83,10 @@ public class AdminPrizeServiceImpl extends ServiceImpl return Result.failure("等级不存在"); // 等级不存在,直接返回失败 } - Long l = adminPrizeMapper.selectByName(prizeDto.getPrizeName()); - if (l != null) { - return Result.failure("奖品名已存在"); - } + //Long l = adminPrizeMapper.selectByName(prizeDto.getPrizeName()); + //if (l != null) { + // return Result.failure("奖品名已存在"); + //} // 2. 检查逻辑:仅当等级未删除(is_del=0)且已存在奖品时,才拒绝添加 if (grade.getIsDel() == 0) { // 等级未删除 @@ -98,6 +98,14 @@ public class AdminPrizeServiceImpl extends ServiceImpl } } + // 4. 检查奖品名称是否重复 + LambdaQueryWrapper nameCheckWrapper = new LambdaQueryWrapper<>(); + nameCheckWrapper.eq(Prize::getPrizeName, prizeDto.getPrizeName()).eq(Prize::getIs_del, 0); + + if (this.count(nameCheckWrapper) > 0) { + return Result.failure("奖品名称已存在"); // 奖品名称已存在 + } + Prize prize = Prize.builder() .PrizeName(prizeDto.getPrizeName()) .gradeId(grade.getId()) @@ -163,7 +171,7 @@ public class AdminPrizeServiceImpl extends ServiceImpl } // 4. 检查奖品名称是否重复(排除自己) LambdaQueryWrapper nameCheckWrapper = new LambdaQueryWrapper<>(); - nameCheckWrapper.eq(Prize::getPrizeName, prizeDto.getPrizeName()) + nameCheckWrapper.eq(Prize::getPrizeName, prizeDto.getPrizeName()).eq(Prize::getIs_del, 0) .ne(Prize::getId, prizeDto.getId()); if (this.count(nameCheckWrapper) > 0) { return Result.failure("奖品名称已存在"); // 奖品名称已存在