search_web_query.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package show
  2. import (
  3. "fmt"
  4. "strings"
  5. "go-common/library/xstr"
  6. )
  7. const (
  8. _queryInsertSQL = "INSERT INTO search_web_query(sid,value) VALUES %s"
  9. _queryEditSQL = "UPDATE search_web_query SET value = CASE %s END WHERE id IN (%s)"
  10. )
  11. //SearchWebQuery search web query
  12. type SearchWebQuery struct {
  13. ID int64 `json:"id" form:"id"`
  14. SID int64 `json:"sid" form:"sid" gorm:"column:sid"`
  15. Value string `json:"value" form:"value"`
  16. Deleted int `json:"deleted" form:"deleted"`
  17. }
  18. // TableName .
  19. func (a SearchWebQuery) TableName() string {
  20. return "search_web_query"
  21. }
  22. // BatchAddQuerySQL .
  23. func BatchAddQuerySQL(sID int64, data []*SearchWebQuery) string {
  24. if len(data) == 0 {
  25. return ""
  26. }
  27. var rowStrings []string
  28. for _, v := range data {
  29. rowStrings = append(rowStrings, fmt.Sprintf("(%d,'%s')", sID, v.Value))
  30. }
  31. return fmt.Sprintf(_queryInsertSQL, strings.Join(rowStrings, ","))
  32. }
  33. // BatchEditQuerySQL .
  34. func BatchEditQuerySQL(querys []*SearchWebQuery) string {
  35. if len(querys) == 0 {
  36. return ""
  37. }
  38. var (
  39. oidsStr string
  40. ids []int64
  41. )
  42. for _, query := range querys {
  43. oidsStr = fmt.Sprintf("%s WHEN id = %d THEN '%s'", oidsStr, query.ID, query.Value)
  44. ids = append(ids, query.ID)
  45. }
  46. return fmt.Sprintf(_queryEditSQL, oidsStr, xstr.JoinInts(ids))
  47. }