package controllers
|
|
import (
|
"basic.com/dbapi.git"
|
"basic.com/valib/logger.git"
|
"github.com/gin-gonic/gin"
|
"github.com/satori/go.uuid"
|
"time"
|
"webserver/extend/code"
|
"webserver/extend/util"
|
"webserver/models"
|
)
|
|
type DbTableController struct {
|
}
|
|
// @Security ApiKeyAuth
|
// @Summary 显示底库列表
|
// @Description 显示同步或本地库列表
|
// @Accept x-www-form-urlencoded
|
// @Produce json
|
// @Tags dbtable
|
// @Param isSync path string true "是否同步库 1 同步库 2本地库 qita 全部库"
|
// @Success 200 {string} json "{"code":200, msg:"", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"", success:false}"
|
// @Router /data/api-v/dbtable/queryDbTables/{isSync} [POST]
|
func (dbt DbTableController) QueryDbTables(c *gin.Context) {
|
isSync := c.Params.ByName("isSync")
|
var tApi dbapi.DbTableApi
|
b, data := tApi.QueryDbTables(isSync)
|
if b{
|
util.ResponseFormat(c, code.Success, data)
|
} else {
|
util.ResponseFormat(c,code.ComError,[]interface{}{})
|
}
|
}
|
|
// @Security ApiKeyAuth
|
// @Summary 查询本机所有底库列表
|
// @Description 查询本机所有底库列表
|
// @Accept x-www-form-urlencoded
|
// @Produce json
|
// @Tags dbtable
|
// @Param isDelete query string true "0:查未删除,1:查已删除,其他:查所有"
|
// @Success 200 {string} json "{"code":200, msg:"", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"", success:false}"
|
// @Router /data/api-v/dbtable/findAllDbTablesByCurServer [GET]
|
func (dbt DbTableController) FindAllDbTablesByCurServer(c *gin.Context) {
|
var api dbapi.DbTableApi
|
isDeleteStr := c.Query("isDelete")
|
if isDeleteStr == "" {
|
isDeleteStr = "0"
|
}
|
arr,e := api.FindAllDbTablesByCurServer(isDeleteStr)
|
if e == nil {
|
util.ResponseFormat(c,code.Success, arr)
|
} else {
|
util.ResponseFormat(c,code.ComError,[]interface{}{})
|
}
|
}
|
|
// @Security ApiKeyAuth
|
// @Summary 修改底库
|
// @Description 修改同步或本地库
|
// @Accept json
|
// @Produce json
|
// @Tags dbtable
|
// @Param table body models.Dbtables true "底库数据"
|
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"返回错误信息", success:false}"
|
// @Router /data/api-v/dbtable/updateDbTables [POST]
|
func (dbt DbTableController) UpdateDbTables(c *gin.Context) {
|
dbtable := new(models.Dbtables)
|
err := c.BindJSON(&dbtable)
|
if err !=nil || dbtable.Id == "" || dbtable.TableName == "" || (dbtable.Enable !=0 && dbtable.Enable !=1) {
|
util.ResponseFormat(c,code.RequestParamError,"参数有误")
|
return
|
}
|
|
paramBody := util.Struct2Map(dbtable)
|
var tApi dbapi.DbTableApi
|
b, data := tApi.UpdateDbTables(paramBody)
|
if b{
|
util.ResponseFormat(c,code.UpdateSuccess,data)
|
} else {
|
util.ResponseFormat(c,code.ComError,"更新失败")
|
}
|
|
//if dbtable.EndTime == "" {
|
// flag := UpdateEndTime(dbtable.Id)
|
// if flag == false {
|
// util.ResponseFormat(c, code.ServiceInsideError, "修改失败")
|
// }
|
//}
|
//
|
//if dbtable.Enable == 0 {
|
// res := UpdateDbPersonsOfDbTable(dbtable.Id)
|
//}
|
//if result["success"].(bool) {
|
// util.ResponseFormat(c, code.Success, result["data"])
|
//} else {
|
// util.ResponseFormat(c, code.ServiceInsideError, result["data"])
|
//}
|
}
|
|
type DbTStatusVo struct {
|
Id string `json:"id"`
|
Enable int `json:"enable"`
|
}
|
|
// @Security ApiKeyAuth
|
// @Summary 修改底库状态
|
// @Description 修改同步或本地库底库状态
|
// @Accept json
|
// @Produce json
|
// @Tags dbtable
|
// @Param obj body controllers.DbTStatusVo true "底库状态修改参数"
|
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"返回错误信息", success:false}"
|
// @Router /data/api-v/dbtable/updateDbTableStatus [POST]
|
func (dbt DbTableController) UpdateDbTableStatus(c *gin.Context) {
|
var ds DbTStatusVo
|
err := c.BindJSON(&ds)
|
if err !=nil || ds.Id == "" || (ds.Enable !=0 && ds.Enable !=1) {
|
util.ResponseFormat(c,code.RequestParamError,"参数有误")
|
return
|
}
|
|
var dtApi dbapi.DbTableApi
|
dts, err := dtApi.DbtablesById([]string{ds.Id})
|
if err !=nil || dts == nil {
|
util.ResponseFormat(c,code.RequestParamError,"底库不存在")
|
return
|
}
|
if ds.Enable == 1 {
|
str := dts[0].StartTime
|
etr := dts[0].EndTime
|
ct := time.Now()
|
st, _ := time.ParseInLocation("2006-01-02 15:04:05", str, time.Local)
|
b := false
|
if etr != "" {
|
et,_ := time.ParseInLocation("2006-01-02 15:04:05", etr, time.Local)
|
if et.After(ct) && st.Before(ct) {
|
b = true
|
}
|
} else {
|
if st.Before(ct) {
|
b = true
|
}
|
}
|
//b 为true才允许开启
|
if !b {
|
util.ResponseFormat(c,code.UpdateFail,"当前不允许启用")
|
return
|
}
|
}
|
|
b,_ := dtApi.UpdateDbTableStatus(ds.Id, ds.Enable)
|
if b {
|
util.ResponseFormat(c,code.UpdateSuccess,"更新成功")
|
} else {
|
util.ResponseFormat(c,code.ComError,"更新失败")
|
}
|
}
|
|
// @Security ApiKeyAuth
|
// @Summary 添加底库
|
// @Description 添加同步或本地库
|
// @Accept json
|
// @Produce json
|
// @Tags dbtable
|
// @Param obj body models.Dbtables true "底库数据"
|
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"返回错误信息", success:false}"
|
// @Router /data/api-v/dbtable/addDbTableInfo [PUT]
|
func (dbt DbTableController) AddDbTableInfo(c *gin.Context) {
|
dbtable := new(models.Dbtables)
|
err := c.BindJSON(&dbtable)
|
if err!=nil || dbtable.TableName==""{
|
util.ResponseFormat(c,code.RequestParamError,"参数有误")
|
return
|
}
|
dbtable.Id = uuid.NewV4().String()
|
if dbtable.AnalyServerId == "sync" {
|
dbtable.AnalyServerId = ""
|
}
|
if dbtable.AnalyServerId == "local" {
|
var setApi dbapi.SysSetApi
|
flag, sysconf := setApi.GetServerInfo()
|
if !flag {
|
util.ResponseFormat(c,code.ComError,"服务器基本配置有误,请检查")
|
return
|
}
|
dbtable.AnalyServerId = sysconf.ServerId
|
}
|
|
dbtable.PriInsert() // 添加时间和创建人
|
|
currentTime := time.Now()
|
startTime := dbtable.StartTime
|
endTime := ""
|
if dbtable.EndTime != "" {
|
endTime = dbtable.EndTime
|
}
|
st, _ := time.ParseInLocation("2006-01-02 15:04:05", startTime, time.Local)
|
if endTime != "" {
|
et, _ := time.ParseInLocation("2006-01-02 15:04:05", endTime, time.Local)
|
if et.After(currentTime) && st.Before(currentTime) {
|
dbtable.Enable = 1
|
} else {
|
dbtable.Enable = 0
|
}
|
} else {
|
if st.Before(currentTime) {
|
dbtable.Enable = 1
|
} else {
|
dbtable.Enable = 0
|
}
|
}
|
|
logger.Debug("AddDbTableInfo dbtable.Enable:",dbtable.Enable,",startTime:",startTime,",endTime:",endTime,",st:",st,",curTime:",currentTime)
|
|
paramBody := util.Struct2Map(dbtable)
|
var tApi dbapi.DbTableApi
|
b, data := tApi.AddDbTableInfo(paramBody)
|
if b {
|
util.ResponseFormat(c,code.AddSuccess, data)
|
} else {
|
util.ResponseFormat(c,code.ComError, data)
|
}
|
}
|
|
// @Security ApiKeyAuth
|
// @Summary 删除底库
|
// @Description 删除同步或本地库
|
// @Accept x-www-form-urlencoded
|
// @Produce json
|
// @Tags dbtable
|
// @Param id path string true "底库id "
|
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"返回错误信息", success:false}"
|
// @Router /data/api-v/dbtable/deleteDBtablesById/{id} [POST]
|
func (dbt DbTableController) DeleteDbTables(c *gin.Context) {
|
id := c.Params.ByName("id")
|
if id == "" {
|
util.ResponseFormat(c,code.RequestParamError,"参数有误")
|
return
|
}
|
var tApi dbapi.DbTableApi
|
b, data := tApi.DeleteById(id)
|
if b {
|
util.ResponseFormat(c,code.DelSuccess,data)
|
} else {
|
util.ResponseFormat(c,code.ComError,"删除失败")
|
}
|
}
|
|
func changeEsRespData(respData map[string]interface{}, successMsg string) (result map[string]interface{}) {
|
id := respData["_id"]
|
result = map[string]interface{}{}
|
if id != "" {
|
result["code"] = 200
|
data := make(map[string]interface{})
|
data["uuid"] = id
|
result["data"] = data
|
result["success"] = true
|
result["msg"] = successMsg
|
} else {
|
result["data"] = nil
|
result["success"] = false
|
status := respData["status"]
|
if status != nil {
|
result["code"] = status
|
result["msg"] = respData["error"].(map[string]interface{})["reason"]
|
} else {
|
result["msg"] = "服务器异常"
|
result["code"] = 500
|
}
|
}
|
return result
|
}
|