123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package service
- import (
- "app.yhyue.com/moapp/jybase/common"
- "app.yhyue.com/moapp/jybase/encrypt"
- "fmt"
- "app.yhyue.com/moapp/jybase/redis"
- MC "bp.jydev.jianyu360.cn/BaseService/biService/entity"
- "bp.jydev.jianyu360.cn/BaseService/biService/rpc/biservice"
- "github.com/gogf/gf/v2/util/gconv"
- )
- type SqlService struct {
- }
- func (l SqlService) SqlManage(in *biservice.SqlManageReq) []byte {
- sqlData := MC.BiService.FindOne("sql_manage", map[string]interface{}{
- "id": common.Int64All(in.Id),
- }, "", "")
- if sqlData == nil || len(*sqlData) == 0 {
- return []byte{}
- }
- dbType := (*sqlData)["db_type"]
- cache_time := common.IntAll((*sqlData)["cache_time"])
- key := common.GetMd5String(gconv.String(in))
- if cache_time != 0 {
- dataStr := redis.Get("newother", key)
- if dataStr != nil {
- data := gconv.Bytes(dataStr)
- return data
- }
- }
- rs := &[]map[string]interface{}{}
- count := int64(0)
- switch dbType {
- case "es":
- count, rs = MC.EntEs.GetWithCount(common.InterfaceToStr((*sqlData)["db_name"]), common.InterfaceToStr((*sqlData)["db_name"]), "", Sqlformat(common.InterfaceToStr((*sqlData)["content"]), *in))
- }
- for k, v := range *rs {
- (*rs)[k]["id"] = encrypt.EncodeArticleId2ByCheck(common.InterfaceToStr(v["_id"]))
- delete((*rs)[k], "_id")
- }
- result := map[string]interface{}{
- "data": rs,
- "count": count,
- }
- resultByte := gconv.Bytes(result)
- if count > 0 && cache_time != 0 {
- redis.Put("newother", key, result, cache_time)
- }
- return resultByte
- }
- func Sqlformat(sqlStr string, sqlData biservice.SqlManageReq) string {
- data := []interface{}{}
- for _, v := range sqlData.Params {
- switch v.Type {
- case "string":
- data = append(data, v.Value)
- case "int":
- data = append(data, common.Int64All(v.Value))
- }
- }
- return fmt.Sprintf(sqlStr, data...)
- }
|