finance.go 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  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. Genre: genreId,
  205. Path: path,
  206. }
  207. // gin 简单做了封装,拷贝了文件流
  208. if err := c.SaveUploadedFile(file, path); err != nil {
  209. response.FailWithMessage("上传失败", c)
  210. return
  211. }
  212. err = financeService.CreateDailyFile(dailFile)
  213. if err != nil {
  214. response.FailWithMessage("上传失败", c)
  215. return
  216. }
  217. }
  218. response.OkWithMessage("上传成功", c)
  219. }
  220. func (fa *FinanceApi) UpdateDailyExpenses(c *gin.Context) {
  221. var expenses dao.DailyExpenses
  222. err := c.ShouldBindJSON(&expenses)
  223. if err != nil {
  224. response.FailWithMessage("失败", c)
  225. global.GVA_LOG.Error("UpdateDailyExpenses ====== " + err.Error())
  226. return
  227. }
  228. err = financeService.UpdateDailyExpenses(expenses)
  229. if err != nil {
  230. response.FailWithMessage("失败", c)
  231. global.GVA_LOG.Error("UpdateDailyExpenses ====== " + err.Error())
  232. return
  233. }
  234. response.OkWithMessage("更新成功", c)
  235. }
  236. func (fa *FinanceApi) UpdateExpensesGenre(c *gin.Context) {
  237. var expensesGenre dao.ExpensesGenre
  238. err := c.ShouldBindJSON(&expensesGenre)
  239. if err != nil {
  240. response.FailWithMessage("失败", c)
  241. global.GVA_LOG.Error("UpdateExpensesGenre ====== " + err.Error())
  242. return
  243. }
  244. err = financeService.UpdateExpensesGenre(expensesGenre)
  245. if err != nil {
  246. response.FailWithMessage("失败", c)
  247. global.GVA_LOG.Error("UpdateExpensesGenre ====== " + err.Error())
  248. return
  249. }
  250. response.OkWithMessage("更新成功", c)
  251. }
  252. func (fa *FinanceApi) UpdateBorrowing(c *gin.Context) {
  253. var borrowing dao.Borrowing
  254. err := c.ShouldBindJSON(&borrowing)
  255. if err != nil {
  256. response.FailWithMessage("失败", c)
  257. global.GVA_LOG.Error("UpdateBorrowing ====== " + err.Error())
  258. return
  259. }
  260. err = financeService.UpdateBorrowing(borrowing)
  261. if err != nil {
  262. response.FailWithMessage("失败", c)
  263. global.GVA_LOG.Error("UpdateBorrowing ====== " + err.Error())
  264. return
  265. }
  266. response.OkWithMessage("更新成功", c)
  267. }
  268. func (fa *FinanceApi) DeleteDailyExpenses(c *gin.Context) {
  269. var expenses dao.DailyExpenses
  270. err := c.ShouldBindJSON(&expenses)
  271. if err != nil {
  272. response.FailWithMessage("失败", c)
  273. global.GVA_LOG.Error("DeleteDailyExpenses ====== " + err.Error())
  274. return
  275. }
  276. err = financeService.DeleteDailyExpenses(expenses)
  277. if err != nil {
  278. response.FailWithMessage("失败", c)
  279. global.GVA_LOG.Error("DeleteDailyExpenses ====== " + err.Error())
  280. return
  281. }
  282. response.OkWithMessage("删除成功", c)
  283. }
  284. func (fa *FinanceApi) DeleteExpensesGenre(c *gin.Context) {
  285. var expensesGenre dao.ExpensesGenre
  286. err := c.ShouldBindJSON(&expensesGenre)
  287. if err != nil {
  288. response.FailWithMessage("失败", c)
  289. global.GVA_LOG.Error("DeleteExpensesGenre ====== " + err.Error())
  290. return
  291. }
  292. err = financeService.DeleteExpensesGenre(expensesGenre)
  293. if err != nil {
  294. response.FailWithMessage("失败", c)
  295. global.GVA_LOG.Error("DeleteExpensesGenre ====== " + err.Error())
  296. return
  297. }
  298. response.OkWithMessage("删除成功", c)
  299. }
  300. func (fa *FinanceApi) DeleteBorrowing(c *gin.Context) {
  301. var borrowing dao.Borrowing
  302. err := c.ShouldBindJSON(&borrowing)
  303. if err != nil {
  304. response.FailWithMessage("失败", c)
  305. global.GVA_LOG.Error("DeleteBorrowing ====== " + err.Error())
  306. return
  307. }
  308. err = financeService.DeleteBorrowing(borrowing)
  309. if err != nil {
  310. response.FailWithMessage("失败", c)
  311. global.GVA_LOG.Error("DeleteBorrowing ====== " + err.Error())
  312. return
  313. }
  314. response.OkWithMessage("删除成功", c)
  315. }
  316. func (fa *FinanceApi) DeleteDailyFile(c *gin.Context) {
  317. var dailyFile dao.DailyFile
  318. err := c.ShouldBindJSON(&dailyFile)
  319. if err != nil {
  320. response.FailWithMessage("失败", c)
  321. global.GVA_LOG.Error("DeleteDailyFile ====== " + err.Error())
  322. return
  323. }
  324. err = os.Remove(dailyFile.Path)
  325. if err != nil {
  326. // 如果发生错误,打印错误信息
  327. response.FailWithMessage("删除文件时发生错误", c)
  328. global.GVA_LOG.Error("删除文件时发生错误: " + err.Error())
  329. return
  330. }
  331. err = financeService.DeleteDailyFile(dailyFile)
  332. if err != nil {
  333. response.FailWithMessage("失败", c)
  334. global.GVA_LOG.Error("DeleteDailyFile ====== " + err.Error())
  335. return
  336. }
  337. response.OkWithMessage("删除成功", c)
  338. }