|
|
@@ -204,7 +204,7 @@ type QhjRStrategy struct {
|
|
|
REGULARLYSTRATEGYID int64 `json:"regularlystrategyid" xorm:"REGULARLYSTRATEGYID"` // 定投策略ID (SEQ_QHJ_REGULARLYSTRATEGY)
|
|
|
USERID int64 `json:"userid" xorm:"USERID"` // 所属用户ID
|
|
|
ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 用户资金账户
|
|
|
- GOODSID string `json:"goodsid" xorm:"GOODSID"` // 定投商品ID
|
|
|
+ GOODSID int32 `json:"goodsid" xorm:"GOODSID"` // 定投商品ID
|
|
|
GOODSCODE string `json:"goodscode" xorm:"'GOODSCODE'"` // 定投商品代码
|
|
|
GOODSNAME string `json:"goodsname" xorm:"'GOODSNAME'"` // 定投商品名称
|
|
|
GOODUNITID int32 `json:"goodunitid" xorm:"'GOODUNITID'"` // 定投商品单位id
|
|
|
@@ -214,17 +214,18 @@ type QhjRStrategy struct {
|
|
|
LOGINCODE string `json:"logincode" xorm:"'LOGINCODE'"` // 账号(登录代码)
|
|
|
USERINFOTYPE int32 `json:"userinfotype" xorm:"'USERINFOTYPE'"` // 用户类型 1-个人 2-企业
|
|
|
MOBILE string `json:"-" xorm:"'MOBILE'"` // 电话号码(用户资料里的电话)
|
|
|
+ USERNAME string `json:"username" xorm:"'USERNAME'"` // 用户名称(userid对应的名称)
|
|
|
|
|
|
- USERNAME string `json:"username"` // 用户名称(userid对应的名称)
|
|
|
ACCOUNTNAME string `json:"accountname"` // 账号名称(ACCOUNTID对应的名称)
|
|
|
ENUMDICNAME string `json:"enumdicname"` // 单位名称
|
|
|
CURRENCYNAME string `json:"currencyname"` // 币种名称
|
|
|
|
|
|
FilterStatus string `json:"-"` // 状态过滤条件
|
|
|
+ FilterName string `json:"-"` // 模糊搜索
|
|
|
}
|
|
|
|
|
|
func (r *QhjRStrategy) calc() {
|
|
|
- r.USERNAME = mtpcache.GetUserNameByUserId(r.USERID)
|
|
|
+ //r.USERNAME = mtpcache.GetUserNameByUserId(r.USERID)
|
|
|
r.ENUMDICNAME = mtpcache.GetEnumDicitemName(r.GOODUNITID)
|
|
|
r.CURRENCYNAME = mtpcache.GetCurrencyName(r.CURRENCYID)
|
|
|
ZoomByDecimal(r.QTYDECIMALPLACE, &r.TRIGGERTOTALQTY, &r.NEXTTRIGGERQTY)
|
|
|
@@ -268,16 +269,23 @@ func (r *QhjRStrategy) buildSql() string {
|
|
|
" g.goodunitid," +
|
|
|
" ta.accountname," +
|
|
|
" k.logincode," +
|
|
|
- " ui.userinfotype" +
|
|
|
+ " ui.userinfotype," +
|
|
|
+ " ui.mobile," +
|
|
|
+ " u.accountname username" +
|
|
|
" FROM QHJ_REGULARLYSTRATEGY t" +
|
|
|
" LEFT JOIN GOODS g" +
|
|
|
" on t.goodsid = g.goodsid" +
|
|
|
" LEFT JOIN TAACCOUNT ta" +
|
|
|
" on t.accountid = ta.accountid" +
|
|
|
" LEFT JOIN USERINFO ui on t.userid=ui.userid" +
|
|
|
+ " LEFT JOIN USERACCOUNT u on t.userid=u.userid" +
|
|
|
" LEFT JOIN k on t.userid=k.userid" +
|
|
|
" WHERE 1 = 1"
|
|
|
sqlId.AndEx("t.USERID", r.USERID, r.USERID > 0)
|
|
|
+ sqlId.AndEx("t.goodsid", r.GOODSID, r.GOODSID > 0)
|
|
|
+ if len(r.FilterName) > 0 {
|
|
|
+ sqlId.JoinFormat(" and (k.logincode like '%%%v%%' or u.accountname like '%%%v%%')", r.FilterName, r.FilterName)
|
|
|
+ }
|
|
|
sqlId.JoinEx(len(r.FilterStatus) > 0, fmt.Sprintf(" and t.REGULARLYSTRATEGYSTATUS in(%v)", r.FilterStatus))
|
|
|
return sqlId.String()
|
|
|
}
|
|
|
@@ -299,7 +307,7 @@ type QhjRSTriggerLog struct {
|
|
|
REGULARLYSTRATEGYID int64 `json:"regularlystrategyid" xorm:"REGULARLYSTRATEGYID"` // 定投策略ID
|
|
|
USERID int64 `json:"userid" xorm:"USERID"` // 所属用户ID
|
|
|
ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 用户资金账户
|
|
|
- GOODSID string `json:"goodsid" xorm:"GOODSID"` // 定投商品ID
|
|
|
+ GOODSID int32 `json:"goodsid" xorm:"GOODSID"` // 定投商品ID
|
|
|
REGULARLYCYCLE int32 `json:"regularlycycle" xorm:"REGULARLYCYCLE"` // 定投频率 - 1:每周 2:每月
|
|
|
REGULARLYCYCLEVALUE string `json:"regularlycyclevalue" xorm:"REGULARLYCYCLEVALUE"` // 定投频率值 - 每周几(0-6) 或 每月几号(<=28)
|
|
|
REGULARLYMODE int32 `json:"regularlymode" xorm:"REGULARLYMODE"` // 定投方式 - 1:按数量 2:按金额
|
|
|
@@ -316,55 +324,84 @@ type QhjRSTriggerLog struct {
|
|
|
CURRENCYID int32 `json:"currencyid" xorm:"'CURRENCYID'"` // 币种id
|
|
|
DECIMALPLACE int32 `json:"decimalplace" xorm:"'DECIMALPLACE'"` // 商品报价小数位
|
|
|
QTYDECIMALPLACE int `json:"qtydecimalplace" xorm:"'QTYDECIMALPLACE'"` // 成交量小数位
|
|
|
+ LOGINCODE string `json:"logincode" xorm:"'LOGINCODE'"` // 账号(登录代码)
|
|
|
+ USERINFOTYPE int32 `json:"userinfotype" xorm:"'USERINFOTYPE'"` // 用户类型 1-个人 2-企业
|
|
|
+ MOBILE string `json:"-" xorm:"'MOBILE'"` // 电话号码(用户资料里的电话)
|
|
|
+ USERNAME string `json:"username" xorm:"'USERNAME'"` // 用户名称(userid对应的名称)
|
|
|
|
|
|
- USERNAME string `json:"username"` // 用户名称(userid对应的名称)
|
|
|
ACCOUNTNAME string `json:"accountname"` // 账号名称(ACCOUNTID对应的名称)
|
|
|
ENUMDICNAME string `json:"enumdicname"` // 单位名称
|
|
|
CURRENCYNAME string `json:"currencyname"` // 币种名称
|
|
|
+
|
|
|
+ BeginDate string `json:"-"` // 开始交易日
|
|
|
+ EndDate string `json:"-"` // 结束交易日
|
|
|
+ FilterName string `json:"-"` // 模糊搜索
|
|
|
}
|
|
|
|
|
|
func (r *QhjRSTriggerLog) calc() {
|
|
|
- r.USERNAME = mtpcache.GetUserNameByUserId(r.USERID)
|
|
|
+ //r.USERNAME = mtpcache.GetUserNameByUserId(r.USERID)
|
|
|
r.ENUMDICNAME = mtpcache.GetEnumDicitemName(r.GOODUNITID)
|
|
|
r.CURRENCYNAME = mtpcache.GetCurrencyName(r.CURRENCYID)
|
|
|
ZoomByDecimal(r.QTYDECIMALPLACE, &r.TRIGGERQTY)
|
|
|
if r.REGULARLYMODE == 1 {
|
|
|
ZoomByDecimal(r.QTYDECIMALPLACE, &r.REGULARLYMODEVALUE)
|
|
|
}
|
|
|
+ if r.LOGINCODE == "" {
|
|
|
+ r.LOGINCODE = DecryptField(r.MOBILE)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
func (r *QhjRSTriggerLog) buildSql() string {
|
|
|
- var sqlId utils.SQLVal = "SELECT t.TRADEID," +
|
|
|
- " t.LOGID," +
|
|
|
- " t.REGULARLYSTRATEGYID," +
|
|
|
- " t.USERID," +
|
|
|
- " t.ACCOUNTID," +
|
|
|
- " t.GOODSID," +
|
|
|
- " t.REGULARLYCYCLE," +
|
|
|
- " t.REGULARLYCYCLEVALUE," +
|
|
|
- " t.REGULARLYMODE," +
|
|
|
- " t.REGULARLYMODEVALUE," +
|
|
|
- " to_char(t.TRIGGERTIME, 'yyyy-mm-dd hh24:mi:ss') TRIGGERTIME," +
|
|
|
- " t.TRIGGERTRADEDATE," +
|
|
|
- " t.TRIGGERQTY," +
|
|
|
- " t.TRIGGERAMOUNT," +
|
|
|
- " t.TRIGGERSTATUS," +
|
|
|
- " t.RETCODE," +
|
|
|
- " g.goodscode," +
|
|
|
- " g.goodsname," +
|
|
|
- " g.decimalplace," +
|
|
|
- " g.qtydecimalplace," +
|
|
|
- " g.goodunitid," +
|
|
|
- " ta.accountname," +
|
|
|
- " ta.currencyid" +
|
|
|
- " FROM QHJ_RSTRIGGERLOG t" +
|
|
|
- " LEFT JOIN GOODS g" +
|
|
|
- " on t.goodsid = g.goodsid" +
|
|
|
- " LEFT JOIN TAACCOUNT ta" +
|
|
|
- " on t.accountid = ta.accountid" +
|
|
|
- " WHERE 1 = 1"
|
|
|
+ var sqlId utils.SQLVal = "with k as (select t.userid, wm_concat(t.logincode) logincode from loginaccount t group by t.userid)" +
|
|
|
+ "SELECT t.TRADEID," +
|
|
|
+ " t.LOGID," +
|
|
|
+ " t.REGULARLYSTRATEGYID," +
|
|
|
+ " t.USERID," +
|
|
|
+ " t.ACCOUNTID," +
|
|
|
+ " t.GOODSID," +
|
|
|
+ " t.REGULARLYCYCLE," +
|
|
|
+ " t.REGULARLYCYCLEVALUE," +
|
|
|
+ " t.REGULARLYMODE," +
|
|
|
+ " t.REGULARLYMODEVALUE," +
|
|
|
+ " to_char(t.TRIGGERTIME, 'yyyy-mm-dd hh24:mi:ss') TRIGGERTIME," +
|
|
|
+ " t.TRIGGERTRADEDATE," +
|
|
|
+ " t.TRIGGERQTY," +
|
|
|
+ " t.TRIGGERAMOUNT," +
|
|
|
+ " t.TRIGGERSTATUS," +
|
|
|
+ " t.RETCODE," +
|
|
|
+ " g.goodscode," +
|
|
|
+ " g.goodsname," +
|
|
|
+ " g.decimalplace," +
|
|
|
+ " g.qtydecimalplace," +
|
|
|
+ " g.goodunitid," +
|
|
|
+ " ta.accountname," +
|
|
|
+ " ta.currencyid," +
|
|
|
+ " k.logincode," +
|
|
|
+ " ui.userinfotype," +
|
|
|
+ " ui.mobile," +
|
|
|
+ " u.accountname username" +
|
|
|
+ " FROM QHJ_RSTRIGGERLOG t" +
|
|
|
+ " LEFT JOIN GOODS g" +
|
|
|
+ " on t.goodsid = g.goodsid" +
|
|
|
+ " LEFT JOIN TAACCOUNT ta" +
|
|
|
+ " on t.accountid = ta.accountid" +
|
|
|
+ " LEFT JOIN k on t.userid=k.userid" +
|
|
|
+ " LEFT JOIN USERACCOUNT u on t.userid=u.userid" +
|
|
|
+ " LEFT JOIN USERINFO ui on t.userid=ui.userid" +
|
|
|
+ " WHERE 1 = 1"
|
|
|
sqlId.AndEx("t.USERID", r.USERID, r.USERID > 0)
|
|
|
sqlId.AndEx("t.REGULARLYSTRATEGYID", r.REGULARLYSTRATEGYID, r.REGULARLYSTRATEGYID > 0)
|
|
|
+ sqlId.AndEx("ui.USERINFOTYPE", r.USERINFOTYPE, r.USERINFOTYPE > 0)
|
|
|
+ sqlId.AndEx("t.goodsid", r.GOODSID, r.GOODSID > 0)
|
|
|
+ if len(r.BeginDate) > 0 {
|
|
|
+ sqlId.JoinFormat(" and t.TRIGGERTRADEDATE >=%v", r.BeginDate)
|
|
|
+ }
|
|
|
+ if len(r.EndDate) > 0 {
|
|
|
+ sqlId.JoinFormat(" and t.TRIGGERTRADEDATE <=%v", r.EndDate)
|
|
|
+ }
|
|
|
+ if len(r.FilterName) > 0 {
|
|
|
+ sqlId.JoinFormat(" and (k.logincode like '%%%v%%' or u.accountname like '%%%v%%')", r.FilterName, r.FilterName)
|
|
|
+ }
|
|
|
return sqlId.String()
|
|
|
}
|
|
|
|