From b5b16a26de0d84d7b5fb69b584377bdc3582e3ab Mon Sep 17 00:00:00 2001 From: wlzboy <66905212@qq.com> Date: 星期日, 21 九月 2025 20:43:08 +0800 Subject: [PATCH] feat: 更新评价功能 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysClientAppServiceImpl.java | 63 +++++++++++++++++++++++++++++++ 1 files changed, 63 insertions(+), 0 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysClientAppServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysClientAppServiceImpl.java index f7e1844..a3db696 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysClientAppServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysClientAppServiceImpl.java @@ -8,6 +8,8 @@ import com.ruoyi.system.service.ISysClientAppService; import com.ruoyi.common.utils.SecurityUtils; +import static com.ruoyi.common.utils.SecurityUtils.md5; + /** * 瀹㈡埛搴旂敤閰嶇疆 鏈嶅姟灞傚疄鐜� */ @@ -25,6 +27,18 @@ @Override public SysClientApp selectSysClientAppByAppId(Long appId) { return sysClientAppMapper.selectSysClientAppByAppId(appId); + } + + /** + * 閫氳繃搴旂敤鏍囪瘑鏌ヨ瀹㈡埛搴旂敤閰嶇疆 + * + * @param appKey 搴旂敤鏍囪瘑 + * @return 瀹㈡埛搴旂敤閰嶇疆 + */ + @Override + public SysClientApp selectSysClientAppByAppKey(String appKey) + { + return sysClientAppMapper.selectSysClientAppByAppKey(appKey); } /** @@ -118,4 +132,53 @@ public int deleteSysClientAppByAppId(Long appId) { return sysClientAppMapper.deleteSysClientAppByAppId(appId); } + + @Override + public boolean validateSign(String appId, String sign, String timestamp) { + // 鏍规嵁appId鑾峰彇搴旂敤淇℃伅 + SysClientApp clientApp = sysClientAppMapper.selectSysClientAppByAppKey(appId); + if (clientApp == null) { + System.out.println("鏈壘鍒癮ppId涓� " + appId + " 鐨勫簲鐢ㄩ厤缃�"); + return false; + } + + System.out.println("鎵惧埌搴旂敤閰嶇疆: " + clientApp); + + // 楠岃瘉搴旂敤鏄惁鏈夋晥 + if (!"0".equals(clientApp.getStatus())) { + System.out.println("搴旂敤鐘舵�佹棤鏁�: " + clientApp.getStatus()); + return false; + } + + // 楠岃瘉鏈夋晥鏈� + if (clientApp.getValidStartTime() != null && clientApp.getValidEndTime() != null) { + long currentTime = System.currentTimeMillis(); + if (currentTime < clientApp.getValidStartTime().getTime() + || currentTime > clientApp.getValidEndTime().getTime()) { + System.out.println("搴旂敤宸茶繃鏈�"); + return false; + } + } + + // 鐢熸垚绛惧悕 + String serverSign = generateSign(appId, clientApp.getSecurityKey(), timestamp); + System.out.println("鏈嶅姟鍣ㄧ敓鎴愮殑绛惧悕: " + serverSign); + System.out.println("瀹㈡埛绔彁渚涚殑绛惧悕: " + sign); + System.out.println("绛惧悕鏄惁鍖归厤: " + sign.equals(serverSign)); + + // 姣旇緝绛惧悕 + return sign.equals(serverSign); + } + + /** + * 鐢熸垚绛惧悕 + * 绛惧悕瑙勫垯锛歁D5(appId + timestamp + securityKey) + */ + private String generateSign(String appId, String securityKey, String timestamp) { + String signStr = appId + timestamp + securityKey; + System.out.println("绛惧悕鍘熷瀛楃涓�: " + signStr); + String result = md5(signStr); + System.out.println("MD5缁撴灉: " + result); + return result; + } } \ No newline at end of file -- Gitblit v1.9.1