qixiaoning
6 天以前 2919bea2ffc28003aaefdf9619dc39cda11c1fd1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
package controllers
 
import (
    "encoding/json"
    "vamicro/push-service/models"
    "vamicro/push-service/mqtt"
    "vamicro/push-service/service"
    "vamicro/push-service/vo"
 
    "basic.com/valib/bhomeclient.git"
    "basic.com/valib/logger.git"
)
 
type EventPushController struct {
}
 
// @Summary 事件推送保存
// @Description 事件推送保存
// @Tags 事件推送
// @Param SaveArgs body vo.EventPushVo true "时间推送保存参数"
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
// @Router /data/api-v/eventPush/save [post]
func (epc EventPushController) Save(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
    var saveBody vo.EventPushVo
    if err := c.BindJSON(&saveBody); err != nil {
        return &bhomeclient.Reply{Success: false, Msg: "参数有误"}
    }
    sv := service.NewEventPushService(h.Bk)
    if sv.Save(&saveBody) {
        return &bhomeclient.Reply{Success: true, Data: saveBody}
    } else {
        return &bhomeclient.Reply{Success: false, Msg: "保存失败"}
    }
}
 
// @Summary 根据事件推送主题的一级和二级选项获取最后下拉菜单列表
// @Description  根据事件推送主题的一级和二级选项获取最后下拉菜单列表
// @Produce json
// @Tags 事件推送
// @Param topic query string true "一级主题选项,例如:camera(摄像机)"
// @Param type query string true "子选项类型,例如:name(名称)或addr(位置)"
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
// @Router /data/api-v/eventPush/findByEventTopic [get]
func (epc EventPushController) FindByEventTopic(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
    topic := c.Query("topic")
    childType := c.Query("type")
    if topic == "" {
        return &bhomeclient.Reply{Success: false, Msg: "参数有误"}
    }
 
    sv := service.NewEventPushService(h.Bk)
    list, err := sv.FindByEventTopic(topic, childType)
    if err == nil {
        return &bhomeclient.Reply{Success: true, Data: list}
    } else {
        return &bhomeclient.Reply{Success: false, Msg: err.Error()}
    }
}
 
// @Summary 查全部
// @Description  查全部
// @Produce json
// @Tags 事件推送
// @Param name query string false "事件名称"
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
// @Router /data/api-v/eventPush/findAll [get]
func (epc EventPushController) FindAll(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
    name := c.Query("name")
    sv := service.NewEventPushService(h.Bk)
    flag, data := sv.FindAll(name)
    if flag {
        return &bhomeclient.Reply{Success: true, Data: data}
    } else {
        return &bhomeclient.Reply{Success: false, Msg: "查询失败"}
    }
}
 
// @Router /data/api-v/eventPush/findAllDetails [get]
func (epc EventPushController) FindAllDetails(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
    sv := service.NewEventPushService(h.Bk)
    data := sv.FindAllDetails()
    return &bhomeclient.Reply{Success: true, Data: data}
}
 
// @Summary 事件推送编辑
// @Description  事件推送编辑
// @Produce json
// @Tags 事件推送
// @Param id query string true "id"
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
// @Router /data/api-v/eventPush/getById [get]
func (epc EventPushController) GetById(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
    id := c.Query("id")
    logger.Debug("id:", id)
    if id == "" {
        return &bhomeclient.Reply{Success: false, Msg: "参数有误"}
    }
    sv := service.NewEventPushService(h.Bk)
    flag, data := sv.GetById(id)
    logger.Debug("getByID FLAG:", flag, " data:", data)
    if flag {
        return &bhomeclient.Reply{Success: true, Data: data}
    } else {
        return &bhomeclient.Reply{Success: false, Msg: "查询失败"}
    }
}
 
type ChangeStatusVo struct {
    Id     string `json:"id"`
    Enable bool   `json:"enable"`
}
 
// @Summary 改变enable状态
// @Description  改变enable状态
// @Produce json
// @Tags 事件推送
// @Param statusBody body controllers.ChangeStatusVo true "参数结构"
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
// @Router /data/api-v/eventPush/changeStatus [post]
func (epc EventPushController) ChangeStatus(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
    var statusBody ChangeStatusVo
    err := c.BindJSON(&statusBody)
    if err != nil {
        return &bhomeclient.Reply{Success: false, Msg: "参数有误"}
    }
    sv := service.NewEventPushService(h.Bk)
    if sv.ChangeStatus(statusBody.Id, statusBody.Enable) {
        //消息提醒
        var epE models.EventPush
        epE.GetById(statusBody.Id)
 
        //udp推送
        if epE.PushType == 1 {
            msg := map[string]string{
                "type":   "change", // 注意逗号
                "status": "",       // 最后一个元素也需要逗号(Go 语法要求)
                "id":     statusBody.Id,
            }
            if statusBody.Enable {
                msg["status"] = "start"
            } else {
                msg["status"] = "stop"
            }
            jsonStr, _ := json.Marshal(msg)
            go mqtt.Client.Publish(mqtt.MQTT_CONFIG_TOPIC, jsonStr)
        }
 
        return &bhomeclient.Reply{Success: true, Msg: "修改成功"}
    } else {
        return &bhomeclient.Reply{Success: false, Msg: "修改失败"}
    }
}
 
// @Summary 根据id删除
// @Description  根据id删除
// @Accept x-www-form-urlencoded
// @Produce json
// @Tags 事件推送
// @Param id formData string true "id"
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
// @Router /data/api-v/eventPush/delete [post]
func (epc EventPushController) Delete(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
    id := c.PostForm("id")
    if id == "" {
        return &bhomeclient.Reply{Success: false, Msg: "参数有误"}
    }
    sv := service.NewEventPushService(h.Bk)
    if sv.DeleteById(id) {
        return &bhomeclient.Reply{Success: true, Msg: "删除成功"}
    } else {
        return &bhomeclient.Reply{Success: false, Msg: "删除失败"}
    }
}