finance.go 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. package admin
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "os"
  5. "server/dao"
  6. "server/global"
  7. "server/model/common/request"
  8. "server/model/common/response"
  9. "strconv"
  10. )
  11. type FinanceApi struct{}
  12. func (fa *FinanceApi) QueryDailyExpensesList(c *gin.Context) {
  13. var info request.SearchProject
  14. err := c.ShouldBindJSON(&info)
  15. if err != nil {
  16. response.FailWithMessage("失败", c)
  17. global.GVA_LOG.Error("QueryDailyExpensesList ====== " + err.Error())
  18. return
  19. }
  20. list, total, err := financeService.QueryDailyExpensesList(info)
  21. if err != nil {
  22. response.FailWithMessage("失败", c)
  23. global.GVA_LOG.Error("QueryDailyExpensesList ====== " + err.Error())
  24. return
  25. }
  26. response.OkWithDetailed(response.PageResult{
  27. List: list,
  28. Total: total,
  29. Page: info.PageInfo.Page,
  30. PageSize: info.PageInfo.PageSize,
  31. }, "获取成功", c)
  32. }
  33. func (fa *FinanceApi) QueryDailyExpenses(c *gin.Context) {
  34. v := c.Query("id")
  35. id, err := strconv.Atoi(v)
  36. if err != nil {
  37. response.FailWithMessage("失败", c)
  38. global.GVA_LOG.Error("QueryDailyExpenses ====== " + err.Error())
  39. return
  40. }
  41. expenses, err := financeService.QueryDailyExpenses(id)
  42. if err != nil {
  43. }
  44. details, err := dao.QueryDailyFeeDetails(int(expenses.ID))
  45. if err != nil {
  46. response.FailWithMessage("失败", c)
  47. global.GVA_LOG.Error("QueryDailyExpenses ====== " + err.Error())
  48. return
  49. }
  50. response.OkWithData(details, c)
  51. }
  52. func (fa *FinanceApi) QueryExpensesGenre(c *gin.Context) {
  53. genre, err := financeService.QueryExpensesGenre()
  54. if err != nil {
  55. response.FailWithMessage("失败", c)
  56. global.GVA_LOG.Error("QueryExpensesGenre ====== " + err.Error())
  57. return
  58. }
  59. response.OkWithData(genre, c)
  60. }
  61. func (fa *FinanceApi) QueryBorrowingList(c *gin.Context) {
  62. var info request.SearchProject
  63. err := c.ShouldBindJSON(&info)
  64. if err != nil {
  65. response.FailWithMessage("失败", c)
  66. global.GVA_LOG.Error("QueryBorrowingList ====== " + err.Error())
  67. return
  68. }
  69. list, total, err := financeService.QueryBorrowingList(info)
  70. if err != nil {
  71. response.FailWithMessage("失败", c)
  72. global.GVA_LOG.Error("QueryBorrowingList ====== " + err.Error())
  73. return
  74. }
  75. response.OkWithDetailed(response.PageResult{
  76. List: list,
  77. Total: total,
  78. Page: info.PageInfo.Page,
  79. PageSize: info.PageInfo.PageSize,
  80. }, "获取成功", c)
  81. }
  82. func (fa *FinanceApi) QueryBorrowing(c *gin.Context) {
  83. v := c.Query("id")
  84. id, err := strconv.Atoi(v)
  85. if err != nil {
  86. response.FailWithMessage("失败", c)
  87. global.GVA_LOG.Error("QueryBorrowing ====== " + err.Error())
  88. return
  89. }
  90. borrowing, err := financeService.QueryBorrowing(id)
  91. if err != nil {
  92. response.FailWithMessage("失败", c)
  93. global.GVA_LOG.Error("QueryBorrowing ====== " + err.Error())
  94. return
  95. }
  96. response.OkWithData(borrowing, c)
  97. }
  98. func (fa *FinanceApi) QueryDailyFileList(c *gin.Context) {
  99. var info request.SearchIdNameGenre
  100. err := c.ShouldBindJSON(&info)
  101. if err != nil {
  102. response.FailWithMessage("失败", c)
  103. global.GVA_LOG.Error("QueryDailyFileList ====== " + err.Error())
  104. return
  105. }
  106. list, total, err := financeService.QueryDailyFileList(info)
  107. if err != nil {
  108. response.FailWithMessage("失败", c)
  109. global.GVA_LOG.Error("QueryDailyFileList ====== " + err.Error())
  110. return
  111. }
  112. response.OkWithDetailed(response.PageResult{
  113. List: list,
  114. Total: total,
  115. Page: info.PageInfo.Page,
  116. PageSize: info.PageInfo.PageSize,
  117. }, "获取成功", c)
  118. }
  119. func (fa *FinanceApi) CreateDailyExpenses(c *gin.Context) {
  120. var expenses dao.DailyExpenses
  121. err := c.ShouldBindJSON(&expenses)
  122. if err != nil {
  123. response.FailWithMessage("失败", c)
  124. global.GVA_LOG.Error("CreateDailyExpenses ====== " + err.Error())
  125. return
  126. }
  127. err = financeService.CreateDailyExpenses(expenses)
  128. if err != nil {
  129. response.FailWithMessage("失败", c)
  130. global.GVA_LOG.Error("CreateDailyExpenses ====== " + err.Error())
  131. return
  132. }
  133. response.OkWithMessage("新增成功", c)
  134. }
  135. func (fa *FinanceApi) CreateExpensesGenre(c *gin.Context) {
  136. var expensesGenre dao.ExpensesGenre
  137. err := c.ShouldBindJSON(&expensesGenre)
  138. if err != nil {
  139. response.FailWithMessage("失败", c)
  140. global.GVA_LOG.Error("CreateExpensesGenre ====== " + err.Error())
  141. return
  142. }
  143. err = financeService.CreateExpensesGenre(expensesGenre)
  144. if err != nil {
  145. response.FailWithMessage("失败", c)
  146. global.GVA_LOG.Error("CreateExpensesGenre ====== " + err.Error())
  147. return
  148. }
  149. response.OkWithMessage("新增成功", c)
  150. }
  151. func (fa *FinanceApi) CreateBorrowing(c *gin.Context) {
  152. var borrowing dao.Borrowing
  153. err := c.ShouldBindJSON(&borrowing)
  154. if err != nil {
  155. response.FailWithMessage("失败", c)
  156. global.GVA_LOG.Error("CreateBorrowing ====== " + err.Error())
  157. return
  158. }
  159. err = financeService.CreateBorrowing(borrowing)
  160. if err != nil {
  161. response.FailWithMessage("失败", c)
  162. global.GVA_LOG.Error("CreateBorrowing ====== " + err.Error())
  163. return
  164. }
  165. response.OkWithMessage("新增成功", c)
  166. }
  167. func (fa *FinanceApi) CreateDailyFile(c *gin.Context) {
  168. form, err := c.MultipartForm()
  169. if err != nil {
  170. response.FailWithMessage("失败", c)
  171. return
  172. }
  173. files := form.File["file"]
  174. genre := c.PostForm("genre")
  175. if len(genre) <= 0 {
  176. response.FailWithMessage("类型为空", c)
  177. return
  178. }
  179. id := c.PostForm("id")
  180. genreId, err := strconv.Atoi(genre)
  181. if err != nil {
  182. response.FailWithMessage("错误", c)
  183. global.GVA_LOG.Error("CreateDailyFile ====== " + err.Error())
  184. return
  185. }
  186. userId, err := strconv.Atoi(id)
  187. if err != nil {
  188. response.FailWithMessage("错误", c)
  189. global.GVA_LOG.Error("CreateDailyFile ====== " + err.Error())
  190. return
  191. }
  192. fileGenre, err := fileService.QueryFileGenreById(genreId)
  193. if err != nil {
  194. response.FailWithMessage("错误", c)
  195. global.GVA_LOG.Error("CreateDailyFile ====== " + err.Error())
  196. return
  197. }
  198. for _, file := range files {
  199. dst := file.Filename
  200. var path = "./uploads/file/" + id + "/" + fileGenre.Name + "/" + dst
  201. dailFile := dao.DailyFile{
  202. UserId: userId,
  203. Name: dst,
  204. Path: path,
  205. }
  206. // gin 简单做了封装,拷贝了文件流
  207. if err := c.SaveUploadedFile(file, path); err != nil {
  208. response.FailWithMessage("上传失败", c)
  209. return
  210. }
  211. err = financeService.CreateDailyFile(dailFile)
  212. if err != nil {
  213. response.FailWithMessage("上传失败", c)
  214. return
  215. }
  216. }
  217. response.OkWithMessage("上传成功", c)
  218. }
  219. func (fa *FinanceApi) UpdateDailyExpenses(c *gin.Context) {
  220. var expenses dao.DailyExpenses
  221. err := c.ShouldBindJSON(&expenses)
  222. if err != nil {
  223. response.FailWithMessage("失败", c)
  224. global.GVA_LOG.Error("UpdateDailyExpenses ====== " + err.Error())
  225. return
  226. }
  227. err = financeService.UpdateDailyExpenses(expenses)
  228. if err != nil {
  229. response.FailWithMessage("失败", c)
  230. global.GVA_LOG.Error("UpdateDailyExpenses ====== " + err.Error())
  231. return
  232. }
  233. response.OkWithMessage("更新成功", c)
  234. }
  235. func (fa *FinanceApi) UpdateExpensesGenre(c *gin.Context) {
  236. var expensesGenre dao.ExpensesGenre
  237. err := c.ShouldBindJSON(&expensesGenre)
  238. if err != nil {
  239. response.FailWithMessage("失败", c)
  240. global.GVA_LOG.Error("UpdateExpensesGenre ====== " + err.Error())
  241. return
  242. }
  243. err = financeService.UpdateExpensesGenre(expensesGenre)
  244. if err != nil {
  245. response.FailWithMessage("失败", c)
  246. global.GVA_LOG.Error("UpdateExpensesGenre ====== " + err.Error())
  247. return
  248. }
  249. response.OkWithMessage("更新成功", c)
  250. }
  251. func (fa *FinanceApi) UpdateBorrowing(c *gin.Context) {
  252. var borrowing dao.Borrowing
  253. err := c.ShouldBindJSON(&borrowing)
  254. if err != nil {
  255. response.FailWithMessage("失败", c)
  256. global.GVA_LOG.Error("UpdateBorrowing ====== " + err.Error())
  257. return
  258. }
  259. err = financeService.UpdateBorrowing(borrowing)
  260. if err != nil {
  261. response.FailWithMessage("失败", c)
  262. global.GVA_LOG.Error("UpdateBorrowing ====== " + err.Error())
  263. return
  264. }
  265. response.OkWithMessage("更新成功", c)
  266. }
  267. func (fa *FinanceApi) DeleteDailyExpenses(c *gin.Context) {
  268. var expenses dao.DailyExpenses
  269. err := c.ShouldBindJSON(&expenses)
  270. if err != nil {
  271. response.FailWithMessage("失败", c)
  272. global.GVA_LOG.Error("DeleteDailyExpenses ====== " + err.Error())
  273. return
  274. }
  275. err = financeService.DeleteDailyExpenses(expenses)
  276. if err != nil {
  277. response.FailWithMessage("失败", c)
  278. global.GVA_LOG.Error("DeleteDailyExpenses ====== " + err.Error())
  279. return
  280. }
  281. response.OkWithMessage("删除成功", c)
  282. }
  283. func (fa *FinanceApi) DeleteExpensesGenre(c *gin.Context) {
  284. var expensesGenre dao.ExpensesGenre
  285. err := c.ShouldBindJSON(&expensesGenre)
  286. if err != nil {
  287. response.FailWithMessage("失败", c)
  288. global.GVA_LOG.Error("DeleteExpensesGenre ====== " + err.Error())
  289. return
  290. }
  291. err = financeService.DeleteExpensesGenre(expensesGenre)
  292. if err != nil {
  293. response.FailWithMessage("失败", c)
  294. global.GVA_LOG.Error("DeleteExpensesGenre ====== " + err.Error())
  295. return
  296. }
  297. response.OkWithMessage("删除成功", c)
  298. }
  299. func (fa *FinanceApi) DeleteBorrowing(c *gin.Context) {
  300. var borrowing dao.Borrowing
  301. err := c.ShouldBindJSON(&borrowing)
  302. if err != nil {
  303. response.FailWithMessage("失败", c)
  304. global.GVA_LOG.Error("DeleteBorrowing ====== " + err.Error())
  305. return
  306. }
  307. err = financeService.DeleteBorrowing(borrowing)
  308. if err != nil {
  309. response.FailWithMessage("失败", c)
  310. global.GVA_LOG.Error("DeleteBorrowing ====== " + err.Error())
  311. return
  312. }
  313. response.OkWithMessage("删除成功", c)
  314. }
  315. func (fa *FinanceApi) DeleteDailyFile(c *gin.Context) {
  316. var dailyFile dao.DailyFile
  317. err := c.ShouldBindJSON(&dailyFile)
  318. if err != nil {
  319. response.FailWithMessage("失败", c)
  320. global.GVA_LOG.Error("DeleteDailyFile ====== " + err.Error())
  321. return
  322. }
  323. err = os.Remove(dailyFile.Path)
  324. if err != nil {
  325. // 如果发生错误,打印错误信息
  326. response.FailWithMessage("删除文件时发生错误", c)
  327. global.GVA_LOG.Error("删除文件时发生错误: " + err.Error())
  328. return
  329. }
  330. err = financeService.DeleteDailyFile(dailyFile)
  331. if err != nil {
  332. response.FailWithMessage("失败", c)
  333. global.GVA_LOG.Error("DeleteDailyFile ====== " + err.Error())
  334. return
  335. }
  336. response.OkWithMessage("删除成功", c)
  337. }