finance_controller.go 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. package controller
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "github.com/sirupsen/logrus"
  6. "youngee_b_api/app/service"
  7. "youngee_b_api/app/util"
  8. "youngee_b_api/app/vo"
  9. )
  10. type FinanceController struct{}
  11. // 充值管理——对公转账
  12. func (t FinanceController) TransferToPublic(c *gin.Context) {
  13. param := &vo.RechargeTransferParam{}
  14. err := c.BindJSON(param)
  15. if err != nil {
  16. logrus.Errorf("Request bind err:%+v\n", err)
  17. returnError(c, 40000, "参数错误")
  18. return
  19. }
  20. rechargeId, err := service.RechargeService{}.TransferToPublic(param)
  21. if err != nil {
  22. logrus.Errorf("[TransferToPublic] call Show err:%+v\n", err)
  23. returnError(c, 40000, "error")
  24. return
  25. }
  26. resultMap := make(map[string]string)
  27. resultMap["rechargeId"] = *rechargeId
  28. returnSuccess(c, 20000, resultMap)
  29. }
  30. // 获取微信支付CodeUrl
  31. func (t FinanceController) GetCodeUrl(c *gin.Context) {
  32. param := &vo.GetCodeUrlParam{}
  33. err := c.BindJSON(param)
  34. if err != nil {
  35. logrus.Errorf("Request bind err:%+v\n", err)
  36. returnError(c, 40000, "参数错误")
  37. return
  38. }
  39. tradeId := util.GetRandomString(32)
  40. fmt.Println("amount:", param.Amount)
  41. codeUrl, timeExpire, err := service.RechargeService{}.NativeApiServicePrepay(tradeId, param.Amount)
  42. if err != nil {
  43. logrus.Errorf("[GetCodeUrl] call Show err:%+v\n", err)
  44. returnError(c, 40000, err.Error())
  45. return
  46. }
  47. reCodeUrl := vo.ReCodeUrl{
  48. CodeUrl: codeUrl,
  49. TradeId: tradeId,
  50. TimeExpire: timeExpire.Format("2006-01-02 15:04:05"),
  51. }
  52. returnSuccess(c, 20000, reCodeUrl)
  53. }
  54. // 根据交易id查询微信是否扫码付款
  55. func (t FinanceController) QueryOrderByTradeId(c *gin.Context) {
  56. param := &vo.QueryOrderByTradeIdParam{}
  57. err := c.BindJSON(param)
  58. if err != nil {
  59. logrus.Errorf("Request bind err:%+v\n", err)
  60. returnError(c, 40000, "参数错误")
  61. return
  62. }
  63. tradeState, err := service.RechargeService{}.QueryOrderByTradeId(param.TradeId)
  64. if err != nil {
  65. logrus.Errorf("[QueryOrderByTradeId] call Show err:%+v\n", err)
  66. returnError(c, 40000, err.Error())
  67. return
  68. }
  69. resultMap := make(map[string]string)
  70. resultMap["tradeState"] = tradeState
  71. returnSuccess(c, 20000, resultMap)
  72. }
  73. // 余额管理——总金额、可用余额、冻结金额
  74. func (t FinanceController) ShowBalance(c *gin.Context) {
  75. param := &vo.BalanceParam{}
  76. err := c.BindJSON(param)
  77. if err != nil {
  78. logrus.Errorf("Request bind err:%+v\n", err)
  79. returnError(c, 40000, "参数错误")
  80. return
  81. }
  82. reBalanceShow, err := service.RechargeService{}.ShowBalance(param)
  83. if err != nil {
  84. logrus.Errorf("[ShowBalance] call Show err:%+v\n", err)
  85. returnError(c, 40000, err.Error())
  86. return
  87. }
  88. returnSuccess(c, 20000, reBalanceShow)
  89. }
  90. // 余额管理——冻结记录
  91. func (t FinanceController) FrozenInfoList(c *gin.Context) {
  92. param := &vo.BalanceParam{}
  93. err := c.BindJSON(param)
  94. if err != nil {
  95. logrus.Errorf("Request bind err:%+v\n", err)
  96. returnError(c, 40000, "参数错误")
  97. return
  98. }
  99. result, err := service.RechargeService{}.FrozenInfoList(param)
  100. if err != nil {
  101. logrus.Errorf("[FrozenInfoList] call Show err:%+v\n", err)
  102. returnError(c, 40000, err.Error())
  103. return
  104. }
  105. returnSuccess(c, 20000, result)
  106. }
  107. // 充值管理——累计充值金额、确认中金额
  108. func (t FinanceController) ShowRecharge(c *gin.Context) {
  109. param := &vo.RechargeParam{}
  110. err := c.BindJSON(param)
  111. if err != nil {
  112. logrus.Errorf("Request bind err:%+v\n", err)
  113. returnError(c, 40000, "参数错误")
  114. return
  115. }
  116. reRechargeShow, err := service.RechargeService{}.ShowRecharge(param)
  117. if err != nil {
  118. logrus.Errorf("[ShowRecharge] call Show err:%+v\n", err)
  119. returnError(c, 40000, err.Error())
  120. return
  121. }
  122. returnSuccess(c, 20000, reRechargeShow)
  123. }
  124. // 充值管理——充值记录
  125. func (t FinanceController) RechargeInfoList(c *gin.Context) {
  126. param := &vo.RechargeParam{}
  127. err := c.BindJSON(param)
  128. if err != nil {
  129. logrus.Errorf("Request bind err:%+v\n", err)
  130. returnError(c, 40000, "参数错误")
  131. return
  132. }
  133. result, err := service.RechargeService{}.RechargeInfoList(param)
  134. if err != nil {
  135. logrus.Errorf("[RechargeInfoList] call Show err:%+v\n", err)
  136. returnError(c, 40000, err.Error())
  137. return
  138. }
  139. returnSuccess(c, 20000, result)
  140. }
  141. // 设置默认开票抬头
  142. func (t FinanceController) UpdateInvoiceDefault(c *gin.Context) {
  143. param := &vo.InvoiceDefaultParam{}
  144. err := c.BindJSON(param)
  145. if err != nil {
  146. logrus.Errorf("Request bind err:%+v\n", err)
  147. returnError(c, 40000, "参数错误")
  148. return
  149. }
  150. invoiceId, err := service.InvoiceService{}.UpdateInvoiceDefault(param)
  151. if err != nil {
  152. logrus.Errorf("[UpdateInvoiceDefault] call Show err:%+v\n", err)
  153. returnError(c, 40000, err.Error())
  154. return
  155. }
  156. resultMap := make(map[string]int64)
  157. resultMap["invoiceId"] = *invoiceId
  158. returnSuccess(c, 20000, resultMap)
  159. }
  160. // 获取默认开票抬头
  161. func (t FinanceController) GetInvoiceDefault(c *gin.Context) {
  162. param := &vo.InvoiceDefaultParam{}
  163. err := c.BindJSON(param)
  164. if err != nil {
  165. logrus.Errorf("Request bind err:%+v\n", err)
  166. returnError(c, 40000, "参数错误")
  167. return
  168. }
  169. reInvoiceInfo, err := service.InvoiceService{}.GetInvoiceDefault(param)
  170. if err != nil {
  171. logrus.Errorf("[GetInvoiceDefault] call Show err:%+v\n", err)
  172. returnError(c, 40000, err.Error())
  173. return
  174. }
  175. returnSuccess(c, 20000, reInvoiceInfo)
  176. }
  177. // 确认开票
  178. func (t FinanceController) BillInvoice(c *gin.Context) {
  179. param := &vo.InvoiceBillParam{}
  180. err := c.BindJSON(param)
  181. if err != nil || len(param.TaskIds) != 3 {
  182. logrus.Errorf("Request bind err:%+v\n", err)
  183. returnError(c, 40000, "参数错误")
  184. return
  185. }
  186. billingId, err := service.InvoiceService{}.BillInvoice(param)
  187. if err != nil {
  188. logrus.Errorf("[BillInvoice] call Show err:%+v\n", err)
  189. returnError(c, 40000, err.Error())
  190. return
  191. }
  192. resultMap := make(map[string]string)
  193. resultMap["billingId"] = *billingId
  194. returnSuccess(c, 20000, resultMap)
  195. }
  196. // 开票记录
  197. func (t FinanceController) GetBillList(c *gin.Context) {
  198. param := &vo.InvoiceBillListParam{}
  199. err := c.BindJSON(param)
  200. if err != nil {
  201. logrus.Errorf("Request bind err:%+v\n", err)
  202. returnError(c, 40000, "参数错误")
  203. return
  204. }
  205. result, err := service.InvoiceService{}.GetBillList(param)
  206. if err != nil {
  207. logrus.Errorf("[GetBillList] call Show err:%+v\n", err)
  208. returnError(c, 40000, err.Error())
  209. return
  210. }
  211. returnSuccess(c, 20000, result)
  212. }
  213. // 可开票账单
  214. func (t FinanceController) GetBillableList(c *gin.Context) {
  215. param := &vo.InvoiceBillListParam{}
  216. err := c.BindJSON(param)
  217. if err != nil {
  218. logrus.Errorf("Request bind err:%+v\n", err)
  219. returnError(c, 40000, "参数错误")
  220. return
  221. }
  222. result, err := service.InvoiceService{}.GetBillableList(param)
  223. if err != nil {
  224. logrus.Errorf("[GetBillableList] call Show err:%+v\n", err)
  225. returnError(c, 40000, err.Error())
  226. return
  227. }
  228. returnSuccess(c, 20000, result)
  229. }