final_material_settle_process.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package final
  2. import (
  3. "errors"
  4. "fmt"
  5. "strings"
  6. "zhiyuan/pkg/db"
  7. "github.com/gin-gonic/gin"
  8. )
  9. type FinalMaterialSettleProcess struct {
  10. ID int64 `json:"id" prop:"add:false"`
  11. SettleId int64 `json:"settle_id" label:"材料ID" type:"int"`
  12. CollectId int64 `json:"collect_id" label:"汇总ID" type:"int"`
  13. Explain string `json:"explain" label:"说明" type:"string" search:"like"`
  14. Pictures string `json:"pictures" label:"图片" type:"string" search:"like"`
  15. Type int64 `json:"type" label:"类型" type:"int" prop:"add" default:"0"`
  16. Signature string `json:"signature" label:"签名" prop:"add" type:"string"`
  17. State int64 `json:"state" label:"状态" type:"int" prop:"add" default:"0"`
  18. CreatedId int64 `json:"created_id" label:"创建人员" type:"int" prop:"add:false" search:"="`
  19. CreatedName string `json:"created_name" prop:"add:false select:created.username"`
  20. CreatedPhone string `json:"created_phone" prop:"add:false select:created.phone"`
  21. CreatedHeadimgurl string `json:"created_headimgurl" prop:"add:false select:created.headimgurl"`
  22. DeletedAt int64 `json:"deleted_at" prop:"add:false select:false"`
  23. CreatedAt int64 `json:"created_at" prop:"add:false"`
  24. UpdatedAt int64 `json:"updated_at" prop:"add:false"`
  25. db.BaseModel
  26. }
  27. func (FinalMaterialSettleProcess) TableName() string {
  28. return "zy_final_material_settle_process"
  29. }
  30. func (model FinalMaterialSettleProcess) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool {
  31. settle_id, _ := db.ToInt64(data["settle_id"])
  32. collect_id, _ := db.ToInt64(data["collect_id"])
  33. if settle_id != 0 && collect_id != 0 {
  34. s.Where = append(s.Where, fmt.Sprintf("`%s`.`settle_id` = %s OR `%s`.`collect_id` = %s", model.TableName(), s.Param(settle_id), model.TableName(), s.Param(collect_id)))
  35. } else if settle_id != 0 {
  36. s.Where = append(s.Where, fmt.Sprintf("`%s`.`settle_id` = %s", model.TableName(), s.Param(settle_id)))
  37. } else if collect_id != 0 {
  38. s.Where = append(s.Where, fmt.Sprintf("`%s`.`collect_id` = %s", model.TableName(), s.Param(collect_id)))
  39. }
  40. return true
  41. }
  42. func (FinalMaterialSettleProcess) OnePrivilege(c *gin.Context, id int64) bool {
  43. return true
  44. }
  45. func (FinalMaterialSettleProcess) AddPrivilege(c *gin.Context, data map[string]interface{}, post map[string]interface{}) error {
  46. data["created_id"] = c.GetInt("adminID")
  47. typ, _ := db.ToInt64(data["type"])
  48. settleID, _ := db.ToInt64(post["settle_id"])
  49. collectID, _ := db.ToInt64(data["collect_id"])
  50. state, _ := db.ToInt64(data["state"])
  51. if settleID != 0 {
  52. var model FinalMaterialSettle
  53. db.GetModel(map[string]interface{}{
  54. "id": settleID,
  55. }, &model)
  56. if model.ID == 0 {
  57. return errors.New("没有权限")
  58. }
  59. if typ == 2 && model.State == 2 && state != 0 {
  60. datas := map[string]interface{}{
  61. "state": -1,
  62. }
  63. ids := strings.Split(model.Orders, ",")
  64. err := db.UpdateModels(db.Type(FinalMaterialOrder{}), map[string]interface{}{
  65. "id in": ids,
  66. }, map[string]interface{}{
  67. "state": 11,
  68. "settle_id": 0,
  69. })
  70. if err != nil {
  71. return err
  72. }
  73. err = db.UpdateModel(db.Type(model), settleID, datas)
  74. if err != nil {
  75. return err
  76. }
  77. } else {
  78. return errors.New("没有权限")
  79. }
  80. } else if collectID != 0 {
  81. var model FinalSiteCollect
  82. db.GetModel(map[string]interface{}{
  83. "id": collectID,
  84. }, &model)
  85. if model.ID == 0 || model.State != typ {
  86. return errors.New("没有权限")
  87. }
  88. if state != 0 {
  89. return errors.New("没有权限")
  90. }
  91. s := model.State + 1
  92. err := db.UpdateModel(db.Type(model), collectID, map[string]interface{}{
  93. "state": s,
  94. })
  95. if err != nil {
  96. return errors.New("没有权限")
  97. }
  98. err = db.UpdateModels(db.Type(FinalMaterialSettle{}), map[string]interface{}{
  99. "collect_id": collectID,
  100. }, map[string]interface{}{
  101. "state": s,
  102. })
  103. if err != nil {
  104. return errors.New("没有权限")
  105. }
  106. } else {
  107. return errors.New("没有权限")
  108. }
  109. return nil
  110. }
  111. func (FinalMaterialSettleProcess) Page() bool {
  112. return false
  113. }
  114. func (model FinalMaterialSettleProcess) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel {
  115. return []db.JoinModel{
  116. {
  117. Model: JoinAdmin{},
  118. As: "created",
  119. On: []string{"`created`.`id` = " + model.TableName() + ".`created_id`"},
  120. },
  121. }
  122. }