taaccount.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486
  1. package taaccount
  2. import (
  3. "mtp2_if/controllers/order"
  4. "mtp2_if/db"
  5. "mtp2_if/global/app"
  6. "mtp2_if/global/e"
  7. "mtp2_if/logger"
  8. "mtp2_if/models"
  9. "net/http"
  10. "strings"
  11. "github.com/gin-gonic/gin"
  12. )
  13. // GetTaAccountsReq 获取资金账户请求参数
  14. type GetTaAccountsReq struct {
  15. LoginID int `form:"loginID" binding:"required"`
  16. TaAccountType int `form:"taAccountType"`
  17. }
  18. // GetTaAccounts 获取资金账户信息
  19. // @Summary 获取资金账户信息
  20. // @Produce json
  21. // @Security ApiKeyAuth
  22. // @Param loginID query int true "登录账户"
  23. // @Param taAccountType query int false "账号类型 - 1:外部账号 2:内部账号 3:内部做市自营账号 4:内部做市接单账号"
  24. // @Success 200 {object} models.Taaccount
  25. // @Failure 500 {object} app.Response
  26. // @Router /TaAccount/GetTaAccounts [get]
  27. // @Tags 资金账户
  28. func GetTaAccounts(c *gin.Context) {
  29. appG := app.Gin{C: c}
  30. // 获取请求参数
  31. var req GetTaAccountsReq
  32. if err := appG.C.ShouldBindQuery(&req); err != nil {
  33. logger.GetLogger().Errorf("GetTaAccounts failed: %s", err.Error())
  34. appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
  35. return
  36. }
  37. // 查询数据
  38. taAccounts, err := models.GetTaAccountsByLoginID(req.LoginID, req.TaAccountType)
  39. if err != nil {
  40. // 查询失败
  41. logger.GetLogger().Errorf("GetTaAccounts failed: %s", err.Error())
  42. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
  43. return
  44. }
  45. // 如果是母账户,要从对冲外部资金账户表获取资金信息
  46. for i := range taAccounts {
  47. item := &taAccounts[i]
  48. if item.Ismain == 1 {
  49. hedgeOutTaAccount, _ := models.GetHedgeOutTaAccount(int(item.Accountid))
  50. if hedgeOutTaAccount != nil {
  51. item.Balance = hedgeOutTaAccount.Prebalance
  52. item.Currentbalance = hedgeOutTaAccount.Balance
  53. item.Usedmargin = hedgeOutTaAccount.Usedmargin
  54. item.Freezemargin = hedgeOutTaAccount.Freezemargin
  55. item.Freezecharge = hedgeOutTaAccount.Freezecharge
  56. item.Otherfreezemargin = hedgeOutTaAccount.Otherfreezemargin
  57. item.Inamount = hedgeOutTaAccount.Inamount
  58. item.Outamount = hedgeOutTaAccount.Outamount
  59. item.Paycharge = hedgeOutTaAccount.Paycharge
  60. item.Closepl = hedgeOutTaAccount.Closepl
  61. }
  62. }
  63. }
  64. if len(taAccounts) > 0 {
  65. // 查融资额
  66. var a models.InStrBuilder
  67. for i := range taAccounts {
  68. a.Add(taAccounts[i].Accountid)
  69. }
  70. mRemainAmount := models.QhjContractRemainAmount{FilterAccId: a.InStr()}
  71. if d, err := mRemainAmount.GetData(); err == nil {
  72. for _, v := range d {
  73. for i := range taAccounts {
  74. if v.ACCOUNTID == taAccounts[i].Accountid {
  75. taAccounts[i].REMAINAMOUNT = v.REMAINACOUNT
  76. }
  77. }
  78. }
  79. }
  80. // 查总市值
  81. if rst, bRet := order.GetTradePosition(a.InStr(), ""); bRet {
  82. for i := range taAccounts {
  83. for _, v := range rst {
  84. if taAccounts[i].Accountid == v.AccountID {
  85. taAccounts[i].CURAMOUNT += v.MarketAmount
  86. }
  87. }
  88. }
  89. }
  90. }
  91. // 查询成功
  92. logger.GetLogger().Debugln("GetTaAccounts successed: %v", taAccounts)
  93. appG.Response(http.StatusOK, e.SUCCESS, taAccounts)
  94. }
  95. // QueryAmountLogReq 资金流水查询(当前)请求参数
  96. type QueryAmountLogReq struct {
  97. app.PageInfo
  98. AccountID string `form:"accountID"` // 资金账户
  99. OperateType string `form:"operateType"` // 资金操作类型
  100. }
  101. // QueryAmountLogRsp 资金流水查询(当前)返回模型
  102. type QueryAmountLogRsp struct {
  103. models.Taaccountlog `xorm:"extends"`
  104. MarketName string `json:"marketname" xorm:"'MARKETNAME'"` // 市场名称
  105. TradeMode uint32 `json:"trademode" xorm:"'TRADEMODE'"` // 交易模式
  106. GoodsCode string `json:"goodscode" xorm:"'GOODSCODE'"` // 商品代码
  107. GoodsName string `json:"goodsname" xorm:"'GOODSNAME'"` // 商品名称
  108. AGoodsCode string `json:"agoodscode" xorm:"'AGOODSCODE'"` // 竞拍商品代码
  109. AGoodsName string `json:"agoodsname" xorm:"'GOODSNAME'"` // 竞拍商品名称
  110. DGoodsCode string `json:"dgoodscode" xorm:"'DGOODSCODE'"` // 交割商品代码
  111. DGoodsName string `json:"dgoodsname" xorm:"'DGOODSNAME'"` // 交割商品名称
  112. OperateTypeName string `json:"operatetypename" xorm:"OPERATETYPENAME"` // 资金操作类型名称(显示)
  113. OPERATETYPENAMEEN string `json:"operatetypenameen" xorm:"'OPERATETYPENAMEEN'"` // 枚举项名称 - 英文
  114. OPERATETYPENAME_TW string `json:"operatetypename_tw" xorm:"'OPERATETYPENAME_TW'"` // 枚举项名称 - 繁体
  115. OPERATETYPENAMETH string `json:"operatetypenameth" xorm:"'OPERATETYPENAMETH'"` // 枚举项名称 - 泰文
  116. OPERATETYPENAMEVI string `json:"operatetypenamevi" xorm:"'OPERATETYPENAMEVI'"` // 枚举项名称 - 越南语
  117. }
  118. // QueryAmountLog 资金流水查询(当前)
  119. // @Summary 资金流水查询(当前)
  120. // @Produce json
  121. // @Security ApiKeyAuth
  122. // @Param page query int false "页码"
  123. // @Param pagesize query int false "每页条数"
  124. // @Param pageflag query int false "分页标志 0-page从0开始 1-page从1开始"
  125. // @Param accountID query string true "资金账户 - 格式:1,2,3"
  126. // @Param operateType query string false "资金操作类型 - 格式:1,2,3"
  127. // @Success 200 {object} QueryAmountLogRsp
  128. // @Failure 500 {object} app.Response
  129. // @Router /TaAccount/QueryAmountLog [get]
  130. // @Tags 资金账户
  131. // 参考通用查询:QueryClientAmountLog
  132. func QueryAmountLog(c *gin.Context) {
  133. appG := app.Gin{C: c}
  134. // 获取请求参数
  135. var req QueryAmountLogReq
  136. if err := appG.C.ShouldBindQuery(&req); err != nil {
  137. logger.GetLogger().Errorf("QueryAmountLog failed: %s", err.Error())
  138. appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
  139. return
  140. }
  141. // 查询数据
  142. datas := make([]QueryAmountLogRsp, 0)
  143. engine := db.GetEngine()
  144. accountIDs := strings.Split(req.AccountID, ",")
  145. // OPERATETYPENAME 显示时,旧的号段用operateType, 新的使用accountBusinessCode
  146. s := engine.Table("TAACCOUNTLOG").
  147. Join("INNER", "ENUMDICITEM", "ENUMDICITEM.ENUMITEMSTATUS = 1 and ENUMDICITEM.ENUMDICCODE = 'accountBusinessCode' and ENUMDICITEM.ENUMITEMNAME = TAACCOUNTLOG.BUSINESSCODE").
  148. Join("LEFT", "ENUMDICITEMEX", "ENUMDICITEM.ENUMDICCODE = ENUMDICITEMEX.ENUMDICCODE AND ENUMDICITEM.ENUMITEMNAME = ENUMDICITEMEX.ENUMITEMNAME").
  149. Join("LEFT", "ENUMDICITEM E", "E.ENUMDICCODE = 'operateType' and E.ENUMITEMNAME = TAACCOUNTLOG.OPERATETYPE").
  150. Join("LEFT", "ENUMDICITEMEX EX", "E.ENUMDICCODE = EX.ENUMDICCODE AND E.ENUMITEMNAME = EX.ENUMITEMNAME").
  151. Join("LEFT", "MARKET", "MARKET.MARKETID = TAACCOUNTLOG.MARKETID").
  152. Join("LEFT", "GOODS", "GOODS.GOODSID = TAACCOUNTLOG.GOODSID").
  153. Join("LEFT", "AUCTION_ORDERINFO", "AUCTION_ORDERINFO.GOODSID = TAACCOUNTLOG.GOODSID").
  154. Join("LEFT", "DELIVERYGOODS", "DELIVERYGOODS.DELIVERYGOODSID = TAACCOUNTLOG.GOODSID").
  155. Select(`to_char(TAACCOUNTLOG.RELATIONORDERID) as RELATIONORDERID, TAACCOUNTLOG.*,
  156. MARKET.MARKETNAME, MARKET.TRADEMODE,
  157. GOODS.GOODSCODE, GOODS.GOODSNAME,
  158. AUCTION_ORDERINFO.GOODSCODE AS AGOODSCODE, AUCTION_ORDERINFO.GOODSNAME AS AGOODSNAME,
  159. DELIVERYGOODS.DELIVERYGOODSCODE AS DGOODSCODE, DELIVERYGOODS.DELIVERYGOODSNAME AS DGOODSNAME,
  160. CASE
  161. WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND TAACCOUNTLOG.BUSINESSCODE < 800) OR (TAACCOUNTLOG.BUSINESSCODE > 1900)
  162. THEN DECODE(TAACCOUNTLOG.BUSINESSCODE, NULL, '--', 0, '系统', ENUMDICITEM.ENUMDICNAME)
  163. ELSE
  164. DECODE(TAACCOUNTLOG.OPERATETYPE, NULL, '--', 0, '系统', E.ENUMDICNAME)
  165. END AS OPERATETYPENAME,
  166. CASE
  167. WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND
  168. TAACCOUNTLOG.BUSINESSCODE < 800) OR
  169. (TAACCOUNTLOG.BUSINESSCODE > 1900) THEN
  170. DECODE(TAACCOUNTLOG.BUSINESSCODE,
  171. NULL,
  172. '--',
  173. 0,
  174. 'System',
  175. ENUMDICITEMEX.ENUMDICNAMEEN)
  176. ELSE
  177. DECODE(TAACCOUNTLOG.OPERATETYPE,
  178. NULL,
  179. '--',
  180. 0,
  181. 'System',
  182. EX.ENUMDICNAMEEN)
  183. END AS OPERATETYPENAMEEN,
  184. CASE
  185. WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND
  186. TAACCOUNTLOG.BUSINESSCODE < 800) OR
  187. (TAACCOUNTLOG.BUSINESSCODE > 1900) THEN
  188. DECODE(TAACCOUNTLOG.BUSINESSCODE,
  189. NULL,
  190. '--',
  191. 0,
  192. 'System',
  193. ENUMDICITEMEX.ENUMDICNAMEZH_TW)
  194. ELSE
  195. DECODE(TAACCOUNTLOG.OPERATETYPE,
  196. NULL,
  197. '--',
  198. 0,
  199. 'System',
  200. EX.ENUMDICNAMEZH_TW)
  201. END AS OPERATETYPENAME_TW,
  202. CASE
  203. WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND
  204. TAACCOUNTLOG.BUSINESSCODE < 800) OR
  205. (TAACCOUNTLOG.BUSINESSCODE > 1900) THEN
  206. DECODE(TAACCOUNTLOG.BUSINESSCODE,
  207. NULL,
  208. '--',
  209. 0,
  210. 'System',
  211. ENUMDICITEMEX.ENUMDICNAMEVI)
  212. ELSE
  213. DECODE(TAACCOUNTLOG.OPERATETYPE,
  214. NULL,
  215. '--',
  216. 0,
  217. 'System',
  218. EX.ENUMDICNAMEVI)
  219. END AS OPERATETYPENAMEVI,
  220. CASE
  221. WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND
  222. TAACCOUNTLOG.BUSINESSCODE < 800) OR
  223. (TAACCOUNTLOG.BUSINESSCODE > 1900) THEN
  224. DECODE(TAACCOUNTLOG.BUSINESSCODE,
  225. NULL,
  226. '--',
  227. 0,
  228. 'System',
  229. ENUMDICITEMEX.ENUMDICNAMETH)
  230. ELSE
  231. DECODE(TAACCOUNTLOG.OPERATETYPE,
  232. NULL,
  233. '--',
  234. 0,
  235. 'System',
  236. EX.ENUMDICNAMETH)
  237. END AS OPERATETYPENAMETH`).
  238. // Where(fmt.Sprintf("TAACCOUNTLOG.AMOUNT <> 0 and TAACCOUNTLOG.ACCOUNTID in (%s)", req.AccountID)).
  239. Where("TAACCOUNTLOG.AMOUNT <> 0").
  240. In("TAACCOUNTLOG.ACCOUNTID", accountIDs).
  241. Desc("TAACCOUNTLOG.AUTOID")
  242. if len(req.OperateType) > 0 {
  243. // s = s.And(fmt.Sprintf("TAACCOUNTLOG.OPERATETYPE in (%s)", req.OperateType))
  244. operateTypes := strings.Split(req.OperateType, ",")
  245. s = s.In("TAACCOUNTLOG.OPERATETYPE", operateTypes)
  246. }
  247. if err := s.Find(&datas); err != nil {
  248. // 查询失败
  249. logger.GetLogger().Errorf("QueryAmountLog failed: %s", err.Error())
  250. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
  251. return
  252. }
  253. // 查询成功返回
  254. if req.PageSize > 0 {
  255. // 分页
  256. var rst []QueryAmountLogRsp
  257. // 开始上标
  258. // 终端分页1开始
  259. p := req.Page
  260. if req.PageFlag != 0 {
  261. p -= 1
  262. if p < 0 {
  263. p = 0
  264. }
  265. }
  266. start := p * req.PageSize
  267. // 结束下标
  268. end := start + req.PageSize
  269. if start <= len(datas) {
  270. // 判断结束下标是否越界
  271. if end > len(datas) {
  272. end = len(datas)
  273. }
  274. rst = datas[start:end]
  275. } else {
  276. rst = datas[0:0]
  277. }
  278. logger.GetLogger().Debugln("QueryAmountLog successed: %v", rst)
  279. appG.ResponseByPage(http.StatusOK, e.SUCCESS, rst, app.PageInfo{Page: req.Page, PageSize: req.PageSize, Total: len(datas)})
  280. } else {
  281. // 不分页
  282. logger.GetLogger().Debugln("QueryAmountLog successed: %v", datas)
  283. appG.Response(http.StatusOK, e.SUCCESS, datas)
  284. }
  285. }
  286. // QueryHisAmountLogReq 资金流水查询(历史)请求参数
  287. type QueryHisAmountLogReq struct {
  288. app.PageInfo
  289. AccountID string `form:"accountID"` // 资金账户
  290. OperateType string `form:"operateType"` // 资金操作类型
  291. StartDate string `form:"startDate"` // 开始时间
  292. EndDate string `form:"endDate"` // 结束时间
  293. }
  294. // QueryHisAmountLogRsp 资金流水查询(历史)返回模型
  295. type QueryHisAmountLogRsp struct {
  296. models.Histaaccountlog `xorm:"extends"`
  297. MarketName string `json:"marketname" xorm:"'MARKETNAME'"` // 市场名称
  298. TradeMode uint32 `json:"trademode" xorm:"'TRADEMODE'"` // 交易模式
  299. GoodsCode string `json:"goodscode" xorm:"'GOODSCODE'"` // 商品代码
  300. GoodsName string `json:"goodsname" xorm:"'GOODSNAME'"` // 商品名称
  301. AGoodsCode string `json:"agoodscode" xorm:"'AGOODSCODE'"` // 竞拍商品代码
  302. AGoodsName string `json:"agoodsname" xorm:"'GOODSNAME'"` // 竞拍商品名称
  303. DGoodsCode string `json:"dgoodscode" xorm:"'DGOODSCODE'"` // 交割商品代码
  304. DGoodsName string `json:"dgoodsname" xorm:"'DGOODSNAME'"` // 交割商品名称
  305. OperateTypeName string `json:"operatetypename" xorm:"OPERATETYPENAME"` // 资金操作类型名称(显示)
  306. }
  307. // QueryHisAmountLog 资金流水查询(历史)
  308. // @Summary 资金流水查询(历史)
  309. // @Produce json
  310. // @Security ApiKeyAuth
  311. // @Param page query int false "页码"
  312. // @Param pagesize query int false "每页条数"
  313. // @Param pageflag query int false "分页标志 0-page从0开始 1-page从1开始"
  314. // @Param accountID query string true "资金账户 - 格式:1,2,3"
  315. // @Param operateType query string false "资金操作类型 - 格式:1,2,3"
  316. // @Param startDate query string false "开始时间 - 闭区间,格式:yyyy-MM-dd"
  317. // @Param endDate query string false "结束时间 - 闭区间,格式:yyyy-MM-dd"
  318. // @Success 200 {object} QueryHisAmountLogRsp
  319. // @Failure 500 {object} app.Response
  320. // @Router /TaAccount/QueryHisAmountLog [get]
  321. // @Tags 资金账户
  322. // 参考通用查询:Client_QueryHis_taaccountlog
  323. func QueryHisAmountLog(c *gin.Context) {
  324. appG := app.Gin{C: c}
  325. // 获取请求参数
  326. var req QueryHisAmountLogReq
  327. if err := appG.C.ShouldBindQuery(&req); err != nil {
  328. logger.GetLogger().Errorf("QueryHisAmountLog failed: %s", err.Error())
  329. appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
  330. return
  331. }
  332. // 查询数据
  333. datas := make([]QueryHisAmountLogRsp, 0)
  334. engine := db.GetEngine()
  335. // OPERATETYPENAME 显示时,旧的号段用operateType, 新的使用accountBusinessCode
  336. s := engine.Table("HIS_TAACCOUNTLOG").
  337. Join("INNER", "ENUMDICITEM", "ENUMDICITEM.ENUMITEMSTATUS = 1 and ENUMDICITEM.ENUMDICCODE = 'accountBusinessCode' and ENUMDICITEM.ENUMITEMNAME = HIS_TAACCOUNTLOG.BUSINESSCODE").
  338. Join("LEFT", "ENUMDICITEM E", "E.ENUMDICCODE = 'operateType' and E.ENUMITEMNAME = HIS_TAACCOUNTLOG.OPERATETYPE").
  339. Join("LEFT", "MARKET", "MARKET.MARKETID = HIS_TAACCOUNTLOG.MARKETID").
  340. Join("LEFT", "GOODS", "GOODS.GOODSID = HIS_TAACCOUNTLOG.GOODSID").
  341. Join("LEFT", "HIS_AUCTION_ORDERINFO", "HIS_AUCTION_ORDERINFO.GOODSID = HIS_TAACCOUNTLOG.GOODSID and HIS_AUCTION_ORDERINFO.ISVALIDDATA = 1").
  342. Join("LEFT", "DELIVERYGOODS", "DELIVERYGOODS.DELIVERYGOODSID = HIS_TAACCOUNTLOG.GOODSID").
  343. Select(`to_char(HIS_TAACCOUNTLOG.RELATIONORDERID) as RELATIONORDERID, HIS_TAACCOUNTLOG.*,
  344. MARKET.MARKETNAME, MARKET.TRADEMODE,
  345. GOODS.GOODSCODE, GOODS.GOODSNAME,
  346. HIS_AUCTION_ORDERINFO.GOODSCODE AS AGOODSCODE, HIS_AUCTION_ORDERINFO.GOODSNAME AS AGOODSNAME,
  347. DELIVERYGOODS.DELIVERYGOODSCODE AS DGOODSCODE, DELIVERYGOODS.DELIVERYGOODSNAME AS DGOODSNAME,
  348. CASE
  349. WHEN (HIS_TAACCOUNTLOG.BUSINESSCODE > 700 AND HIS_TAACCOUNTLOG.BUSINESSCODE < 800) OR (HIS_TAACCOUNTLOG.BUSINESSCODE > 1900)
  350. THEN DECODE(HIS_TAACCOUNTLOG.BUSINESSCODE, NULL, '--', 0, '系统', ENUMDICITEM.ENUMDICNAME)
  351. ELSE
  352. DECODE(HIS_TAACCOUNTLOG.OPERATETYPE, NULL, '--', 0, '系统', E.ENUMDICNAME)
  353. END AS OPERATETYPENAME`).
  354. Where("HIS_TAACCOUNTLOG.ISVALIDDATA = 1 and HIS_TAACCOUNTLOG.AMOUNT <> 0").
  355. In("HIS_TAACCOUNTLOG.ACCOUNTID", strings.Split(req.AccountID, ",")).
  356. Desc("HIS_TAACCOUNTLOG.AUTOID")
  357. if len(req.OperateType) > 0 {
  358. s = s.In("HIS_TAACCOUNTLOG.OPERATETYPE", strings.Split(req.OperateType, ","))
  359. }
  360. if len(req.StartDate) > 0 {
  361. // s = s.And("to_date(HIS_TAACCOUNTLOG.HISTRADEDATE,'yyyyMMdd') >= to_date(?,'yyyy-MM-dd')", req.StartDate)
  362. s = s.And("HIS_TAACCOUNTLOG.HISTRADEDATE >= ?", strings.Replace(req.StartDate, "-", "", -1))
  363. }
  364. if len(req.EndDate) > 0 {
  365. // s = s.And("to_date(HIS_TAACCOUNTLOG.HISTRADEDATE,'yyyyMMdd') <= to_date(?,'yyyy-MM-dd')", req.EndDate)
  366. s = s.And("HIS_TAACCOUNTLOG.HISTRADEDATE <= ?", strings.Replace(req.EndDate, "-", "", -1))
  367. }
  368. if err := s.Find(&datas); err != nil {
  369. // 查询失败
  370. logger.GetLogger().Errorf("QueryHisAmountLog failed: %s", err.Error())
  371. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
  372. return
  373. }
  374. // 查询成功返回
  375. if req.PageSize > 0 {
  376. // 分页
  377. var rst []QueryHisAmountLogRsp
  378. // 开始上标
  379. // 终端分页1开始
  380. p := req.Page
  381. if req.PageFlag != 0 {
  382. p -= 1
  383. if p < 0 {
  384. p = 0
  385. }
  386. }
  387. start := p * req.PageSize
  388. // 结束下标
  389. end := start + req.PageSize
  390. if start <= len(datas) {
  391. // 判断结束下标是否越界
  392. if end > len(datas) {
  393. end = len(datas)
  394. }
  395. rst = datas[start:end]
  396. } else {
  397. rst = datas[0:0]
  398. }
  399. logger.GetLogger().Debugln("QueryHisAmountLog successed: %v", rst)
  400. appG.ResponseByPage(http.StatusOK, e.SUCCESS, rst, app.PageInfo{Page: req.Page, PageSize: req.PageSize, Total: len(datas)})
  401. } else {
  402. // 不分页
  403. logger.GetLogger().Debugln("QueryHisAmountLog successed: %v", datas)
  404. appG.Response(http.StatusOK, e.SUCCESS, datas)
  405. }
  406. }
  407. // QueryRelatedTaAccount
  408. // @Summary 查询关联资金账户信息
  409. // @Produce json
  410. // @Security ApiKeyAuth
  411. // @Param relateduserid query int true "关联UserID"
  412. // @Success 200 {array} models.RelatedTaAccount
  413. // @Failure 500 {object} app.Response
  414. // @Router /TaAccount/QueryRelatedTaAccount [get]
  415. // @Tags 资金账户
  416. func QueryRelatedTaAccount(c *gin.Context) {
  417. a := app.GinUtils{Gin: app.Gin{C: c}}
  418. m := models.RelatedTaAccount{}
  419. a.DoBindReq(&m)
  420. a.DoGetDataI(&m)
  421. }
  422. // GetGtwithholdsigninfo
  423. // @Summary 获取代扣签约信息表
  424. // @Produce json
  425. // @Param userid query int true "用户ID"
  426. // @Success 200 {array} models.Gtwithholdsigninfo
  427. // @Failure 500 {object} app.Response
  428. // @Router /TaAccount/GetGtwithholdsigninfo [get]
  429. // @Tags 资金账户
  430. func GetGtwithholdsigninfo(c *gin.Context) {
  431. a := app.GinUtils{Gin: app.Gin{C: c}}
  432. m := models.Gtwithholdsigninfo{}
  433. a.DoBindReq(&m)
  434. a.DoGetDataEx(&m)
  435. }
  436. // QueryTHJFriends
  437. // @Summary 查询代扣入金申请表
  438. // @Produce json
  439. // @Security ApiKeyAuth
  440. // @Param userid query int true "用户ID"
  441. // @Param begindate query string false "开始交易日(yyyymmdd)"
  442. // @Param enddate query string false "结束交易日(yyyymmdd)"
  443. // @Param billresult query int false "批扣结果 - 0-扣费成功、1-扣费失败"
  444. // @Param page query int false "页码"
  445. // @Param pagesize query int false "每页条数"
  446. // @Success 200 {array} models.Gtwithholddepositapply
  447. // @Failure 500 {object} app.Response
  448. // @Router /TaAccount/QueryGtwithholddepositapply [get]
  449. // @Tags 资金账户
  450. func QueryGtwithholddepositapply(c *gin.Context) {
  451. a := app.GinUtils{Gin: app.Gin{C: c}}
  452. m := models.Gtwithholddepositapply{}
  453. a.DoBindReq(&m)
  454. a.DoGetDataByPage(&m)
  455. }