package controllers
|
|
import (
|
"basic.com/valib/bhomeclient.git"
|
"github.com/satori/go.uuid"
|
"strconv"
|
"time"
|
"vamicro/compTable-service/models"
|
"vamicro/compTable-service/service"
|
"vamicro/config"
|
)
|
|
type DbTableController struct {
|
|
}
|
|
// @Summary 显示底库列表
|
// @Description 显示同步或本地库列表
|
// @Accept x-www-form-urlencoded
|
// @Produce json
|
// @Tags 底库管理
|
// @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 [POST]
|
func (dbt DbTableController) QueryDbTables(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
type queryDbt struct {
|
IsSync int `json:"isSync"`
|
}
|
var arg queryDbt
|
if err := c.BindJSON(&arg);err != nil {
|
return &bhomeclient.Reply{Msg:err.Error()}
|
}
|
var sv service.DbTableService
|
arr, err := sv.FindByIsSync("", strconv.Itoa(arg.IsSync))
|
var total = 0
|
if arr !=nil {
|
total = len(arr)
|
}
|
if err ==nil {
|
var m = map[string]interface{}{
|
"total": total,
|
"datalist": arr,
|
}
|
return &bhomeclient.Reply{Success:true,Data:m}
|
} else {
|
var m = map[string]interface{}{
|
"total": total,
|
"datalist": []interface{}{},
|
}
|
return &bhomeclient.Reply{Msg:"查询失败",Data:m}
|
}
|
}
|
|
// @Summary 添加底库
|
// @Description 添加同步或本地库
|
// @Accept json
|
// @Produce json
|
// @Tags 底库管理
|
// @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 (dtc DbTableController) Add(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
var dbt models.Dbtables
|
err := c.BindJSON(&dbt)
|
if err !=nil || dbt.TableName == "" {
|
return &bhomeclient.Reply{Msg:"参数有误"}
|
}
|
if dbt.Id == "" {
|
dbt.Id = uuid.NewV4().String()
|
}
|
if dbt.AnalyServerId == "sync" {
|
dbt.AnalyServerId = ""
|
}
|
if dbt.AnalyServerId == "local" {
|
|
if config.Server.AnalyServerId == "" {
|
return &bhomeclient.Reply{Msg:"服务器serverId配置有误"}
|
}
|
dbt.AnalyServerId = config.Server.AnalyServerId
|
}
|
dbt.PriInsert() // 添加时间和创建人
|
currentTime := time.Now()
|
startTime := dbt.StartTime
|
endTime := ""
|
if dbt.EndTime != "" {
|
endTime = dbt.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) {
|
dbt.Enable = 1
|
} else {
|
dbt.Enable = 0
|
}
|
} else {
|
if st.Before(currentTime) {
|
dbt.Enable = 1
|
} else {
|
dbt.Enable = 0
|
}
|
}
|
|
var sv service.DbTableService
|
b, err := sv.Add(dbt)
|
if err !=nil && err.Error() == "dbt exist" {
|
return &bhomeclient.Reply{Msg:"底库名称不允许重复"}
|
}
|
if b {
|
return &bhomeclient.Reply{Success:true,Data:dbt}
|
} else {
|
return &bhomeclient.Reply{Msg:"新增失败"}
|
}
|
}
|
|
// @Summary 删除底库
|
// @Description 删除同步或本地库
|
// @Accept x-www-form-urlencoded
|
// @Produce json
|
// @Tags 底库管理
|
// @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 [POST]
|
func (dtc DbTableController) DeleteById(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
id := c.Query("id")
|
if id == "" {
|
return &bhomeclient.Reply{Msg:"参数有误"}
|
}
|
var sv service.DbTableService
|
b, _ := sv.DeleteById(id)
|
if b{
|
return &bhomeclient.Reply{Success:true, Msg:"删除成功"}
|
} else {
|
return &bhomeclient.Reply{Msg:"删除失败"}
|
}
|
}
|
|
// @Summary 修改底库
|
// @Description 修改底库
|
// @Accept json
|
// @Produce json
|
// @Tags 底库管理
|
// @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 (dtc DbTableController) UpdateDbTables(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
var dbt models.Dbtables
|
err := c.BindJSON(&dbt)
|
if err !=nil || dbt.TableName == "" || dbt.Id == "" {
|
return &bhomeclient.Reply{Msg:"参数有误"}
|
}
|
|
currentTime := time.Now()
|
startTime := dbt.StartTime
|
endTime := ""
|
if dbt.EndTime != "" {
|
endTime = dbt.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) {
|
dbt.Enable = 1
|
} else {
|
dbt.Enable = 0
|
}
|
} else {
|
if st.Before(currentTime) {
|
dbt.Enable = 1
|
} else {
|
dbt.Enable = 0
|
}
|
}
|
|
var sv service.DbTableService
|
b, _ := sv.Update(dbt)
|
if b{
|
return &bhomeclient.Reply{Success:true, Msg:"更新成功"}
|
} else {
|
return &bhomeclient.Reply{Msg:"更新失败"}
|
}
|
}
|
|
type DbTStatusVo struct {
|
Id string `json:"id"`
|
Enable int `json:"enable"`
|
}
|
|
// @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(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
var ds DbTStatusVo
|
err := c.BindJSON(&ds)
|
if err !=nil || ds.Id == "" || (ds.Enable !=0 && ds.Enable !=1) {
|
return &bhomeclient.Reply{Msg:"参数有误"}
|
}
|
|
var dt models.Dbtables
|
rows, e := dt.SelectById(ds.Id)
|
if e != nil || rows == 0 {
|
return &bhomeclient.Reply{Msg: "底库不存在"}
|
}
|
if ds.Enable == 1 {
|
str := dt.StartTime
|
etr := dt.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 {
|
return &bhomeclient.Reply{ Msg: "当前不允许启用"}
|
}
|
}
|
|
var sv service.DbTableService
|
b,_ := sv.UpdateDbTableStatus(ds.Id, ds.Enable)
|
if b {
|
return &bhomeclient.Reply{Success:true, Msg:"更新成功"}
|
} else {
|
return &bhomeclient.Reply{Msg:"更新失败"}
|
}
|
}
|
|
type IdsArr struct {
|
Ids []string `json:"ids"`
|
}
|
|
// @Summary 查询底库列表
|
// @Description 查询底库列表
|
// @Accept json
|
// @Produce json
|
// @Tags 底库管理
|
// @Param ids body controllers.IdsArr true "底库ids"
|
// @Success 200 {string} json "{"code":200, msg:"", success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"", success:false}"
|
// @Router /data/api-v/dbtable/dbtablesByIds [POST]
|
func (dbt DbTableController) DbtablesByIds(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
var ids IdsArr
|
err := c.BindJSON(&ids)
|
if err !=nil || len(ids.Ids) == 0 {
|
return &bhomeclient.Reply{Msg:"参数有误"}
|
}
|
var sv service.DbTableService
|
arr,e := sv.FindByDbtIds(ids.Ids)
|
if e ==nil {
|
return &bhomeclient.Reply{Success:true,Data:arr}
|
} else {
|
return &bhomeclient.Reply{Msg:"查询失败",Data:[]interface{}{}}
|
}
|
}
|
|
// @Summary 查询本机所有底库列表
|
// @Description 查询本机所有底库列表
|
// @Accept x-www-form-urlencoded
|
// @Produce json
|
// @Tags dbtable
|
// @Param isDelete query string true "0:查未删除,1:查已删除,其他:查所有"
|
// @Param type query string false "人员:person, 车辆库:car"
|
// @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(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
var sv service.DbTableService
|
isDeleteStr := c.Query("isDelete")
|
isDelete, _ := strconv.Atoi(isDeleteStr)
|
typ := c.Query("type")
|
arr,e := sv.FindAllDbTablesByCurServer(isDelete, typ)
|
if e == nil {
|
return &bhomeclient.Reply{Success:true,Data:arr}
|
} else {
|
return &bhomeclient.Reply{Msg:"查询失败",Data:[]interface{}{}}
|
}
|
}
|
|
// @Router /data/api-v/dbtable/findAllDbTables [GET]
|
func (dbt DbTableController) FindAllDbTables(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
var sv service.DbTableService
|
arr,e := sv.FindAllDbTables()
|
if e == nil {
|
return &bhomeclient.Reply{Success:true,Data:arr}
|
} else {
|
return &bhomeclient.Reply{Msg:"查询失败",Data:[]interface{}{}}
|
}
|
}
|
|
// @Router /data/api-v/dbtable/findAllLocalDbTables [GET]
|
func (dbt DbTableController) FindAllLocalDbTables(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply{
|
isDelete := c.Query("isDelete")
|
var sv service.DbTableService
|
arr,e := sv.FindAllLocalDbTables(isDelete)
|
if e == nil {
|
return &bhomeclient.Reply{Success:true,Data:arr}
|
} else {
|
return &bhomeclient.Reply{Msg:"查询失败",Data:[]interface{}{}}
|
}
|
}
|