From 2b662657c5bc5bc45b69f475c7b2edcf8fc92f0c Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期二, 28 七月 2026 10:58:49 +0800
Subject: [PATCH] Merge branch 'master' of http://124.222.109.197:10000/r/jingshen/cool-admin-midway

---
 src/modules/basicdata/service/iot.ts |   95 ++++++++++++++++++++++++-----------------------
 1 files changed, 48 insertions(+), 47 deletions(-)

diff --git a/src/modules/basicdata/service/iot.ts b/src/modules/basicdata/service/iot.ts
index a39f305..a267df3 100644
--- a/src/modules/basicdata/service/iot.ts
+++ b/src/modules/basicdata/service/iot.ts
@@ -5,7 +5,7 @@
 import { BaseSysDepartmentEntity } from '../../base/entity/sys/department';
 import { BasicdataIotEntity } from '../entity/iot';
 import { BaseSysPermsService } from '../../base/service/sys/perms';
-import { BaseSysParamService } from '../../base/service/sys/param';
+import { BaseSysParamEntity } from '../../base/entity/sys/param';
 import * as _ from 'lodash';
 
 /**
@@ -19,8 +19,8 @@
   @InjectEntityModel(BaseSysDepartmentEntity)
   baseSysDepartmentEntity: Repository<BaseSysDepartmentEntity>;
 
-  @Inject()
-  baseSysParamService: BaseSysParamService;
+  @InjectEntityModel(BaseSysParamEntity)
+  baseSysParamEntity: Repository<BaseSysParamEntity>;
 
   @Inject()
   baseSysPermsService: BaseSysPermsService;
@@ -28,45 +28,52 @@
   @Inject()
   ctx;
 
-
   /**
-   * 鑾峰緱閮ㄩ棬鑿滃崟
+   * 鑾峰緱閮ㄩ棬+绔欑偣鍚堝苟鏍戯紙閬靛惊 Cool 鏁版嵁鏉冮檺瑙勮寖锛�
    */
-  async list() {
-    const permsDepartmentArr = await this.baseSysPermsService.departmentIds(
-      this.ctx.admin.userId
-    );
-    // 杩囨护閮ㄩ棬鏉冮檺
+  async sitelist() {
+    const { userId, username } = this.ctx.admin;
+
+    // 瓒呯涓嶅彈闄�
+    const isAdmin = username === 'admin';
+    let deptIds: any[] = [];
+
+    if (!isAdmin) {
+      deptIds = await this.baseSysPermsService.departmentIds(userId);
+      // 娌¢厤閮ㄩ棬鏉冮檺鏃剁粰涓繀瀹氫负绌虹殑鍊硷紝闃叉鏌ュ嚭鍏ㄥ簱
+      if (_.isEmpty(deptIds)) deptIds = [null];
+    }
+
     const sql = `
-        (
-            SELECT 
-                a.id AS a_id,
-                a.tenantId AS a_tenantId,
-                a.name AS a_name,
-                a.parentId AS a_parentId,
-                a.orderNum AS a_orderNum
-            FROM base_sys_department a 
-            WHERE 1=1 
-                ${this.setSql(
-                  this.ctx.admin.username !== 'admin',
-                  `and (a.departmentId in (?) `,
-                  [!_.isEmpty(permsDepartmentArr) ? permsDepartmentArr : [null]]
-                )}             
-        )
-        UNION ALL
-        (
-            SELECT 
-                b.businessId AS a_id,
-                a.tenantId AS a_tenantId,
-                b.businessName AS a_name,
-                b.departmentId AS a_parentId,
-                a.orderNum AS a_orderNum
-            FROM t_basicdata_site b
-            LEFT JOIN base_sys_department a ON b.departmentId = a.id
-        )
-        ORDER BY a_orderNum ASC`;
-    const result = await this.nativeQuery(sql);
-    return result;    
+    (
+      SELECT
+        a.id           AS a_id,
+        a.tenantId     AS a_tenantId,
+        a.name         AS a_name,
+        a.parentId     AS a_parentId,
+        a.orderNum     AS a_orderNum
+      FROM base_sys_department a
+      ${isAdmin ? 'WHERE 1=1' : 'WHERE a.id IN (?)'}
+    )
+    UNION ALL
+    (
+      SELECT
+        b.businessId   AS a_id,
+        a.tenantId     AS a_tenantId,
+        b.businessName AS a_name,
+        b.departmentId AS a_parentId,
+        COALESCE(a.orderNum, 999) AS a_orderNum
+      FROM t_basicdata_site b
+      LEFT JOIN base_sys_department a ON b.departmentId = a.id
+      ${!isAdmin ? 'WHERE b.departmentId IN (?)' : ''}
+    )
+    ORDER BY a_orderNum ASC
+  `;
+
+    // nativeQuery 绗簩涓弬鏁板繀椤绘樉寮忎紶鍙傛暟缁�
+    const params = isAdmin ? [] : [deptIds, deptIds];
+
+    return this.nativeQuery(sql, params);
   }
 
   /**
@@ -74,7 +81,7 @@
    */
   async getYsDevices(businessId: string) {
     // 淇鍘熷厛key銆乻ecret鍙栧�奸鍊抌ug + 澧炲姞await
-    const ys7_appKey: string = await this.baseSysParamService.dataByKey('ys7.appKey');
+    // const appKey_result = await this.baseSysParamEntity.findOneBy({ keyName: 'ys7.appKey' });
     // departmentId 鏄暟瀛楋紝灏濊瘯杞崲锛涜浆鎹㈠け璐ヨ祴鍊� null
     const deptId = /^\d+$/.test(businessId) ? Number(businessId) : null;
     const qb = this.basicdataIotEntity.createQueryBuilder('a')
@@ -104,13 +111,7 @@
       qb.andWhere('a.businessId = :businessId', { businessId });
     }
     const result = await qb.orderBy('a.iotName', 'ASC').getMany();
-    const deviceList = result.map(item => {
-      return {
-        ...item,
-        iotKey: ys7_appKey
-      };
-    });
-    return deviceList;
+    return result;
   }
 
 

--
Gitblit v1.9.1