final_mat_auxiliary_brand.go 3.5 KB

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