|
|
@@ -1771,3 +1771,265 @@ func (r *Thjspotquoteconfig) GetDataEx() (interface{}, error) {
|
|
|
}
|
|
|
return sData, nil
|
|
|
}
|
|
|
+
|
|
|
+func (r *Thjinvestorlevelgroup) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *Thjinvestorlevelgroup) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+ select t.* from thj_investorlevelgroup t order by t.grouplevel
|
|
|
+ `
|
|
|
+
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+// GetDataEx 从数据库中查询数据
|
|
|
+func (r *Thjinvestorlevelgroup) GetDataEx() (interface{}, error) {
|
|
|
+ e := db.GetEngine()
|
|
|
+ s := e.SQL(r.buildSql())
|
|
|
+ sData := make([]Thjinvestorlevelgroup, 0)
|
|
|
+ if err := s.Find(&sData); err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ }
|
|
|
+ return sData, nil
|
|
|
+}
|
|
|
+
|
|
|
+type THJFriend struct {
|
|
|
+ CUSTOMERNAME string `json:"customername" xorm:"CUSTOMERNAME" form:"customername"` // 客户名称(企业名称),模糊查询
|
|
|
+ MOBILE string `json:"mobile" xorm:"MOBILE" form:"mobile"` // 手机号码(加密存储),加密串精确查询
|
|
|
+ CREATETIME string `json:"createtime" xorm:"CREATETIME"` // 创建时间
|
|
|
+
|
|
|
+ GROUPNAME string `json:"groupname" xorm:"GROUPNAME"` // 分级名称
|
|
|
+
|
|
|
+ ACCOUTSTATUS string `json:"accoutstatus" xorm:"ACCOUTSTATUS"` // 状态
|
|
|
+
|
|
|
+ HASAUTH int32 `json:"hasauth" xorm:"HASAUTH"` // 是否已实名认证 - 0:未认证 1:已认证 2:已提交(待审核) 3:已拒绝
|
|
|
+
|
|
|
+ USERID int64 `json:"-" xorm:"-" form:"userid" binding:"required"` // 用户ID
|
|
|
+ LEVELGROUPID int64 `json:"-" xorm:"-" form:"levelgroupid"` // 等级ID
|
|
|
+
|
|
|
+ PageEx `xorm:"extends"` // 页码信息
|
|
|
+}
|
|
|
+
|
|
|
+func (r *THJFriend) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *THJFriend) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+ select
|
|
|
+ t.CUSTOMERNAME,
|
|
|
+ t.MOBILE,
|
|
|
+ g.GROUPNAME,
|
|
|
+ ed.enumdicname ACCOUTSTATUS,
|
|
|
+ ua.HASAUTH,
|
|
|
+ t.CREATETIME
|
|
|
+ from userinfo t
|
|
|
+ inner join useraccount ua on t.userid = ua.userid
|
|
|
+ left join THJ_UserAccount thjua on t.userid = thjua.userid
|
|
|
+ left join thj_investorlevelgroup g on thjua.levelgroupid = g.levelgroupid
|
|
|
+ left join enumdicitem ed on ed.enumdiccode = 'accountstatus' and ua.accountstatus = ed.enumitemname
|
|
|
+ where ua.refereeuserid = %v
|
|
|
+ `
|
|
|
+ sqlId.FormatParam(r.USERID)
|
|
|
+ sqlId.AndLike("t.customername", r.CUSTOMERNAME)
|
|
|
+ sqlId.AndEx("t.mobile", r.MOBILE, r.MOBILE != "")
|
|
|
+ sqlId.AndEx("g.levelgroupid", r.LEVELGROUPID, r.LEVELGROUPID != 0)
|
|
|
+
|
|
|
+ sqlId.Page(r.Page, r.PageSize)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+func (r *THJFriend) GetDataByPage() (interface{}, error, int, int, int) {
|
|
|
+ sData := make([]THJFriend, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ total := 0
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ total = sData[i].Total
|
|
|
+ }
|
|
|
+ return sData, err, r.Page, r.PageSize, total
|
|
|
+}
|
|
|
+
|
|
|
+type THJProfit struct {
|
|
|
+ Marketname string `json:"marketname" xorm:"marketname"` // 市场
|
|
|
+ Firend string `json:"firend" xorm:"firend"` // 下单好友
|
|
|
+ Buyorselldisplay string `json:"buyorselldisplay" xorm:"buyorselldisplay"` // 方向
|
|
|
+ Wrstandardname string `json:"wrstandardname" xorm:"wrstandardname"` // 商品
|
|
|
+ Tradeqty int `json:"tradeqty" xorm:"tradeqty"` // 成交数量
|
|
|
+ Chargeamount float64 `json:"chargeamount" xorm:"chargeamount"` // 手续费总额
|
|
|
+ Profitamount float64 `json:"profitamount" xorm:"profitamount"` // 分润金额
|
|
|
+ Profitroletypedisplay string `json:"profitroletypedisplay" xorm:"profitroletypedisplay"` // 分润角色
|
|
|
+ Brokerrate string `json:"brokerrate" xorm:"brokerrate"` // 会员比例
|
|
|
+ Brokerprofitrate string `json:"brokerprofitrate" xorm:"brokerprofitrate"` // 会员释出比例
|
|
|
+ Levelonevalue string `json:"levelonevalue" xorm:"levelonevalue"` // 一级比例
|
|
|
+ Leveltwovalue string `json:"leveltwovalue" xorm:"leveltwovalue"` // 二级比例
|
|
|
+ Tradeid string `json:"tradeid" xorm:"tradeid"` // 成交单号
|
|
|
+ Tradetimedisplay string `json:"tradetimedisplay" xorm:"tradetimedisplay"` // 成交时间
|
|
|
+
|
|
|
+ USERID int64 `json:"-" xorm:"-" form:"userid" binding:"required"` // 用户ID
|
|
|
+ MarketID int `json:"-" xorm:"-" form:"marketid"` // 市场ID
|
|
|
+ Accountname string `json:"-" xorm:"-" form:"accountname"` // 好友名称,模糊查询
|
|
|
+ Goods string `json:"-" xorm:"-" form:"goods"` // 商品代码或商品名称,模糊查询
|
|
|
+ PROFITROLETYPE int32 `json:"-" xorm:"-" form:"profitroletype"` // 分润机构角色 - 1:平台 2:经纪会员 3:一级交易商 4:二级交易商(枚举:THJProfitRoleType)
|
|
|
+
|
|
|
+ PageEx `xorm:"extends"` // 页码信息
|
|
|
+}
|
|
|
+
|
|
|
+func (r *THJProfit) calc() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func (r *THJProfit) buildSql() string {
|
|
|
+ var sqlId utils.SQLVal = `
|
|
|
+ select
|
|
|
+ m1.enumdicname "marketname",
|
|
|
+
|
|
|
+ ua2.accountname "firend",
|
|
|
+
|
|
|
+ m2.enumdicname "buyorselldisplay",
|
|
|
+
|
|
|
+ wr.wrstandardcode || '/' || wr.wrstandardname "wrstandardname",
|
|
|
+
|
|
|
+ htd.tradeqty "tradeqty",
|
|
|
+
|
|
|
+ t.chargeamount "chargeamount",
|
|
|
+
|
|
|
+ t.profitamount "profitamount",
|
|
|
+
|
|
|
+ m4.enumdicname "profitroletypedisplay",
|
|
|
+
|
|
|
+ to_char(t.brokerrate * 100, 'fm999999990.00') || '%' "brokerrate",
|
|
|
+
|
|
|
+ to_char(t.brokerprofitrate * 100, 'fm999999990.00') || '%' "brokerprofitrate",
|
|
|
+
|
|
|
+ case t.levelonealgorithm
|
|
|
+
|
|
|
+ when 0 then
|
|
|
+
|
|
|
+ '-'
|
|
|
+
|
|
|
+ when 1 then
|
|
|
+
|
|
|
+ '比例/' || to_char(to_char(t.levelonevalue * 100, 'fm999999990.00')) || ' %'
|
|
|
+
|
|
|
+ else
|
|
|
+
|
|
|
+ '固定/' || to_char(t.levelonevalue, 'fm999999990.00')
|
|
|
+
|
|
|
+ end "levelonevalue",
|
|
|
+
|
|
|
+ case t.leveltwoalgorithm
|
|
|
+
|
|
|
+ when 0 then
|
|
|
+
|
|
|
+ '-'
|
|
|
+
|
|
|
+ when 1 then
|
|
|
+
|
|
|
+ '比例/' || to_char(to_char(t.leveltwovalue * 100, 'fm999999990.00')) || ' %'
|
|
|
+
|
|
|
+ else
|
|
|
+
|
|
|
+ '固定/' || to_char(t.leveltwovalue, 'fm999999990.00')
|
|
|
+
|
|
|
+ end "leveltwovalue",
|
|
|
+
|
|
|
+ to_char(t.tradetime, 'yyyy-MM-dd hh24:mi:ss') "tradetimedisplay",
|
|
|
+
|
|
|
+ to_char(t.tradeid) "tradeid"
|
|
|
+
|
|
|
+ from THJ_Reckon_ProfitRecode t
|
|
|
+
|
|
|
+ left join enumdicitem m1
|
|
|
+
|
|
|
+ on m1.enumdiccode = 'THJMarket'
|
|
|
+
|
|
|
+ and t.marketid = m1.enumitemname
|
|
|
+
|
|
|
+ left join enumdicitem m2
|
|
|
+
|
|
|
+ on m2.enumdiccode = 'buyOrSell'
|
|
|
+
|
|
|
+ and t.buyorsell = m2.enumitemname
|
|
|
+
|
|
|
+ left join enumdicitem m4
|
|
|
+
|
|
|
+ on m4.enumdiccode = 'THJProfitRoleType'
|
|
|
+
|
|
|
+ and t.profitroletype = m4.enumitemname
|
|
|
+
|
|
|
+ left join wrstandard wr
|
|
|
+
|
|
|
+ on t.wrstandardid = wr.wrstandardid
|
|
|
+
|
|
|
+ left join useraccount ua
|
|
|
+
|
|
|
+ on ua.userid = t.userid
|
|
|
+
|
|
|
+ left join (select a.transferid tradeid,
|
|
|
+
|
|
|
+ 1 buyorsell,
|
|
|
+
|
|
|
+ a.selluserid userid,
|
|
|
+
|
|
|
+ a.transferqty tradeqty
|
|
|
+
|
|
|
+ from THJ_PurchaseTransfer a
|
|
|
+
|
|
|
+ union
|
|
|
+
|
|
|
+ select a2.wrtradedetailid tradeid,
|
|
|
+
|
|
|
+ a2.buyorsell buyorsell,
|
|
|
+
|
|
|
+ ta2.userid userid,
|
|
|
+
|
|
|
+ a2.tradeqty tradeqty
|
|
|
+
|
|
|
+ from his_wrtrade_tradedetail a2
|
|
|
+
|
|
|
+ left join taaccount ta2
|
|
|
+
|
|
|
+ on a2.accountid = ta2.accountid
|
|
|
+
|
|
|
+ where a2.isvaliddata = 1) htd
|
|
|
+
|
|
|
+ on t.tradeid = htd.tradeid
|
|
|
+
|
|
|
+ and t.buyorsell = htd.buyorsell
|
|
|
+
|
|
|
+ left join useraccount ua2
|
|
|
+
|
|
|
+ on ua2.userid = htd.userid
|
|
|
+
|
|
|
+ where 1=1
|
|
|
+ `
|
|
|
+
|
|
|
+ // sqlId.FormatParam(r.USERID) // 发生错误 %!v(MISSING)
|
|
|
+ // sqlId = utils.SQLVal(fmt.Sprintf(string(sqlId), r.USERID))
|
|
|
+ sqlId.AndEx("t.userid", r.USERID, r.USERID != 0)
|
|
|
+ sqlId.AndEx("t.marketid", r.MarketID, r.MarketID != 0)
|
|
|
+ sqlId.AndLike("ua2.accountname", r.Accountname)
|
|
|
+ sqlId.AndLikes2("wr.wrstandardcode", "wr.wrstandardname", r.Goods)
|
|
|
+ sqlId.AndEx(" t.profitroletype", r.PROFITROLETYPE, r.PROFITROLETYPE != 0)
|
|
|
+ sqlId.OrderByDesc("t.tradetime")
|
|
|
+
|
|
|
+ sqlId.Page(r.Page, r.PageSize)
|
|
|
+ return sqlId.String()
|
|
|
+}
|
|
|
+
|
|
|
+func (r *THJProfit) GetDataByPage() (interface{}, error, int, int, int) {
|
|
|
+ sData := make([]THJProfit, 0)
|
|
|
+ err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
|
|
|
+ total := 0
|
|
|
+ for i := range sData {
|
|
|
+ sData[i].calc()
|
|
|
+ total = sData[i].Total
|
|
|
+ }
|
|
|
+ return sData, err, r.Page, r.PageSize, total
|
|
|
+}
|