瀏覽代碼

add questionId ===> answerList

develoven 1 年之前
父節點
當前提交
742eccee9c
共有 9 個文件被更改,包括 43 次插入20 次删除
  1. 11 2
      api/chat/answer.go
  2. 10 8
      api/gateway/gateway.go
  3. 2 1
      api/gateway/sse.go
  4. 1 0
      err/errMsg.go
  5. 0 1
      initialize/gorm.go
  6. 1 1
      initialize/router.go
  7. 7 3
      initialize/ws.go
  8. 5 4
      models/device.go
  9. 6 0
      service/answerService.go

+ 11 - 2
api/chat/answer.go

@@ -5,6 +5,7 @@ import (
 	"confrontation-training/models"
 	"confrontation-training/response"
 	"confrontation-training/service"
+	"fmt"
 	"github.com/gin-gonic/gin"
 )
 
@@ -53,12 +54,20 @@ func (a *AnswerService) CreateAnswer(c *gin.Context) {
 // @Accept json
 // @Produce json
 // @Success 200 {string} string "ok"
-// @Router /v1/chat/get/chat [get]
+// @Router /v1/ chat/get/chat [get]
 func (a *AnswerService) GetAnswer(c *gin.Context) {
 
 	var id uint8
 	err := c.ShouldBind(&id)
+	questions, count := a.FindAnswerByQuestionId(id)
 	if err != nil {
-		return
+		fmt.Println("查询答案信息出错:" + err.Error())
+		panic(err)
 	}
+	if count <= 0 {
+		response.Failed(errmsg.FindAnswerFailed, c)
+	} else {
+		response.Success(errmsg.FindSuccess, questions, c)
+	}
+	return
 }

+ 10 - 8
api/gateway/gateway.go

@@ -103,14 +103,16 @@ func ConnectDevice(c *gin.Context) {
 		response.Failed(errors.DeviceConnectError+string(body), c)
 		return
 	}
-	openChannelUrl := global.Config.Gateway.BaseUrl + global.Config.Gateway.OpenChannel
-	openChannelUrl = strings.Replace(openChannelUrl, "MAC", param.Mac, -1)
-	fmt.Println("openChannelUrl===" + openChannelUrl)
-	httpResponse = http.GetReq(openChannelUrl)
-	if httpResponse.StatusCode != 200 {
-		fmt.Printf("%s:%s", errors.OpenChannelError, httpResponse.Body)
-		response.Failed(errors.OpenChannelError, c)
-		return
+	if param.FilterName == "1" {
+		openChannelUrl := global.Config.Gateway.BaseUrl + global.Config.Gateway.OpenChannel
+		openChannelUrl = strings.Replace(openChannelUrl, "MAC", param.Mac, -1)
+		fmt.Println("openChannelUrl===" + openChannelUrl)
+		httpResponse = http.GetReq(openChannelUrl)
+		if httpResponse.StatusCode != 200 {
+			fmt.Printf("%s:%s", errors.OpenChannelError, httpResponse.Body)
+			response.Failed(errors.OpenChannelError, c)
+			return
+		}
 	}
 	response.Success(errors.DeviceConnectSuccess, param.Mac, c)
 	return

+ 2 - 1
api/gateway/sse.go

@@ -97,7 +97,7 @@ func SseOpenNotify() {
 	client := sse.NewClient(notifyUrl)
 	err = client.SubscribeRaw(func(msg *sse.Event) {
 		s := string(msg.Data)
-		fmt.Println("notify receive data :" + s)
+		//fmt.Println("notify receive data :" + s)
 
 		flag := strings.HasPrefix(s, "E840") || strings.HasPrefix(s, "E841") || strings.HasPrefix(s, "E823")
 		if !flag {
@@ -108,6 +108,7 @@ func SseOpenNotify() {
 			errJson := json.Unmarshal(msg.Data, &receiveData)
 			if errJson != nil {
 				fmt.Println("receive data parse error:" + errJson.Error())
+				//panic(err)
 				return
 			}
 			messageMap := make(map[string]string)

+ 1 - 0
err/errMsg.go

@@ -28,4 +28,5 @@ const (
 	QuestionNotFound          = "问答问题不存在"
 	QuestionCreateFailed      = "创建问题失败"
 	AnswerCreateFailed        = "创建答案失败"
+	FindAnswerFailed          = "查询答案信息失败"
 )

+ 0 - 1
initialize/gorm.go

@@ -26,7 +26,6 @@ func SQLite() {
 	if err != nil {
 		fmt.Printf("mysql error :%s", err.Error())
 	}
-
 	sqlDb.SetMaxIdleConns(10)
 	sqlDb.SetMaxOpenConns(100)
 	sqlDb.SetConnMaxLifetime(time.Hour)

+ 1 - 1
initialize/router.go

@@ -17,7 +17,7 @@ import (
 func Router() {
 
 	//初始化表格
-	initTableErr := global.Db.AutoMigrate(&models.User{}, &models.Question{})
+	initTableErr := global.Db.AutoMigrate(&models.User{}, &models.Question{}, &models.Answer{})
 	if initTableErr != nil {
 		fmt.Printf("初始化表格异常:%s", initTableErr.Error())
 		return

+ 7 - 3
initialize/ws.go

@@ -49,21 +49,25 @@ func (manager *ClientManager) Start() {
 		select {
 		case conn := <-Manager.Register:
 			log.Printf("新用户加入:%v", conn.ID)
+			fmt.Println("当前Client连接数:" + string(len(Manager.Clients)))
 			Manager.Clients[conn.ID] = conn
 			//jsonMessage, _ := json.Marshal(&Message{Content: "Successful connection to socket service"})
 			//conn.Send <- jsonMessage
 		case conn := <-Manager.Unregister:
-			//log.Printf("用户离开:%v", conn.ID)
+			log.Printf("用户离开:%v", conn.ID)
+			fmt.Println("当前Client连接数:" + string(len(Manager.Clients)))
 			if _, ok := Manager.Clients[conn.ID]; ok {
 				//jsonMessage, _ := json.Marshal(&Message{Content: "A socket has disconnected"})
 				//conn.Send <- jsonMessage
 				close(conn.Send)
 				delete(Manager.Clients, conn.ID)
 			}
+			fmt.Println("当前Client连接数:" + string(len(Manager.Clients)))
 		case message := <-Manager.Broadcast:
 			MessageStruct := Message{}
 			err := json.Unmarshal(message, &MessageStruct)
 			if err != nil {
+				panic(err)
 				return
 			}
 			for id, conn := range Manager.Clients {
@@ -123,7 +127,7 @@ func (c *Client) Read() {
 			}
 			break
 		}
-		//log.Printf("读取到客户端的信息:%s", string(message))
+		log.Printf("读取到客户端的信息:%s", string(message))
 		Manager.Broadcast <- message
 	}
 }
@@ -148,7 +152,7 @@ func (c *Client) Write() {
 				}
 				return
 			}
-			//log.Printf("发送到到客户端的信息:%s", string(message))
+			log.Printf("发送到到客户端的信息:%s", string(message))
 
 			err := c.Socket.WriteMessage(websocket.TextMessage, message)
 			if err != nil {

+ 5 - 4
models/device.go

@@ -8,9 +8,10 @@ type DeviceScanParam struct {
 }
 
 type DeviceConnParam struct {
-	Chip     string `json:"chip" binding:"required" `    //芯片 0/1
-	AddrType string `json:"addrType" binding:"required"` //地址类型 public/random
-	Mac      string `json:"mac" binding:"required"`      //设备Mac地址
+	Chip       string `json:"chip" binding:"required" `      //芯片 0/1
+	AddrType   string `json:"addrType" binding:"required"`   //地址类型 public/random
+	Mac        string `json:"mac" binding:"required"`        //设备Mac地址
+	FilterName string `json:"filterName" binding:"required"` // 0 脑电 1 心电
 }
 
 type DeviceScannedFromGateway struct {
@@ -36,7 +37,7 @@ type DeviceScanned struct {
 
 type DeviceDataReceived struct {
 	Value    string `json:"value"`
-	Handle   string `json:"handle"`
+	Handle   int64  `json:"handle"`
 	Mac      string `json:"id"`
 	DataType string `json:"dataType"`
 }

+ 6 - 0
service/answerService.go

@@ -17,3 +17,9 @@ func (a *AnswerService) CreateNewAnswer(param models.CreateAnswer) (models.Answe
 	count := global.Db.Create(&answer).RowsAffected
 	return answer, count
 }
+
+func (a *AnswerService) FindAnswerByQuestionId(id uint8) ([]models.Answer, int64) {
+	answerList := make([]models.Answer, 0)
+	count := global.Db.Where(" question_id = ?", id).Find(&answerList).RowsAffected
+	return answerList, count
+}