From 1266e430d1ef58c167ccc58a4197d703d6bdd251 Mon Sep 17 00:00:00 2001 From: qfrjava <13402782+qfrjava@user.noreply.gitee.com> Date: 星期五, 14 三月 2025 17:32:32 +0800 Subject: [PATCH] feat(SMTAIServerControl): 添加微信 openid 是否存在的判断 --- JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIServerControl.java | 61 ++++++++++++++++++++++++++---- 1 files changed, 52 insertions(+), 9 deletions(-) diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIServerControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIServerControl.java index 37703c4..0a16d4f 100644 --- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIServerControl.java +++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIServerControl.java @@ -1,12 +1,9 @@ package com.smtaiserver.smtaiserver.control; -import java.util.Date; -import java.util.HashSet; -import java.util.List; +import java.util.*; import java.util.Map.Entry; -import java.util.Random; -import java.util.Set; +import com.smtaiserver.smtaiserver.weixinLogin.WeChatUtils; import org.apache.commons.text.similarity.JaccardSimilarity; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -25,6 +22,7 @@ public class SMTAIServerControl { + private static Logger _logger = LogManager.getLogger(SMTAIServerControl.class); public ModelAndView swaggerConfigurationUI(SMTRequest tranReq) throws Exception { @@ -213,6 +211,8 @@ jsonWr.addKeyValue("sex", recUser.getString("user_sex")); jsonWr.addKeyValue("email", recUser.getString("user_email")); jsonWr.addKeyValue("note", recUser.getString("note")); + boolean b1 = recUser.getString("weixin_openid") != null; + jsonWr.addKeyValue("weixin_openid",b1); jsonWr.addKeyValue("web_login", "Y".equals(recUser.getString("web_login"))); return tranReq.returnJson(jsonWr); @@ -277,10 +277,15 @@ public ModelAndView login(SMTAIServerRequest tranReq) throws Exception { - String username = tranReq.convParamToString("user", true); - String password = tranReq.convParamToString("pass", true); + String username = tranReq.convParamToString("user", false); + String password = tranReq.convParamToString("pass", false); String client = tranReq.convParamToString("client", false); - + String weixinCode = tranReq.convParamToString("weixin_code", false); + + if (weixinCode != null){ + username=""; + password=""; + } if(SMTStatic.isNullOrEmpty(client)) client = "Web绔�"; @@ -293,7 +298,29 @@ SMTDatabase db = SMTAIServerApp.getApp().allocDatabase(); try { - DBRecords recs = db.querySQL("SELECT * FROM sys_user_info WHERE user_name=? AND user_state_code='Y'", new Object[] { + // 寰俊鎵爜鐧诲綍 + if (weixinCode != null) { + Map<String, String> accessTokenMap = WeChatUtils.getAccessToken(weixinCode); + String openid = accessTokenMap.get("openid"); + + if (openid == null || openid.isEmpty()) { + return tranReq.returnJsonState(false, "鐧诲綍澶辫触, 鏃犳晥鐨勫井淇′簩缁寸爜", null); + } + + DBRecords userByOpenid = db.querySQL("SELECT * FROM sys_user_info WHERE weixin_openid = ?", new Object[]{openid}); + + if (userByOpenid.getRowCount() == 0) { + return tranReq.returnJsonState(false, "鐧诲綍澶辫触, 璇风粦瀹氳处鍙�", null); + } + + // 鑾峰彇鐢ㄦ埛鍚嶅拰瀵嗙爜 + username = userByOpenid.getRecord(0).getString("user_name"); + password = userByOpenid.getRecord(0).getString("user_pass"); + + } + + + DBRecords recs = db.querySQL("SELECT * FROM sys_user_info WHERE user_name=? AND user_state_code='Y'", new Object[] { username }); if(recs.getRowCount() == 0) @@ -959,4 +986,20 @@ } } + + public ModelAndView userBindingWeChatAccount(SMTAIServerRequest tranReq) throws Exception { + String weixinCode = tranReq.convParamToString("weixin_code", true); + String userName = tranReq.convParamToString("user_name", true); + Map<String, String> accessTokenMap = WeChatUtils.getAccessToken(weixinCode); + String openid = accessTokenMap.get("openid"); + + if (openid == null || openid.isEmpty()) { + return tranReq.returnJsonState(false, "缁戝畾澶辫触, 鏃犳晥鐨勫井淇′簩缁寸爜", null); + } + try (SMTDatabase db = SMTAIServerApp.getApp().allocDatabase()) { + int executeSQL = db.executeSQL("UPDATE sys_user_info set weixin_openid =? where user_name=?", new Object[]{openid, userName}); + } + return tranReq.returnJsonState(true, "缁戝畾鎴愬姛", null); + } + } -- Gitblit v1.9.3