Quellcode durchsuchen

#7222【Go查询】TaAccount/QueryAmountLog、/TaAccount/QueryHisAmountLog:因影响性能,删除联表查询字段,添加“changetypeenumcode”,“changetypeenumvalue”用于前端显示
#7224 【Go查询】/Order/QueryTradeOrderDetail:加分页+参数goodsid

deng.yinping vor 1 Monat
Ursprung
Commit
27c283eeb4
6 geänderte Dateien mit 761 neuen und 691 gelöschten Zeilen
  1. 53 2
      controllers/order/order.go
  2. 24 123
      controllers/taaccount/taaccount.go
  3. 240 146
      docs/docs.go
  4. 239 144
      docs/swagger.json
  5. 151 244
      docs/swagger.yaml
  6. 54 32
      models/account.go

+ 53 - 2
controllers/order/order.go

@@ -341,11 +341,13 @@ func GetTradePosition(accIds string, tradeModes string) (rst []QueryTradePositio
 
 // QueryTradeOrderDetailReq 委托单查询请求参数(合约市场)
 type QueryTradeOrderDetailReq struct {
+	app.PageInfo
 	AccountID   string `form:"accountID" binding:"required"`
 	OrderStatus string `form:"orderStatus"`
 	TradeMode   string `form:"tradeMode"`
 	OrderID     int    `form:"orderID"`
 	IncOrderID  string `form:"incOrderID"`
+	GoodsID     int    `form:"goodsID"` // 商品ID
 }
 
 // QueryTradeOrderDetailRsp 委托单查询返回模型(合约市场)
@@ -425,6 +427,10 @@ func (r *QueryTradeOrderDetailRsp) calc() {
 // @Param    orderStatus query    string false "委托状态 - 格式:1,2,3"
 // @Param    orderID     query    int    false "委托单号"
 // @Param    incOrderID  query    string false "增量委托单号"
+// @Param    goodsID     query    int    false "商品ID"
+// @Param    page      query    int    false "页码"
+// @Param    pagesize  query    int    false "每页条数"
+// @Param    pageflag  query    int    false "分页标志 0-page从0开始 1-page从1开始"
 // @Success  200         {object} QueryTradeOrderDetailRsp
 // @Failure  500         {object} app.Response
 // @Router   /Order/QueryTradeOrderDetail [get]
@@ -469,6 +475,9 @@ func QueryTradeOrderDetail(c *gin.Context) {
 		// s = s.And(fmt.Sprintf("TRADE_ORDERDETAIL.ORDERID > %v", req.IncOrderID))
 		s = s.And("TRADE_ORDERDETAIL.ORDERID > ?", req.IncOrderID)
 	}
+	if req.GoodsID > 0 {
+		s = s.And("TRADE_ORDERDETAIL.GOODSID = ?", req.GoodsID)
+	}
 	if err := s.Find(&datas); err != nil {
 		// 查询失败
 		logger.GetLogger().Errorf("QueryTradeOrderDetail failed: %s", err.Error())
@@ -477,11 +486,47 @@ func QueryTradeOrderDetail(c *gin.Context) {
 	}
 
 	// 查询成功
-	logger.GetLogger().Debugln("QueryTradeOrderDetail successed: %v", datas)
+	logger.GetLogger().Debugf("QueryTradeOrderDetail successed: %v\n", datas)
 	for i := range datas {
 		datas[i].calc()
 	}
-	appG.Response(http.StatusOK, e.SUCCESS, datas)
+
+	// appG.Response(http.StatusOK, e.SUCCESS, datas)
+
+	// 查询成功返回
+	if req.PageSize > 0 {
+		// 分页
+		var rst []QueryTradeOrderDetailRsp
+		// 开始上标
+		// 终端分页1开始
+		p := req.Page
+		if req.PageFlag != 0 {
+			p -= 1
+			if p < 0 {
+				p = 0
+			}
+		}
+		start := p * req.PageSize
+		// 结束下标
+		end := start + req.PageSize
+
+		if start <= len(datas) {
+			// 判断结束下标是否越界
+			if end > len(datas) {
+				end = len(datas)
+			}
+			rst = datas[start:end]
+		} else {
+			rst = datas[0:0]
+		}
+
+		logger.GetLogger().Debugf("QueryHisTradeOrderDetail successed: %v\n", rst)
+		appG.ResponseByPage(http.StatusOK, e.SUCCESS, rst, app.PageInfo{Page: req.Page, PageSize: req.PageSize, Total: len(datas)})
+	} else {
+		// 不分页
+		logger.GetLogger().Debugf("QueryHisTradeOrderDetail successed: %v\n", datas)
+		appG.Response(http.StatusOK, e.SUCCESS, datas)
+	}
 }
 
 // QueryHisTradeOrderDetailReq 历史委托单查询请求参数(合约市场)
@@ -494,6 +539,7 @@ type QueryHisTradeOrderDetailReq struct {
 	OrderID     int    `form:"orderID"`                      // 委托单号
 	StartDate   string `form:"startDate"`                    // 开始时间
 	EndDate     string `form:"endDate"`                      // 结束时间
+	GoodsID     int    `form:"goodsID"`                      // 商品ID
 }
 
 // QueryHisTradeOrderDetailRsp 历史委托单查询返回模型(合约市场)
@@ -534,6 +580,7 @@ func (r *QueryHisTradeOrderDetailRsp) calc() {
 // @Param    orderID     query    int    false "委托单号"
 // @Param    startDate   query    string false "开始时间 - 闭区间,格式:yyyy-MM-dd"
 // @Param    endDate     query    string false "结束时间 - 闭区间,格式:yyyy-MM-dd"
+// @Param    goodsID     query    int    false "商品ID"
 // @Param    page      query    int    false "页码"
 // @Param    pagesize  query    int    false "每页条数"
 // @Param    pageflag  query    int    false "分页标志 0-page从0开始 1-page从1开始"
@@ -584,6 +631,10 @@ func QueryHisTradeOrderDetail(c *gin.Context) {
 		// s = s.And(fmt.Sprintf("to_date(HIS_TRADE_ORDERDETAIL.HISTRADEDATE,'yyyyMMdd') <= to_date('%s','yyyy-MM-dd')", req.EndDate))
 		s = s.And("HIS_TRADE_ORDERDETAIL.HISTRADEDATE <= ?", strings.Replace(req.EndDate, "-", "", -1))
 	}
+	if req.GoodsID > 0 {
+		s = s.And("HIS_TRADE_ORDERDETAIL.GOODSID = ?", req.GoodsID)
+	}
+
 	if err := s.Find(&datas); err != nil {
 		// 查询失败
 		logger.GetLogger().Errorf("QueryHisTradeOrderDetail failed: %s", err.Error())

+ 24 - 123
controllers/taaccount/taaccount.go

@@ -129,19 +129,7 @@ type QueryAmountLogReq struct {
 type QueryAmountLogRsp struct {
 	models.Taaccountlog `xorm:"extends"`
 
-	MarketName         string `json:"marketname"  xorm:"'MARKETNAME'"`                 // 市场名称
-	TradeMode          uint32 `json:"trademode"  xorm:"'TRADEMODE'"`                   // 交易模式
-	GoodsCode          string `json:"goodscode"  xorm:"'GOODSCODE'"`                   // 商品代码
-	GoodsName          string `json:"goodsname"  xorm:"'GOODSNAME'"`                   // 商品名称
-	AGoodsCode         string `json:"agoodscode"  xorm:"'AGOODSCODE'"`                 // 竞拍商品代码
-	AGoodsName         string `json:"agoodsname"  xorm:"'GOODSNAME'"`                  // 竞拍商品名称
-	DGoodsCode         string `json:"dgoodscode"  xorm:"'DGOODSCODE'"`                 // 交割商品代码
-	DGoodsName         string `json:"dgoodsname"  xorm:"'DGOODSNAME'"`                 // 交割商品名称
-	OperateTypeName    string `json:"operatetypename" xorm:"OPERATETYPENAME"`          // 资金操作类型名称(显示)
-	OPERATETYPENAMEEN  string `json:"operatetypenameen"  xorm:"'OPERATETYPENAMEEN'"`   // 枚举项名称 - 英文
-	OPERATETYPENAME_TW string `json:"operatetypename_tw"  xorm:"'OPERATETYPENAME_TW'"` // 枚举项名称 - 繁体
-	OPERATETYPENAMETH  string `json:"operatetypenameth"  xorm:"'OPERATETYPENAMETH'"`   // 枚举项名称 - 泰文
-	OPERATETYPENAMEVI  string `json:"operatetypenamevi"  xorm:"'OPERATETYPENAMEVI'"`   // 枚举项名称 - 越南语
+	models.TaaccountLogQueryEx `xorm:"extends"` // 扩展字段
 }
 
 // QueryAmountLog 资金流水查询(当前)
@@ -176,97 +164,20 @@ func QueryAmountLog(c *gin.Context) {
 	// OPERATETYPENAME 显示时,旧的号段用operateType, 新的使用accountBusinessCode
 	s := engine.Table("TAACCOUNTLOG").
 		Join("INNER", "ENUMDICITEM", "ENUMDICITEM.ENUMITEMSTATUS = 1 and ENUMDICITEM.ENUMDICCODE = 'accountBusinessCode' and ENUMDICITEM.ENUMITEMNAME = TAACCOUNTLOG.BUSINESSCODE").
-		Join("LEFT", "ENUMDICITEMEX", "ENUMDICITEM.ENUMDICCODE = ENUMDICITEMEX.ENUMDICCODE AND ENUMDICITEM.ENUMITEMNAME = ENUMDICITEMEX.ENUMITEMNAME").
-		Join("LEFT", "ENUMDICITEM E", "E.ENUMDICCODE = 'operateType' and E.ENUMITEMNAME = TAACCOUNTLOG.OPERATETYPE").
-		Join("LEFT", "ENUMDICITEMEX EX", "E.ENUMDICCODE = EX.ENUMDICCODE AND E.ENUMITEMNAME = EX.ENUMITEMNAME").
-		Join("LEFT", "MARKET", "MARKET.MARKETID = TAACCOUNTLOG.MARKETID").
-		Join("LEFT", "GOODS", "GOODS.GOODSID = TAACCOUNTLOG.GOODSID").
-		Join("LEFT", "AUCTION_ORDERINFO", "AUCTION_ORDERINFO.GOODSID = TAACCOUNTLOG.GOODSID").
-		Join("LEFT", "DELIVERYGOODS", "DELIVERYGOODS.DELIVERYGOODSID = TAACCOUNTLOG.GOODSID").
-		Select(`to_char(TAACCOUNTLOG.RELATIONORDERID) as RELATIONORDERID, TAACCOUNTLOG.*, 
-				MARKET.MARKETNAME, MARKET.TRADEMODE, 
-				GOODS.GOODSCODE, GOODS.GOODSNAME, 
-				AUCTION_ORDERINFO.GOODSCODE AS AGOODSCODE, AUCTION_ORDERINFO.GOODSNAME AS AGOODSNAME, 
-				DELIVERYGOODS.DELIVERYGOODSCODE AS DGOODSCODE, DELIVERYGOODS.DELIVERYGOODSNAME AS DGOODSNAME, 
+		Select(`to_char(TAACCOUNTLOG.RELATIONORDERID) as RELATIONORDERID, TAACCOUNTLOG.*,  
 				CASE 
 					WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND TAACCOUNTLOG.BUSINESSCODE < 800) OR (TAACCOUNTLOG.BUSINESSCODE > 1900) 
-						THEN DECODE(TAACCOUNTLOG.BUSINESSCODE, NULL, '--', 0, '系统', ENUMDICITEM.ENUMDICNAME)
+						THEN 'accountBusinessCode'
          			ELSE
-          				DECODE(TAACCOUNTLOG.OPERATETYPE, NULL, '--', 0, '系统', E.ENUMDICNAME) 
-				END AS OPERATETYPENAME,
-       CASE
-         WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND
-              TAACCOUNTLOG.BUSINESSCODE < 800) OR
-              (TAACCOUNTLOG.BUSINESSCODE > 1900) THEN
-          DECODE(TAACCOUNTLOG.BUSINESSCODE,
-                 NULL,
-                 '--',
-                 0,
-                 'System',
-                 ENUMDICITEMEX.ENUMDICNAMEEN)
-         ELSE
-          DECODE(TAACCOUNTLOG.OPERATETYPE,
-                 NULL,
-                 '--',
-                 0,
-                 'System',
-                 EX.ENUMDICNAMEEN)
-       END AS OPERATETYPENAMEEN,
-       CASE
-         WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND
-              TAACCOUNTLOG.BUSINESSCODE < 800) OR
-              (TAACCOUNTLOG.BUSINESSCODE > 1900) THEN
-          DECODE(TAACCOUNTLOG.BUSINESSCODE,
-                 NULL,
-                 '--',
-                 0,
-                 'System',
-                 ENUMDICITEMEX.ENUMDICNAMEZH_TW)
-         ELSE
-          DECODE(TAACCOUNTLOG.OPERATETYPE,
-                 NULL,
-                 '--',
-                 0,
-                 'System',
-                 EX.ENUMDICNAMEZH_TW)
-       END AS OPERATETYPENAME_TW,
-       CASE
-         WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND
-              TAACCOUNTLOG.BUSINESSCODE < 800) OR
-              (TAACCOUNTLOG.BUSINESSCODE > 1900) THEN
-          DECODE(TAACCOUNTLOG.BUSINESSCODE,
-                 NULL,
-                 '--',
-                 0,
-                 'System',
-                 ENUMDICITEMEX.ENUMDICNAMEVI)
-         ELSE
-          DECODE(TAACCOUNTLOG.OPERATETYPE,
-                 NULL,
-                 '--',
-                 0,
-                 'System',
-                 EX.ENUMDICNAMEVI)
-       END AS OPERATETYPENAMEVI,
-       CASE
-         WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND
-              TAACCOUNTLOG.BUSINESSCODE < 800) OR
-              (TAACCOUNTLOG.BUSINESSCODE > 1900) THEN
-          DECODE(TAACCOUNTLOG.BUSINESSCODE,
-                 NULL,
-                 '--',
-                 0,
-                 'System',
-                 ENUMDICITEMEX.ENUMDICNAMETH)
-         ELSE
-          DECODE(TAACCOUNTLOG.OPERATETYPE,
-                 NULL,
-                 '--',
-                 0,
-                 'System',
-                 EX.ENUMDICNAMETH)
-       END AS OPERATETYPENAMETH`).
-		// Where(fmt.Sprintf("TAACCOUNTLOG.AMOUNT <> 0 and TAACCOUNTLOG.ACCOUNTID in (%s)", req.AccountID)).
+          				'operateType' 
+				END AS CHANGETYPEENUMCODE,
+				CASE 
+					WHEN (TAACCOUNTLOG.BUSINESSCODE > 700 AND TAACCOUNTLOG.BUSINESSCODE < 800) OR (TAACCOUNTLOG.BUSINESSCODE > 1900) 
+						THEN TAACCOUNTLOG.BUSINESSCODE
+         			ELSE
+          				TAACCOUNTLOG.OPERATETYPE
+				END AS CHANGETYPEENUMVALUE
+      	`).
 		Where("TAACCOUNTLOG.AMOUNT <> 0").
 		In("TAACCOUNTLOG.ACCOUNTID", accountIDs).
 		Desc("TAACCOUNTLOG.AUTOID")
@@ -331,15 +242,7 @@ type QueryHisAmountLogReq struct {
 type QueryHisAmountLogRsp struct {
 	models.Histaaccountlog `xorm:"extends"`
 
-	MarketName      string `json:"marketname"  xorm:"'MARKETNAME'"`        // 市场名称
-	TradeMode       uint32 `json:"trademode"  xorm:"'TRADEMODE'"`          // 交易模式
-	GoodsCode       string `json:"goodscode"  xorm:"'GOODSCODE'"`          // 商品代码
-	GoodsName       string `json:"goodsname"  xorm:"'GOODSNAME'"`          // 商品名称
-	AGoodsCode      string `json:"agoodscode"  xorm:"'AGOODSCODE'"`        // 竞拍商品代码
-	AGoodsName      string `json:"agoodsname"  xorm:"'GOODSNAME'"`         // 竞拍商品名称
-	DGoodsCode      string `json:"dgoodscode"  xorm:"'DGOODSCODE'"`        // 交割商品代码
-	DGoodsName      string `json:"dgoodsname"  xorm:"'DGOODSNAME'"`        // 交割商品名称
-	OperateTypeName string `json:"operatetypename" xorm:"OPERATETYPENAME"` // 资金操作类型名称(显示)
+	models.TaaccountLogQueryEx `xorm:"extends"` // 扩展字段
 }
 
 // QueryHisAmountLog 资金流水查询(历史)
@@ -375,22 +278,20 @@ func QueryHisAmountLog(c *gin.Context) {
 	// OPERATETYPENAME 显示时,旧的号段用operateType, 新的使用accountBusinessCode
 	s := engine.Table("HIS_TAACCOUNTLOG").
 		Join("INNER", "ENUMDICITEM", "ENUMDICITEM.ENUMITEMSTATUS = 1 and ENUMDICITEM.ENUMDICCODE = 'accountBusinessCode' and ENUMDICITEM.ENUMITEMNAME = HIS_TAACCOUNTLOG.BUSINESSCODE").
-		Join("LEFT", "ENUMDICITEM E", "E.ENUMDICCODE = 'operateType' and E.ENUMITEMNAME = HIS_TAACCOUNTLOG.OPERATETYPE").
-		Join("LEFT", "MARKET", "MARKET.MARKETID = HIS_TAACCOUNTLOG.MARKETID").
-		Join("LEFT", "GOODS", "GOODS.GOODSID = HIS_TAACCOUNTLOG.GOODSID").
-		Join("LEFT", "HIS_AUCTION_ORDERINFO", "HIS_AUCTION_ORDERINFO.GOODSID = HIS_TAACCOUNTLOG.GOODSID and HIS_AUCTION_ORDERINFO.ISVALIDDATA = 1").
-		Join("LEFT", "DELIVERYGOODS", "DELIVERYGOODS.DELIVERYGOODSID = HIS_TAACCOUNTLOG.GOODSID").
-		Select(`to_char(HIS_TAACCOUNTLOG.RELATIONORDERID) as RELATIONORDERID, HIS_TAACCOUNTLOG.*, 
-				MARKET.MARKETNAME, MARKET.TRADEMODE, 
-				GOODS.GOODSCODE, GOODS.GOODSNAME, 
-				HIS_AUCTION_ORDERINFO.GOODSCODE AS AGOODSCODE, HIS_AUCTION_ORDERINFO.GOODSNAME AS AGOODSNAME, 
-				DELIVERYGOODS.DELIVERYGOODSCODE AS DGOODSCODE, DELIVERYGOODS.DELIVERYGOODSNAME AS DGOODSNAME, 
+		Select(`to_char(HIS_TAACCOUNTLOG.RELATIONORDERID) as RELATIONORDERID, HIS_TAACCOUNTLOG.*,  
+				CASE 
+					WHEN (HIS_TAACCOUNTLOG.BUSINESSCODE > 700 AND HIS_TAACCOUNTLOG.BUSINESSCODE < 800) OR (HIS_TAACCOUNTLOG.BUSINESSCODE > 1900) 
+						THEN 'accountBusinessCode'
+         			ELSE
+          				'operateType' 
+				END AS CHANGETYPEENUMCODE,
 				CASE 
 					WHEN (HIS_TAACCOUNTLOG.BUSINESSCODE > 700 AND HIS_TAACCOUNTLOG.BUSINESSCODE < 800) OR (HIS_TAACCOUNTLOG.BUSINESSCODE > 1900) 
-						THEN DECODE(HIS_TAACCOUNTLOG.BUSINESSCODE, NULL, '--', 0, '系统', ENUMDICITEM.ENUMDICNAME)
+						THEN HIS_TAACCOUNTLOG.BUSINESSCODE
          			ELSE
-          				DECODE(HIS_TAACCOUNTLOG.OPERATETYPE, NULL, '--', 0, '系统', E.ENUMDICNAME) 
-				END AS OPERATETYPENAME`).
+          				HIS_TAACCOUNTLOG.OPERATETYPE
+				END AS CHANGETYPEENUMVALUE
+      	`).
 		Where("HIS_TAACCOUNTLOG.ISVALIDDATA = 1 and HIS_TAACCOUNTLOG.AMOUNT <> 0").
 		In("HIS_TAACCOUNTLOG.ACCOUNTID", strings.Split(req.AccountID, ",")).
 		Desc("HIS_TAACCOUNTLOG.AUTOID")

Datei-Diff unterdrückt, da er zu groß ist
+ 240 - 146
docs/docs.go


Datei-Diff unterdrückt, da er zu groß ist
+ 239 - 144
docs/swagger.json


Datei-Diff unterdrückt, da er zu groß ist
+ 151 - 244
docs/swagger.yaml


+ 54 - 32
models/account.go

@@ -366,21 +366,21 @@ func (r *Arearole) GetAreaRoles(UserID int, RoleType int) ([]Arearole, error) {
 
 // Taaccountlog 资金账户记账流水表 - 导历史
 type Taaccountlog struct {
-	Autoid           int64     `json:"autoid"  xorm:"'AUTOID'" binding:"required"`                     // 流水ID(220+Unix秒时间戳(10位)+xxxxxx)
-	Accountid        int64     `json:"accountid"  xorm:"'ACCOUNTID'" binding:"required"`               // 资金账户ID
-	Relationorderid  string    `json:"relationorderid"  xorm:"'RELATIONORDERID'"`                      // 关联单号
-	Marketid         int32     `json:"marketid"  xorm:"'MARKETID'"`                                    // 市场ID
-	Goodsid          int32     `json:"goodsid"  xorm:"'GOODSID'"`                                      // 商品ID
-	Currencyid       int64     `json:"currencyid"  xorm:"'CURRENCYID'"`                                // 币种ID
-	Amount           float64   `json:"amount"  xorm:"'AMOUNT'" binding:"required"`                     // 资金金额
-	Amountadjusttype int32     `json:"amountadjusttype"  xorm:"'AMOUNTADJUSTTYPE'" binding:"required"` // 资金调整类型(默认值为0) -  0:系统 1:单边账调整  2:人工调整
-	Balance          float64   `json:"balance"  xorm:"'BALANCE'" binding:"required"`                   // 期初余额
-	Currentbalance   float64   `json:"currentbalance"  xorm:"'CURRENTBALANCE'" binding:"required"`     // 期末余额(变动后金额)
-	Createtime       time.Time `json:"createtime"  xorm:"'CREATETIME'" binding:"required"`             // 发生时间
-	Operatetype      int32     `json:"operatetype"  xorm:"'OPERATETYPE'" binding:"required"`           // 资金操作类型 (AccountFundCmdOp)- 101:入金 102:入金手续费 103:出金 104:出金冻结 105:出金解冻 106:出金手续费 107:出金手续费冻结 108:出金手续费解冻 201:交易冻结 202:交易解冻 203:交易占用 204:交易解占用 205:交易手续费冻结 206:交易手续费解冻 207:交易手续费 208:交易货款 209:交易盈亏 301:交割冻结 302:交割解冻 303:交割手续费 304:交割手续费冻结 305:交割手续费解冻 306:交割货款 307:交割税款 401:结算盈亏 402:结算递延费 403:分润收入 404:延期分润 501:授信增加 502:授信减少 503:转积分 504:转入 505:转出 506:转出冻结 507:转出解冻  601:履约金额冻结 602:履约最大冻结 603:履约金额解冻 604:履约扣款 605:履约收款 606:履约违约手续费 607:履约违约收入 608:履约最大扣款 701:供应链金融冻结 702:供应链金融解冻 703:供应链金融最大冻结 704:供应链金融利息 705:供应链金融货款 706:供应链金融押金 707:供应链金融最大扣款 801:仓单贸易冻结 802:仓单贸易解冻 803:仓单贸易首付款 804:仓单贸易最大扣款 901:商城扣款冻结 902:商城扣款解冻 903:商城扣款 904:商城收款 1001:期权冻结 1002:期权解冻 1003:期权权力金 1004:期权手续费冻结 1005:期权手续费解冻 1006:期权手续费 1007:期权盈亏 1101:营销扣款 1102:营销收款
-	Moneyticket      int64     `json:"moneyticket"  xorm:"'MONEYTICKET'"`                              // 资金流水号:银行端流水号
-	Remark           string    `json:"remark"  xorm:"'REMARK'"`                                        // 备注
-	Businesscode     int32     `json:"businesscode"  xorm:"'BUSINESSCODE'"`                            // 业务编号
+	Autoid           int64     `json:"autoid"  xorm:"'AUTOID'" binding:"required"`         // 流水ID(220+Unix秒时间戳(10位)+xxxxxx)
+	Accountid        int64     `json:"accountid"  xorm:"'ACCOUNTID'" binding:"required"`   // 资金账户ID
+	Relationorderid  string    `json:"relationorderid"  xorm:"'RELATIONORDERID'"`          // 关联单号
+	Marketid         int32     `json:"marketid"  xorm:"'MARKETID'"`                        // 市场ID
+	Goodsid          int32     `json:"goodsid"  xorm:"'GOODSID'"`                          // 商品ID
+	Currencyid       int64     `json:"currencyid"  xorm:"'CURRENCYID'"`                    // 币种ID
+	Amount           float64   `json:"amount"  xorm:"'AMOUNT'" binding:"required"`         // 资金金额
+	Amountadjusttype int32     `json:"-"  xorm:"'AMOUNTADJUSTTYPE'" binding:"required"`    // 资金调整类型(默认值为0) -  0:系统 1:单边账调整  2:人工调整
+	Balance          float64   `json:"-"  xorm:"'BALANCE'" binding:"required"`             // 期初余额
+	Currentbalance   float64   `json:"-"  xorm:"'CURRENTBALANCE'" binding:"required"`      // 期末余额(变动后金额)
+	Createtime       time.Time `json:"createtime"  xorm:"'CREATETIME'" binding:"required"` // 发生时间
+	Operatetype      int32     `json:"-"  xorm:"'OPERATETYPE'" binding:"required"`         // 资金操作类型(显示优先使用,枚举'operateType',无值使用 Businesscode)
+	Moneyticket      int64     `json:"-"  xorm:"'MONEYTICKET'"`                            // 资金流水号:银行端流水号
+	Remark           string    `json:"-"  xorm:"'REMARK'"`                                 // 备注
+	Businesscode     int32     `json:"-"  xorm:"'BUSINESSCODE'"`                           // 业务编号(Operatetype 无值时使用,枚举'accountBusinessCode')
 }
 
 // TableName is TAACCOUNTLOG
@@ -390,23 +390,23 @@ func (Taaccountlog) TableName() string {
 
 // Histaaccountlog 历史资金账户记账流水表
 type Histaaccountlog struct {
-	Autoid           int64     `json:"autoid"  xorm:"'AUTOID'" binding:"required"`                     // 流水ID(220+Unix秒时间戳(10位)+xxxxxx)
-	Accountid        int64     `json:"accountid"  xorm:"'ACCOUNTID'" binding:"required"`               // 资金账户ID
-	Relationorderid  string    `json:"relationorderid"  xorm:"'RELATIONORDERID'"`                      // 关联单号
-	Marketid         int32     `json:"marketid"  xorm:"'MARKETID'"`                                    // 市场ID
-	Goodsid          int32     `json:"goodsid"  xorm:"'GOODSID'"`                                      // 商品ID
-	Currencyid       int64     `json:"currencyid"  xorm:"'CURRENCYID'"`                                // 币种ID
-	Amount           float64   `json:"amount"  xorm:"'AMOUNT'" binding:"required"`                     // 资金金额
-	Amountadjusttype int32     `json:"amountadjusttype"  xorm:"'AMOUNTADJUSTTYPE'" binding:"required"` // 资金调整类型(默认值为0) -  0:系统 1:单边账调整  2:人工调整
-	Balance          float64   `json:"balance"  xorm:"'BALANCE'" binding:"required"`                   // 期初余额
-	Currentbalance   float64   `json:"currentbalance"  xorm:"'CURRENTBALANCE'" binding:"required"`     // 期末余额(变动后金额)
-	Createtime       time.Time `json:"createtime"  xorm:"'CREATETIME'" binding:"required"`             // 发生时间
-	Operatetype      int32     `json:"operatetype"  xorm:"'OPERATETYPE'" binding:"required"`           // 资金操作类型 (AccountFundCmdOp)- 101:入金 102:入金手续费 103:出金 104:出金冻结 105:出金解冻 106:出金手续费 107:出金手续费冻结 108:出金手续费解冻 201:交易冻结 202:交易解冻 203:交易占用 204:交易解占用 205:交易手续费冻结 206:交易手续费解冻 207:交易手续费 208:交易货款 209:交易盈亏 301:交割冻结 302:交割解冻 303:交割手续费 304:交割手续费冻结 305:交割手续费解冻 306:交割货款 307:交割税款 401:结算盈亏 402:结算递延费 403:分润收入 404:延期分润 501:授信增加 502:授信减少 503:转积分 504:转入 505:转出 506:转出冻结 507:转出解冻  601:履约金额冻结 602:履约最大冻结 603:履约金额解冻 604:履约扣款 605:履约收款 606:履约违约手续费 607:履约违约收入 608:履约最大扣款 701:供应链金融冻结 702:供应链金融解冻 703:供应链金融最大冻结 704:供应链金融利息 705:供应链金融货款 706:供应链金融押金 707:供应链金融最大扣款 801:仓单贸易冻结 802:仓单贸易解冻 803:仓单贸易首付款 804:仓单贸易最大扣款 901:商城扣款冻结 902:商城扣款解冻 903:商城扣款 904:商城收款 1001:期权冻结 1002:期权解冻 1003:期权权力金 1004:期权手续费冻结 1005:期权手续费解冻 1006:期权手续费 1007:期权盈亏 1101:营销扣款 1102:营销收款
-	Moneyticket      int64     `json:"moneyticket"  xorm:"'MONEYTICKET'"`                              // 资金流水号:银行端流水号
-	Remark           string    `json:"remark"  xorm:"'REMARK'"`                                        // 备注
-	Businesscode     int32     `json:"businesscode"  xorm:"'BUSINESSCODE'"`                            // 业务编号
-	Histradedate     string    `json:"histradedate"  xorm:"'HISTRADEDATE'" binding:"required"`         // 历史交易日
-	Isvaliddata      int32     `json:"isvaliddata"  xorm:"'ISVALIDDATA'"`                              // 是否有效 - 0:无效 1:有效
+	Autoid           int64     `json:"autoid"  xorm:"'AUTOID'" binding:"required"`             // 流水ID(220+Unix秒时间戳(10位)+xxxxxx)
+	Accountid        int64     `json:"accountid"  xorm:"'ACCOUNTID'" binding:"required"`       // 资金账户ID
+	Relationorderid  string    `json:"relationorderid"  xorm:"'RELATIONORDERID'"`              // 关联单号
+	Marketid         int32     `json:"marketid"  xorm:"'MARKETID'"`                            // 市场ID
+	Goodsid          int32     `json:"goodsid"  xorm:"'GOODSID'"`                              // 商品ID
+	Currencyid       int64     `json:"currencyid"  xorm:"'CURRENCYID'"`                        // 币种ID
+	Amount           float64   `json:"amount"  xorm:"'AMOUNT'" binding:"required"`             // 资金金额
+	Amountadjusttype int32     `json:"-"  xorm:"'AMOUNTADJUSTTYPE'" binding:"required"`        // 资金调整类型(默认值为0) -  0:系统 1:单边账调整  2:人工调整
+	Balance          float64   `json:"-"  xorm:"'BALANCE'" binding:"required"`                 // 期初余额
+	Currentbalance   float64   `json:"-"  xorm:"'CURRENTBALANCE'" binding:"required"`          // 期末余额(变动后金额)
+	Createtime       time.Time `json:"createtime"  xorm:"'CREATETIME'" binding:"required"`     // 发生时间
+	Operatetype      int32     `json:"-"  xorm:"'OPERATETYPE'" binding:"required"`             // 资金操作类型 (AccountFundCmdOp)
+	Moneyticket      int64     `json:"-"  xorm:"'MONEYTICKET'"`                                // 资金流水号:银行端流水号
+	Remark           string    `json:"-"  xorm:"'REMARK'"`                                     // 备注
+	Businesscode     int32     `json:"-"  xorm:"'BUSINESSCODE'"`                               // 业务编号
+	Histradedate     string    `json:"histradedate"  xorm:"'HISTRADEDATE'" binding:"required"` // 历史交易日
+	Isvaliddata      int32     `json:"isvaliddata"  xorm:"'ISVALIDDATA'"`                      // 是否有效 - 0:无效 1:有效
 }
 
 // TableName is HIS_TAACCOUNTLOG
@@ -1568,3 +1568,25 @@ func (r *Gtwithholddepositapply) GetDataByPage() (interface{}, error, int, int,
 	}
 	return sData, err, r.Page, r.PageSize, total
 }
+
+type TaaccountLogQueryEx struct {
+	// 联表查询影响性能,前端通过 Operatetype, Businesscode 字段取枚举显示 20251021
+
+	MarketName string `json:"-"  xorm:"'MARKETNAME'"` // 市场名称
+	TradeMode  uint32 `json:"-"  xorm:"'TRADEMODE'"`  // 交易模式
+	GoodsCode  string `json:"-"  xorm:"'GOODSCODE'"`  // 商品代码
+	GoodsName  string `json:"-"  xorm:"'GOODSNAME'"`  // 商品名称
+	AGoodsCode string `json:"-"  xorm:"'AGOODSCODE'"` // 竞拍商品代码
+	AGoodsName string `json:"-"  xorm:"'GOODSNAME'"`  // 竞拍商品名称
+	DGoodsCode string `json:"-"  xorm:"'DGOODSCODE'"` // 交割商品代码
+	DGoodsName string `json:"-"  xorm:"'DGOODSNAME'"` // 交割商品名称
+
+	// OperateTypeName    string `json:"operatetypename" xorm:"OPERATETYPENAME"`          // 资金操作类型名称(显示)
+	// OPERATETYPENAMEEN  string `json:"operatetypenameen"  xorm:"'OPERATETYPENAMEEN'"`   // 枚举项名称 - 英文
+	// OPERATETYPENAME_TW string `json:"operatetypename_tw"  xorm:"'OPERATETYPENAME_TW'"` // 枚举项名称 - 繁体
+	// OPERATETYPENAMETH  string `json:"operatetypenameth"  xorm:"'OPERATETYPENAMETH'"`   // 枚举项名称 - 泰文
+	// OPERATETYPENAMEVI  string `json:"operatetypenamevi"  xorm:"'OPERATETYPENAMEVI'"`   // 枚举项名称 - 越南语
+
+	ChangeTypeEnumCode  string `json:"changetypeenumcode" xorm:"'CHANGETYPEENUMCODE'"`   // 变更类型枚举项代码(operateType 或 accountBusinessCode)
+	ChangeTypeEnumValue string `json:"changetypeenumvalue" xorm:"'CHANGETYPEENUMVALUE'"` // 变更类型枚举项值(operateType 或 accountBusinessCode 对应值)
+}

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.