sqlService.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package service
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jybase/encrypt"
  5. elastic "app.yhyue.com/moapp/jybase/es"
  6. MC "bp.jydev.jianyu360.cn/BaseService/biCenter/api/common"
  7. "bp.jydev.jianyu360.cn/BaseService/biCenter/api/internal/types"
  8. "fmt"
  9. )
  10. type SqlService struct {
  11. }
  12. func (l SqlService) SqlManage(in *types.SqlManageReq) (*[]map[string]interface{}, int64) {
  13. sqlData := MC.BaseMysql.FindOne("sql_manage", map[string]interface{}{
  14. "id": common.Int64All(in.Id),
  15. }, "", "")
  16. if sqlData == nil || len(*sqlData) == 0 {
  17. return &[]map[string]interface{}{}, 0
  18. }
  19. dbType := (*sqlData)["db_type"]
  20. rs := &[]map[string]interface{}{}
  21. count := int64(0)
  22. switch dbType {
  23. case "es":
  24. count, rs = elastic.GetWithCount(common.InterfaceToStr((*sqlData)["db_name"]), common.InterfaceToStr((*sqlData)["db_name"]), "", Sqlformat(common.InterfaceToStr((*sqlData)["content"]), *in))
  25. }
  26. for k, v := range *rs {
  27. (*rs)[k]["id"] = encrypt.EncodeArticleId2ByCheck(common.InterfaceToStr(v["id"]))
  28. delete((*rs)[k], "_id")
  29. }
  30. return rs, count
  31. }
  32. func Sqlformat(sqlStr string, sqlData types.SqlManageReq) string {
  33. data := []interface{}{}
  34. for _, v := range sqlData.Params {
  35. switch v.Type {
  36. case "string":
  37. data = append(data, v.Value)
  38. case "int":
  39. data = append(data, common.Int64All(v.Value))
  40. }
  41. }
  42. return fmt.Sprintf(sqlStr, data...)
  43. }