From 293ebf33ff0b15b9b3c902ddc0685fa506252dbb Mon Sep 17 00:00:00 2001 From: "rong.liu" Date: Tue, 2 Jan 2024 16:24:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E6=8A=A5=E5=90=8D=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E5=88=97=E8=A1=A8=E5=A7=93=E5=90=8D=E6=98=9F=E5=8F=B7?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CompetitionRegistrationServiceImpl.java | 28 ++++++++---- .../HandleNameAsteriskReplacementUtil.java | 43 +++++++++++++++++++ 2 files changed, 62 insertions(+), 9 deletions(-) create mode 100644 competition/src/main/java/com/huoran/competition/utils/HandleNameAsteriskReplacementUtil.java diff --git a/competition/src/main/java/com/huoran/competition/service/impl/CompetitionRegistrationServiceImpl.java b/competition/src/main/java/com/huoran/competition/service/impl/CompetitionRegistrationServiceImpl.java index 2a25baf..e085c6d 100644 --- a/competition/src/main/java/com/huoran/competition/service/impl/CompetitionRegistrationServiceImpl.java +++ b/competition/src/main/java/com/huoran/competition/service/impl/CompetitionRegistrationServiceImpl.java @@ -12,7 +12,10 @@ import com.huoran.common.entity.School; import com.huoran.common.exception.CustomException; import com.huoran.common.exception.ExceptionEnum; import com.huoran.common.response.R; -import com.huoran.competition.entity.*; +import com.huoran.competition.entity.Competition; +import com.huoran.competition.entity.CompetitionRegistration; +import com.huoran.competition.entity.CompetitionTeam; +import com.huoran.competition.entity.CompleteCompetitionSetup; import com.huoran.competition.entity.req.PageRegistrationStaffReq; import com.huoran.competition.entity.vo.ExcelData; import com.huoran.competition.entity.vo.PersonalExcelData; @@ -23,6 +26,7 @@ import com.huoran.competition.service.CompetitionRegistrationService; import com.huoran.competition.service.CompetitionTeamService; import com.huoran.competition.service.TeamParticipantService; import com.huoran.competition.utils.ExcelStyleUtil; +import com.huoran.competition.utils.HandleNameAsteriskReplacementUtil; import org.apache.poi.ss.usermodel.Workbook; import org.jetbrains.annotations.NotNull; import org.springframework.beans.BeanUtils; @@ -79,6 +83,12 @@ public class CompetitionRegistrationServiceImpl extends ServiceImpl page = new Page(req.getPageNum(), req.getPageSize()); IPage pageList = baseMapper.selectRegistrationByCondition(page, req); + + pageList + .getRecords().forEach(registrationVO -> { + registrationVO.setUsername( HandleNameAsteriskReplacementUtil.desensitizedName(registrationVO.getUsername())); + }); + return R.ok().put("data", pageList); } @@ -196,15 +206,15 @@ public class CompetitionRegistrationServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); - wrapper.eq("competition_id", competitionRegistration.getCompetitionId()); - List competitionRegistrations = baseMapper.selectList(wrapper); - if (competitionRegistrations != null && competitionRegistrations.size() >= competition.getQuantityLimit()) { - throw new CustomException(ExceptionEnum.TEAM_LIMIT3); - } + //个人赛人数限制 + if (competition.getQuantityLimit() != null) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("competition_id", competitionRegistration.getCompetitionId()); + List competitionRegistrations = baseMapper.selectList(wrapper); + if (competitionRegistrations != null && competitionRegistrations.size() >= competition.getQuantityLimit()) { + throw new CustomException(ExceptionEnum.TEAM_LIMIT3); } + } //内部添加,一路绿灯 QueryWrapper wrapper = getCompetitionRegistrationQueryWrapper(competitionRegistration, competition); diff --git a/competition/src/main/java/com/huoran/competition/utils/HandleNameAsteriskReplacementUtil.java b/competition/src/main/java/com/huoran/competition/utils/HandleNameAsteriskReplacementUtil.java new file mode 100644 index 0000000..b394c82 --- /dev/null +++ b/competition/src/main/java/com/huoran/competition/utils/HandleNameAsteriskReplacementUtil.java @@ -0,0 +1,43 @@ +package com.huoran.competition.utils; + +import org.apache.commons.lang3.StringUtils; + +public class HandleNameAsteriskReplacementUtil { + /** + * @description: 名字脱敏 + * 脱敏规则: 隐藏中中间部分,比如:李某人 置换为 李*人 , 李某置换为 *某,司徒司翘置换为 司**翘 + * @return: + * @author: *** + * @time: 2022/6/22 + */ + public static String desensitizedName(String fullName) { + if (!com.mysql.cj.util.StringUtils.isNullOrEmpty(fullName)) { + int length = fullName.length(); + if (length == 2) { + return fullName.substring(0, 1).concat("*"); + } else if (length == 3) { + return StringUtils.left(fullName, 1).concat("*").concat(StringUtils.right(fullName, 1)); + } else if (length > 3) { + return StringUtils.left(fullName, 1).concat(generateAsterisk(fullName.substring(1, length - 1).length())).concat(StringUtils.right(fullName, 1)); + } else { + return fullName; + } + } + return fullName; + } + + + /** + * @description: 返回指定长度*字符串 + * @return: + * @author: *** + * @time: 2022/6/22 + */ + private static String generateAsterisk(int length) { + String result = ""; + for (int i = 0; i < length; i++) { + result += "*"; + } + return result; + } +}