package work import ( "time" "zhiyuan/models" "zhiyuan/pkg/app" "zhiyuan/pkg/utils" "zhiyuan/services/form" "zhiyuan/services/work/worknode" "github.com/gin-gonic/gin" ) func WorkNodeList(c *gin.Context) { page := app.HandlePageNums(c) where := map[string]string{ "where": "`zy_work_node`.`id`>0 AND `zy_work_node`.`deleted_at`=0", "_order_by": "`zy_work_node`.`id` desc", } if page.PageSize != 0 { where["_page_size"] = utils.ToStr(page.PageSize) where["_page_num"] = utils.ToStr(page.PageNum) } param := make(map[string]interface{}) name := c.Query("name") if name != "" { where["where"] = where["where"] + " AND `zy_work_node`.`name` LIKE {{name}}" param["name"] = "%" + name + "%" } total, err := worknode.CountRaw(where["where"], param) if err != nil { app.Error(c, err.Error()) return } type WorkNode struct { ID int `json:"id"` Name string `json:"name"` Color string `json:"color"` Logo string `json:"logo"` WorkTypeId int `json:"work_type_id"` WorkTypeName string `json:"work_type_name"` DesignerPresence int `json:"designer_presence"` QualityAccept int `json:"quality_accept"` Show int `json:"show"` CreatedAt int `json:"created_at"` UpdatedAt int `json:"updated_at"` } workNodeList := make([]WorkNode, 0) if err = worknode.GetWorkNodesRaw(where, param, &workNodeList); err != nil { app.Error(c, err.Error()) return } data := gin.H{ "list": workNodeList, "total": total, "limit": page.PageSize, } app.Success(c, data) } func WorkNodeAdd(c *gin.Context) { var addForm form.WorkNodeAdd if app.Bind(c, &addForm) != nil { return } id, err := worknode.Add(addForm) if err != nil { app.Error(c, err.Error()) return } app.Success(c, gin.H{"id": id}) } func WorkNodeEdit(c *gin.Context) { id := utils.ToInt(c.Param("id")) if id <= 0 { app.ErrorMsg(c, "WorkNode id must be a number", nil) return } var addForm form.WorkNodeAdd if app.Bind(c, &addForm) != nil { return } err := worknode.EditByID(addForm, id) if err != nil { app.ErrorMsg(c, err.Error(), nil) return } app.Success(c, nil) } func WorkNodeDel(c *gin.Context) { id := utils.ToInt(c.Param("id")) if id <= 0 { app.ErrorMsg(c, "WorkNode id must be a number", nil) return } err := worknode.DeleteByID(id) if err != nil { app.Error(c, err.Error()) return } app.Success(c, nil) } func WorkWorkNodeCopy(c *gin.Context) { id := utils.ToInt(c.Param("id")) if id <= 0 { app.ErrorMsg(c, "id must be a number", nil) return } node := models.GetWorkNodeModel(int64(id)) if node == nil { app.ErrorMsg(c, "节点不存在", nil) return } order := time.Now().Unix() cid, err := node.Copy(node.Name, order) if err != nil { app.ErrorMsg(c, err.Error(), nil) return } app.Success(c, gin.H{"id": cid}) }