liuxiaolong
2019-08-17 7d22639234720e054993cfbda9fe9ba3935ad2c4
table and person move to sqite
2个文件已修改
314 ■■■■■ 已修改文件
controllers/dbtableperson.go 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/dbtablesCon.go 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/dbtableperson.go
@@ -1,10 +1,9 @@
package controllers
import (
    "basic.com/dbapi.git"
    "encoding/json"
    "log"
    "strconv"
    "time"
    "webserver/extend/logger"
    "github.com/gin-gonic/gin"
@@ -31,19 +30,19 @@
// @Router /data/api-v/dbperson/addDbPerson [PUT]
func (dbc DbPersonController) AddDbPerson(c *gin.Context) {
    dbperson := new(models.Dbtablepersons)
    c.BindJSON(&dbperson)
    if dbperson.TableId == "" {
    err := c.BindJSON(&dbperson)
    if err!=nil || dbperson.TableId == "" {
        // 底库id不存在
        c.JSON(401, "TableId 不存在")
        util.ResponseFormat(c,code.RequestParamError,"参数有误")
        return
    }
    result := addDbPerson(dbperson)
    if result["success"].(bool) {
        //code.Success.Message = "添加底库人员成功"
        util.ResponseFormat(c, code.Success, result["data"])
    var pApi dbapi.DbPersonApi
    paramBody := util.Struct2Map(dbperson)
    b, data := pApi.AddDbPerson(paramBody)
    if b {
        util.ResponseFormat(c, code.Success, data)
    } else {
        //code.ServiceInsideError.Message += result["msg"].(string)
        util.ResponseFormat(c, code.ServiceInsideError, result["data"])
        util.ResponseFormat(c, code.ServiceInsideError, "")
    }
}
@@ -77,30 +76,19 @@
// @Router /data/api-v/dbperson/updateDbPerson [POST]
func (dbc DbPersonController) UpdateDbPerson(c *gin.Context) {
    var dbperson models.Dbtablepersons
    c.BindJSON(&dbperson)
    personid := dbperson.Id
    if personid == "" {
    err := c.BindJSON(&dbperson)
    if err !=nil || dbperson.Id == "" {
        util.ResponseFormat(c, code.RequestParamError, nil)
        return
    }
    dbperson.PriUpdate()
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
        "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexName + "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexType + "/" + personid + "/_update?refresh=wait_for"
    dbTableByte, err := json.Marshal(dbperson)
    if err != nil {
        log.Fatalf("Json marshaling failed:%s", err)
    }
    //logger.Debugf("%s\n", dbTableByte)
    params := "{\"doc\":" + string(dbTableByte) + "}"
    logger.Debug("请求url:%s;\n 请求参数params:%s", url, params)
    data := esutil.GetEsDataReq(url, params, false)
    //c.JSON(200,  changeEsRespData(data,"修改成功"))
    result := changeEsRespData(data, "修改成功")
    if result["success"].(bool) {
        util.ResponseFormat(c, code.Success, result["data"])
    var pApi dbapi.DbPersonApi
    paramBody := util.Struct2Map(dbperson)
    b, data := pApi.UpdateDbPerson(paramBody)
    if b {
        util.ResponseFormat(c, code.Success, data)
    } else {
        //code.ServiceInsideError.Message += result["msg"].(string)
        util.ResponseFormat(c, code.ServiceInsideError, result["data"])
        util.ResponseFormat(c, code.ServiceInsideError, "")
    }
}
@@ -155,21 +143,17 @@
// @Router /data/api-v/dbperson/deleteDbPersonById/{uuid} [POST]
func (dbc DbPersonController) DeleteDbPerson(c *gin.Context) {
    uuid := c.Params.ByName("uuid")
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
        "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexName + "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexType + "/" + uuid + "/_update?refresh=wait_for"
    params := "{\"doc\":{\"isDelete\":\"1\",\"updateTime\":\"" + time.Now().Format("2006-01-02 15:04:05") + "\"}}"
    logger.Debug("删除请求url:%s;\n 请求参数params:%s", url, params)
    data := esutil.GetEsDataReq(url, params, false)
    //c.JSON(200, changeEsRespData(data,"删除成功"))
    result := changeEsRespData(data, "删除成功")
    if result["success"].(bool) {
        util.ResponseFormat(c, code.Success, result["data"])
    id := c.Params.ByName("uuid")
    if id == "" {
        util.ResponseFormat(c,code.RequestParamError,"参数有误")
        return
    }
    var pApi dbapi.DbPersonApi
    b, data := pApi.DeleteDbPerson(id)
    if b {
        util.ResponseFormat(c, code.Success, data)
    } else {
        //code.ServiceInsideError.Message += result["msg"].(string)
        util.ResponseFormat(c, code.ServiceInsideError, result["data"])
        util.ResponseFormat(c, code.ServiceInsideError, "删除失败")
    }
}
@@ -184,37 +168,18 @@
// @Router /data/api-v/dbperson/deleteMoreDbPerson [POST]
func (dbc DbPersonController) DeleteMoreDbPerson(c *gin.Context) {
    uuids := make([]string, 0, 5)
    c.BindJSON(&uuids)
    bytes, _ := json.Marshal(uuids)
    s := string(bytes)
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
        "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexName + "/_update_by_query?refresh" //   + config.EsInfo.EsIndex.Dbtablepersons.IndexType + "/"  + "/" + s
    params := "{\"script\":{\"lang\":\"painless\",\"inline\":\"ctx._source.isDelete = \\\"1\\\";" +
        "ctx._source.updateTime = \\\"" + time.Now().Format("2006-01-02 15:04:05") + "\\\"\"},\"query\":{\"terms\":{\"_id\":" + s + "}}}"
    logger.Debug("删除请求url:%s;\n 请求参数params:%s", url, params)
    data := esutil.GetEsDataReq(url, params, false)
    //c.JSON(200, changeEsRespData(data,"删除成功"))
    //result := changeEsRespData(data, "删除成功")
    if data["error"] == nil {
        //code.Success.Message = "删除底库人员成功"
        //dbperArr, e := esApi.Dbpersoninfosbyid(uuids, config.EsInfo.EsIndex.Dbtablepersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport)
        //if e ==nil && len(dbperArr) > 0{
        //    for _,esPer :=range dbperArr {
        //        if esPer.TableId !=""{
        //            discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
        //                Type: protomsg.EsCacheChanged_T_DbTablePerson,
        //                PersonId: esPer.Id,
        //                TableId: []string{ esPer.TableId },
        //                Feature: "",
        //                Action: protomsg.DbAction_Delete,
        //            })
        //        }
        //    }
        //}
    err := c.BindJSON(&uuids)
    if err !=nil || len(uuids)==0{
        util.ResponseFormat(c,code.RequestParamError,"参数有误")
        return
    }
    var pApi dbapi.DbPersonApi
    paramBody := util.Struct2Map(uuids)
    b, _ := pApi.DeleteMoreDbPerson(paramBody)
    if b {
        util.ResponseFormat(c, code.Success, "删除底库人员成功")
    } else {
        //code.ServiceInsideError.Message += result["msg"].(string)
        util.ResponseFormat(c, code.ServiceInsideError, data["error"])
        util.ResponseFormat(c, code.ServiceInsideError, "删除失败")
    }
}
@@ -228,15 +193,13 @@
// @Failure 500 {string} json "{code:500,  msg:"返回错误信息", success:false,data:{}}"
// @Router /data/api-v/dbperson/queryDbPersonsByTbId [POST]
func (dbc DbPersonController) QueryDbPersonsByTbId(c *gin.Context) {
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
        "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexName + "/_search"
    reqBody := make(map[string]interface{}, 5)
    c.BindJSON(&reqBody)
    tableId := ""
    if reqBody["tableId"] != nil {
        tableId = reqBody["tableId"].(string)
    }
    orderName := "_id"
    orderName := "id"
    if reqBody["orderName"] != nil {
        orderName = reqBody["orderName"].(string)
    } // 列名
@@ -256,17 +219,9 @@
    if reqBody["size"] != nil {
        size = int(reqBody["size"].(float64))
    } // 条数
    from := (page - 1) * size
    syncTerm := ""
    contentParam := ""
    if tableId == "all" || tableId == "" {
        // / 所有人员
    } else {
        syncTerm = "{\"term\":{\"tableId\":\"" + tableId + "\"}}" // 底库人员
    }
    if contentValue != "" {
        contentParam = ",\"must\":[{\"multi_match\":{\"query\":\"" + contentValue + "\",\"type\":\"best_fields\"," +
            "\"fields\":[\"personName\",\"sex\",\"idCard\",\"phoneNum\"],\"tie_breaker\":0.3}}]"
    }
    if orderType == "desc" {
@@ -274,11 +229,21 @@
    } else {
        orderType = "asc"
    }
    params := "{\"query\":{\"bool\":{\"must_not\":[" +
        "{\"term\":{\"isDelete\":\"1\"}}],\"filter\":[" + syncTerm + "]" + contentParam + "}},\"from\":" + strconv.Itoa(from) + ",\"size\":" + strconv.Itoa(size) + ",\"sort\":{\"" + orderName + "\":{\"order\":\"" + orderType + "\"}}}"
    data := esutil.GetEsDataReq(url, params, true)
    //c.JSON(200, data)
    var pApi dbapi.DbPersonApi
    paramBody := map[string]interface{}{
        "tableId":tableId,
        "orderName":orderName,
        "orderType":orderType,
        "contentValue":contentValue,
        "page":page,
        "size":size,
    }
    b, data := pApi.QueryDbPersonsByTbId(paramBody)
    if b{
        util.ResponseFormat(c,code.Success,data)
    } else {
        util.ResponseFormat(c,code.ComError,[]interface{}{})
    }
    util.ResponseFormat(c, code.Success, data)
}
controllers/dbtablesCon.go
@@ -6,7 +6,6 @@
    "fmt"
    "github.com/gin-gonic/gin"
    "github.com/satori/go.uuid"
    "log"
    "time"
    "webserver/extend/code"
    "webserver/extend/config"
@@ -29,28 +28,14 @@
// @Failure 500 {string} json "{"code":500,  msg:"返回错误信息", success:false}"
// @Router /data/api-v/dbtable/queryDbTables/{isSync} [POST]
func (dbt DbTableController) QueryDbTables(c *gin.Context) {
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
        "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/_search"
    isSync := c.Params.ByName("isSync")
    var setApi dbapi.SysSetApi
    _, sysconf := setApi.GetServerInfo()
    analyServerFilterStr := ""
    if isSync == "1" {
        analyServerFilterStr = "{\"term\":{\"analyServerId\":\"\"}}" // / 同步库
    } else if isSync == "2" {
        analyServerFilterStr = "{\"term\":{\"analyServerId\":\"" + sysconf.ServerId + "\"}}" // 本地库
    var tApi dbapi.DbTableApi
    b, data := tApi.QueryDbTables(isSync)
    if b{
        util.ResponseFormat(c, code.Success, data)
    } else {
        util.ResponseFormat(c,code.ComError,[]interface{}{})
    }
    if analyServerFilterStr != "" {
        analyServerFilterStr = "," + analyServerFilterStr
    }
    params := "{\"query\":{\"bool\":{\"must\":[" +
        "{\"term\":{\"isDelete\":\"0\"}}" + analyServerFilterStr + "]}}," +
        "\"from\":0,\"size\":1000,\"sort\":{\"id\":{\"order\":\"asc\"}}}"
    logger.Debug("请求url:%s;\n 请求参数params:%s", url, params)
    data := esutil.GetEsDataReq(url, params, true)
    //c.JSON(200, data)
    util.ResponseFormat(c, code.Success, data)
}
// 依据底库id  查询数据
@@ -73,60 +58,35 @@
// @Router /data/api-v/dbtable/updateDbTables [POST]
func (dbt DbTableController) UpdateDbTables(c *gin.Context) {
    dbtable := new(models.Dbtables)
    c.BindJSON(&dbtable)
    uuid := c.Params.ByName("id")
    if uuid == "" {
        uuid = dbtable.Id
        logger.Debug("body中获取底库id")
    err := c.BindJSON(&dbtable)
    if err !=nil || dbtable.Id == "" || dbtable.TableName == "" {
        util.ResponseFormat(c,code.RequestParamError,"参数有误")
        return
    }
    if dbtable.EndTime == "" {
        flag := UpdateEndTime(dbtable.Id)
        if flag == false {
            util.ResponseFormat(c, code.ServiceInsideError, "修改失败")
        }
    }
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
        "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + uuid + "/_update?refresh=wait_for"
    dbtable.PriUpdate()
    dbTableByte, err := json.Marshal(dbtable)
    if err != nil {
        log.Fatalf("Json marshaling failed:%s", err)
    }
    logger.Debug("%s\n", dbTableByte)
    params := "{\"doc\":" + string(dbTableByte) + "}"
    logger.Debug("请求url:%s;\n 请求参数params:%s", url, params)
    data := esutil.GetEsDataReq(url, params, false)
    //c.JSON(200, changeEsRespData(data, "修改成功"))
    result := changeEsRespData(data, "修改成功")
    if dbtable.Enable == 0 {
        res := UpdateDbPersonsOfDbTable(dbtable.Id)
        //fmt.Println("同步修改人员状态成功----",res)
        logger.Debug("同步修改人员状态成功----", res)
    }
    if result["success"].(bool) {
        //code.Success.Message = "修改底库成功"
        //if dbtable.Enable ==1 {
        //    discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
        //        Type: protomsg.EsCacheChanged_T_DbTable,
        //        PersonId: "",
        //        TableId: []string{ dbtable.Id },
        //        Feature: "",
        //        Action: protomsg.DbAction_Insert,
        //    })
        //} else {
        //    discovery.AddDbMessage(&protomsg.EsPersonCacheChange{
        //        Type: protomsg.EsCacheChanged_T_DbTable,
        //        PersonId: "",
        //        TableId: []string{ dbtable.Id },
        //        Feature: "",
        //        Action: protomsg.DbAction_Delete,
        //    })
        //}
        util.ResponseFormat(c, code.Success, result["data"])
    paramBody := util.Struct2Map(dbtable)
    var tApi dbapi.DbTableApi
    b, data := tApi.UpdateDbTables(paramBody)
    if b{
        util.ResponseFormat(c,code.UpdateSuccess,data)
    } else {
        //code.ServiceInsideError.Message += result["msg"].(string)
        util.ResponseFormat(c, code.ServiceInsideError, result["data"])
        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"])
    //}
}
func UpdateEndTime(id string) (flag bool) {
@@ -168,19 +128,25 @@
// @Router /data/api-v/dbtable/addDbTableInfo [PUT]
func (dbt DbTableController) AddDbTableInfo(c *gin.Context) {
    dbtable := new(models.Dbtables)
    c.BindJSON(&dbtable)
    tableId := uuid.NewV4().String()
    dbtable.Id = tableId
    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
        _, sysconf := setApi.GetServerInfo()
        flag, sysconf := setApi.GetServerInfo()
        if !flag {
            util.ResponseFormat(c,code.ComError,"服务器基本配置有误,请检查")
            return
        }
        dbtable.AnalyServerId = sysconf.ServerId
    }
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
        "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + tableId + "?refresh=wait_for"
    dbtable.PriInsert() // 添加时间和创建人
    currentTime := time.Now()
@@ -202,22 +168,14 @@
    } else {
        dbtable.Enable = 0
    }
    dbTableByte, err := json.Marshal(dbtable)
    if err != nil {
        log.Fatalf("Json marshaling failed:%s", err)
    }
    //logger.Debugf("%s\n", dbTableByte)
    params := string(dbTableByte)
    logger.Debug("请求url:%s;\n 请求参数params:%s", url, params)
    data, _ := esutil.PutEsDataReq(url, params)
    //c.JSON(200, changeEsRespData(data, "添加成功"))
    result := changeEsRespData(data, "添加成功")
    if result["success"].(bool) {
        //code.Success.Message = "添加底库成功"
        util.ResponseFormat(c, code.Success, result["data"])
    paramBody := util.Struct2Map(dbtable)
    var tApi dbapi.DbTableApi
    b, data := tApi.AddDbTableInfo(paramBody)
    if b {
        util.ResponseFormat(c,code.AddSuccess, data)
    } else {
        //code.ServiceInsideError.Message += result["msg"].(string)
        util.ResponseFormat(c, code.ServiceInsideError, result["data"])
        util.ResponseFormat(c,code.ComError,"新增失败")
    }
}
@@ -226,25 +184,22 @@
// @Accept  x-www-form-urlencoded
// @Produce json
// @Tags dbtable
// @Param uuid path string true "底库id "
// @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) {
    uuid := c.Params.ByName("id")
    url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport +
        "/" + config.EsInfo.EsIndex.DbTables.IndexName + "/" + config.EsInfo.EsIndex.DbTables.IndexType + "/" + uuid + "/_update?refresh=wait_for"
    params := "{\"doc\":{\"isDelete\":1}}"
    logger.Debug("删除请求url:%s;\n 请求参数params:%s", url, params)
    data := esutil.GetEsDataReq(url, params, false)
    //c.JSON(200, changeEsRespData(data, "删除成功"))
    result := changeEsRespData(data, "删除成功")
    if result["success"].(bool) {
        //code.Success.Message = "删除底库成功"
        util.ResponseFormat(c, code.Success, result["data"])
    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 {
        //code.ServiceInsideError.Message += result["msg"].(string)
        util.ResponseFormat(c, code.ServiceInsideError, result["data"])
        util.ResponseFormat(c,code.ComError,"删除失败")
    }
}