Forráskód Böngészése

页面配置不保存问题优化

chengqian 4 hónapja
szülő
commit
480fe0c9f0

BIN
server/build/smart_intersectionV2.0


+ 4 - 3
server/config.yaml

@@ -125,8 +125,9 @@ mysql:
     config: charset=utf8mb4&parseTime=True&loc=Local
     db-name: smart_intersection2.0
     username: root
-    password: qWo2#inH7Bw28#M5
-    path: 118.253.180.18
+#    password: qWo2#inH7Bw28#M5
+    password: 123456
+    path: 127.0.0.1
     engine: ""
     log-mode: error
     max-idle-conns: 10
@@ -221,7 +222,7 @@ zap:
     log-in-console: false
 mqtt:
     server: "tcp://118.253.180.18:1883"
-    id: "smart_intersectionV2.0_cloud"
+    id: "smart_intersectionV2.0_local"
     user: "admin"
     password: "#BgYgMRhshtS0I7E"
 

+ 35 - 7
server/dao/dev_program.go

@@ -4,13 +4,41 @@ import "server/global"
 
 type Program struct {
 	global.GVA_MODEL
-	Num     string `json:"num" gorm:"comment:显示内容编号"`
-	Effect  string `json:"effect" gorm:"comment:显示方式"`
-	Speed   string `json:"speed" gorm:"comment:移动速度"`
-	Stay    string `json:"stay" gorm:"comment:节目停留时间"`
-	Total   string `json:"total" gorm:"comment:预留"`
-	Color   string `json:"color" gorm:"comment:颜色"`
-	Content string `json:"content" gorm:"comment:节目内容"`
+	Num1     string `json:"num1" gorm:"comment:显示内容编号1"`
+	Effect1  string `json:"effect1" gorm:"comment:显示方式1"`
+	Speed1   string `json:"speed1" gorm:"comment:移动速度1"`
+	Stay1    string `json:"stay1" gorm:"comment:节目停留时间1"`
+	Total1   string `json:"total1" gorm:"comment:预留1"`
+	Color1   string `json:"color1" gorm:"comment:颜色1"`
+	Content1 string `json:"content1" gorm:"comment:节目内容1"`
+	Num2     string `json:"num2" gorm:"comment:显示内容编号2"`
+	Effect2  string `json:"effect2" gorm:"comment:显示方式2"`
+	Speed2   string `json:"speed2" gorm:"comment:移动速度2"`
+	Stay2    string `json:"stay2" gorm:"comment:节目停留时间2"`
+	Total2   string `json:"total2" gorm:"comment:预留2"`
+	Color2   string `json:"color2" gorm:"comment:颜色2"`
+	Content2 string `json:"content2" gorm:"comment:节目内容2"`
+	Num3     string `json:"num3" gorm:"comment:显示内容编号3"`
+	Effect3  string `json:"effect3" gorm:"comment:显示方式3"`
+	Speed3   string `json:"speed3" gorm:"comment:移动速度3"`
+	Stay3    string `json:"stay3" gorm:"comment:节目停留时间3"`
+	Total3   string `json:"total3" gorm:"comment:预留3"`
+	Color3   string `json:"color3" gorm:"comment:颜色3"`
+	Content3 string `json:"content3" gorm:"comment:节目内容3"`
+	Num4     string `json:"num4" gorm:"comment:显示内容编号4"`
+	Effect4  string `json:"effect4" gorm:"comment:显示方式4"`
+	Speed4   string `json:"speed4" gorm:"comment:移动速度4"`
+	Stay4    string `json:"stay4" gorm:"comment:节目停留时间4"`
+	Total4   string `json:"total4" gorm:"comment:预留4"`
+	Color4   string `json:"color4" gorm:"comment:颜色4"`
+	Content4 string `json:"content4" gorm:"comment:节目内容4"`
+	Num5     string `json:"num5" gorm:"comment:显示内容编号5"`
+	Effect5  string `json:"effect5" gorm:"comment:显示方式5"`
+	Speed5   string `json:"speed5" gorm:"comment:移动速度5"`
+	Stay5    string `json:"stay5" gorm:"comment:节目停留时间5"`
+	Total5   string `json:"total5" gorm:"comment:预留5"`
+	Color5   string `json:"color5" gorm:"comment:颜色5"`
+	Content5 string `json:"content5" gorm:"comment:节目内容5"`
 }
 
 func (Program) TableName() string {

+ 0 - 2
server/initialize/timer.go

@@ -48,8 +48,6 @@ func IsOnline() {
 		select {
 		case <-t.C:
 			for sn, device := range devices.DeviceOnlineTimes {
-				fmt.Printf("定时 %v", device)
-				fmt.Println("判断:", time.Now().Add(-2*time.Minute).After(*device))
 				//符合条件
 				if time.Now().Add(-2 * time.Minute).After(*device) {
 					err := dao.UpdateScreensStatusBySn(sn, 0)

+ 62 - 37
server/service/devices/program.go

@@ -7,36 +7,49 @@ import (
 	"server/global"
 	"server/model/devices"
 	"server/utils/protocol"
+	"time"
 )
 
 type ProgramService struct {
 }
 
 func (ps *ProgramService) CreateProgram(ref devices.ProgramReq) error {
-	result := devices.DiscontentJSON{
-		Setdiscontent0: devices.SetDisContent{
-			Num:     ref.Program.Num,
-			Effect:  ref.Program.Effect,
-			Speed:   ref.Program.Speed,
-			Stay:    ref.Program.Stay,
-			Total:   ref.Program.Total,
-			Color:   ref.Program.Color,
-			Content: ref.Program.Content,
-		},
+	contentList := []devices.SetDisContent{
+		{ref.Program.Num1, ref.Program.Effect1, ref.Program.Speed1, ref.Program.Stay1, ref.Program.Total1, ref.Program.Color1, ref.Program.Content1},
+		{ref.Program.Num2, ref.Program.Effect2, ref.Program.Speed2, ref.Program.Stay2, ref.Program.Total2, ref.Program.Color2, ref.Program.Content2},
+		{ref.Program.Num3, ref.Program.Effect3, ref.Program.Speed3, ref.Program.Stay3, ref.Program.Total3, ref.Program.Color3, ref.Program.Content3},
+		{ref.Program.Num4, ref.Program.Effect4, ref.Program.Speed4, ref.Program.Stay4, ref.Program.Total4, ref.Program.Color4, ref.Program.Content4},
+		{ref.Program.Num5, ref.Program.Effect5, ref.Program.Speed5, ref.Program.Stay5, ref.Program.Total5, ref.Program.Color5, ref.Program.Content5},
 	}
 
-	// 序列化为 JSON 字符串
-	jsonBytes, err := json.MarshalIndent(result, "", "  ")
-	if err != nil {
-		return fmt.Errorf("转换失败: %v", err)
-	}
+	for _, p := range contentList {
+		// 组装成每个对象
+		result := map[string]map[string]string{
+			"setdiscontent0": {
+				"num":     p.Num,
+				"effect":  p.Effect,
+				"speed":   p.Speed,
+				"stay":    p.Stay,
+				"total":   p.Total,
+				"color":   p.Color,
+				"content": p.Content,
+			},
+		}
 
-	err = MqttService.Publish(MqttService.GetTopic(ref.DeviceSn, protocol.TopicSetControl), jsonBytes)
-	if err != nil {
-		return fmt.Errorf("error updating: %v", err)
+		// 序列化为 JSON 字符串
+		jsonBytes, err := json.MarshalIndent(result, "", "  ")
+		if err != nil {
+			return fmt.Errorf("转换失败: %v", err)
+		}
+
+		err = MqttService.Publish(MqttService.GetTopic(ref.DeviceSn, protocol.TopicSetControl), jsonBytes)
+		time.Sleep(300 * time.Millisecond)
+		if err != nil {
+			return fmt.Errorf("error updating: %v", err)
+		}
 	}
 
-	err = global.GVA_DB.Create(&ref.Program).Error
+	err := global.GVA_DB.Create(&ref.Program).Error
 	if err != nil {
 		return err
 	}
@@ -49,27 +62,39 @@ func (ps *ProgramService) CreateProgram(ref devices.ProgramReq) error {
 }
 
 func (ps *ProgramService) UpdateProgram(ref devices.ProgramReq) error {
-	result := devices.DiscontentJSON{
-		Setdiscontent0: devices.SetDisContent{
-			Num:     ref.Program.Num,
-			Effect:  ref.Program.Effect,
-			Speed:   ref.Program.Speed,
-			Stay:    ref.Program.Stay,
-			Total:   ref.Program.Total,
-			Color:   ref.Program.Color,
-			Content: ref.Program.Content,
-		},
+	contentList := []devices.SetDisContent{
+		{ref.Program.Num1, ref.Program.Effect1, ref.Program.Speed1, ref.Program.Stay1, ref.Program.Total1, ref.Program.Color1, ref.Program.Content1},
+		{ref.Program.Num2, ref.Program.Effect2, ref.Program.Speed2, ref.Program.Stay2, ref.Program.Total2, ref.Program.Color2, ref.Program.Content2},
+		{ref.Program.Num3, ref.Program.Effect3, ref.Program.Speed3, ref.Program.Stay3, ref.Program.Total3, ref.Program.Color3, ref.Program.Content3},
+		{ref.Program.Num4, ref.Program.Effect4, ref.Program.Speed4, ref.Program.Stay4, ref.Program.Total4, ref.Program.Color4, ref.Program.Content4},
+		{ref.Program.Num5, ref.Program.Effect5, ref.Program.Speed5, ref.Program.Stay5, ref.Program.Total5, ref.Program.Color5, ref.Program.Content5},
 	}
 
-	// 序列化为 JSON 字符串
-	jsonBytes, err := json.MarshalIndent(result, "", "  ")
-	if err != nil {
-		return fmt.Errorf("转换失败: %v", err)
-	}
+	for _, p := range contentList {
+		// 组装成每个对象
+		result := map[string]map[string]string{
+			"setdiscontent0": {
+				"num":     p.Num,
+				"effect":  p.Effect,
+				"speed":   p.Speed,
+				"stay":    p.Stay,
+				"total":   p.Total,
+				"color":   p.Color,
+				"content": p.Content,
+			},
+		}
 
-	err = MqttService.Publish(MqttService.GetTopic(ref.DeviceSn, protocol.TopicSetControl), jsonBytes)
-	if err != nil {
-		return fmt.Errorf("error updating: %v", err)
+		// 序列化为 JSON 字符串
+		jsonBytes, err := json.MarshalIndent(result, "", "  ")
+		if err != nil {
+			return fmt.Errorf("转换失败: %v", err)
+		}
+
+		err = MqttService.Publish(MqttService.GetTopic(ref.DeviceSn, protocol.TopicSetControl), jsonBytes)
+		time.Sleep(300 * time.Millisecond)
+		if err != nil {
+			return fmt.Errorf("error updating: %v", err)
+		}
 	}
 
 	return ref.Program.UpdateProgram()