From b00ac813e5be3fedb10ca49e7e57a757295e19fe Mon Sep 17 00:00:00 2001
From: fuchengshen <men883234@gmail.com>
Date: 星期二, 28 六月 2022 11:11:54 +0800
Subject: [PATCH] 更新设备分组接口

---
 src/app/modules/base/service/sys/menu.ts                     |    9 +-
 src/app/modules/business/controller/admin/taskimmediately.ts |    4 
 src/app/modules/base/service/sys/user.ts                     |   25 +++--
 src/app/modules/business/service/deviceinfo.ts               |   30 -------
 src/app/modules/business/service/immediatetask.ts            |   30 +++++++
 package.json                                                 |    4 
 src/app/modules/business/service/devicegroup.ts              |  105 +++++++++++++++++++++++++
 bootstrap.js                                                 |    2 
 src/app/modules/base/README.md                               |    2 
 src/config/config.default.ts                                 |    2 
 10 files changed, 160 insertions(+), 53 deletions(-)

diff --git a/bootstrap.js b/bootstrap.js
index 64af97d..abb687a 100644
--- a/bootstrap.js
+++ b/bootstrap.js
@@ -1,6 +1,6 @@
 const WebFramework = require('@midwayjs/web').Framework;
 const web = new WebFramework().configure({
-  port: 9001,
+  port: 8001,
 });
 
 const { Bootstrap } = require('@midwayjs/bootstrap');
diff --git a/package.json b/package.json
index 0ca3c1e..1a05377 100644
--- a/package.json
+++ b/package.json
@@ -52,11 +52,11 @@
     "node": ">=12.0.0"
   },
   "scripts": {
-    "start": "egg-scripts start --daemon --title=cool-admin-midway --framework=@midwayjs/web --port=9001",
+    "start": "egg-scripts start --daemon --title=cool-admin-midway --framework=@midwayjs/web --port=8001",
     "stop": "egg-scripts stop --title=cool-admin-midway",
     "start_build": "npm run build && cross-env NODE_ENV=development midway-bin dev",
     "docker": "egg-scripts start --title=cool-admin-midway --framework=@midwayjs/web  --sticky",
-    "dev": "cross-env ets && cross-env NODE_ENV=local TS_NODE_TYPE_CHECK=false TS_NODE_TRANSPILE_ONLY=true midway-bin dev --ts --port=9001 --sticky",
+    "dev": "cross-env ets && cross-env NODE_ENV=local TS_NODE_TYPE_CHECK=false TS_NODE_TRANSPILE_ONLY=true midway-bin dev --ts --port=8001 --sticky",
     "test": "midway-bin test",
     "cov": "midway-bin cov",
     "lint": "mwts check",
diff --git a/src/app/modules/base/README.md b/src/app/modules/base/README.md
index bfe947b..5cf9e01 100644
--- a/src/app/modules/base/README.md
+++ b/src/app/modules/base/README.md
@@ -66,7 +66,7 @@
 ```bash
 $ npm i
 $ npm run dev
-$ open http://localhost:9001/
+$ open http://localhost:8001/
 ```
 
 娉細 `npm i`濡傛灉瀹夎澶辫触鍙互灏濊瘯浣跨敤[cnpm](https://developer.aliyun.com/mirror/NPM?from=tnpm)锛屾垨鑰呭垏鎹㈡偍鐨勯暅鍍忔簮
diff --git a/src/app/modules/base/service/sys/menu.ts b/src/app/modules/base/service/sys/menu.ts
index 48d8c1d..f0a3429 100644
--- a/src/app/modules/base/service/sys/menu.ts
+++ b/src/app/modules/base/service/sys/menu.ts
@@ -42,6 +42,7 @@
         }
       });
     }
+    console.log(menus, "menus")
     return menus;
   }
 
@@ -99,10 +100,10 @@
         FROM
             t_sys_menu a
         ${this.setSql(
-          !isAdmin,
-          'JOIN t_sys_role_menu b on a.id = b.menuId AND b.roleId in (?)',
-          [roleIds]
-        )}
+      !isAdmin,
+      'JOIN t_sys_role_menu b on a.id = b.menuId AND b.roleId in (?)',
+      [roleIds]
+    )}
         GROUP BY a.id
         ORDER BY
             orderNum ASC`);
diff --git a/src/app/modules/base/service/sys/user.ts b/src/app/modules/base/service/sys/user.ts
index 5798a9a..0173d12 100644
--- a/src/app/modules/base/service/sys/user.ts
+++ b/src/app/modules/base/service/sys/user.ts
@@ -34,6 +34,7 @@
    * @param query
    */
   async page(query) {
+    console.log(query, "page 鎵撳嵃 query")
     const { keyWord, status, departmentIds = [] } = query;
     const permsDepartmentArr = await this.baseSysPermsService.departmentIds(
       this.ctx.admin.userId
@@ -50,21 +51,21 @@
             LEFT JOIN t_sys_department d on a.departmentId = d.id
         WHERE 1 = 1
             ${this.setSql(
-              !_.isEmpty(departmentIds),
-              'and a.departmentId in (?)',
-              [departmentIds]
-            )}
+      !_.isEmpty(departmentIds),
+      'and a.departmentId in (?)',
+      [departmentIds]
+    )}
             ${this.setSql(status, 'and a.status = ?', [status])}
             ${this.setSql(keyWord, 'and (a.name LIKE ? or a.username LIKE ?)', [
-              `%${keyWord}%`,
-              `%${keyWord}%`,
-            ])}
+      `%${keyWord}%`,
+      `%${keyWord}%`,
+    ])}
             ${this.setSql(true, 'and a.username != ?', ['admin'])}
             ${this.setSql(
-              this.ctx.admin.username !== 'admin',
-              'and a.departmentId in (?)',
-              [!_.isEmpty(permsDepartmentArr) ? permsDepartmentArr : [null]]
-            )}
+      this.ctx.admin.username !== 'admin',
+      'and a.departmentId in (?)',
+      [!_.isEmpty(permsDepartmentArr) ? permsDepartmentArr : [null]]
+    )}
         GROUP BY a.id
         `;
     return this.sqlRenderPage(sql, query);
@@ -117,9 +118,11 @@
    * @param param
    */
   async add(param) {
+    console.log(param, "param")
     const exists = await this.baseSysUserEntity.findOne({
       username: param.username,
     });
+    console.log(exists, "exists")
     if (!_.isEmpty(exists)) {
       throw new CoolCommException('鐢ㄦ埛鍚嶅凡缁忓瓨鍦▇');
     }
diff --git a/src/app/modules/business/controller/admin/taskimmediately.ts b/src/app/modules/business/controller/admin/taskimmediately.ts
index 1e9f008..129f779 100644
--- a/src/app/modules/business/controller/admin/taskimmediately.ts
+++ b/src/app/modules/business/controller/admin/taskimmediately.ts
@@ -1,7 +1,7 @@
 import { ALL, Body, Get, Inject, Post, Provide, Query } from '@midwayjs/decorator';
 import { CoolController, BaseController } from '@cool-midway/core';
 import { Taskimmediately } from '../../entity/taskimmediately';
-// import { TaskimmediatelyService } from '../../service/taskimmediately';
+import { Immediatetask } from '../../service/immediatetask';
 import { DataController } from '../../../base/controller/dataController';
 /**
         * 鍗虫椂浠诲姟璁板綍
@@ -10,7 +10,7 @@
 @CoolController({
   api: ['add', 'delete', 'update', 'list', 'page', 'info'],
   entity: Taskimmediately,
-  //  聽service: TaskimmediatelyService,
+  service: Immediatetask,
 })
 export class TaskimmediatelyController extends DataController {
   //  聽@Inject()
diff --git a/src/app/modules/business/service/devicegroup.ts b/src/app/modules/business/service/devicegroup.ts
index e7ab972..f8a3a29 100644
--- a/src/app/modules/business/service/devicegroup.ts
+++ b/src/app/modules/business/service/devicegroup.ts
@@ -1,14 +1,113 @@
 import { Provide } from '@midwayjs/decorator';
-import { BaseService } from '@cool-midway/core';
+import { BaseService, CoolCommException } from '@cool-midway/core';
 import { InjectEntityModel } from '@midwayjs/orm';
 import { Repository } from 'typeorm';
 import { DataService } from '../../base/service/dataapi/dataapi';
 import { Devicegroup } from '../entity/devicegroup';
+import { Basedeviceinfo } from '../entity/basedeviceinfo';
+import { CoolSocket } from '@cool-midway/socket';
 /**
         * 璁惧鍒嗙粍
         */
 @Provide()
 export class DevicegroupService extends DataService {
+  @InjectEntityModel(Basedeviceinfo)
+  Basedeviceinfo: Repository<Basedeviceinfo>;
   @InjectEntityModel(Devicegroup)
-  devicegroup: Repository<Devicegroup>
-}
\ No newline at end of file
+  Devicegroup: Repository<Devicegroup>;
+
+
+
+
+
+  /**
+     * 鍒嗛〉鏌ヨ
+     * @param query
+     */
+  async page(query) {
+    const sql = `SELECT
+   * 
+  FROM
+      t_base_device_group a
+  WHERE
+      1=1
+      `
+    return this.sqlRenderPage(sql, query);
+  }
+
+
+
+  async add(param: any) {
+    let ids = param.logic_id
+    let deviceinfo = this.Basedeviceinfo
+    let data_len = deviceinfo.find()
+    console.log((await data_len).length, "data_len")
+    let id_str = ''
+    if (ids.length == (await data_len).length) {
+      throw new CoolCommException("鏄惁鏇存柊鍛ㄦ湡浠诲姟")
+      // console.log("鏄惁鏇存柊鍛ㄦ湡浠诲姟")
+      // return await super.add(param)
+    } else {
+      for (let x = 0; x < ids.length; x++) {
+        let change_message = await deviceinfo.findOne({ logic_id: ids[x] })
+        if (change_message.status == 1) {
+          id_str += `${ids[x]},`
+        }
+      }
+      if (id_str == '') {
+        if (id_str == '') {
+          for (let x = 0; x < ids.length; x++) {
+            let change_message = await deviceinfo.findOne({ logic_id: ids[x] })
+            change_message.status = 1
+            await this.nativeQuery(
+              'update t_base_deviceinfo set status = 1 where logic_id = ?',
+              [ids[x]]
+            );
+          }
+        }
+        param.logic_id = param.logic_id.toString();
+        return await super.add(param)
+      } else {
+        throw new CoolCommException(`${id_str}璁惧宸茬粡鍦ㄥ叾浠栧垎缁勪腑瀛樺湪锛岃閲嶆柊閫夋嫨`)
+      }
+    }
+  }
+
+
+
+  async update(param: any): Promise<void> {
+    console.log(param, "param")
+    param.logic_id = param.logic_id.toString();
+    await this.Devicegroup.update(param.id, param)
+  }
+
+
+
+
+
+
+  async delete(ids: number[]) {
+    console.log(ids, "ids")
+    for (let i = 0; i < ids.length; i++) {
+      let change_message = this.Devicegroup.findOne({ id: ids[i] })
+      let logic_id_s = (await change_message).logic_id.split(",")
+      console.log(logic_id_s, "logic_ids")
+      await this.nativeQuery(
+        `update t_base_deviceinfo set status = 0 where logic_id in (?)`,
+        [logic_id_s]
+      )
+      await this.nativeQuery(
+        `delete from t_base_device_group where id = ?`,
+        [ids[i]]
+      )
+    }
+
+
+
+  }
+
+
+
+}
+
+
diff --git a/src/app/modules/business/service/deviceinfo.ts b/src/app/modules/business/service/deviceinfo.ts
index 8695d6a..e2d70c0 100644
--- a/src/app/modules/business/service/deviceinfo.ts
+++ b/src/app/modules/business/service/deviceinfo.ts
@@ -15,37 +15,11 @@
   @InjectEntityModel(Devicegroup)
   Devicegroup: Repository<Devicegroup>;
 
-  /**
-   * 鎻忚堪
-   */
-  // async add(param: any) {
-  //   console.log(param, "dddddddd")
-  //   const { logic_id } = param
-  //   const devicegroup = this.Devicegroup
-  //   await this.Devicegroup.insert(param)
-  //   return await super.add(param)
-  // }
 
 
-  async delete(logic_id: any) {
-    console.log(this.ctx, "ddd")
-    await this.nativeQuery(
-      'DELETE t_base_deviceinfo,t_base_device_group FROM t_base_deviceinfo,t_base_device_group WHERE t_base_deviceinfo.logic_id = t_base_device_group.logic_id AND t_base_deviceinfo.id in (?)',
-      [logic_id]
-    );
-    await this.Basedeviceinfo.delete(logic_id)
-
-  }
 
 
-  async page(query) {
 
-    // const { keyWord, status, departmentIds = [] } = query;
-    // const permsDepartmentArr = await this.Basedeviceinfo.id(
-    //   this.ctx.admin.userId
-    // ); // 閮ㄩ棬鏉冮檺
-    const sql = `
-        SELECT a.*,b.configurator FROM t_base_deviceinfo a,t_base_device_group b WHERE 1 = 1`;
-    return this.sqlRenderPage(sql, query);
-  }
+
+
 }
diff --git a/src/app/modules/business/service/immediatetask.ts b/src/app/modules/business/service/immediatetask.ts
new file mode 100644
index 0000000..61d0a69
--- /dev/null
+++ b/src/app/modules/business/service/immediatetask.ts
@@ -0,0 +1,30 @@
+import { Provide } from '@midwayjs/decorator';
+import { BaseService, CoolCommException } from '@cool-midway/core';
+import { InjectEntityModel } from '@midwayjs/orm';
+import { Repository } from 'typeorm';
+import { DataService } from '../../base/service/dataapi/dataapi';
+import { Devicegroup } from '../entity/devicegroup';
+import { Basedeviceinfo } from '../entity/basedeviceinfo';
+import { CoolSocket } from '@cool-midway/socket';
+/**
+        * 璁惧鍒嗙粍
+        */
+@Provide()
+export class Immediatetask extends DataService {
+  @InjectEntityModel(Basedeviceinfo)
+  Basedeviceinfo: Repository<Basedeviceinfo>;
+  @InjectEntityModel(Devicegroup)
+  Devicegroup: Repository<Devicegroup>;
+
+
+
+  async add(param: any) {
+    console.log(param, "parm")
+
+    param.logic_ids = param.logic_ids.toString();
+    return await super.add(param)
+
+  }
+}
+
+
diff --git a/src/config/config.default.ts b/src/config/config.default.ts
index 96e3898..c9c4d15 100644
--- a/src/config/config.default.ts
+++ b/src/config/config.default.ts
@@ -74,7 +74,7 @@
     // 鏂囦欢涓婁紶
     file: {
       // 鏂囦欢璺緞鍓嶇紑 鏈湴涓婁紶妯″紡涓� 鏈夋晥
-      // domain: 'http://127.0.0.1:',
+      // domain: 'http://127.0.0.1:8001',
       domain: 'http://112.74.77.127:9100/hn',
     },
   } as CoolConfig;

--
Gitblit v1.9.1