Browse Source

2023-10-23

zoie 1 year ago
parent
commit
0fd395445b

+ 1 - 1
conf/app.conf

@@ -63,7 +63,7 @@ Qiniu_Url = "https://coldoss.coldbaozhida.com/"
 # Panel
 Panel_url = "http://127.0.0.1:6204/Cold_Panel"
 
-FilterExcludeURL = /Login_verification,/Data/List,/WxPay/Notify
+FilterExcludeURL = /Login_verification,/Data/List,/WxPay/Notify,/Data/Company_key_Device_Sensor_List
 # 小程序 冷链验证 /Data/List
 # 小程序接口 /DeviceWarning/DeviceSensor_List,/Device/Applet_Stat_View2,/DeviceSensor/Applet_List_View1,/DeviceSensor/Applet_List_View2,/DeviceSensorType/List,/Device/DeviceTask_Post
 FilterOnlyLoginCheckURL = /Menu/List,/User/Info,/User/Home,/User/Post,/UpFileToken,/User/WxQRCode,/Company/Get,/DataSource,/Company/Bill_Excel,/WarningSend/List,/WxPay/Get_QRCode,/WxPay/GetOrderState,/WarningHandle/List

+ 20 - 0
controllers/Data.go

@@ -180,6 +180,26 @@ func (c *DataController) Company_Device_Sensor_List() {
 
 }
 
+func (c *DataController) Company_Device_Sensor_List_ByKey() {
+	var r_jsons lib.R_JSONS
+	key := c.GetString("key")
+	// 查询公司
+	Company_r, err := Account.Read_Company_ByKey(key)
+	if err != nil {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id Err!"}
+		c.ServeJSON()
+		return
+	}
+	// 查询公司下面所有子公司id
+	T_pids := Account.ReadCompanyIds_T_path(Company_r.T_path)
+	Account.Read_Company_All_Maps()
+	r_jsons.Data, r_jsons.Num = Device.Read_CompanyDeviceSensor_List_For_Data_ByKey(T_pids)
+	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
+	c.ServeJSON()
+	return
+
+}
+
 // 传感器数据列表
 func (c *DataController) Device_Sensor_Data() {
 	page, _ := c.GetInt("page")

+ 15 - 0
controllers/Device.go

@@ -2075,3 +2075,18 @@ func (c *DeviceController) DeviceSensor_Applet_List_View2() {
 	c.ServeJSON()
 	return
 }
+
+func Update_DeviceSensor_Parameter() {
+	list := Device.Read_DeviceSensor_All()
+	for _, sensor := range list {
+		dsp, is := Device.Read_DeviceSensorParameter(sensor.T_sn, sensor.T_id)
+		if !is {
+			continue
+		}
+		if sensor.T_sp == dsp.Id {
+			continue
+		}
+		sensor.T_sp = dsp.Id
+		Device.Update_DeviceSensor(sensor, "T_sp")
+	}
+}

+ 6 - 0
controllers/User.go

@@ -738,6 +738,9 @@ func (c *UserController) User_Home() {
 		UntreatedWorkOrderNum int64        // 未处理工单数量
 		Balance               float32      // 余额
 		NoticeRecord          NoticeRecord // 通知记录
+
+		CompanyKey  string
+		CompanyName string
 	}
 	var info Info
 	info.T_name = admin_r.T_name
@@ -784,6 +787,9 @@ func (c *UserController) User_Home() {
 		info.Balance = company.T_money
 		info.NoticeRecord.Sms = Warning.Get_WarningSandNum_CurrentMonth(admin_r.T_pid, 1)
 		info.NoticeRecord.Phone = Warning.Get_WarningSandNum_CurrentMonth(admin_r.T_pid, 2)
+
+		info.CompanyKey = Company_r.T_key
+		info.CompanyName = Company_r.T_name
 	}
 	if admin_r.T_pid == 0 {
 		if len(admin_r.T_pids) > 0 && admin_r.T_pids != "*" {

+ 1 - 0
main.go

@@ -74,6 +74,7 @@ func main() {
 	beego.BConfig.RecoverFunc = RecoverPanic
 
 	go controllers.DeviceRealTime() // 实时 数据
+	//go controllers.Update_DeviceSensor_Parameter() // 更新传感器表-传感器参数t_sp
 
 	go Warning.Read_WarningType_All_Maps()   // 初始化报警类型
 	go Product.Read_ProductType_All_Map()    // 初始化产品类型

+ 21 - 6
models/Account/Company.go

@@ -92,7 +92,7 @@ func init() {
 }
 
 // ---------------- Redis -------------------
-func Redis_Company_Set(r Company) (err error) {
+func Redis_Company_Set(key string, r Company) (err error) {
 	//json序列化
 	str, err := json.Marshal(r)
 	if err != nil {
@@ -100,9 +100,9 @@ func Redis_Company_Set(r Company) (err error) {
 		return
 	}
 
-	err = redisCache_Company.Put(strconv.Itoa(r.Id), str, 24*time.Hour)
+	err = redisCache_Company.Put(key, str, 24*time.Hour)
 	if err != nil {
-		logs.Error("set key:", strconv.Itoa(r.Id), ",value:", str, err)
+		logs.Error("set key:", key, ",value:", str, err)
 	}
 	return
 }
@@ -176,7 +176,7 @@ func Add_Company(var_ Company) (id int64, err error) {
 	}
 	o.Commit()
 
-	Redis_Company_Set(var_)
+	Redis_Company_Set(strconv.Itoa(var_.Id), var_)
 	return id, err
 
 }
@@ -190,7 +190,7 @@ func Update_Company(m Company, cols ...string) bool {
 		return false
 	}
 	fmt.Println("Number of records updated in database:", num)
-	Redis_Company_Set(m) // Redis 更新缓存
+	Redis_Company_Set(strconv.Itoa(m.Id), m) // Redis 更新缓存
 	return true
 }
 
@@ -224,7 +224,22 @@ func Read_Company_ById(Id int) (r Company, e error) {
 		logs.Error(lib.FuncName(), e)
 		return
 	}
-	Redis_Company_Set(r) // Redis 更新缓存
+	Redis_Company_Set(strconv.Itoa(r.Id), r) // Redis 更新缓存
+	return r, e
+}
+func Read_Company_ByKey(key string) (r Company, e error) {
+	if r, is := Redis_Company_Get(key); is {
+		//println("Redis_Get  OK")
+		return r, nil
+	}
+	o := orm.NewOrm()
+	qs := o.QueryTable(new(Company))
+	e = qs.Filter("T_key", key).Filter("T_State", 1).One(&r)
+	if e != nil {
+		logs.Error(lib.FuncName(), e)
+		return
+	}
+	Redis_Company_Set(key, r) // Redis 更新缓存
 	return r, e
 }
 

+ 29 - 0
models/Device/DeviceSensor.go

@@ -1443,6 +1443,35 @@ func Read_CompanyDeviceSensor_List_For_Data1(T_pids []int, T_name string, T_Clas
 	return DeviceSensor_r, cnt
 }
 
+func Read_CompanyDeviceSensor_List_For_Data_ByKey(T_pids []int) (DeviceSensor_r []DeviceSensor_R, cnt int64) {
+
+	o := orm.NewOrm()
+	// 也可以直接使用 Model 结构体作为表名
+
+	qs := o.QueryTable(new(DeviceSensor))
+
+	var r []DeviceSensor
+	cond := orm.NewCondition()
+	cond1 := cond.And("T_pid__in", T_pids)
+
+	cnt, err := qs.SetCond((*orm2.Condition)(cond1)).Count()
+	if err != nil {
+		logs.Error(lib.FuncName(), err)
+		return
+	}
+
+	_, err = qs.SetCond((*orm2.Condition)(cond1)).All(&r)
+	if err != nil {
+		logs.Error(lib.FuncName(), err)
+		return
+	}
+
+	for _, v := range r {
+		DeviceSensor_r = append(DeviceSensor_r, DeviceSensorToDeviceSensor_R(v))
+	}
+	return DeviceSensor_r, cnt
+}
+
 // 获取列表
 func Read_DeviceSensor_T_type(T_pid int, bindSN []string) (lists orm2.ParamsList, err error) {
 	o := orm.NewOrm()

+ 2 - 0
models/Device/DeviceSensorParameter.go

@@ -53,6 +53,7 @@ type DeviceSensorParameter struct {
 }
 
 type DeviceSensorParameter_R struct {
+	Id     int
 	T_name string
 	// 报警
 	T_Tlower  float32 //  温度下限
@@ -91,6 +92,7 @@ type DeviceSensorParameter_T struct {
 }
 
 func DeviceSensorParameterToDeviceSensorParameter_R(r DeviceSensorParameter) (t DeviceSensorParameter_R) {
+	t.Id = r.Id
 	t.T_name = r.T_name
 	t.T_Tlower = r.T_Tlower
 	t.T_Tupper = r.T_Tupper

+ 8 - 7
routers/Data.go

@@ -10,13 +10,14 @@ func init() {
 	ns := beego.NewNamespace(conf.Version,
 		beego.NSNamespace("/Data",
 			beego.NSBefore(T_pidFilter),
-			beego.NSRouter("/Device_Sensor", &controllers.DataController{}, "*:Device_Sensor_Get"),                       // 获取传感器
-			beego.NSRouter("/Device_Sensor_Data_Real", &controllers.DataController{}, "*:Device_Sensor_Data_Real"),       // 获取传感器
-			beego.NSRouter("/Device_Sensor_List", &controllers.DataController{}, "*:Device_Sensor_List"),                 // 传感器列表
-			beego.NSRouter("/Company_Device_Sensor_List", &controllers.DataController{}, "*:Company_Device_Sensor_List"), // 传感器列表
-			beego.NSRouter("/Device_Sensor_Data", &controllers.DataController{}, "*:Device_Sensor_Data"),                 // 传感器数据
-			beego.NSRouter("/Device_Sensor_Data_Excel", &controllers.DataController{}, "*:Device_Sensor_Data_Excel"),     // 导出传感器数据
-			beego.NSRouter("/Device_Sensor_Data_Excel_m", &controllers.DataController{}, "*:Device_Sensor_Data_Excel_m"), // 导出传感器数据
+			beego.NSRouter("/Device_Sensor", &controllers.DataController{}, "*:Device_Sensor_Get"),                                 // 获取传感器
+			beego.NSRouter("/Device_Sensor_Data_Real", &controllers.DataController{}, "*:Device_Sensor_Data_Real"),                 // 获取传感器
+			beego.NSRouter("/Device_Sensor_List", &controllers.DataController{}, "*:Device_Sensor_List"),                           // 传感器列表
+			beego.NSRouter("/Company_Device_Sensor_List", &controllers.DataController{}, "*:Company_Device_Sensor_List"),           // 传感器列表
+			beego.NSRouter("/Company_key_Device_Sensor_List", &controllers.DataController{}, "*:Company_Device_Sensor_List_ByKey"), // 传感器列表-通过公司key获取
+			beego.NSRouter("/Device_Sensor_Data", &controllers.DataController{}, "*:Device_Sensor_Data"),                           // 传感器数据
+			beego.NSRouter("/Device_Sensor_Data_Excel", &controllers.DataController{}, "*:Device_Sensor_Data_Excel"),               // 导出传感器数据
+			beego.NSRouter("/Device_Sensor_Data_Excel_m", &controllers.DataController{}, "*:Device_Sensor_Data_Excel_m"),           // 导出传感器数据
 
 			beego.NSRouter("/List", &controllers.DataController{}, "*:Device_Sensor_Data_More"),                   // 设备数据列表
 			beego.NSRouter("/Excel", &controllers.DataController{}, "*:Device_Sensor_Data_Excel"),                 // 导出设备数据列表excel