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{}{}} } }