work_pkg.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package models
  2. import (
  3. "zhiyuan/pkg/db"
  4. "github.com/gin-gonic/gin"
  5. )
  6. type WorkPkg struct {
  7. ID int64 `json:"id" prop:"add:false"`
  8. Name string `json:"name" label:"套餐名称" type:"string" prop:"add edit" search:"like"`
  9. Days int64 `json:"days" label:"工期" type:"int" prop:"add edit" default:"0"`
  10. ReturnVisitID int64 `json:"return_visit_id" label:"客服回访" type:"int" prop:"edit" default:"0"`
  11. State int64 `json:"state" label:"状态" type:"int" prop:"edit" default:"0"`
  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 select:false"`
  15. UpdatedAt int64 `json:"updated_at" prop:"add:false select:false"`
  16. Nodes []WorkPkgNode `json:"nodes" prop:"ignore"`
  17. db.BaseModel
  18. }
  19. func (WorkPkg) TableName() string {
  20. return "zy_work_pkg"
  21. }
  22. func (WorkPkg) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool {
  23. return true
  24. }
  25. func (WorkPkg) OnePrivilege(c *gin.Context, id int64) bool {
  26. return true
  27. }
  28. func (WorkPkg) AddPrivilege(c *gin.Context, data map[string]interface{}, post map[string]interface{}) error {
  29. return nil
  30. }
  31. func (WorkPkg) EditPrivilege(c *gin.Context, id int64, data map[string]interface{}, post map[string]interface{}) error {
  32. return nil
  33. }
  34. func (WorkPkg) DelPrivilege(c *gin.Context, id int64) error {
  35. return nil
  36. }
  37. func (WorkPkg) OrderField() string {
  38. return "order_at"
  39. }
  40. func (WorkPkg) Page() bool {
  41. return false
  42. }
  43. func (WorkPkg) Count() bool {
  44. return true
  45. }
  46. func GetWorkPkgModel(id int64, showAll bool) *WorkPkg {
  47. var pkg *WorkPkg
  48. db.GetModel(map[string]interface{}{"id": id}, &pkg)
  49. if pkg != nil {
  50. var nodes []WorkPkgNode
  51. where := map[string]interface{}{"pkg_id": id, "deleted_at": 0}
  52. if !showAll {
  53. where["state"] = 1
  54. }
  55. db.GetModel(where, &nodes)
  56. pkg.Nodes = nodes
  57. }
  58. return pkg
  59. }
  60. func (model WorkPkg) Copy(name string, order int64) (int64, error) {
  61. id, err := db.InsertModel(db.Type(model), map[string]interface{}{
  62. "name": name,
  63. "days": model.Days,
  64. "state": model.State,
  65. "order_at": order,
  66. })
  67. if err != nil {
  68. return 0, err
  69. }
  70. err = CopyWorkPkgNodes(model.Nodes, id, order)
  71. if err != nil {
  72. return id, err
  73. }
  74. return id, nil
  75. }