Ver Fonte

优化“历史成交单查询(合约市场)”接口SQL执行效率

zhou.xiaoning há 1 ano atrás
pai
commit
a980b857a1

+ 6 - 6
config/config.xml

@@ -57,10 +57,10 @@
     <SignKey value="EB49C115EEDE44049F11495F6EA7526F"/>
   </Tencent>
   <Asign>
-    <Url value="https://oapi.asign.cn"/>
-    <AppId value="332768562"/>
-    <PrivateKey value="MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDB1BczuEtnsE+4HmM1aj+n363w2FaXhJkm/3JStPWY93pNDEaWN9IevPsUAjKEXGw4kaYWJAs6oLcouPz5BUONOoRubk6cXk9juBPa1Kipyr5W5vlhaPOCMx9YSBGNGef6RoVBT+H9U3nVTJyJIFQM2teWNw8PrlbcHJAFJjwAwVySbOeJuhYMXK/kKTi7UNP1UGFL0e3n0CZyYH1/k8gcmzlz+nKWtQzTQi7ijFzg3ycoDf6YnGTzUOssdmGrxyjH+KRaFYXVGUg2StfjTaUEV1ww+zICRdIyQgHMRCn0hkvKuVbNCUPSx75Cz6AcW5X8/Oq6dv0zfZy50mZ7T1wtAgMBAAECggEAUYfUJqY72aa5MbpegsZpdkTJVsi5S8yz20qSHSYPNMPMhwJF4sQiN1nIxzbRZwm1X+osEZ4htwyJXrDJgDntm0dlE0qE+JNXE5wHhgHz3E/y1n0boxTRcQ/t/GV8NH0ULhthzAI9DiEB2235Xljh4fJfwsjwJelwke/VyMS3cp0nqp8/pyzhLKnqr7JL9uOQqYKo+RiAgX4Y2Lrll/vSIONw9fefCK5u9kTdXt5numUc+Vdt81sX62vNk38iNqqBW+suwr8KOOSM5mlffxKbRxHkPTCJTYA+Rdlfpdms3/Co7MotfWy0XamcW7TNyt8PkDQNLySF4kgIdKaKZjU4oQKBgQDpGeHMW1EwrQVjWPXhLmxDOse/3apRqLZ85urVn4wnDStMDzaDZoUf6PEmQlLPl8lyKxuKTw8xXPp2BKTGg6eseUVjA2fidufwnJ/a4CmkvFbTNLbEiNqRA6VUht7SGSviVwT8Fg0DH2139otlQdup/ypFQFUGKNUKPwR45PpD+QKBgQDU3pC2cBHEYcEwdw7xM9cKBLrF5CdHnBR8kA8L7bk2kzm23nWHWBr6frAhZTYeoTvADaZSMt1EURKS13J1q0wDkfUBolPif3pAjTZVJV6dMDonnbbvOXU/u4czsMp077RCfbbgr15gH2He6KPK0xmI1mME/JBVm4cy9kldAjK+1QKBgEdwJDBSCCbnz8/rsqdJZ+qOuCsIDyupjgvnZS8FD5nkQlG0E9vfbosiA83a47A1b4pqxaz0n85cFXJX5/vi219TZz16DLtt/5VRGvikXH7dLara6+x9mKZ6vI+UKfOvvTBHxQJQ67n6Rr1ONNhaf6yww86ncadKmkfimkdGvaBZAoGACUeelWVzUNVWH6/BBgDViglEvyXAFJ4YQonhLgrx/RAT/wXZp8nOe0cUlJAd+N3chfXSX1j6TmUeYypjQf/ys2Ekhiq2b3RRNwkw6itT4ZRdpKZ6eBlQJDQfo8A8QzbD6/YhB9B9U8FqedY4dboYLd/ytx/vhtvd2/nintxeq/UCgYEAqe1lh9lYbxPREsHjuhHiRzxqxdGS13hW2bvoLisAhQdNx/L9HFtEO5Nx2fRdzFRgXbH/QjfOxEadMia04uY0upqfg4fPT0Za2WIvn+uJBxpRiwupbAlKmP626jdmajJ03aQe1F7P8Ny+96Wh8x18uaMJx88Kg7e7+hi95WokLB4="/>
-    <NotifyUrl value="http://218.17.158.45:15105/api/Asign/HandleASignCompleted"/>
-    <OpenApiUrl value="http://192.168.31.134:5015/mtp2-onlineopen"/>
-  </Asign>
+  <Url value="https://oapi.asign.cn"/>
+  <AppId value="332768562"/>
+  <PrivateKey value="MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDB1BczuEtnsE+4HmM1aj+n363w2FaXhJkm/3JStPWY93pNDEaWN9IevPsUAjKEXGw4kaYWJAs6oLcouPz5BUONOoRubk6cXk9juBPa1Kipyr5W5vlhaPOCMx9YSBGNGef6RoVBT+H9U3nVTJyJIFQM2teWNw8PrlbcHJAFJjwAwVySbOeJuhYMXK/kKTi7UNP1UGFL0e3n0CZyYH1/k8gcmzlz+nKWtQzTQi7ijFzg3ycoDf6YnGTzUOssdmGrxyjH+KRaFYXVGUg2StfjTaUEV1ww+zICRdIyQgHMRCn0hkvKuVbNCUPSx75Cz6AcW5X8/Oq6dv0zfZy50mZ7T1wtAgMBAAECggEAUYfUJqY72aa5MbpegsZpdkTJVsi5S8yz20qSHSYPNMPMhwJF4sQiN1nIxzbRZwm1X+osEZ4htwyJXrDJgDntm0dlE0qE+JNXE5wHhgHz3E/y1n0boxTRcQ/t/GV8NH0ULhthzAI9DiEB2235Xljh4fJfwsjwJelwke/VyMS3cp0nqp8/pyzhLKnqr7JL9uOQqYKo+RiAgX4Y2Lrll/vSIONw9fefCK5u9kTdXt5numUc+Vdt81sX62vNk38iNqqBW+suwr8KOOSM5mlffxKbRxHkPTCJTYA+Rdlfpdms3/Co7MotfWy0XamcW7TNyt8PkDQNLySF4kgIdKaKZjU4oQKBgQDpGeHMW1EwrQVjWPXhLmxDOse/3apRqLZ85urVn4wnDStMDzaDZoUf6PEmQlLPl8lyKxuKTw8xXPp2BKTGg6eseUVjA2fidufwnJ/a4CmkvFbTNLbEiNqRA6VUht7SGSviVwT8Fg0DH2139otlQdup/ypFQFUGKNUKPwR45PpD+QKBgQDU3pC2cBHEYcEwdw7xM9cKBLrF5CdHnBR8kA8L7bk2kzm23nWHWBr6frAhZTYeoTvADaZSMt1EURKS13J1q0wDkfUBolPif3pAjTZVJV6dMDonnbbvOXU/u4czsMp077RCfbbgr15gH2He6KPK0xmI1mME/JBVm4cy9kldAjK+1QKBgEdwJDBSCCbnz8/rsqdJZ+qOuCsIDyupjgvnZS8FD5nkQlG0E9vfbosiA83a47A1b4pqxaz0n85cFXJX5/vi219TZz16DLtt/5VRGvikXH7dLara6+x9mKZ6vI+UKfOvvTBHxQJQ67n6Rr1ONNhaf6yww86ncadKmkfimkdGvaBZAoGACUeelWVzUNVWH6/BBgDViglEvyXAFJ4YQonhLgrx/RAT/wXZp8nOe0cUlJAd+N3chfXSX1j6TmUeYypjQf/ys2Ekhiq2b3RRNwkw6itT4ZRdpKZ6eBlQJDQfo8A8QzbD6/YhB9B9U8FqedY4dboYLd/ytx/vhtvd2/nintxeq/UCgYEAqe1lh9lYbxPREsHjuhHiRzxqxdGS13hW2bvoLisAhQdNx/L9HFtEO5Nx2fRdzFRgXbH/QjfOxEadMia04uY0upqfg4fPT0Za2WIvn+uJBxpRiwupbAlKmP626jdmajJ03aQe1F7P8Ny+96Wh8x18uaMJx88Kg7e7+hi95WokLB4="/>
+  <NotifyUrl value="http://218.17.158.45:15105/api/Asign/HandleASignCompleted"/>
+  <OpenApiUrl value="http://192.168.31.134:5015/mtp2-onlineopen"/>
+</Asign>
 </Configuration>

+ 16 - 5
controllers/order/order.go

@@ -13,6 +13,7 @@ import (
 	"mtp2_if/utils"
 	"net/http"
 	"strconv"
+	"strings"
 	"time"
 
 	"github.com/gin-gonic/gin"
@@ -778,6 +779,8 @@ func QueryHisTradeDetail(c *gin.Context) {
 		return
 	}
 
+	accountIds := strings.Split(req.AccountID, ",")
+
 	datas := make([]QueryHisTradeDetailRsp, 0)
 	engine := db.GetEngine()
 	s := engine.Table("HIS_TRADE_TRADEDETAIL").
@@ -789,7 +792,9 @@ func QueryHisTradeDetail(c *gin.Context) {
 				HIS_TRADE_TRADEDETAIL.*, CASE HIS_TRADE_TRADEDETAIL.BUILDTYPE WHEN 1 THEN HIS_TRADE_TRADEDETAIL.OPENCHARGE ELSE HIS_TRADE_TRADEDETAIL.CLOSECHARGE END as CHARGE,
 				GOODS.GOODSCODE, GOODS.GOODSNAME,GOODS.DECIMALPLACE, GOODS.QTYDECIMALPLACE, GOODS.GOODUNITID, MARKET.MARKETNAME, MARKET.TRADEMODE, 
 				HIS_TRADE_ORDERDETAIL.LISTINGSELECTTYPE, TRADE_PAYORDER.ADVANCERATIO, TRADE_PAYORDER.PAYAMOUNT, TRADE_PAYORDER.TRADECHARGE`).
-		Where(fmt.Sprintf("HIS_TRADE_TRADEDETAIL.ISVALIDDATA = 1 and HIS_TRADE_TRADEDETAIL.ACCOUNTID in (%s)", req.AccountID)).
+		// Where(fmt.Sprintf("HIS_TRADE_TRADEDETAIL.ISVALIDDATA = 1 and HIS_TRADE_TRADEDETAIL.ACCOUNTID in (%s)", req.AccountID)).
+		Where("HIS_TRADE_TRADEDETAIL.ISVALIDDATA = 1").
+		In("HIS_TRADE_TRADEDETAIL.ACCOUNTID", accountIds).
 		Desc("HIS_TRADE_TRADEDETAIL.TRADEID")
 	if req.TradeID > 0 {
 		s = s.And("HIS_TRADE_TRADEDETAIL.TRADEID = ?", req.TradeID)
@@ -801,19 +806,25 @@ func QueryHisTradeDetail(c *gin.Context) {
 		s = s.And("HIS_TRADE_TRADEDETAIL.GOODSID = ?", req.GoodsID)
 	}
 	if len(req.TradeMode) > 0 {
-		s = s.And(fmt.Sprintf("MARKET.TRADEMODE in (%s)", req.TradeMode))
+		// s = s.And(fmt.Sprintf("MARKET.TRADEMODE in (%s)", req.TradeMode))
+		tradeModes := strings.Split(req.TradeMode, ",")
+		s = s.In("MARKET.TRADEMODE", tradeModes)
 	}
 	if req.BuildType > 0 {
 		s = s.And("HIS_TRADE_TRADEDETAIL.BUILDTYPE = ?", req.BuildType)
 	}
 	if len(req.TradeType) > 0 {
-		s = s.And(fmt.Sprintf("HIS_TRADE_TRADEDETAIL.TRADETYPE in (%s)", req.TradeType))
+		// s = s.And(fmt.Sprintf("HIS_TRADE_TRADEDETAIL.TRADETYPE in (%s)", req.TradeType))
+		tradeTypes := strings.Split(req.TradeType, ",")
+		s = s.In("HIS_TRADE_TRADEDETAIL.TRADETYPE", tradeTypes)
 	}
 	if len(req.StartDate) > 0 {
-		s = s.And(fmt.Sprintf("to_date(HIS_TRADE_TRADEDETAIL.HISTRADEDATE,'yyyyMMdd') >= to_date('%s','yyyy-MM-dd')", req.StartDate))
+		// s = s.And(fmt.Sprintf("to_date(HIS_TRADE_TRADEDETAIL.HISTRADEDATE,'yyyyMMdd') >= to_date('%s','yyyy-MM-dd')", req.StartDate))
+		s = s.And("HIS_TRADE_TRADEDETAIL.HISTRADEDATE >= ?", req.StartDate)
 	}
 	if len(req.EndDate) > 0 {
-		s = s.And(fmt.Sprintf("to_date(HIS_TRADE_TRADEDETAIL.HISTRADEDATE,'yyyyMMdd') <= to_date('%s','yyyy-MM-dd')", req.EndDate))
+		// s = s.And(fmt.Sprintf("to_date(HIS_TRADE_TRADEDETAIL.HISTRADEDATE,'yyyyMMdd') <= to_date('%s','yyyy-MM-dd')", req.EndDate))
+		s = s.And("HIS_TRADE_TRADEDETAIL.HISTRADEDATE <= ?", req.EndDate)
 	}
 	if err := s.Find(&datas); err != nil {
 		// 查询失败

BIN
services/asign/templates/贵茶3/风险揭示书.doc