diogenes 2 年之前
父节点
当前提交
9b6d773db6
共有 3 个文件被更改,包括 65 次插入15 次删除
  1. 2 1
      src/controllers/Telefonia.Controller.js
  2. 37 0
      src/models/Devices.model.js
  3. 26 14
      src/models/Ramais.model.js

+ 2 - 1
src/controllers/Telefonia.Controller.js

@@ -20,7 +20,7 @@ module.exports = {
       .withGraphFetched("plano_franquia");
 
     // Use .orWhere para adicionar as condições "like" nas colunas id, circuito e numero da tabela did
-    query.joinRelated("did").whereIn("ramais.id", busca);
+    query.whereIn("ramais.id", busca);
 
     // Execute a consulta e envie a resposta quando terminar
     try {
@@ -37,6 +37,7 @@ module.exports = {
     // Use .query() para começar uma nova consulta
     const query = Ramais.query()
       .withGraphFetched("did")
+      .withGraphFetched("devices")
       .withGraphFetched("ramais_franquias");
 
     // Use .orWhere para adicionar as condições "like" nas colunas id, circuito e numero da tabela did

+ 37 - 0
src/models/Devices.model.js

@@ -0,0 +1,37 @@
+const {knex} = require('../config/db.config');
+
+
+const { Model } = require('objection');
+Model.knex(knex);
+
+
+const unique = require("objection-unique")({
+  fields: ["id"],
+  identifiers: ["id"],
+});
+
+class Devices extends unique(Model) {
+  static get tableName() {
+    return "sip_devices";
+  }
+
+  static get idColumn() {
+    return "id";
+  }
+
+  /*static get relationMappings() {
+    const { Ramais } = require("./Ramais.model");
+    return {
+      ramal: {
+        relation: Model.HasManyRelation,
+        modelClass: Ramais,
+        join: {
+          from: "franquias.id_planos",
+          to: "ramais.id_planos",
+        },
+      },
+    };
+  }*/
+}
+
+module.exports.Devices = Devices;

+ 26 - 14
src/models/Ramais.model.js

@@ -1,6 +1,6 @@
 const { knex } = require("../config/db.config");
 
-const { Model } = require("objection");
+const { Model, raw } = require("objection");
 Model.knex(knex);
 
 const unique = require("objection-unique")({
@@ -17,6 +17,7 @@ class Ramais extends unique(Model) {
     return "id";
   }
   static get relationMappings() {
+    const { Devices } = require("./Devices.model");
     const { RamalFranquias } = require("./RamalFranquias.model");
     const { Franquia } = require("./Franquia.model");
     const { Did } = require("./Did.model");
@@ -27,7 +28,18 @@ class Ramais extends unique(Model) {
         join: {
           from: "did.id_ramal",
           to: "ramais.id",
-        }
+        },
+      },
+      devices: {
+        relation: Model.HasOneRelation,
+        modelClass: Devices,
+        join: {
+          from: "sip_devices.id",
+          to: "ramais.id_sip",
+        },
+        filter: (builder) => {
+          builder.whereRaw("CAST(sip_devices.name AS INTEGER) = ramais.id_sip");
+        },
       },
       plano_franquia: {
         relation: Model.HasManyRelation,
@@ -36,7 +48,6 @@ class Ramais extends unique(Model) {
           from: "franquias.id_planos",
           to: "ramais.id_planos",
         },
-        
       },
       ramais_franquias: {
         relation: Model.HasManyRelation,
@@ -53,17 +64,18 @@ class Ramais extends unique(Model) {
           },
         },
         modify: (query) => {
-          query.join("franquias", "ramais_franquias.id_franquias", "franquias.id")
-          .select(
-            "franquias.nome as nome_franquia",
-            "ramais_franquias.franquia_segundos as segundos_disponiveis",
-            "franquias.franquia_minutos as total_minutos_franquia",
-            this.raw("IF(franquias.LC = 1, 'LC', '') as LC"),
-            this.raw("IF(franquias.LDN = 1, 'LDN', '') as LDN"),
-            this.raw("IF(franquias.VC1 = 1, 'VC1', '') as VC1"),
-            this.raw("IF(franquias.VC2 = 1, 'VC2', '') as VC2"),
-            this.raw("IF(franquias.VC3 = 1, 'VC3', '') as VC3")
-          );
+          query
+            .join("franquias", "ramais_franquias.id_franquias", "franquias.id")
+            .select(
+              "franquias.nome as nome_franquia",
+              "ramais_franquias.franquia_segundos as segundos_disponiveis",
+              "franquias.franquia_minutos as total_minutos_franquia",
+              this.raw("IF(franquias.LC = 1, 'LC', '') as LC"),
+              this.raw("IF(franquias.LDN = 1, 'LDN', '') as LDN"),
+              this.raw("IF(franquias.VC1 = 1, 'VC1', '') as VC1"),
+              this.raw("IF(franquias.VC2 = 1, 'VC2', '') as VC2"),
+              this.raw("IF(franquias.VC3 = 1, 'VC3', '') as VC3")
+            );
         },
       },
     };