From a92d63ba13a300e48d02d9d67905c105f24dde08 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 16 Jun 2022 10:39:20 +0800
Subject: [PATCH] 20220606
---
src/main/java/com/xcong/farmer/cms/modules/system/util/CaptchaUtil.java | 57 +++++++++++++++++++++++++++-
src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CommonServiceImpl.java | 4 +-
src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/WebSetServiceImpl.java | 2
3 files changed, 58 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CommonServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CommonServiceImpl.java
index 51f3f21..83459d1 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CommonServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CommonServiceImpl.java
@@ -69,10 +69,10 @@
if (valueOperations.get(codeToken).equals(codeValue)) {
redisTemplate.delete(codeToken);
} else {
- return Result.fail("请输入正确验证码");
+ return Result.fail("验证码不正确");
}
} else {
- return Result.fail("验证码已过期,请刷新当前页面");
+ return Result.fail("验证码已过期");
}
String username = adminLoginDto.getUsername();
String password = adminLoginDto.getPassword();
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/WebSetServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/WebSetServiceImpl.java
index bd64743..157da18 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/WebSetServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/WebSetServiceImpl.java
@@ -29,7 +29,7 @@
AdminSeeWebSetInfoVo adminSeeWebSetInfoVo = new AdminSeeWebSetInfoVo();
QueryWrapper<WebSetEntity> objectQueryWrapper = new QueryWrapper<>();
objectQueryWrapper.eq("company_id",companyId);
- List<WebSetEntity> webSetEntities = this.baseMapper.selectList(new QueryWrapper<>());
+ List<WebSetEntity> webSetEntities = this.baseMapper.selectList(objectQueryWrapper);
if(CollUtil.isNotEmpty(webSetEntities)){
WebSetEntity webSetEntity = webSetEntities.get(0);
adminSeeWebSetInfoVo.setId(webSetEntity.getId());
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/util/CaptchaUtil.java b/src/main/java/com/xcong/farmer/cms/modules/system/util/CaptchaUtil.java
index 3179140..b6b15e7 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/util/CaptchaUtil.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/util/CaptchaUtil.java
@@ -10,7 +10,8 @@
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.util.Map;
+import java.util.*;
+import java.awt.*;
@Component
public class CaptchaUtil {
@@ -24,7 +25,7 @@
//生成文字验证码
String text = producer.createText();
//生成文字对应的图片验证码
- BufferedImage image = producer.createImage(text);
+ BufferedImage image = creatImage(text);
//将图片写出
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", outputStream);
@@ -35,4 +36,56 @@
token.put("img", encoder.encode(outputStream.toByteArray()));
return Result.ok(token);
}
+
+ private static final long serialVersionUID = 1L;
+
+ //给定范围获得随机颜色
+ public Color getRandColor(int fc, int bc) {
+ Random random = new Random();
+ if (fc > 255) {
+ fc = 255;
+ }
+ if (bc > 255) {
+ bc = 255;
+ }
+ int r = fc + random.nextInt(bc - fc);
+ int g = fc + random.nextInt(bc - fc);
+ int b = fc + random.nextInt(bc - fc);
+ return new Color(r, g, b);
+ }
+
+ public BufferedImage creatImage(String code) {
+ int width = 160, height = 50;
+ //生成随机类
+ Random random = new Random();
+ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+ //获取图形上下文
+ Graphics g = image.getGraphics();
+ // 设定背景色
+ g.setColor(getRandColor(200, 250));
+ g.fillRect(0, 0, width, height);
+ //设定字体 第二个参数为字体为加粗
+ g.setFont(new Font("Times New Roman", Font.BOLD, 45));
+ // 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
+ g.setColor(getRandColor(160, 200));
+ for (int i = 0; i < 155; i++) {
+ int x = random.nextInt(width);
+ int y = random.nextInt(height);
+ int xl = random.nextInt(12);
+ int yl = random.nextInt(12);
+ g.drawLine(x, y, x + xl, y + yl);
+ }
+ // 取随机产生的认证码(4位数字)
+ for (int i = 0; i < code.length(); i++) {
+ String rand = code.substring(i, i + 1);
+ // 将认证码显示到图象中
+ g.setColor(new Color(20 + random.nextInt(110), 20 + random.nextInt(110), 20 + random.nextInt(110)));
+ //调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
+ g.drawString(rand, 30 * i + 18, 35);
+ }
+ // 图象生效
+ g.dispose();
+ return image;
+ }
+
}
--
Gitblit v1.9.1