From 259a60f240fdfff356a236d380d8d682949fc571 Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期一, 26 十月 2026 09:24:25 +0800
Subject: [PATCH] feat(环保门禁): 巡检设备数据回传开放接口(无人机/机器人/AI摄像头)、无人值守地磅模块(表+后端+日报)、车辆采集照片字段、修复车辆修改接口缺@RequestBody
---
src/main/java/com/ruoyi/tide/controller/TideController.java | 98 ++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 89 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/ruoyi/tide/controller/TideController.java b/src/main/java/com/ruoyi/tide/controller/TideController.java
index c4f76a6..0128b59 100644
--- a/src/main/java/com/ruoyi/tide/controller/TideController.java
+++ b/src/main/java/com/ruoyi/tide/controller/TideController.java
@@ -19,6 +19,8 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -50,18 +52,94 @@
@ApiOperation(value = "鐧诲綍")
@PostMapping("/tideLogin")
public AjaxResult login(@RequestBody TidePojo tidePojo) {
- String token = TideUtils.getToken(tidePojo.getCode());
- JSONObject userInfo = TideUtils.getUserInfo(token);
- JSONObject tenant = JSONObject.parseObject(userInfo.get("tenant").toString());
- AjaxResult ajax = AjaxResult.success();
- // 鐢熸垚浠ょ墝
- String generateToken = loginService.login(tenant.get("tenantAccount").toString(), tenant.get("tenantPassword").toString(), null,
- IdWorker.get32UUID());
- ajax.put(Constants.TOKEN, generateToken);
- return ajax;
+ if (tidePojo == null || ObjectUtils.isEmpty(tidePojo.getCode())) {
+ return AjaxResult.error("缂哄皯娴疆鎺堟潈鐮�(code)锛岃浠庢氮娼棬鎴烽噸鏂拌繘鍏ョ郴缁�");
+ }
+ // 娴疆闂ㄦ埛涓嬪彂鐨勬巿鏉冪爜鍙兘甯﹀浐瀹氬悗缂�锛屽仛涓�娆″吋瀹瑰鐞�
+ String code = String.valueOf(tidePojo.getCode()).trim();
+ if (code.endsWith("suanwangcode")) {
+ code = code.substring(0, code.length() - "suanwangcode".length());
+ }
+ String token;
+ try {
+ token = TideUtils.getToken(code);
+ } catch (Exception e) {
+ log.error("[娴疆SSO] 鎹㈠彇token寮傚父, code={}", code, e);
+ return AjaxResult.error("娴疆鎺堟潈澶辫触锛氭崲鍙栦护鐗屽紓甯革紝璇蜂粠闂ㄦ埛閲嶆柊杩涘叆绯荤粺");
+ }
+ if (ObjectUtils.isEmpty(token)) {
+ return AjaxResult.error("娴疆鎺堟潈澶辫触锛氭巿鏉冪爜鏍¢獙鏈�氳繃锛堝彲鑳藉凡杩囨湡鎴栧凡琚娇鐢級锛岃浠庨棬鎴烽噸鏂拌繘鍏ョ郴缁�");
+ }
+ JSONObject userInfo;
+ try {
+ userInfo = TideUtils.getUserInfo(token);
+ } catch (Exception e) {
+ log.error("[娴疆SSO] 鑾峰彇鐢ㄦ埛淇℃伅寮傚父, token={}", token, e);
+ return AjaxResult.error("娴疆鎺堟潈澶辫触锛氳幏鍙栫敤鎴蜂俊鎭紓甯革紝璇疯仈绯荤鐞嗗憳");
+ }
+ log.info("[娴疆SSO] 鐢ㄦ埛淇℃伅: {}", userInfo);
+ if (userInfo == null) {
+ return AjaxResult.error("娴疆鏈繑鍥炵敤鎴蜂俊鎭紝璇疯仈绯诲钩鍙扮鐞嗗憳");
+ }
+ // 鍏煎娴疆涓嶅悓鐗堟湰/涓嶅悓骞冲彴鐨勭鎴峰瓧娈靛懡鍚�
+ JSONObject tenant = null;
+ for (String key : new String[]{"tenant", "tenantInfo", "enterprise", "company", "org"}) {
+ Object v = userInfo.get(key);
+ if (v instanceof JSONObject) {
+ tenant = (JSONObject) v;
+ break;
+ }
+ if (v instanceof String && ((String) v).trim().startsWith("{")) {
+ try {
+ tenant = JSONObject.parseObject((String) v);
+ break;
+ } catch (Exception ignored) {
+ }
+ }
+ }
+ String account = tenant == null ? null : firstText(tenant, "tenantAccount", "account", "userName", "loginName", "mobile", "phone", "name");
+ String password = tenant == null ? null : firstText(tenant, "tenantPassword", "password", "pwd", "passWord");
+ if (ObjectUtils.isEmpty(account)) {
+ account = firstText(userInfo, "tenantAccount", "account", "userName", "loginName", "mobile", "phone");
+ }
+ if (ObjectUtils.isEmpty(password)) {
+ password = firstText(userInfo, "tenantPassword", "password", "pwd");
+ }
+ if (ObjectUtils.isEmpty(account) || ObjectUtils.isEmpty(password)) {
+ log.error("[娴疆SSO] 鏈彇鍒扮鎴疯处鍙�/瀵嗙爜, userInfo={}", userInfo);
+ return AjaxResult.error("娴疆鏈繑鍥炰紒涓氱鎴疯处鍙蜂俊鎭紝璇疯仈绯诲钩鍙扮鐞嗗憳妫�鏌ヨ璐﹀彿鐨勪紒涓氱粦瀹�");
+ }
+ try {
+ String generateToken = loginService.login(account, password, null, IdWorker.get32UUID());
+ AjaxResult ajax = AjaxResult.success();
+ ajax.put(Constants.TOKEN, generateToken);
+ return ajax;
+ } catch (Exception e) {
+ log.error("[娴疆SSO] 绉熸埛璐﹀彿鐧诲綍澶辫触, account={}", account, e);
+ return AjaxResult.error("娴疆鍗曠偣鐧诲綍澶辫触锛氱鎴疯处鍙穂" + account + "]鍦ㄧ郴缁熶腑鐧诲綍澶辫触锛�" + e.getMessage() + "锛�");
+ }
+ }
+
+ /** 渚濇灏濊瘯澶氫釜閿紝杩斿洖绗竴涓潪绌哄瓧绗︿覆鍊� */
+ private String firstText(JSONObject obj, String... keys) {
+ if (obj == null || keys == null) {
+ return null;
+ }
+ for (String key : keys) {
+ Object v = obj.get(key);
+ if (v == null) {
+ continue;
+ }
+ String s = String.valueOf(v).trim();
+ if (!s.isEmpty() && !"null".equalsIgnoreCase(s)) {
+ return s;
+ }
+ }
+ return null;
}
@PostMapping("/applicationOrdering")
+ @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
public JSONObject order (@RequestBody TidePojo tidePojo) {
SysUser user = userService.selectUserByUserName(tidePojo.getPltAccountLogin());
String defaultPwd = "I73Kj+Mn$+SI";//榛樿寮�閫氬瘑鐮佸浐瀹氬啓姝�
@@ -81,6 +159,8 @@
//鏌ヨ鍏徃
SysDept newSysDept = deptService.selectDeptByDeptName(dept.getDeptName());
dept.setDeptId(ObjectUtils.isEmpty(newSysDept)?100L:newSysDept.getDeptId());
+ dept.setTenantId(dept.getDeptId());
+ deptService.updateDept(dept);
user = new SysUser();
String password = SecurityUtils.encryptPassword(defaultPwd);
user.setPassword(password);
--
Gitblit v1.9.3