dept.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package models
  2. import (
  3. "fmt"
  4. "zhiyuan/pkg/db"
  5. "github.com/gin-gonic/gin"
  6. )
  7. type Dept struct {
  8. ID int `json:"id"`
  9. Name string `json:"name"`
  10. Pid int `json:"pid"`
  11. Attribute int `json:"attribute"`
  12. CreatedAt int `json:"created_at"`
  13. UpdatedAt int `json:"updated_at"`
  14. db.BaseModel
  15. }
  16. func (Dept) TableName() string {
  17. return "zy_dept"
  18. }
  19. func (model Dept) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool {
  20. return true
  21. }
  22. func (Dept) DeletedField() string {
  23. return ""
  24. }
  25. func (d Dept) GetOne(where map[string]interface{}, fields []string, retVal interface{}) (*Dept, error) {
  26. if retVal == nil {
  27. var dept *Dept
  28. err := db.GetOne(d.TableName(), where, fields, &dept)
  29. return dept, err
  30. } else {
  31. err := db.GetOne(d.TableName(), where, fields, retVal)
  32. return nil, err
  33. }
  34. }
  35. func (d Dept) GetMulti(where map[string]interface{}, fields []string, retVal interface{}) ([]*Dept, error) {
  36. if retVal == nil {
  37. var dept []*Dept
  38. err := db.GetMulti(d.TableName(), where, fields, &dept)
  39. return dept, err
  40. } else {
  41. err := db.GetMulti(d.TableName(), where, fields, retVal)
  42. return nil, err
  43. }
  44. }
  45. type DeptDivision struct {
  46. Dept
  47. ID int `json:"id"`
  48. Name string `json:"name" prop:"select:concat(dept.name,'/',zy_dept.name)"`
  49. }
  50. func (model DeptDivision) ListPrivilege(c *gin.Context, data map[string]interface{}, s *db.Select) bool {
  51. s.Where = append(s.Where, fmt.Sprintf("`%s`.`attribute` = %s", model.TableName(), s.Param(1)))
  52. return true
  53. }
  54. func (model DeptDivision) LeftJoin(data map[string]interface{}, s *db.Select) []db.JoinModel {
  55. return []db.JoinModel{
  56. {
  57. Model: Dept{},
  58. As: "dept",
  59. On: []string{"`dept`.`id` = " + model.TableName() + ".`pid`"},
  60. },
  61. }
  62. }