|
@@ -0,0 +1,364 @@
|
|
|
+package admin
|
|
|
+
|
|
|
+import (
|
|
|
+ "github.com/gin-gonic/gin"
|
|
|
+ "os"
|
|
|
+ "server/dao"
|
|
|
+ "server/global"
|
|
|
+ "server/model/common/request"
|
|
|
+ "server/model/common/response"
|
|
|
+ "strconv"
|
|
|
+)
|
|
|
+
|
|
|
+type FinanceApi struct{}
|
|
|
+
|
|
|
+func (fa *FinanceApi) QueryDailyExpensesList(c *gin.Context) {
|
|
|
+ var info request.SearchProject
|
|
|
+ err := c.ShouldBindJSON(&info)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryDailyExpensesList ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, total, err := financeService.QueryDailyExpensesList(info)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryDailyExpensesList ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithDetailed(response.PageResult{
|
|
|
+ List: list,
|
|
|
+ Total: total,
|
|
|
+ Page: info.PageInfo.Page,
|
|
|
+ PageSize: info.PageInfo.PageSize,
|
|
|
+ }, "获取成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) QueryDailyExpenses(c *gin.Context) {
|
|
|
+ v := c.Query("id")
|
|
|
+ id, err := strconv.Atoi(v)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryDailyExpenses ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ expenses, err := financeService.QueryDailyExpenses(id)
|
|
|
+ if err != nil {
|
|
|
+ }
|
|
|
+ details, err := dao.QueryDailyFeeDetails(int(expenses.ID))
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryDailyExpenses ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithData(details, c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) QueryExpensesGenre(c *gin.Context) {
|
|
|
+ genre, err := financeService.QueryExpensesGenre()
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryExpensesGenre ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithData(genre, c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) QueryBorrowingList(c *gin.Context) {
|
|
|
+ var info request.SearchProject
|
|
|
+ err := c.ShouldBindJSON(&info)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryBorrowingList ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, total, err := financeService.QueryBorrowingList(info)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryBorrowingList ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithDetailed(response.PageResult{
|
|
|
+ List: list,
|
|
|
+ Total: total,
|
|
|
+ Page: info.PageInfo.Page,
|
|
|
+ PageSize: info.PageInfo.PageSize,
|
|
|
+ }, "获取成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) QueryBorrowing(c *gin.Context) {
|
|
|
+ v := c.Query("id")
|
|
|
+ id, err := strconv.Atoi(v)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryBorrowing ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ borrowing, err := financeService.QueryBorrowing(id)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryBorrowing ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithData(borrowing, c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) QueryDailyFileList(c *gin.Context) {
|
|
|
+ var info request.SearchIdNameGenre
|
|
|
+ err := c.ShouldBindJSON(&info)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryDailyFileList ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ list, total, err := financeService.QueryDailyFileList(info)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("QueryDailyFileList ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithDetailed(response.PageResult{
|
|
|
+ List: list,
|
|
|
+ Total: total,
|
|
|
+ Page: info.PageInfo.Page,
|
|
|
+ PageSize: info.PageInfo.PageSize,
|
|
|
+ }, "获取成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) CreateDailyExpenses(c *gin.Context) {
|
|
|
+ var expenses dao.DailyExpenses
|
|
|
+ err := c.ShouldBindJSON(&expenses)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("CreateDailyExpenses ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = financeService.CreateDailyExpenses(expenses)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("CreateDailyExpenses ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithMessage("新增成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) CreateExpensesGenre(c *gin.Context) {
|
|
|
+ var expensesGenre dao.ExpensesGenre
|
|
|
+ err := c.ShouldBindJSON(&expensesGenre)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("CreateExpensesGenre ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = financeService.CreateExpensesGenre(expensesGenre)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("CreateExpensesGenre ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithMessage("新增成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) CreateBorrowing(c *gin.Context) {
|
|
|
+ var borrowing dao.Borrowing
|
|
|
+ err := c.ShouldBindJSON(&borrowing)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("CreateBorrowing ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = financeService.CreateBorrowing(borrowing)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("CreateBorrowing ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithMessage("新增成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) CreateDailyFile(c *gin.Context) {
|
|
|
+ form, err := c.MultipartForm()
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ files := form.File["file"]
|
|
|
+
|
|
|
+ genre := c.PostForm("genre")
|
|
|
+
|
|
|
+ if len(genre) <= 0 {
|
|
|
+ response.FailWithMessage("类型为空", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ id := c.PostForm("id")
|
|
|
+ genreId, err := strconv.Atoi(genre)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("错误", c)
|
|
|
+ global.GVA_LOG.Error("CreateDailyFile ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ userId, err := strconv.Atoi(id)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("错误", c)
|
|
|
+ global.GVA_LOG.Error("CreateDailyFile ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fileGenre, err := fileService.QueryFileGenreById(genreId)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("错误", c)
|
|
|
+ global.GVA_LOG.Error("CreateDailyFile ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, file := range files {
|
|
|
+ dst := file.Filename
|
|
|
+ var path = "./uploads/file/" + id + "/" + fileGenre.Name + "/" + dst
|
|
|
+ dailFile := dao.DailyFile{
|
|
|
+ UserId: userId,
|
|
|
+ Name: dst,
|
|
|
+ Path: path,
|
|
|
+ }
|
|
|
+
|
|
|
+ // gin 简单做了封装,拷贝了文件流
|
|
|
+ if err := c.SaveUploadedFile(file, path); err != nil {
|
|
|
+ response.FailWithMessage("上传失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = financeService.CreateDailyFile(dailFile)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("上传失败", c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ response.OkWithMessage("上传成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) UpdateDailyExpenses(c *gin.Context) {
|
|
|
+ var expenses dao.DailyExpenses
|
|
|
+ err := c.ShouldBindJSON(&expenses)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("UpdateDailyExpenses ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = financeService.UpdateDailyExpenses(expenses)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("UpdateDailyExpenses ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithMessage("更新成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) UpdateExpensesGenre(c *gin.Context) {
|
|
|
+ var expensesGenre dao.ExpensesGenre
|
|
|
+ err := c.ShouldBindJSON(&expensesGenre)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("UpdateExpensesGenre ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = financeService.UpdateExpensesGenre(expensesGenre)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("UpdateExpensesGenre ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithMessage("更新成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) UpdateBorrowing(c *gin.Context) {
|
|
|
+ var borrowing dao.Borrowing
|
|
|
+ err := c.ShouldBindJSON(&borrowing)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("UpdateBorrowing ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = financeService.UpdateBorrowing(borrowing)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("UpdateBorrowing ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithMessage("更新成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) DeleteDailyExpenses(c *gin.Context) {
|
|
|
+ var expenses dao.DailyExpenses
|
|
|
+ err := c.ShouldBindJSON(&expenses)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("DeleteDailyExpenses ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = financeService.DeleteDailyExpenses(expenses)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("DeleteDailyExpenses ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithMessage("删除成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) DeleteExpensesGenre(c *gin.Context) {
|
|
|
+ var expensesGenre dao.ExpensesGenre
|
|
|
+ err := c.ShouldBindJSON(&expensesGenre)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("DeleteExpensesGenre ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = financeService.DeleteExpensesGenre(expensesGenre)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("DeleteExpensesGenre ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithMessage("删除成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) DeleteBorrowing(c *gin.Context) {
|
|
|
+ var borrowing dao.Borrowing
|
|
|
+ err := c.ShouldBindJSON(&borrowing)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("DeleteBorrowing ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err = financeService.DeleteBorrowing(borrowing)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("DeleteBorrowing ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithMessage("删除成功", c)
|
|
|
+}
|
|
|
+
|
|
|
+func (fa *FinanceApi) DeleteDailyFile(c *gin.Context) {
|
|
|
+ var dailyFile dao.DailyFile
|
|
|
+ err := c.ShouldBindJSON(&dailyFile)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("DeleteDailyFile ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = os.Remove(dailyFile.Path)
|
|
|
+ if err != nil {
|
|
|
+ // 如果发生错误,打印错误信息
|
|
|
+ response.FailWithMessage("删除文件时发生错误", c)
|
|
|
+ global.GVA_LOG.Error("删除文件时发生错误: " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = financeService.DeleteDailyFile(dailyFile)
|
|
|
+ if err != nil {
|
|
|
+ response.FailWithMessage("失败", c)
|
|
|
+ global.GVA_LOG.Error("DeleteDailyFile ====== " + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.OkWithMessage("删除成功", c)
|
|
|
+}
|