From 62967bf817e6018495e7fab0d813d52d0db70018 Mon Sep 17 00:00:00 2001 From: eee1397 <13718713024@163.com> Date: Tue, 15 Mar 2022 17:07:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E5=8F=AF=E9=80=9A=E8=BF=87nacos=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dubhe/admin/service/impl/UserServiceImpl.java | 13 +++++++++---- .../org/dubhe/biz/base/constant/UserConstant.java | 2 ++ .../org/dubhe/biz/base/enums/BaseErrorCodeEnum.java | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/dubhe-server/admin/src/main/java/org/dubhe/admin/service/impl/UserServiceImpl.java b/dubhe-server/admin/src/main/java/org/dubhe/admin/service/impl/UserServiceImpl.java index 20f75c4..a931608 100644 --- a/dubhe-server/admin/src/main/java/org/dubhe/admin/service/impl/UserServiceImpl.java +++ b/dubhe-server/admin/src/main/java/org/dubhe/admin/service/impl/UserServiceImpl.java @@ -79,6 +79,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -108,6 +109,10 @@ public class UserServiceImpl extends ServiceImpl implements Us @Value("${user.config.gpu-limit}") private Integer gpuLimit; + @Value("${spring.mail.count-limit:6}") + private Integer mailCountLimit; + + @Autowired private UserMapper userMapper; @@ -885,17 +890,17 @@ public class UserServiceImpl extends ServiceImpl implements Us */ private void limitSendEmail(final String receiverMailAddress) { double count = redisUtils.hincr(UserConstant.USER_EMAIL_LIMIT_COUNT.concat(receiverMailAddress), receiverMailAddress, 1); - if (count > UserConstant.COUNT_SENT_EMAIL) { - LogUtil.error(LogEnum.SYS_ERR, "Email verification code cannot exceed three times , error:{}", UserConstant.COUNT_SENT_EMAIL); + if (count > mailCountLimit) { + LogUtil.error(LogEnum.SYS_ERR, "Email verification code cannot exceed three times , error:{}", mailCountLimit); throw new BusinessException(BaseErrorCodeEnum.SYSTEM_USER_EMAIL_CODE_CANNOT_EXCEED_TIMES.getCode(), - BaseErrorCodeEnum.SYSTEM_USER_EMAIL_CODE_CANNOT_EXCEED_TIMES.getMsg()); + String.format(BaseErrorCodeEnum.SYSTEM_USER_EMAIL_CODE_CANNOT_EXCEED_TIMES.getMsg(), mailCountLimit)); } else { // 验证码次数凌晨清除 String concat = UserConstant.USER_EMAIL_LIMIT_COUNT.concat(receiverMailAddress); Long secondsNextEarlyMorning = DateUtil.getSecondTime(); - redisUtils.expire(concat, secondsNextEarlyMorning); + redisUtils.expire(concat, TimeUnit.MILLISECONDS.toSeconds(secondsNextEarlyMorning)); } } diff --git a/dubhe-server/common-biz/base/src/main/java/org/dubhe/biz/base/constant/UserConstant.java b/dubhe-server/common-biz/base/src/main/java/org/dubhe/biz/base/constant/UserConstant.java index f4eb296..9cd09b1 100644 --- a/dubhe-server/common-biz/base/src/main/java/org/dubhe/biz/base/constant/UserConstant.java +++ b/dubhe-server/common-biz/base/src/main/java/org/dubhe/biz/base/constant/UserConstant.java @@ -63,7 +63,9 @@ public class UserConstant { /** * 发邮件次数 + * 改用nacos全局配置 */ + @Deprecated public final static int COUNT_SENT_EMAIL = 3; /** diff --git a/dubhe-server/common-biz/base/src/main/java/org/dubhe/biz/base/enums/BaseErrorCodeEnum.java b/dubhe-server/common-biz/base/src/main/java/org/dubhe/biz/base/enums/BaseErrorCodeEnum.java index 0b47e41..380001d 100644 --- a/dubhe-server/common-biz/base/src/main/java/org/dubhe/biz/base/enums/BaseErrorCodeEnum.java +++ b/dubhe-server/common-biz/base/src/main/java/org/dubhe/biz/base/enums/BaseErrorCodeEnum.java @@ -44,7 +44,7 @@ public enum BaseErrorCodeEnum implements ErrorCode { SYSTEM_USER_REGISTER_EMAIL_INFO_EXPIRED(20004, "邮箱验证码已过期!"), SYSTEM_USER_EMAIL_ALREADY_EXISTS(20004, "该邮箱已被注册!"), SYSTEM_USER_EMAIL_PASSWORD_ERROR(20005, "邮件密码错误!"), - SYSTEM_USER_EMAIL_CODE_CANNOT_EXCEED_TIMES(20006, "邮件发送不能超过三次!"), + SYSTEM_USER_EMAIL_CODE_CANNOT_EXCEED_TIMES(20006, "邮件发送次数每天不能超过%d"), SYSTEM_USER_EMAIL_OR_CODE_ERROR(20007, "邮箱地址或验证码错误、请重新输入!"), SYSTEM_USER_IS_LOCKED(20008, "用户已锁定!"), SYSTEM_USER_USERNAME_OR_PASSWORD_ERROR(20009, "账号或密码不正确!"), From 71c4a9e54a77bef42ca7613f5f1f0ccbc60c1a45 Mon Sep 17 00:00:00 2001 From: eee1397 <13718713024@163.com> Date: Tue, 15 Mar 2022 17:08:34 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=AD=97=E5=85=B8=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BF=87=E6=BB=A4=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dubhe/admin/rest/DictController.java | 4 +-- .../admin/rest/UserCenterController.java | 2 +- .../org/dubhe/admin/service/DictService.java | 2 +- .../admin/service/impl/DictServiceImpl.java | 33 ++++++++++++++++++- 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/dubhe-server/admin/src/main/java/org/dubhe/admin/rest/DictController.java b/dubhe-server/admin/src/main/java/org/dubhe/admin/rest/DictController.java index c4ba275..6dbf530 100644 --- a/dubhe-server/admin/src/main/java/org/dubhe/admin/rest/DictController.java +++ b/dubhe-server/admin/src/main/java/org/dubhe/admin/rest/DictController.java @@ -101,7 +101,7 @@ public class DictController { @ApiOperation("根据名称查询字典详情") @GetMapping(value = "/{name}") - public DataResponseBody getDict(@PathVariable String name) { - return DataResponseFactory.success(dictService.findByName(name)); + public DataResponseBody getDict(@PathVariable String name, String filter) { + return DataResponseFactory.success(dictService.findByName(name, filter)); } } diff --git a/dubhe-server/admin/src/main/java/org/dubhe/admin/rest/UserCenterController.java b/dubhe-server/admin/src/main/java/org/dubhe/admin/rest/UserCenterController.java index 2188eae..9c4f178 100644 --- a/dubhe-server/admin/src/main/java/org/dubhe/admin/rest/UserCenterController.java +++ b/dubhe-server/admin/src/main/java/org/dubhe/admin/rest/UserCenterController.java @@ -85,7 +85,7 @@ public class UserCenterController { @ApiOperation("用户查询字典详情") @GetMapping(value = "/dict/{name}") public DataResponseBody getDict(@PathVariable String name) { - return new DataResponseBody(dictService.findByName(name)); + return new DataResponseBody(dictService.findByName(name, null)); } @ApiOperation("个人中心") diff --git a/dubhe-server/admin/src/main/java/org/dubhe/admin/service/DictService.java b/dubhe-server/admin/src/main/java/org/dubhe/admin/service/DictService.java index 5f2b148..cef5a03 100644 --- a/dubhe-server/admin/src/main/java/org/dubhe/admin/service/DictService.java +++ b/dubhe-server/admin/src/main/java/org/dubhe/admin/service/DictService.java @@ -66,7 +66,7 @@ public interface DictService { * @param name 字典名称 * @return org.dubhe.domain.dto.DictDTO 字典实例 */ - DictDTO findByName(String name); + DictDTO findByName(String name,String filter); /** * 新增字典 diff --git a/dubhe-server/admin/src/main/java/org/dubhe/admin/service/impl/DictServiceImpl.java b/dubhe-server/admin/src/main/java/org/dubhe/admin/service/impl/DictServiceImpl.java index 55b387c..94f8b39 100644 --- a/dubhe-server/admin/src/main/java/org/dubhe/admin/service/impl/DictServiceImpl.java +++ b/dubhe-server/admin/src/main/java/org/dubhe/admin/service/impl/DictServiceImpl.java @@ -19,10 +19,13 @@ package org.dubhe.admin.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import org.dubhe.admin.dao.DictDetailMapper; import org.dubhe.admin.dao.DictMapper; import org.dubhe.admin.domain.dto.*; import org.dubhe.admin.domain.entity.Dict; +import org.dubhe.admin.domain.entity.DictDetail; import org.dubhe.admin.service.DictService; import org.dubhe.admin.service.convert.DictConvert; import org.dubhe.biz.base.exception.BusinessException; @@ -33,10 +36,14 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; +import java.util.stream.Collectors; /** * @description 字典服务 实现类 @@ -97,14 +104,38 @@ public class DictServiceImpl implements DictService { * 通过Name查询字典详情 * * @param name 字典名称 + * @param filter 过滤类型: algorithmUsage:异常检测 * @return org.dubhe.domain.dto.DictDTO 字典实例 */ @Override - public DictDTO findByName(String name) { + public DictDTO findByName(String name, String filter) { Dict dict = dictMapper.selectCollByName(name); + if (!StringUtils.isEmpty(filter) && !ObjectUtils.isEmpty(dict) && !CollectionUtils.isEmpty(dict.getDictDetails())) { + // algorithmUsage:异常检测 + String[] split = filter.split(":"); + String s = split[1]; + List algorithmLimit = configAlgorithmLimit(s); + List collect = dict.getDictDetails().stream().filter(item -> CollectionUtils.isEmpty(algorithmLimit) || algorithmLimit.contains(item.getValue())).collect(Collectors.toList()); + dict.setDictDetails(collect); + } return dictConvert.toDto(dict); } + /** + * - 算法(异常检测、安全预警和健康状态)对应数据集的(车端和桩端) + * - 算法(其他)对应数据集的(实验、其他) + * @param name + * @return + */ + private List configAlgorithmLimit(String name){ + HashMap> hashMap = Maps.newHashMap(); + hashMap.put("异常检测", Lists.newArrayList("101", "102")); + hashMap.put("安全预警", Lists.newArrayList("101", "102")); + hashMap.put("健康状态", Lists.newArrayList("101", "102")); + hashMap.put("其他", Lists.newArrayList("105", "106")); + return hashMap.get(name); + } + /** * 新增字典 *