From cf9c7befe0009e423fa96806d29df09180f50144 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期五, 12 八月 2022 11:09:15 +0800
Subject: [PATCH] 灯杆绑定充电桩

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java |   65 ++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 17 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java
index b29a1f3..61b53d8 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java
@@ -1,17 +1,24 @@
 package com.sandu.ximon.admin.security.authcode;
 
-import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.lang.Snowflake;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.sandu.common.security.annotation.AnonymousAccess;
+import com.sandu.ximon.admin.utils.RedisUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.imageio.ImageIO;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.util.Base64;
+import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -21,37 +28,61 @@
  */
 @RestController
 @AllArgsConstructor
-@RequestMapping("/authcode")
+@RequestMapping("/v1/authcode")
 public class VerifyCodeController {
 
+    private final Snowflake snowflake;
+//    private final RedisUtils redisUtils;
 
+
+    @AnonymousAccess
     @RequestMapping("/getImg")
     @ResponseBody
-    public void getVerifiCode(HttpServletRequest request, HttpServletResponse response) throws IOException {
+    public Map getVerifiCode(HttpServletRequest request, HttpServletResponse response) throws IOException {
         /*
              1.鐢熸垚楠岃瘉鐮�
              2.鎶婇獙璇佺爜涓婄殑鏂囨湰瀛樺湪session涓�
              3.鎶婇獙璇佺爜鍥剧墖鍙戦�佺粰瀹㈡埛绔�
              */
-        ImageVerificationCode ivc = new ImageVerificationCode();     //鐢ㄦ垜浠殑楠岃瘉鐮佺被锛岀敓鎴愰獙璇佺爜绫诲璞�
+        long key = snowflake.nextId();
+        ImageVerificationCode ivc = new ImageVerificationCode();     //鐢熸垚楠岃瘉鐮佺被瀵硅薄
         BufferedImage image = ivc.getImage();  //鑾峰彇楠岃瘉鐮�
-        request.getSession().setAttribute("text", ivc.getText()); //灏嗛獙璇佺爜鐨勬枃鏈瓨鍦╯ession涓�
-        ImageVerificationCode.output(image, response.getOutputStream());//灏嗛獙璇佺爜鍥剧墖鍝嶅簲缁欏鎴风
+        System.out.println(ivc.getText() + "----鍔犲瘑鍓嶇殑楠岃瘉鐮�");
+        RedisUtils.getBean().set(key + "", MD5Util.md5(ivc.getText().toUpperCase()), 60);
+        String img = getBufferedImageToBase64(image, "JPEG");
+
+        Map map = new HashMap();
+        map.put("img", img);
+        map.put("key", key);
+        return map;
+//        return image;
     }
 
-    @RequestMapping("Login_authentication")
+    @AnonymousAccess
+    @RequestMapping("/Login_authentication/{key}")
     @ResponseBody
-    public String Login_authentication(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+    public String Login_authentication(HttpServletRequest request, HttpServletResponse response, @PathVariable String key) throws IOException, ServletException {
         request.setCharacterEncoding("utf-8");
-//        String vcode = (String)map.get("session_vcode");
-//        if(vcode.isEmpty()||vcode==null){
-//            return "楠岃瘉鐮佷笉鑳戒负绌�";
-//        }
-        String session_vcode = (String) request.getSession().getAttribute("text");    //浠巗ession涓幏鍙栫湡姝g殑楠岃瘉鐮�
-        //姣旇緝杈撳叆鐨勯獙璇佺爜鍜岀湡姝g殑楠岃瘉鐮�
-//        if(StrUtil.equalsIgnoreCase(session_vcode, vcode)){
-//            return "true";
-//        }
+
+        String session_vcode = (String) request.getSession().getAttribute(key);    //浠巗ession涓幏鍙栫湡姝g殑楠岃瘉鐮�
         return session_vcode;
     }
+
+    /**
+     * BufferedImage杞垚 base64
+     *
+     * @param bufferedImage
+     * @param imageFormatName
+     * @return
+     * @throws IOException
+     */
+    public static String getBufferedImageToBase64(BufferedImage bufferedImage, String imageFormatName) throws IOException {
+        if (StringUtils.isBlank(imageFormatName)) {
+            imageFormatName = "JPEG";
+        }
+        ByteArrayOutputStream stream = new ByteArrayOutputStream();
+        ImageIO.write(bufferedImage, imageFormatName, stream);
+        String s = Base64.getEncoder().encodeToString(stream.toByteArray());
+        return s;
+    }
 }

--
Gitblit v1.9.3