2019-08-07 13:16:23 +08:00
|
|
|
package setting
|
|
|
|
|
|
|
|
import (
|
|
|
|
"HFish/core/dbUtil"
|
|
|
|
"HFish/error"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"net/http"
|
|
|
|
"strings"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Html(c *gin.Context) {
|
|
|
|
data := getSetting() //订阅通知等
|
|
|
|
c.HTML(http.StatusOK, "setting.html", gin.H{
|
|
|
|
"dataList": data,
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
/*获取配置*/
|
|
|
|
func getSetting() []map[string]interface{} {
|
|
|
|
sql := "select id,type,info,setting_name,setting_dis,update_time,status from hfish_setting where setting_type!=-1"
|
|
|
|
result := dbUtil.Query(sql)
|
|
|
|
return result
|
|
|
|
}
|
|
|
|
|
|
|
|
/*检查是否配置信息*/
|
|
|
|
func checkInfo(id string) bool {
|
|
|
|
sql := "select id,info,type from hfish_setting where id = ?"
|
|
|
|
result := dbUtil.Query(sql, id)
|
|
|
|
info := result[0]["info"].(string)
|
|
|
|
typeStr := result[0]["type"].(string)
|
|
|
|
infoArr := strings.Split(info, "&&")
|
|
|
|
num := len(infoArr)
|
|
|
|
|
|
|
|
if num == 4 && typeStr == "mail" {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
if num == 2 && typeStr == "login" {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
if num == 2 && typeStr == "alertOver" {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
if num == 1 && typeStr == "pushBullet" {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
if num == 1 && typeStr == "fangTang" {
|
|
|
|
return true
|
|
|
|
}
|
2019-08-09 15:13:16 +08:00
|
|
|
if num >= 4 && typeStr == "alertMail" {
|
|
|
|
return true
|
|
|
|
}
|
2019-08-07 13:16:23 +08:00
|
|
|
return false
|
|
|
|
}
|
|
|
|
func joinInfo(args ...string) string {
|
|
|
|
and := "&&"
|
|
|
|
info := ""
|
|
|
|
for _, value := range args {
|
|
|
|
if value == "" {
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
info += value + and
|
|
|
|
}
|
|
|
|
info = info[:len(info)-2]
|
|
|
|
return info
|
|
|
|
}
|
|
|
|
|
|
|
|
/*更新邮件通知*/
|
|
|
|
func UpdateEmailInfo(c *gin.Context) {
|
|
|
|
email := c.PostForm("email")
|
|
|
|
id := c.PostForm("id")
|
|
|
|
pass := c.PostForm("pass")
|
|
|
|
host := c.PostForm("host")
|
|
|
|
port := c.PostForm("port")
|
|
|
|
//subType := c.PostForm("type")
|
|
|
|
info := joinInfo(host, port, email, pass)
|
|
|
|
sql := `
|
|
|
|
UPDATE hfish_setting
|
|
|
|
set info = ?,
|
|
|
|
status = ?,
|
|
|
|
update_time = ?
|
|
|
|
where id = ?;`
|
|
|
|
dbUtil.Update(sql, info, 0, time.Now().Format("2006-01-02 15:04"), id)
|
|
|
|
c.JSON(http.StatusOK, error.ErrSuccessNull())
|
|
|
|
}
|
2019-08-09 15:13:16 +08:00
|
|
|
/*更新警告邮件通知*/
|
|
|
|
func UpdateAlertMail(c *gin.Context) {
|
|
|
|
email := c.PostForm("email")
|
|
|
|
id := c.PostForm("id")
|
|
|
|
receive:=c.PostForm("receive")
|
|
|
|
pass := c.PostForm("pass")
|
|
|
|
host := c.PostForm("host")
|
|
|
|
port := c.PostForm("port")
|
|
|
|
//subType := c.PostForm("type")
|
|
|
|
receiveArr:=strings.Split(receive,",")
|
|
|
|
receiveInfo:=joinInfo(receiveArr...)
|
|
|
|
info := joinInfo(host, port, email, pass,receiveInfo)
|
|
|
|
sql := `
|
|
|
|
UPDATE hfish_setting
|
|
|
|
set info = ?,
|
|
|
|
status = ?,
|
|
|
|
update_time = ?
|
|
|
|
where id = ?;`
|
|
|
|
dbUtil.Update(sql, info, 0, time.Now().Format("2006-01-02 15:04"), id)
|
|
|
|
c.JSON(http.StatusOK, error.ErrSuccessNull())
|
|
|
|
}
|
2019-08-07 13:16:23 +08:00
|
|
|
|
|
|
|
/*更新设置状态*/
|
|
|
|
func UpdateStatusSetting(c *gin.Context) {
|
|
|
|
id := c.PostForm("id")
|
|
|
|
status := c.PostForm("status")
|
|
|
|
|
|
|
|
if !checkInfo(id) && status == "1" {
|
|
|
|
c.JSON(http.StatusOK, gin.H{"code": 10003, "msg": "请配置后在启用", "data": nil})
|
|
|
|
return
|
|
|
|
}
|
|
|
|
sql := `update hfish_setting
|
|
|
|
set status = ?,
|
|
|
|
update_time=?
|
|
|
|
where id = ?`
|
|
|
|
dbUtil.Update(sql, status, time.Now().Format("2006-01-02 15:04"), id)
|
|
|
|
c.JSON(http.StatusOK, error.ErrSuccessNull())
|
|
|
|
}
|
|
|
|
|
|
|
|
/*根据id获取设置详情*/
|
|
|
|
func GetSettingInfo(c *gin.Context) {
|
|
|
|
id, _ := c.GetQuery("id")
|
|
|
|
sql := `select id,type,info,status from hfish_setting where id = ?`
|
|
|
|
result := dbUtil.Query(sql, id)
|
|
|
|
c.JSON(http.StatusOK, error.ErrSuccess(result))
|
|
|
|
}
|