|
@@ -3,6 +3,7 @@ package Company
|
|
import (
|
|
import (
|
|
"Cold_Api/conf"
|
|
"Cold_Api/conf"
|
|
"Cold_Api/controllers/lib"
|
|
"Cold_Api/controllers/lib"
|
|
|
|
+ "Cold_Api/models/Warning"
|
|
"encoding/json"
|
|
"encoding/json"
|
|
"fmt"
|
|
"fmt"
|
|
"github.com/astaxie/beego/cache"
|
|
"github.com/astaxie/beego/cache"
|
|
@@ -48,6 +49,10 @@ type CompanyNotice_R struct {
|
|
T_Notice_bind string // 绑定T_sn,Tid|
|
|
T_Notice_bind string // 绑定T_sn,Tid|
|
|
T_Notice_mechanism string // 报警机制
|
|
T_Notice_mechanism string // 报警机制
|
|
}
|
|
}
|
|
|
|
+type WarnTypes struct {
|
|
|
|
+ Id int
|
|
|
|
+ T_name string
|
|
|
|
+}
|
|
|
|
|
|
func (t *CompanyNotice) TableName() string {
|
|
func (t *CompanyNotice) TableName() string {
|
|
return "company_notice" // 数据库名称 // ************** 替换 DesignClass **************
|
|
return "company_notice" // 数据库名称 // ************** 替换 DesignClass **************
|
|
@@ -270,8 +275,27 @@ func Read_CompanyNotice_All(T_pid int, T_name string) (r []CompanyNotice_R) {
|
|
logs.Error(lib.FuncName(), err)
|
|
logs.Error(lib.FuncName(), err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ m := make(map[string]int, 0)
|
|
for _, v := range map_r {
|
|
for _, v := range map_r {
|
|
|
|
+ fmt.Println("报警策略======>", v.T_Notice_mechanism)
|
|
|
|
+ split := strings.Split(v.T_Notice_mechanism, "|")
|
|
|
|
+ if len(split) > 0 {
|
|
|
|
+ for _, v := range split {
|
|
|
|
+ i := strings.Split(v, ",")
|
|
|
|
+ if len(i) > 0 {
|
|
|
|
+ fmt.Println(i[0])
|
|
|
|
+ if len(i[0]) > 0 {
|
|
|
|
+ var warnType Warning.WarningType
|
|
|
|
+ table := o.QueryTable("warning_type")
|
|
|
|
+ err := table.Filter("t_name__exact", i[0]).One(&warnType)
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println("")
|
|
|
|
+ }
|
|
|
|
+ m[i[0]] = warnType.Id
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
r = append(r, CompanyNoticeToCompanyNotice_R(v))
|
|
r = append(r, CompanyNoticeToCompanyNotice_R(v))
|
|
}
|
|
}
|
|
|
|
|
|
@@ -477,3 +501,54 @@ func Replice_T_Notice_Bind(T_uuid, T_Notice_Bind string, new string) string {
|
|
}
|
|
}
|
|
return T_Notice_Bind
|
|
return T_Notice_Bind
|
|
}
|
|
}
|
|
|
|
+func Read_CompanyNoticeByUser(T_pid int, T_name string) []WarnTypes {
|
|
|
|
+
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ // 也可以直接使用 Model 结构体作为表名
|
|
|
|
+ var map_r []CompanyNotice
|
|
|
|
+ qs := o.QueryTable(new(CompanyNotice))
|
|
|
|
+
|
|
|
|
+ cond := orm.NewCondition()
|
|
|
|
+
|
|
|
|
+ cond1 := cond.And("T_State", 1).And("T_pid", T_pid)
|
|
|
|
+
|
|
|
|
+ if len(T_name) > 0 {
|
|
|
|
+ cond1 = cond1.And("T_name", T_name)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ _, err := qs.SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&map_r)
|
|
|
|
+ if err != nil {
|
|
|
|
+ logs.Error(lib.FuncName(), err)
|
|
|
|
+ return nil
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var warnTy []WarnTypes
|
|
|
|
+ m := make(map[string]int, 0)
|
|
|
|
+ for _, v := range map_r {
|
|
|
|
+ split := strings.Split(v.T_Notice_mechanism, "|")
|
|
|
|
+ if len(split) > 0 {
|
|
|
|
+ for _, v := range split {
|
|
|
|
+ i := strings.Split(v, ",")
|
|
|
|
+ if len(i) > 0 {
|
|
|
|
+ fmt.Println(i[0])
|
|
|
|
+ if len(i[0]) > 0 && strings.EqualFold(i[1], "1") {
|
|
|
|
+ var warnType Warning.WarningType
|
|
|
|
+ table := o.QueryTable("warning_type")
|
|
|
|
+ err := table.Filter("t_name__exact", i[0]).One(&warnType)
|
|
|
|
+ if err != nil {
|
|
|
|
+ logs.Error(lib.FuncName(), err)
|
|
|
|
+ }
|
|
|
|
+ m[i[0]] = warnType.Id
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for k, v := range m {
|
|
|
|
+ var warn WarnTypes
|
|
|
|
+ warn.T_name = k
|
|
|
|
+ warn.Id = v
|
|
|
|
+ warnTy = append(warnTy, warn)
|
|
|
|
+ }
|
|
|
|
+ return warnTy
|
|
|
|
+}
|