package work import ( "zhiyuan/models" "zhiyuan/pkg/app" "zhiyuan/pkg/utils" "zhiyuan/services/form" "zhiyuan/services/work/workcraft" "github.com/gin-gonic/gin" ) func WorkCraftList(c *gin.Context) { page := app.HandlePageNums(c) where := map[string]string{ "where": "`zy_work_craft`.`id`>0 AND `zy_work_craft`.`deleted_at`=0", "_order_by": "`zy_work_craft`.`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_craft`.`name` LIKE {{name}}" param["name"] = "%" + name + "%" } node_id := utils.ToInt(c.Query("node_id")) if node_id != 0 { where["where"] = where["where"] + " AND `zy_work_craft`.`node_id`={{node_id}}" param["node_id"] = node_id } total, err := workcraft.CountRaw(where["where"], param) if err != nil { app.Error(c, err.Error()) return } workCraftList := make([]models.WorkCraft, 0) if _, err = workcraft.GetWorkCraftsRaw(where, param, &workCraftList); err != nil { app.Error(c, err.Error()) return } data := gin.H{ "list": workCraftList, "total": total, "limit": page.PageSize, } app.Success(c, data) } func WorkCraftAdd(c *gin.Context) { var addForm form.WorkCraftAdd if app.Bind(c, &addForm) != nil { return } id, err := workcraft.Add(addForm) if err != nil { app.Error(c, err.Error()) return } app.Success(c, gin.H{"id": id}) } func WorkCraftEdit(c *gin.Context) { id := utils.ToInt(c.Param("id")) if id <= 0 { app.ErrorMsg(c, "workcraft id must be a number", nil) return } var addForm form.WorkCraftAdd if app.Bind(c, &addForm) != nil { return } err := workcraft.EditByID(addForm, id) if err != nil { app.ErrorMsg(c, err.Error(), nil) return } app.Success(c, nil) } func WorkCraftDel(c *gin.Context) { id := utils.ToInt(c.Param("id")) if id <= 0 { app.ErrorMsg(c, "workcraft id must be a number", nil) return } err := workcraft.DeleteByID(id) if err != nil { app.Error(c, err.Error()) return } app.Success(c, nil) }