From b0500fee9c01e17c81b9293b244c8ed88dc9ca29 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期五, 11 十月 2019 15:12:25 +0800 Subject: [PATCH] add swagger --- controllers/dbtableperson.go | 601 ++++++++++++++++++++++++++++++------------------------ 1 files changed, 335 insertions(+), 266 deletions(-) diff --git a/controllers/dbtableperson.go b/controllers/dbtableperson.go index 9c362a7..0f7ea9b 100644 --- a/controllers/dbtableperson.go +++ b/controllers/dbtableperson.go @@ -1,11 +1,18 @@ package controllers import ( + "basic.com/dbapi.git" + "basic.com/fileServer/WeedFSClient.git" + "basic.com/pubsub/protomsg.git" + "encoding/base64" "encoding/json" - "log" + "io/ioutil" + "sort" "strconv" "time" - "webserver/extend/logger" + "basic.com/valib/logger.git" + "webserver/cache" + "webserver/service" "github.com/gin-gonic/gin" "github.com/satori/go.uuid" @@ -25,54 +32,50 @@ // @Produce json // @Tags dbperson 搴曞簱浜哄憳 // @Param obj body models.Dbtablepersons true "搴曞簱浜哄憳鏁版嵁" -// @Success 200 {object} json "{"code":200, msg:"鐩綍缁撴瀯鏁版嵁", success:true}" -// @Failure 500 {string} json "{"code":500, msg:"杩斿洖閿欒淇℃伅", success:false}" -// @Failure 400 {object} json code.RequestParamError +// @Success 200 {string} json "{"code":200, msg:"鐩綍缁撴瀯鏁版嵁", success:true}" +// @Failure 500 {string} json "{"code":500, msg:"杩斿洖閿欒淇℃伅", success:false}" // @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, "") } } func addDbPerson(dbperson *models.Dbtablepersons) (result map[string]interface{}) { - personId := uuid.NewV4().String() // 浠ュ悗鏇夸唬 渚濇嵁鐢熸垚瑙勫垯 + personId := uuid.NewV4().String() dbperson.Id = personId dbperson.PriInsert() - url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport + - "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexName + "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexType + "/" + personId + "?refresh=wait_for" - personbytes, e := json.Marshal(dbperson) - if e != nil { - logger.Debug("Json marshaling failed锛�%s\n", e) - } - params := string(personbytes) - logger.Debug("璇锋眰url:%s;\n 璇锋眰鍙傛暟params:%s", url, params) - data, _ := esutil.PutEsDataReq(url, params) - //if data["_id"] !=""{ - // //閫氱煡姣斿杩涚▼缂撳瓨鏇存柊 - // discovery.AddDbMessage(&protomsg.EsPersonCacheChange{ - // Type: protomsg.EsCacheChanged_T_DbTablePerson, - // PersonId: personId, - // TableId: []string{ dbperson.TableId }, - // Feature: dbperson.FaceFeature, - // Action: protomsg.DbAction_Insert, - // }) - //} - //c.JSON(200, changeEsRespData(data, "娣诲姞浜哄憳鎴愬姛")) - result = changeEsRespData(data, "娣诲姞鎴愬姛") + var pApi dbapi.DbPersonApi + paramBody := util.Struct2Map(dbperson) + b, _ := pApi.AddDbPerson(paramBody) + result = map[string]interface{}{} + if b { + result["code"] = 200 + data := make(map[string]interface{}) + data["uuid"] = personId + result["data"] = data + result["success"] = true + result["msg"] = "娣诲姞鎴愬姛" + } else { + result["data"] = nil + result["success"] = false + result["msg"] = "鏈嶅姟鍣ㄥ紓甯�" + result["code"] = 500 + } return result } @@ -87,53 +90,234 @@ // @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) { - //code.Success.Message = "淇敼搴曞簱浜哄憳鎴愬姛" - //if dbperson.Enable == 1 { - // discovery.AddDbMessage(&protomsg.EsPersonCacheChange{ - // Type: protomsg.EsCacheChanged_T_DbTablePerson, - // PersonId: dbperson.Id, - // TableId: []string{ dbperson.TableId }, - // Feature: "", - // Action: protomsg.DbAction_Insert, - // }) - //} else { - // discovery.AddDbMessage(&protomsg.EsPersonCacheChange{ - // Type: protomsg.EsCacheChanged_T_DbTablePerson, - // PersonId: dbperson.Id, - // TableId: []string{ dbperson.TableId }, - // Feature: "", - // Action: protomsg.DbAction_Delete, - // }) - //} - 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, "") } } +// @Summary 搴曞簱浜哄憳浠ュ浘鎼滃浘 +// @Description 搴曞簱浜哄憳浠ュ浘鎼滃浘 +// @Accept json +// @Produce json +// @Tags dbperson 搴曞簱浜哄憳 +// @Param condition body models.EsSearch true "搴曞簱浠ュ浘鎼滃浘鍙傛暟" +// @Success 200 {string} json "{"code":200, msg:"", success:true}" +// @Failure 500 {string} json "{"code":500, msg:"", success:false}" +// @Router /data/api-v/dbperson/queryDbPersonsByCompare [POST] +func (dbc DbPersonController) QueryDbPersonsByCompare(c *gin.Context) { + var searchBody models.EsSearch + err := c.BindJSON(&searchBody) + if err !=nil || searchBody.PicUrl == "" || len(searchBody.DataBases) == 0{ + util.ResponseFormat(c, code.RequestParamError, "鍙傛暟鏈夎") + return + } + var faceB []byte + if face,ok := faceExtractedMap[searchBody.PicUrl];!ok{ + util.ResponseFormat(c, code.RequestParamError, "璇烽噸鏂颁笂浼犲浘鐗�") + return + } else { + faceB = face.FaceBytes + } + var sysSetApi dbapi.SysSetApi + analyServerId := "" + flag, sysconf := sysSetApi.GetServerInfo() + if flag { + analyServerId = sysconf.ServerId + } else { + util.ResponseFormat(c, code.ComError, "analyServerId涓虹┖锛岄厤缃湁璇�") + return + } + arg := protomsg.CompareArgs{ + FaceFeature: faceB, + CompareThreshold: 0.6, + } + arg.TableIds = searchBody.DataBases + arg.AnalyServerId = analyServerId + compareService := service.NewFaceCompareService(arg) + var totalData service.CompareList + + dbPersonTargets := compareService.CompareDbPersons() + if dbPersonTargets !=nil { + totalData = append(totalData,*dbPersonTargets...) + } + + service.SetCompResultByNum(&service.CompareOnce{ + CompareNum: compareService.CompareNum, + CompareData: &totalData, + }) + + m := make(map[string]interface{},3) + if totalData != nil && totalData.Len() > 0{ + sort.Sort(totalData) + total := totalData.Len() + + m["compareNum"] = compareService.CompareNum + m["total"] = total + var sCompResult protomsg.SdkCompareResult + if total <= searchBody.Size { + sCompResult.CompareResult = totalData + } else { + sCompResult.CompareResult = totalData[0:searchBody.Size] + } + resultList := FillDbPersonDataToCompareResult(&sCompResult) + m["totalList"] = resultList + + } else { + m["total"] = 0 + m["compareNum"] = compareService.CompareNum + m["totalList"] = []CompareResult{} + } + util.ResponseFormat(c,code.Success,m) +} + +//濉厖鍚戝墠绔繑鍥炵殑鏁版嵁 +func FillDbPersonDataToCompareResult(compResult *protomsg.SdkCompareResult) []DbPersonVo { + + var resultList = make([]DbPersonVo, len(compResult.CompareResult)) + dbPersonM := make(map[string]ScoreIndex, 0) + personIds := make([]string,0) + + for idx,v :=range compResult.CompareResult{ + dbPersonM[v.Id] = ScoreIndex{ + Index: idx, + CompareScore: v.CompareScore, + } + personIds = append(personIds,v.Id) + } + logger.Debug("comp len(personIds):", len(personIds)) + + var dbpersons []protomsg.Dbperson + if len(personIds) >0 { + var dbpApi dbapi.DbPersonApi + dbpersons, _ = dbpApi.Dbpersoninfosbyid(personIds) + } + + if len(dbpersons) >0 { + var dtApi dbapi.DbTableApi + for _,p :=range dbpersons { + var dbP = DbPersonVo { + PersonId: p.Id, + IdCard: p.IdCard, + CompareScore: util.ParseScore(dbPersonM[p.Id].CompareScore), + MonitorLevel: p.MonitorLevel, + PersonName: p.PersonName, + PersonPicUrl: p.PersonPicUrl, + PhoneNum: p.PhoneNum, + Sex: p.Sex, + TableId: p.TableId, + Enable: p.Enable, + } + dbTableInfos, _ := dtApi.DbtablesById([]string{ p.TableId }) + if dbTableInfos !=nil{ + dbP.BwType = dbTableInfos[0].BwType + dbP.TableName = dbTableInfos[0].TableName + } + resultList[dbPersonM[p.Id].Index] = dbP + } + } + + return resultList +} + +// @Summary 鏇存柊搴曞簱浜鸿劯鐓х墖 +// @Description 鏇存柊搴曞簱浜鸿劯鐓х墖 +// @Accept json +// @Produce json +// @Tags 搴曞簱浜哄憳 +// @Param id formData string true "浜哄憳id" +// @Param file formData file true "浜鸿劯鍥剧墖" +// @Success 200 {string} json "{"code":200, msg:"", success:true}" +// @Failure 500 {string} json "{"code":500, msg:"", success:false}" +// @Router /data/api-v/dbperson/updateFace [POST] +func (dbc DbPersonController) UpdateFace(c *gin.Context) { + file, header, err := c.Request.FormFile("file") + id := c.Request.FormValue("id") + if err != nil || id == "" { + util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎") + return + } + //鏂囦欢鐨勫悕绉� + filename := header.Filename + defer file.Close() + // weedfs 涓婁紶 + fileBytes, err := ioutil.ReadAll(file) + if err !=nil { + util.ResponseFormat(c,code.ComError,"鍥剧墖璇诲彇澶辫触") + return + } + + //灏嗕笂浼犵殑鍥剧墖浜や汉鑴告娴嬪拰浜鸿劯鎻愬彇锛岃幏寰楃壒寰� + var faceBase64="" + faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes, time.Second*5) + if faceArr ==nil { + util.ResponseFormat(c,code.ComError,"鏈埌鎻愬彇浜鸿劯") + return + } + var rcFace *protomsg.Rect + if err ==nil && len(faceArr) >0 { + if len(faceArr) >1 { + util.ResponseFormat(c,code.ComError,"浜鸿劯澶т簬涓�寮狅紝璇锋崲涓�寮犱汉鑴稿浘鐗�") + return + } + for _,r := range faceArr { + //鎷垮埌浜鸿劯鐨勫潗鏍� + rcFace = r.Pos.RcFace + + faceBase64 = base64.StdEncoding.EncodeToString(r.Feats)//鑾峰彇鎻愬彇鍒扮殑绗竴寮犱汉鑴哥壒寰� + break + } + } + localConf, err2 := cache.GetServerInfo() + if err2 !=nil || localConf.WebPicIp == "" { + logger.Debug("localConfig is wrong!!!") + return + } + var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit" + //鏍规嵁浜鸿劯鍧愭爣鎵e嚭浜鸿劯灏忓浘 + t1 := time.Now() + cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom)) + logger.Debug("SubImg鐢ㄦ椂锛�", time.Since(t1)) + t1 = time.Now() + weedFilePath, e := WeedFSClient.UploadFile(weedfsUri, filename, cutFaceImgData) + logger.Debug("涓婁紶鍒皐eedfs鐢ㄦ椂:", time.Since(t1)) + t1 = time.Now() + if e != nil { + util.ResponseFormat(c,code.ComError,"浜鸿劯涓婁紶澶辫触") + return + } + m := map[string]interface{} { + "faceFeature": faceBase64, + "personPicUrl": weedFilePath, + } + util.ResponseFormat(c,code.Success, m) + + //var dbpApi dbapi.DbPersonApi + //b,d := dbpApi.UpdateFace(id,faceBase64,weedFilePath) + //if b { + // util.ResponseFormat(c,code.UpdateSuccess,d) + //} else { + // util.ResponseFormat(c,code.UpdateFail,"鏇存柊浜鸿劯澶辫触") + //} +} + func UpdateDbPersonsOfDbTable(id string) (message string) { - url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport + + localConf, err2 := cache.GetServerInfo() + if err2 !=nil || localConf.AlarmIp == "" || localConf.ServerId == "" { + logger.Debug("localConfig is wrong!!!") + return "淇敼澶辫触" + } + url := "http://" + localConf.AlarmIp + ":" + strconv.Itoa(int(localConf.AlarmPort)) + "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexName + "/_update_by_query?refresh" jsonDSL := ` { @@ -183,81 +367,48 @@ // @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) { - //code.Success.Message = "鍒犻櫎搴曞簱浜哄憳鎴愬姛" - //閫氱煡姣斿杩涚▼锛屾浜哄凡鍒犻櫎 - //dbperArr, e := esApi.Dbpersoninfosbyid([]string{uuid}, config.EsInfo.EsIndex.Dbtablepersons.IndexName, config.EsInfo.Masterip, config.EsInfo.Httpport) - //if e ==nil && len(dbperArr) > 0{ - // if dbperArr[0].TableId !=""{ - // discovery.AddDbMessage(&protomsg.EsPersonCacheChange{ - // Type: protomsg.EsCacheChanged_T_DbTablePerson, - // PersonId: uuid, - // TableId: []string{ dbperArr[0].TableId }, - // Feature: "", - // Action: protomsg.DbAction_Delete, - // }) - // } - //} - - 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, "鍒犻櫎澶辫触") } } + +type DelMultiPerson []string // @Summary 鍒犻櫎搴曞簱浜哄憳 // @Description 鍒犻櫎搴撲汉鍛� // @Accept json // @Produce json // @Tags dbperson 搴曞簱浜哄憳 -// @Param uuids body []string true "搴曞簱浜哄憳ids " +// @Param uuids body controllers.DelMultiPerson true "搴曞簱浜哄憳ids " // @Success 200 {string} json "{"code":200, msg:"鐩綍缁撴瀯鏁版嵁", success:true}" // @Failure 500 {string} json "{"code":500, msg:"杩斿洖閿欒淇℃伅", success:false}" // @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, - // }) - // } - // } - //} + var uuids DelMultiPerson + err := c.BindJSON(&uuids) + if err !=nil || len(uuids)==0{ + util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎") + return + } + logger.Debug("DeleteMoreDbPerson len(uuids):",len(uuids)) + var pApi dbapi.DbPersonApi + m := map[string]interface{}{ + "ids": uuids, + } + b, _ := pApi.DeleteMoreDbPerson(m) + 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, "鍒犻櫎澶辫触") } } @@ -266,152 +417,70 @@ // @Accept json // @Produce json // @Tags dbperson 搴曞簱浜哄憳 -// @Param reqMap body map false "{"tableId":"","orderName":"uuid","orderType":"desc","contentValue":"","page":1,"size":8}" +// @Param reqMap body controllers.DbtSearch false "{"tableId":"","orderName":"id","orderType":"desc","contentValue":"","page":1,"size":8}" // @Success 200 {string} json "{"code":200, "msg":"鐩綍缁撴瀯鏁版嵁", "success":true,"data":{}}" // @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" - if reqBody["orderName"] != nil { - orderName = reqBody["orderName"].(string) - } // 鍒楀悕 - orderType := "desc" - if reqBody["orderType"] != nil { - orderType = reqBody["orderType"].(string) - } // 鍒楃被鍨� - contentValue := "" - if reqBody["contentValue"] != nil { - contentValue = reqBody["contentValue"].(string) - } //杈撳叆妗嗗唴瀹� - page := 1 - if reqBody["page"] != nil { - page = int(reqBody["page"].(float64)) - } // 椤电爜 - size := 8 - 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" { - orderType = "desc" - } 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 + "\"}}}" - 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) -} - -// @Summary 鏌ヨ搴曞簱浜哄憳鍒楄〃 -// @Description 鏌ヨ搴撲汉鍛樺垪琛� -// @Accept json -// @Produce json -// @Tags dbperson 搴曞簱浜哄憳 -// @Param reqMap body map false "{"tableId":"","orderName":"uuid","orderType":"desc","contentValue":"","page":1,"size":8}" -// @Success 200 {string} json "{"code":200, "msg":"鐩綍缁撴瀯鏁版嵁", "success":true,"data":{}}" -// @Failure 500 {string} json "{code:500, msg:"杩斿洖閿欒淇℃伅", success:false,data:{}}" -// @Router /data/api-v/dbperson/queryDbPersonsByCampare [POST] -func (dbc DbPersonController) QueryDbPersonsByCampare(c *gin.Context) { - url := "http://" + config.EsInfo.Masterip + ":" + config.EsInfo.Httpport + - "/" + config.EsInfo.EsIndex.Dbtablepersons.IndexName + "/_search" // ?refresh=wait_for - reqBody := make(map[string]interface{}, 5) - c.BindJSON(&reqBody) - tableId := "" - if reqBody["tableId"] != nil { - tableId = reqBody["tableId"].(string) - } - orderName := "_id" - if reqBody["orderName"] != nil { - orderName = reqBody["orderName"].(string) - } // 鍒楀悕 - orderType := "desc" - if reqBody["orderType"] != nil { - orderType = reqBody["orderType"].(string) - } // 鍒楃被鍨� - faceUrl := "" - var threshold float32 - if reqBody["faceUrl"] != nil && reqBody["threshold"] != nil { - faceUrl = reqBody["faceUrl"].(string) - threshold = float32(reqBody["threshold"].(float64)) - } else { - util.ResponseFormat(c, code.RequestParamError, nil) // 鍥剧墖璺緞鏈夐棶棰� + //reqBody := make(map[string]interface{}, 5) + var reqBody DbtSearch + err := c.BindJSON(&reqBody) + if err !=nil || reqBody.Page <=0 || reqBody.Size <=0 { + util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎") return } - //杈撳叆妗嗗唴瀹� + + if reqBody.TableId == "" { + util.ResponseFormat(c,code.RequestParamError,"鍙傛暟鏈夎锛屽簳搴搃d涓嶈兘涓虹┖") + return + } + orderName := "id" + if reqBody.OrderName != "" { + orderName = reqBody.OrderName + } // 鍒楀悕 + orderType := "desc" + if reqBody.OrderType != "" { + orderType = reqBody.OrderType + } + //鎼滅储鍐呭 + contentValue := reqBody.ContentValue + page := 1 - if reqBody["page"] != nil { - page = int(reqBody["page"].(float64)) + if reqBody.Page >1 { + page = reqBody.Page } // 椤电爜 size := 8 - if reqBody["size"] != nil { - size = int(reqBody["size"].(float64)) + if reqBody.Size >8 { + size = reqBody.Size } // 鏉℃暟 - from := (page - 1) * size - syncTerm := "" - contentParam := "" - if tableId == "all" || tableId == "" { - // / 鎵�鏈変汉鍛� - } else { - syncTerm = "{\"term\":{\"tableId\":\"" + tableId + "\"}}" // 搴曞簱浜哄憳 - } + if orderType == "desc" { orderType = "desc" } else { orderType = "asc" } + var pApi dbapi.DbPersonApi + paramBody := map[string]interface{}{ + "tableId": reqBody.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{}{}) + } +} - //params := "{\"query\":{\"bool\":{\"filter\":[" + - // "{\"term\":{\"isDelete\":\"0\"}}" + syncTerm + "]" + contentParam + "}},\"from\":" + strconv.Itoa(from) + ",\"size\":" + strconv.Itoa(size) + ",\"sort\":{\"" + orderName + "\":{\"order\":\"" + orderType + "\"}}}" - params := "{\"query\":{\"bool\":{\"must_not\":[" + - "{\"term\":{\"isDelete\":\"1\"}}],\"filter\":[" + syncTerm + "]" + contentParam + "}},\"from\":" + strconv.Itoa(from) + ",\"size\":" + strconv.Itoa(size) + ",\"sort\":{\"" + orderName + "\":{\"order\":\"" + orderType + "\"}}}" - logger.Debug("璇锋眰url:%s;\n 璇锋眰鍙傛暟params:%s", url, params) - data := esutil.GetEsDataReq(url, params, true) - featByte := make([]byte, 0, 1024) - if len(faceUrl) > 3 { // linux - /*fileName := picUrl // picIp 瀹氫箟鍦� fileController weedfs 鏂囦欢鏈嶅姟鍣� 璁块棶 璺緞 鍓嶇紑 - detect := gorun.GetSimpleFaceDetect(fileName) - if len(detect) != 1 { - util.ResponseFormat(c,code.TooManyFeatureFindError,"鍥剧墖鐗瑰緛鍊艰繃澶�") - return - }else { - featByte = detect[0]["feature"].([]byte) - }*/ // linux - } - to := page * size - datalist := sourceCompare(data["datalist"].([]interface{}), false, featByte, threshold) - total := len(datalist) - if from > total { - from = total - } - if to > total { - to = total - } - data["datalist"] = datalist[from:to] - data["total"] = len(datalist) - //c.JSON(200, data) - util.ResponseFormat(c, code.Success, data) +type DbtSearch struct { + TableId string `json:"tableId"` + OrderName string `json:"orderName"` + OrderType string `json:"orderType"` + ContentValue string `json:"contentValue"` + Page int `json:"page"` + Size int `json:"size"` } -- Gitblit v1.8.0