You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
2.9 KiB

4 years ago
  1. package grmi
  2. import (
  3. "github.com/kataras/iris/v12"
  4. "leit.com/LAPP_GAAS_GFrame/utils"
  5. "leit.com/LAPP_GAAS_GFrame/web/models"
  6. "strings"
  7. "time"
  8. )
  9. const PageSize = "pageSize"
  10. const PageIndex = "pageIndex"
  11. func Log(user *models.Usertab, codeFile string, function string, message string) {
  12. logs := new(models.LeitServerLog)
  13. logs.File = codeFile
  14. logs.Level = "info"
  15. logs.Function = function
  16. logs.Message = message
  17. logs.Operator = user.Userid
  18. logs.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
  19. logs.InsertRecord()
  20. }
  21. func GetPageSize(ctx iris.Context) int {
  22. if value := ctx.URLParam(PageSize); value != "" {
  23. return utils.ValueToInt(value, 0)
  24. }
  25. return 10
  26. }
  27. func GetPageIndex(ctx iris.Context) int {
  28. if index := ctx.URLParam(PageIndex); index != "" {
  29. return utils.ValueToInt(index, 0)
  30. }
  31. return 1
  32. }
  33. func BuildCondtion(meta map[string]Field, ctx iris.Context) ([]Predicate, error) {
  34. predicates := make([]Predicate, 0, 10)
  35. for name, value := range ctx.URLParams() {
  36. if field, ok := meta[strings.ToLower(name)]; ok {
  37. var predicateValue interface{} = value
  38. var err error
  39. switch field.GoType {
  40. case "int":
  41. {
  42. predicateValue, err = ctx.URLParamInt64(name)
  43. if err != nil {
  44. return nil, err
  45. }
  46. }
  47. case "int8":
  48. {
  49. predicateValue, err = ctx.URLParamInt64(name)
  50. if err != nil {
  51. return nil, err
  52. }
  53. }
  54. case "int16":
  55. {
  56. predicateValue, err = ctx.URLParamInt64(name)
  57. if err != nil {
  58. return nil, err
  59. }
  60. }
  61. case "int32":
  62. {
  63. predicateValue, err = ctx.URLParamInt64(name)
  64. if err != nil {
  65. return nil, err
  66. }
  67. }
  68. case "int64":
  69. {
  70. predicateValue, err = ctx.URLParamInt64(name)
  71. if err != nil {
  72. return nil, err
  73. }
  74. }
  75. case "uint":
  76. {
  77. predicateValue, err = ctx.URLParamInt64(name)
  78. if err != nil {
  79. return nil, err
  80. }
  81. }
  82. case "uint8":
  83. {
  84. predicateValue, err = ctx.URLParamInt64(name)
  85. if err != nil {
  86. return nil, err
  87. }
  88. }
  89. case "uint16":
  90. {
  91. predicateValue, err = ctx.URLParamInt64(name)
  92. if err != nil {
  93. return nil, err
  94. }
  95. }
  96. case "uint32":
  97. {
  98. predicateValue, err = ctx.URLParamInt64(name)
  99. if err != nil {
  100. return nil, err
  101. }
  102. }
  103. case "uint64":
  104. {
  105. continue
  106. }
  107. case "float32":
  108. {
  109. predicateValue, err = ctx.URLParamFloat64(name)
  110. if err != nil {
  111. return nil, err
  112. }
  113. }
  114. case "float64":
  115. {
  116. predicateValue, err = ctx.URLParamFloat64(name)
  117. if err != nil {
  118. return nil, err
  119. }
  120. }
  121. case "grmi.DateTime":
  122. {
  123. continue
  124. }
  125. case "bool":
  126. {
  127. predicateValue, err = ctx.URLParamBool(name)
  128. if err != nil {
  129. return nil, err
  130. }
  131. }
  132. case "string":
  133. {
  134. predicateValue = ctx.URLParamTrim(name)
  135. }
  136. }
  137. predicates = append(predicates, Predicate{field.Name, "", predicateValue})
  138. }
  139. }
  140. return predicates, nil
  141. }