worknode.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package work
  2. import (
  3. "time"
  4. "zhiyuan/models"
  5. "zhiyuan/pkg/app"
  6. "zhiyuan/pkg/utils"
  7. "zhiyuan/services/form"
  8. "zhiyuan/services/work/worknode"
  9. "github.com/gin-gonic/gin"
  10. )
  11. func WorkNodeList(c *gin.Context) {
  12. page := app.HandlePageNums(c)
  13. where := map[string]string{
  14. "where": "`zy_work_node`.`id`>0 AND `zy_work_node`.`deleted_at`=0",
  15. "_order_by": "`zy_work_node`.`id` desc",
  16. }
  17. if page.PageSize != 0 {
  18. where["_page_size"] = utils.ToStr(page.PageSize)
  19. where["_page_num"] = utils.ToStr(page.PageNum)
  20. }
  21. param := make(map[string]interface{})
  22. name := c.Query("name")
  23. if name != "" {
  24. where["where"] = where["where"] + " AND `zy_work_node`.`name` LIKE {{name}}"
  25. param["name"] = "%" + name + "%"
  26. }
  27. total, err := worknode.CountRaw(where["where"], param)
  28. if err != nil {
  29. app.Error(c, err.Error())
  30. return
  31. }
  32. type WorkNode struct {
  33. ID int `json:"id"`
  34. Name string `json:"name"`
  35. Color string `json:"color"`
  36. Logo string `json:"logo"`
  37. WorkTypeId int `json:"work_type_id"`
  38. WorkTypeName string `json:"work_type_name"`
  39. DesignerPresence int `json:"designer_presence"`
  40. QualityAccept int `json:"quality_accept"`
  41. Show int `json:"show"`
  42. CreatedAt int `json:"created_at"`
  43. UpdatedAt int `json:"updated_at"`
  44. }
  45. workNodeList := make([]WorkNode, 0)
  46. if err = worknode.GetWorkNodesRaw(where, param, &workNodeList); err != nil {
  47. app.Error(c, err.Error())
  48. return
  49. }
  50. data := gin.H{
  51. "list": workNodeList,
  52. "total": total,
  53. "limit": page.PageSize,
  54. }
  55. app.Success(c, data)
  56. }
  57. func WorkNodeAdd(c *gin.Context) {
  58. var addForm form.WorkNodeAdd
  59. if app.Bind(c, &addForm) != nil {
  60. return
  61. }
  62. id, err := worknode.Add(addForm)
  63. if err != nil {
  64. app.Error(c, err.Error())
  65. return
  66. }
  67. app.Success(c, gin.H{"id": id})
  68. }
  69. func WorkNodeEdit(c *gin.Context) {
  70. id := utils.ToInt(c.Param("id"))
  71. if id <= 0 {
  72. app.ErrorMsg(c, "WorkNode id must be a number", nil)
  73. return
  74. }
  75. var addForm form.WorkNodeAdd
  76. if app.Bind(c, &addForm) != nil {
  77. return
  78. }
  79. err := worknode.EditByID(addForm, id)
  80. if err != nil {
  81. app.ErrorMsg(c, err.Error(), nil)
  82. return
  83. }
  84. app.Success(c, nil)
  85. }
  86. func WorkNodeDel(c *gin.Context) {
  87. id := utils.ToInt(c.Param("id"))
  88. if id <= 0 {
  89. app.ErrorMsg(c, "WorkNode id must be a number", nil)
  90. return
  91. }
  92. err := worknode.DeleteByID(id)
  93. if err != nil {
  94. app.Error(c, err.Error())
  95. return
  96. }
  97. app.Success(c, nil)
  98. }
  99. func WorkWorkNodeCopy(c *gin.Context) {
  100. id := utils.ToInt(c.Param("id"))
  101. if id <= 0 {
  102. app.ErrorMsg(c, "id must be a number", nil)
  103. return
  104. }
  105. node := models.GetWorkNodeModel(int64(id))
  106. if node == nil {
  107. app.ErrorMsg(c, "节点不存在", nil)
  108. return
  109. }
  110. order := time.Now().Unix()
  111. cid, err := node.Copy(node.Name, order)
  112. if err != nil {
  113. app.ErrorMsg(c, err.Error(), nil)
  114. return
  115. }
  116. app.Success(c, gin.H{"id": cid})
  117. }