dt_finance.go 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. package daytask
  2. import (
  3. model "go_server/model/biz_modules/daytask"
  4. "go_server/model/common/response"
  5. "go_server/service/base"
  6. "github.com/gin-gonic/gin"
  7. )
  8. // DtRechargeOrderService 充值订单服务
  9. type DtRechargeOrderService struct {
  10. base.BizCommonService
  11. }
  12. func (s *DtRechargeOrderService) Get(c *gin.Context) {
  13. s.SetDbAlias("daytask")
  14. base.NewBaseHandler(model.NewDtRechargeOrder()).Get(c, s.DB())
  15. }
  16. func (s *DtRechargeOrderService) Find(c *gin.Context) {
  17. s.SetDbAlias("daytask")
  18. type request[T any] struct {
  19. base.ListRequest[T]
  20. Id *int64 `form:"id"`
  21. OrderNo *string `form:"orderNo"`
  22. UserId *int64 `form:"userId"`
  23. UserUid *string `form:"userUid"`
  24. Channel *string `form:"channel"`
  25. Status *int8 `form:"status"`
  26. BeginTime *int64 `form:"beginTime"`
  27. EndTime *int64 `form:"endTime"`
  28. }
  29. req := new(request[model.DtRechargeOrder])
  30. if err := c.BindQuery(req); err != nil {
  31. response.Resp(c, err.Error())
  32. return
  33. }
  34. db := s.DB()
  35. if req.Id != nil && *req.Id != 0 {
  36. db = db.Where("id", req.Id)
  37. }
  38. if req.OrderNo != nil && *req.OrderNo != "" {
  39. db = db.Where("order_no", req.OrderNo)
  40. }
  41. if req.UserId != nil && *req.UserId != 0 {
  42. db = db.Where("user_id", req.UserId)
  43. }
  44. if req.UserUid != nil && *req.UserUid != "" {
  45. db = db.Where("user_uid", req.UserUid)
  46. }
  47. if req.Channel != nil && *req.Channel != "" {
  48. db = db.Where("channel", req.Channel)
  49. }
  50. if req.Status != nil {
  51. db = db.Where("status", req.Status)
  52. }
  53. if req.BeginTime != nil && *req.BeginTime > 0 && req.EndTime != nil && *req.EndTime > 0 {
  54. db = db.Where("created_at BETWEEN ? AND ?", *req.BeginTime, *req.EndTime)
  55. }
  56. colInfo := s.GetColumnCommentFromStruct(model.DtRechargeOrder{})
  57. resp, err := base.NewQueryBaseHandler(model.NewDtRechargeOrder()).List(db, req)
  58. if err != nil {
  59. response.Resp(c, err.Error())
  60. return
  61. }
  62. response.Resp(c, map[string]interface{}{
  63. "cols": colInfo,
  64. "list": resp.List,
  65. "paging": resp.Paging,
  66. })
  67. }
  68. func (s *DtRechargeOrderService) Create(c *gin.Context) {
  69. s.SetDbAlias("daytask")
  70. base.NewBaseHandler(model.NewDtRechargeOrder()).Create(c, s.DB())
  71. }
  72. func (s *DtRechargeOrderService) Update(c *gin.Context) {
  73. s.SetDbAlias("daytask")
  74. base.NewBaseHandler(model.NewDtRechargeOrder()).UpdateOne(c, s.DB())
  75. }
  76. // Confirm 确认充值
  77. func (s *DtRechargeOrderService) Confirm(c *gin.Context) {
  78. s.SetDbAlias("daytask")
  79. type request struct {
  80. Id int64 `json:"id" binding:"required"`
  81. Status int8 `json:"status" binding:"required"` // 2=完成 3=取消
  82. ActualAmount float64 `json:"actualAmount"`
  83. Remark string `json:"remark"`
  84. }
  85. var req request
  86. if err := c.ShouldBindJSON(&req); err != nil {
  87. response.Resp(c, err.Error())
  88. return
  89. }
  90. updates := map[string]interface{}{
  91. "status": req.Status,
  92. "remark": req.Remark,
  93. "confirm_time": c.GetInt64("now"),
  94. }
  95. if req.ActualAmount > 0 {
  96. updates["actual_amount"] = req.ActualAmount
  97. }
  98. err := s.DB().Model(&model.DtRechargeOrder{}).Where("id = ? AND status = 1", req.Id).Updates(updates).Error
  99. if err != nil {
  100. response.Resp(c, err.Error())
  101. return
  102. }
  103. response.Resp(c, "操作成功")
  104. }
  105. // DtWithdrawOrderService 提现订单服务
  106. type DtWithdrawOrderService struct {
  107. base.BizCommonService
  108. }
  109. func (s *DtWithdrawOrderService) Get(c *gin.Context) {
  110. s.SetDbAlias("daytask")
  111. base.NewBaseHandler(model.NewDtWithdrawOrder()).Get(c, s.DB())
  112. }
  113. func (s *DtWithdrawOrderService) Find(c *gin.Context) {
  114. s.SetDbAlias("daytask")
  115. type request[T any] struct {
  116. base.ListRequest[T]
  117. Id *int64 `form:"id"`
  118. OrderNo *string `form:"orderNo"`
  119. UserId *int64 `form:"userId"`
  120. UserUid *string `form:"userUid"`
  121. Channel *string `form:"channel"`
  122. Status *int8 `form:"status"`
  123. BeginTime *int64 `form:"beginTime"`
  124. EndTime *int64 `form:"endTime"`
  125. }
  126. req := new(request[model.DtWithdrawOrder])
  127. if err := c.BindQuery(req); err != nil {
  128. response.Resp(c, err.Error())
  129. return
  130. }
  131. db := s.DB()
  132. if req.Id != nil && *req.Id != 0 {
  133. db = db.Where("id", req.Id)
  134. }
  135. if req.OrderNo != nil && *req.OrderNo != "" {
  136. db = db.Where("order_no", req.OrderNo)
  137. }
  138. if req.UserId != nil && *req.UserId != 0 {
  139. db = db.Where("user_id", req.UserId)
  140. }
  141. if req.UserUid != nil && *req.UserUid != "" {
  142. db = db.Where("user_uid", req.UserUid)
  143. }
  144. if req.Channel != nil && *req.Channel != "" {
  145. db = db.Where("channel", req.Channel)
  146. }
  147. if req.Status != nil {
  148. db = db.Where("status", req.Status)
  149. }
  150. if req.BeginTime != nil && *req.BeginTime > 0 && req.EndTime != nil && *req.EndTime > 0 {
  151. db = db.Where("created_at BETWEEN ? AND ?", *req.BeginTime, *req.EndTime)
  152. }
  153. colInfo := s.GetColumnCommentFromStruct(model.DtWithdrawOrder{})
  154. resp, err := base.NewQueryBaseHandler(model.NewDtWithdrawOrder()).List(db, req)
  155. if err != nil {
  156. response.Resp(c, err.Error())
  157. return
  158. }
  159. response.Resp(c, map[string]interface{}{
  160. "cols": colInfo,
  161. "list": resp.List,
  162. "paging": resp.Paging,
  163. })
  164. }
  165. func (s *DtWithdrawOrderService) Create(c *gin.Context) {
  166. s.SetDbAlias("daytask")
  167. base.NewBaseHandler(model.NewDtWithdrawOrder()).Create(c, s.DB())
  168. }
  169. func (s *DtWithdrawOrderService) Update(c *gin.Context) {
  170. s.SetDbAlias("daytask")
  171. base.NewBaseHandler(model.NewDtWithdrawOrder()).UpdateOne(c, s.DB())
  172. }
  173. // Audit 审核提现
  174. func (s *DtWithdrawOrderService) Audit(c *gin.Context) {
  175. s.SetDbAlias("daytask")
  176. type request struct {
  177. Id int64 `json:"id" binding:"required"`
  178. Status int8 `json:"status" binding:"required"` // 1=通过 4=拒绝
  179. RejectReason string `json:"rejectReason"`
  180. Remark string `json:"remark"`
  181. }
  182. var req request
  183. if err := c.ShouldBindJSON(&req); err != nil {
  184. response.Resp(c, err.Error())
  185. return
  186. }
  187. updates := map[string]interface{}{
  188. "status": req.Status,
  189. "remark": req.Remark,
  190. "audit_time": c.GetInt64("now"),
  191. }
  192. if req.Status == 4 {
  193. updates["reject_reason"] = req.RejectReason
  194. }
  195. err := s.DB().Model(&model.DtWithdrawOrder{}).Where("id = ? AND status = 0", req.Id).Updates(updates).Error
  196. if err != nil {
  197. response.Resp(c, err.Error())
  198. return
  199. }
  200. response.Resp(c, "操作成功")
  201. }
  202. // Pay 打款
  203. func (s *DtWithdrawOrderService) Pay(c *gin.Context) {
  204. s.SetDbAlias("daytask")
  205. type request struct {
  206. Id int64 `json:"id" binding:"required"`
  207. Txid string `json:"txid"`
  208. PayScreenshot string `json:"payScreenshot"`
  209. Remark string `json:"remark"`
  210. }
  211. var req request
  212. if err := c.ShouldBindJSON(&req); err != nil {
  213. response.Resp(c, err.Error())
  214. return
  215. }
  216. updates := map[string]interface{}{
  217. "status": 2,
  218. "txid": req.Txid,
  219. "pay_screenshot": req.PayScreenshot,
  220. "remark": req.Remark,
  221. "pay_time": c.GetInt64("now"),
  222. }
  223. err := s.DB().Model(&model.DtWithdrawOrder{}).Where("id = ? AND status = 1", req.Id).Updates(updates).Error
  224. if err != nil {
  225. response.Resp(c, err.Error())
  226. return
  227. }
  228. response.Resp(c, "操作成功")
  229. }
  230. // DtBalanceLogService 资金流水服务
  231. type DtBalanceLogService struct {
  232. base.BizCommonService
  233. }
  234. func (s *DtBalanceLogService) Get(c *gin.Context) {
  235. s.SetDbAlias("daytask")
  236. base.NewBaseHandler(model.NewDtBalanceLog()).Get(c, s.DB())
  237. }
  238. func (s *DtBalanceLogService) Find(c *gin.Context) {
  239. s.SetDbAlias("daytask")
  240. type request[T any] struct {
  241. base.ListRequest[T]
  242. UserId *int64 `form:"userId"`
  243. UserUid *string `form:"userUid"`
  244. Type *string `form:"type"`
  245. BeginTime *int64 `form:"beginTime"`
  246. EndTime *int64 `form:"endTime"`
  247. }
  248. req := new(request[model.DtBalanceLog])
  249. if err := c.BindQuery(req); err != nil {
  250. response.Resp(c, err.Error())
  251. return
  252. }
  253. db := s.DB()
  254. if req.UserId != nil && *req.UserId != 0 {
  255. db = db.Where("user_id", req.UserId)
  256. }
  257. if req.UserUid != nil && *req.UserUid != "" {
  258. db = db.Where("user_uid", req.UserUid)
  259. }
  260. if req.Type != nil && *req.Type != "" {
  261. db = db.Where("type", req.Type)
  262. }
  263. if req.BeginTime != nil && *req.BeginTime > 0 && req.EndTime != nil && *req.EndTime > 0 {
  264. db = db.Where("created_at BETWEEN ? AND ?", *req.BeginTime, *req.EndTime)
  265. }
  266. colInfo := s.GetColumnCommentFromStruct(model.DtBalanceLog{})
  267. resp, err := base.NewQueryBaseHandler(model.NewDtBalanceLog()).List(db, req)
  268. if err != nil {
  269. response.Resp(c, err.Error())
  270. return
  271. }
  272. response.Resp(c, map[string]interface{}{
  273. "cols": colInfo,
  274. "list": resp.List,
  275. "paging": resp.Paging,
  276. })
  277. }
  278. // DtPaymentChannelService 支付渠道服务
  279. type DtPaymentChannelService struct {
  280. base.BizCommonService
  281. }
  282. func (s *DtPaymentChannelService) Get(c *gin.Context) {
  283. s.SetDbAlias("daytask")
  284. base.NewBaseHandler(model.NewDtPaymentChannel()).Get(c, s.DB())
  285. }
  286. func (s *DtPaymentChannelService) Find(c *gin.Context) {
  287. s.SetDbAlias("daytask")
  288. type request[T any] struct {
  289. base.ListRequest[T]
  290. Id *int64 `form:"id"`
  291. Code *string `form:"code"`
  292. Type *int8 `form:"type"`
  293. Status *int8 `form:"status"`
  294. }
  295. req := new(request[model.DtPaymentChannel])
  296. if err := c.BindQuery(req); err != nil {
  297. response.Resp(c, err.Error())
  298. return
  299. }
  300. db := s.DB()
  301. if req.Id != nil && *req.Id != 0 {
  302. db = db.Where("id", req.Id)
  303. }
  304. if req.Code != nil && *req.Code != "" {
  305. db = db.Where("code", req.Code)
  306. }
  307. if req.Type != nil {
  308. db = db.Where("type", req.Type)
  309. }
  310. if req.Status != nil {
  311. db = db.Where("status", req.Status)
  312. }
  313. db = db.Order("sort ASC")
  314. colInfo := s.GetColumnCommentFromStruct(model.DtPaymentChannel{})
  315. resp, err := base.NewQueryBaseHandler(model.NewDtPaymentChannel()).List(db, req)
  316. if err != nil {
  317. response.Resp(c, err.Error())
  318. return
  319. }
  320. response.Resp(c, map[string]interface{}{
  321. "cols": colInfo,
  322. "list": resp.List,
  323. "paging": resp.Paging,
  324. })
  325. }
  326. func (s *DtPaymentChannelService) Create(c *gin.Context) {
  327. s.SetDbAlias("daytask")
  328. base.NewBaseHandler(model.NewDtPaymentChannel()).Create(c, s.DB())
  329. }
  330. func (s *DtPaymentChannelService) Update(c *gin.Context) {
  331. s.SetDbAlias("daytask")
  332. base.NewBaseHandler(model.NewDtPaymentChannel()).UpdateOne(c, s.DB())
  333. }
  334. func (s *DtPaymentChannelService) Delete(c *gin.Context) {
  335. s.SetDbAlias("daytask")
  336. base.NewBaseHandler(model.NewDtPaymentChannel()).DeleteOne(c, s.DB())
  337. }