package admin import ( "encoding/json" "fmt" "github.com/gin-gonic/gin" "server/dao" "server/global" "server/model/common/request" "server/model/common/response" "strconv" ) type ProjectApi struct{} func (pa *ProjectApi) QueryProjectList(c *gin.Context) { var search request.SearchProject err := c.ShouldBindJSON(&search) if err != nil { response.FailWithMessage(err.Error(), c) return } list, total, err := projectService.QueryProjectList(search) response.OkWithDetailed(response.PageResult{ List: list, Total: total, Page: search.PageInfo.Page, PageSize: search.PageInfo.PageSize, }, "获取成功", c) } func (pa *ProjectApi) QueryProjectByCode(c *gin.Context) { code := c.Query("code") if code == "" { response.FailWithMessage("编号不能为空", c) return } project, err := projectService.QueryProjectByCode(code) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithData(project, c) } func (pa *ProjectApi) QueryAllProject(c *gin.Context) { projects, err := projectService.QueryAllProject() if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithData(projects, c) } func (pa *ProjectApi) QueryProjectsInfo(c *gin.Context) { sum, totalProject, completeProject, unCompleteProject, err := projectService.QueryProjectsInfo() if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithData(gin.H{ "sum": sum, "totalProject": totalProject, "completeProject": completeProject, "unCompleteProject": unCompleteProject, }, c) } func (pa *ProjectApi) QueryWorkingHours(c *gin.Context) { code := c.Query("code") hours, err := projectService.QueryWorkingHours(code) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithData(hours, c) } func (pa *ProjectApi) QueryCollections(c *gin.Context) { code := c.Query("code") collections, err := projectService.QueryCollections(code) if err != nil { response.FailWithMessage("失败", c) global.GVA_LOG.Error("QueryCollections ====== " + err.Error()) return } response.OkWithData(collections, c) } func (pa *ProjectApi) CreateProject(c *gin.Context) { form, err := c.MultipartForm() files := form.File["file"] if err != nil { response.FailWithMessage("失败", c) return } projectJson := c.PostForm("project") var project dao.Project err = json.Unmarshal([]byte(projectJson), &project) if err != nil { response.FailWithMessage("JSON失败", c) return } fmt.Println(files) for _, file := range files { dst := file.Filename fmt.Println(file) fmt.Println(file.Filename) projectFile := dao.ProjectFile{ Name: dst, Path: "./uploads/file/" + dst, } project.Files = append(project.Files, projectFile) // gin 简单做了封装,拷贝了文件流 if err := c.SaveUploadedFile(file, "./uploads/file/"+dst); err != nil { response.FailWithMessage("上传失败", c) return } } err = projectService.CreateProject(project) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("创建成功", c) } func (pa *ProjectApi) CreateProjectFile(c *gin.Context) { var projectFile dao.ProjectFile err := c.ShouldBindJSON(&projectFile) if err != nil { response.FailWithMessage(err.Error(), c) return } err = projectService.CreateProjectFile(projectFile) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("创建成功", c) } func (pa *ProjectApi) CreateWorkingHours(c *gin.Context) { var working dao.ProjectWorkingHours err := c.ShouldBindJSON(&working) if err != nil { response.FailWithMessage(err.Error(), c) return } err = projectService.CreateOrUpdateWorkingHours(working) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("更新成功", c) } func (pa *ProjectApi) CreateCollection(c *gin.Context) { var collection dao.Collection err := c.ShouldBindJSON(&collection) if err != nil { response.FailWithMessage("错误", c) global.GVA_LOG.Error("CreateCollection ====== " + err.Error()) return } err = projectService.CreateCollection(collection) if err != nil { response.FailWithMessage("错误", c) global.GVA_LOG.Error("CreateCollection ====== " + err.Error()) return } response.OkWithMessage("创建成功", c) } func (pa *ProjectApi) UpdateProject(c *gin.Context) { var project dao.Project err := c.ShouldBindJSON(&project) if err != nil { response.FailWithMessage(err.Error(), c) return } err = projectService.UpdateProject(project) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("更新成功", c) } func (pa *ProjectApi) UpdateWorkingHours(c *gin.Context) { var working dao.ProjectWorkingHours err := c.ShouldBindJSON(&working) if err != nil { response.FailWithMessage(err.Error(), c) return } err = projectService.UpdateWorkingHours(working) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("更新成功", c) } func (pa *ProjectApi) UpdateCollection(c *gin.Context) { var collection dao.Collection err := c.ShouldBindJSON(&collection) if err != nil { response.FailWithMessage("错误", c) global.GVA_LOG.Error("UpdateCollection ====== " + err.Error()) return } err = projectService.UpdateCollection(collection) if err != nil { response.FailWithMessage("错误", c) global.GVA_LOG.Error("UpdateCollection ====== " + err.Error()) } response.OkWithMessage("修改成功", c) } func (pa *ProjectApi) DeleteProject(c *gin.Context) { code := c.Query("code") if code == "" { response.FailWithMessage("编号不能为空", c) return } err := projectService.DeleteProject(code) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("删除成功", c) } func (pa *ProjectApi) DeleteProjectFile(c *gin.Context) { id := c.Query("id") i, err := strconv.Atoi(id) if err != nil { response.FailWithMessage(err.Error(), c) return } err = projectService.DeleteProjectFile(uint(i)) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("删除成功", c) } func (pa *ProjectApi) DeleteWorkingHours(c *gin.Context) { var working dao.ProjectWorkingHours err := c.ShouldBindJSON(&working) if err != nil { response.FailWithMessage(err.Error(), c) return } err = projectService.DeleteWorkingHours(working) if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithMessage("删除成功", c) } func (pa *ProjectApi) DeleteCollection(c *gin.Context) { var collection dao.Collection err := c.ShouldBindJSON(&collection) if err != nil { response.FailWithMessage("错误", c) global.GVA_LOG.Error("DeleteCollection ====== " + err.Error()) return } err = projectService.DeleteCollection(collection) if err != nil { response.FailWithMessage("错误", c) global.GVA_LOG.Error("DeleteCollection ====== " + err.Error()) return } response.OkWithMessage("删除成功", c) }