liuxiaolong
2019-08-17 7d22639234720e054993cfbda9fe9ba3935ad2c4
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)
}