finance.go 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  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.SearchDailyFee
  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.SearchNameTime
  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) QueryProjectFinance(c *gin.Context) {
  120. code := c.Query("code")
  121. finance, err := financeService.QueryProjectFinance(code)
  122. if err != nil {
  123. response.FailWithMessage("失败", c)
  124. global.GVA_LOG.Error("QueryProjectFinance ====== " + err.Error())
  125. return
  126. }
  127. response.OkWithData(finance, c)
  128. }
  129. func (fa *FinanceApi) CreateDailyExpenses(c *gin.Context) {
  130. var expenses dao.DailyExpenses
  131. err := c.ShouldBindJSON(&expenses)
  132. if err != nil {
  133. response.FailWithMessage("失败", c)
  134. global.GVA_LOG.Error("CreateDailyExpenses ====== " + err.Error())
  135. return
  136. }
  137. err = financeService.CreateDailyExpenses(expenses)
  138. if err != nil {
  139. response.FailWithMessage("失败", c)
  140. global.GVA_LOG.Error("CreateDailyExpenses ====== " + err.Error())
  141. return
  142. }
  143. response.OkWithMessage("新增成功", c)
  144. }
  145. func (fa *FinanceApi) CreateExpensesGenre(c *gin.Context) {
  146. var expensesGenre dao.ExpensesGenre
  147. err := c.ShouldBindJSON(&expensesGenre)
  148. if err != nil {
  149. response.FailWithMessage("失败", c)
  150. global.GVA_LOG.Error("CreateExpensesGenre ====== " + err.Error())
  151. return
  152. }
  153. err = financeService.CreateExpensesGenre(expensesGenre)
  154. if err != nil {
  155. response.FailWithMessage("失败", c)
  156. global.GVA_LOG.Error("CreateExpensesGenre ====== " + err.Error())
  157. return
  158. }
  159. response.OkWithMessage("新增成功", c)
  160. }
  161. func (fa *FinanceApi) CreateBorrowing(c *gin.Context) {
  162. var borrowing dao.Borrowing
  163. err := c.ShouldBindJSON(&borrowing)
  164. if err != nil {
  165. response.FailWithMessage("失败", c)
  166. global.GVA_LOG.Error("CreateBorrowing ====== " + err.Error())
  167. return
  168. }
  169. err = financeService.CreateBorrowing(borrowing)
  170. if err != nil {
  171. response.FailWithMessage("失败", c)
  172. global.GVA_LOG.Error("CreateBorrowing ====== " + err.Error())
  173. return
  174. }
  175. response.OkWithMessage("新增成功", c)
  176. }
  177. func (fa *FinanceApi) CreateDailyFile(c *gin.Context) {
  178. form, err := c.MultipartForm()
  179. if err != nil {
  180. response.FailWithMessage("失败", c)
  181. return
  182. }
  183. files := form.File["file"]
  184. genre := c.PostForm("genre")
  185. if len(genre) <= 0 {
  186. response.FailWithMessage("类型为空", c)
  187. return
  188. }
  189. id := c.PostForm("id")
  190. genreId, err := strconv.Atoi(genre)
  191. if err != nil {
  192. response.FailWithMessage("错误", c)
  193. global.GVA_LOG.Error("CreateDailyFile ====== " + err.Error())
  194. return
  195. }
  196. userId, err := strconv.Atoi(id)
  197. if err != nil {
  198. response.FailWithMessage("错误", c)
  199. global.GVA_LOG.Error("CreateDailyFile ====== " + err.Error())
  200. return
  201. }
  202. fileGenre, err := fileService.QueryFileGenreById(genreId)
  203. if err != nil {
  204. response.FailWithMessage("错误", c)
  205. global.GVA_LOG.Error("CreateDailyFile ====== " + err.Error())
  206. return
  207. }
  208. for _, file := range files {
  209. dst := file.Filename
  210. var path = "./uploads/file/" + id + "/" + fileGenre.Name + "/" + dst
  211. dailFile := dao.DailyFile{
  212. UserId: userId,
  213. Name: dst,
  214. Genre: genreId,
  215. Path: path,
  216. }
  217. // gin 简单做了封装,拷贝了文件流
  218. if err := c.SaveUploadedFile(file, path); err != nil {
  219. response.FailWithMessage("上传失败", c)
  220. return
  221. }
  222. err = financeService.CreateDailyFile(dailFile)
  223. if err != nil {
  224. response.FailWithMessage("上传失败", c)
  225. return
  226. }
  227. }
  228. response.OkWithMessage("上传成功", c)
  229. }
  230. func (fa *FinanceApi) UpdateDailyExpenses(c *gin.Context) {
  231. var expenses dao.DailyExpenses
  232. err := c.ShouldBindJSON(&expenses)
  233. if err != nil {
  234. response.FailWithMessage("失败", c)
  235. global.GVA_LOG.Error("UpdateDailyExpenses ====== " + err.Error())
  236. return
  237. }
  238. err = financeService.UpdateDailyExpenses(expenses)
  239. if err != nil {
  240. response.FailWithMessage("失败", c)
  241. global.GVA_LOG.Error("UpdateDailyExpenses ====== " + err.Error())
  242. return
  243. }
  244. response.OkWithMessage("更新成功", c)
  245. }
  246. func (fa *FinanceApi) UpdateExpensesGenre(c *gin.Context) {
  247. var expensesGenre dao.ExpensesGenre
  248. err := c.ShouldBindJSON(&expensesGenre)
  249. if err != nil {
  250. response.FailWithMessage("失败", c)
  251. global.GVA_LOG.Error("UpdateExpensesGenre ====== " + err.Error())
  252. return
  253. }
  254. err = financeService.UpdateExpensesGenre(expensesGenre)
  255. if err != nil {
  256. response.FailWithMessage("失败", c)
  257. global.GVA_LOG.Error("UpdateExpensesGenre ====== " + err.Error())
  258. return
  259. }
  260. response.OkWithMessage("更新成功", c)
  261. }
  262. func (fa *FinanceApi) UpdateBorrowing(c *gin.Context) {
  263. var borrowing dao.Borrowing
  264. err := c.ShouldBindJSON(&borrowing)
  265. if err != nil {
  266. response.FailWithMessage("失败", c)
  267. global.GVA_LOG.Error("UpdateBorrowing ====== " + err.Error())
  268. return
  269. }
  270. err = financeService.UpdateBorrowing(borrowing)
  271. if err != nil {
  272. response.FailWithMessage("失败", c)
  273. global.GVA_LOG.Error("UpdateBorrowing ====== " + err.Error())
  274. return
  275. }
  276. response.OkWithMessage("更新成功", c)
  277. }
  278. func (fa *FinanceApi) DeleteDailyExpenses(c *gin.Context) {
  279. var expenses dao.DailyExpenses
  280. err := c.ShouldBindJSON(&expenses)
  281. if err != nil {
  282. response.FailWithMessage("失败", c)
  283. global.GVA_LOG.Error("DeleteDailyExpenses ====== " + err.Error())
  284. return
  285. }
  286. err = financeService.DeleteDailyExpenses(expenses)
  287. if err != nil {
  288. response.FailWithMessage("失败", c)
  289. global.GVA_LOG.Error("DeleteDailyExpenses ====== " + err.Error())
  290. return
  291. }
  292. response.OkWithMessage("删除成功", c)
  293. }
  294. func (fa *FinanceApi) DeleteExpensesGenre(c *gin.Context) {
  295. var expensesGenre dao.ExpensesGenre
  296. err := c.ShouldBindJSON(&expensesGenre)
  297. if err != nil {
  298. response.FailWithMessage("失败", c)
  299. global.GVA_LOG.Error("DeleteExpensesGenre ====== " + err.Error())
  300. return
  301. }
  302. err = financeService.DeleteExpensesGenre(expensesGenre)
  303. if err != nil {
  304. if err.Error() == "费用类型正在被使用" {
  305. response.FailWithMessage("费用类型正在被使用", c)
  306. global.GVA_LOG.Error("DeleteExpensesGenre ====== " + err.Error())
  307. return
  308. }
  309. response.FailWithMessage("失败", c)
  310. global.GVA_LOG.Error("DeleteExpensesGenre ====== " + err.Error())
  311. return
  312. }
  313. response.OkWithMessage("删除成功", c)
  314. }
  315. func (fa *FinanceApi) DeleteBorrowing(c *gin.Context) {
  316. var borrowing dao.Borrowing
  317. err := c.ShouldBindJSON(&borrowing)
  318. if err != nil {
  319. response.FailWithMessage("失败", c)
  320. global.GVA_LOG.Error("DeleteBorrowing ====== " + err.Error())
  321. return
  322. }
  323. err = financeService.DeleteBorrowing(borrowing)
  324. if err != nil {
  325. response.FailWithMessage("失败", c)
  326. global.GVA_LOG.Error("DeleteBorrowing ====== " + err.Error())
  327. return
  328. }
  329. response.OkWithMessage("删除成功", c)
  330. }
  331. func (fa *FinanceApi) DeleteDailyFile(c *gin.Context) {
  332. var dailyFile dao.DailyFile
  333. err := c.ShouldBindJSON(&dailyFile)
  334. if err != nil {
  335. response.FailWithMessage("失败", c)
  336. global.GVA_LOG.Error("DeleteDailyFile ====== " + err.Error())
  337. return
  338. }
  339. err = os.Remove(dailyFile.Path)
  340. if err != nil {
  341. // 如果发生错误,打印错误信息
  342. response.FailWithMessage("删除文件时发生错误", c)
  343. global.GVA_LOG.Error("删除文件时发生错误: " + err.Error())
  344. return
  345. }
  346. err = financeService.DeleteDailyFile(dailyFile)
  347. if err != nil {
  348. response.FailWithMessage("失败", c)
  349. global.GVA_LOG.Error("DeleteDailyFile ====== " + err.Error())
  350. return
  351. }
  352. response.OkWithMessage("删除成功", c)
  353. }