final_mat_auxiliary_presets.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package final
  2. import (
  3. "fmt"
  4. "strings"
  5. "zhiyuan/pkg/db"
  6. "github.com/gin-gonic/gin"
  7. )
  8. type FinalMatAuxiliaryPresets struct {
  9. ID int64 `json:"id" prop:"add:false"`
  10. AuxiliaryId int64 `json:"auxiliaryId" label:"辅材类型" type:"int" prop:"edit" search:"="`
  11. Name string `json:"name" label:"名称" type:"string" prop:"add edit" search:"like"`
  12. OrderAt int64 `json:"order_at" prop:"add:false select:false"`
  13. DeletedAt int64 `json:"deleted_at" prop:"add:false select:false"`
  14. CreatedAt int64 `json:"created_at" prop:"add:false"`
  15. UpdatedAt int64 `json:"updated_at" prop:"add:false"`
  16. db.BaseModel
  17. }
  18. func (FinalMatAuxiliaryPresets) TableName() string {
  19. return "zy_final_mat_auxiliary_presets"
  20. }
  21. func (model FinalMatAuxiliaryPresets) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool {
  22. return true
  23. }
  24. func (model FinalMatAuxiliaryPresets) ListAfter(c *gin.Context, data map[string]interface{}, list []map[string]interface{}) []map[string]interface{} {
  25. ids := make([]int64, 0)
  26. idmap := make(map[int64]int)
  27. for i, v := range list {
  28. id, _ := db.ToInt64(v["id"])
  29. ids = append(ids, id)
  30. idmap[id] = i
  31. }
  32. datas, _ := db.GetModelMap(db.Type(FinalMatAuxiliaryPresetsItem{}), map[string]interface{}{
  33. fmt.Sprintf("`%s`.`presetsId` in", FinalMatAuxiliaryPresetsItem{}.TableName()): ids,
  34. fmt.Sprintf("`%s`.`deleted_at`", FinalMatAuxiliaryPresetsItem{}.TableName()): 0,
  35. }, nil)
  36. for _, v := range datas {
  37. id, _ := db.ToInt64(v["presetsId"])
  38. if n, ok := idmap[id]; ok {
  39. items := make([]map[string]interface{}, 0)
  40. if is, ok := list[n]["items"].([]map[string]interface{}); ok {
  41. items = is
  42. }
  43. items = append(items, v)
  44. list[n]["items"] = items
  45. list[n]["item_"+db.ToString(v["itemId"])] = v["num"]
  46. }
  47. }
  48. return list
  49. }
  50. func (FinalMatAuxiliaryPresets) OnePrivilege(c *gin.Context, id int64) bool {
  51. return true
  52. }
  53. func (FinalMatAuxiliaryPresets) AddPrivilege(c *gin.Context, data map[string]interface{}, post map[string]interface{}) error {
  54. return nil
  55. }
  56. func (FinalMatAuxiliaryPresets) EditPrivilege(c *gin.Context, id int64, data map[string]interface{}, post map[string]interface{}) error {
  57. for name, value := range post {
  58. s := strings.Split(name, "_")
  59. if len(s) == 2 && s[0] == "item" {
  60. if itemId, ok := db.ToInt64(s[1]); ok {
  61. num, _ := db.ToInt64(value)
  62. var item FinalMatAuxiliaryPresetsItem
  63. db.GetModel(map[string]interface{}{
  64. "presetsId": id,
  65. "itemId": itemId,
  66. "deleted_at": 0,
  67. }, &item)
  68. if item.ID == 0 {
  69. _, err := db.InsertModel(db.Type(item), map[string]interface{}{
  70. "presetsId": id,
  71. "itemId": itemId,
  72. "num": num,
  73. })
  74. if err != nil {
  75. return err
  76. }
  77. } else {
  78. err := db.UpdateModel(db.Type(item), item.ID, map[string]interface{}{
  79. "num": num,
  80. })
  81. if err != nil {
  82. return err
  83. }
  84. }
  85. }
  86. }
  87. }
  88. return nil
  89. }
  90. func (FinalMatAuxiliaryPresets) DelPrivilege(c *gin.Context, id int64) error {
  91. return nil
  92. }
  93. func (FinalMatAuxiliaryPresets) OrderField() string {
  94. return "order_at"
  95. }
  96. func (FinalMatAuxiliaryPresets) Page() bool {
  97. return false
  98. }
  99. func (FinalMatAuxiliaryPresets) Count() bool {
  100. return true
  101. }
  102. func (model FinalMatAuxiliaryPresets) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel {
  103. return []db.JoinModel{}
  104. }