| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- package models
- import (
- "errors"
- "fmt"
- "mtp2_if/db"
- "mtp2_if/utils"
- "time"
- )
- // PresaleAuction 预售竞拍
- type PresaleAuction struct {
- GOODSID int64 `json:"goodsid" xorm:"GOODSID"` // 商品ID
- APPLYID string `json:"applyid" xorm:"APPLYID"` // 关联申请ID
- USERID int64 `json:"userid" xorm:"USERID"` // 卖方用户ID
- ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 卖方账户ID
- RELATEDGOODSID int64 `json:"relatedgoodsid" xorm:"RELATEDGOODSID"` // 关联交易合约ID
- PRESALEQTY int64 `json:"presaleqty" xorm:"PRESALEQTY"` // 预售数量
- STARTTIME string `json:"starttime" xorm:"STARTTIME"` // 预售开始时间
- ENDTIME string `json:"endtime" xorm:"ENDTIME"` // 预售结束时间
- ATTACHMENTURL string `json:"attachmenturl" xorm:"ATTACHMENTURL"` // 缩略图片(1:1)
- PRESALEMODE int32 `json:"presalemode" xorm:"PRESALEMODE" form:"presalemode" binding:"required"` // 预售模式 - 1:一口价 2:大宗式竞拍 3:挂牌预售(HSBY) 4:定金预售(大宗) 5:定金预售(中签)
- MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 预售市场ID - 根据预售模式选择市场
- REFPRICE float64 `json:"refprice" xorm:"REFPRICE"` // 参考价格[一口价]
- STARTPRICE float64 `json:"startprice" xorm:"STARTPRICE"` // 起拍价[大宗式竞拍]
- FLOORPRICE float64 `json:"floorprice" xorm:"FLOORPRICE"` // 底价[大宗式竞拍]
- CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
- TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
- RELATEDMARKETID int64 `json:"relatedmarketid" xorm:"RELATEDMARKETID"` // 关联交易合约市场ID
- PRESALEDQTY int64 `json:"presaledqty" xorm:"PRESALEDQTY"` // 已预售量(预售结束时更新) 71-委托时更新
- PRESALEDAMOUNT float64 `json:"presaledamount" xorm:"PRESALEDAMOUNT"` // 已预售总金额(预售结束时更新)71-委托时更新
- SELLSTATUS int32 `json:"sellstatus" xorm:"SELLSTATUS"` // 卖方处理状态 - 1:卖方头寸未处理 2:卖方头寸已处理
- GOODSDETAIL string `json:"goodsdetail" xorm:"GOODSDETAIL"` // 详情[大宗]
- TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价[大宗]
- BUYMAXQTY int64 `json:"buymaxqty" xorm:"BUYMAXQTY"` // 购买上限 [71] - 0为不限
- PRESALEDEPOSITALGORITHM int32 `json:"presaledepositalgorithm" xorm:"PRESALEDEPOSITALGORITHM"` // 预售定金方式(48) - 1:比率 2:固定
- PRESALEDEPOSITVALUE float64 `json:"presaledepositvalue" xorm:"PRESALEDEPOSITVALUE"` // 预售定金设置值(48)
- PRESALESTATUS int32 `json:"presalestatus" xorm:"PRESALESTATUS" form:"presalestatus"` // 预售状态 - 1:未开始 2:预售中 3:已结束 4:已关闭
- PICTUREURLS string `json:"pictureurls" xorm:"PICTUREURLS"` // 详情图片(逗号分隔)(宽:1125)
- BANNERPICURL string `json:"bannerpicurl" xorm:"BANNERPICURL"` // Banner图(逗号分隔)(2:1)
- GOODSCODE string `json:"goodscode" xorm:"GOODSCODE"` // 期货合约代码(内部)
- GOODSNAME string `json:"goodsname" xorm:"GOODSNAME"` // 期货合约名称
- TRANSFERDEPOSITRATIO float64 `json:"transferdepositratio" xorm:"TRANSFERDEPOSITRATIO"` // 转让定金比例(49)
- PROVIDERUSERID int64 `json:"provideruserid" xorm:"PROVIDERUSERID"` // 发售方用户ID(49)
- SELLNAME string `json:"sellname" xorm:"SELLNAME"` // [卖方名称]客户名称(企业名称)
- PRESALEMODESTR string `json:"presalemodestr" xorm:"PRESALEMODESTR"` // 预售模式 - 1:一口价 2:大宗式竞拍 3:挂牌预售(HSBY) 4:定金预售(大宗) 5:定金预售(中签)
- PRESALESTATUSSTR string `json:"presalestatusstr" xorm:"PRESALESTATUSSTR" form:"presalestatusstr"` // 预售状态 - 1:未开始 2:预售中 3:已结束 4:已关闭 (多个逗号分隔)
- PageEx `xorm:"extends"` // 页码信息
- }
- func (r *PresaleAuction) calc() {
- }
- func (r *PresaleAuction) buildSql() string {
- var sqlId utils.SQLVal = `
- select
- t.GOODSID,
- to_char(t.APPLYID) APPLYID,
- t.USERID,
- t.ACCOUNTID,
- t.RELATEDGOODSID,
- t.PRESALEQTY,
- to_char(t.STARTTIME, 'yyyy-mm-dd') STARTTIME,
- to_char(t.ENDTIME, 'yyyy-mm-dd') ENDTIME,
- t.ATTACHMENTURL,
- t.PRESALEMODE,
- t.MARKETID,
- t.REFPRICE,
- t.STARTPRICE,
- t.FLOORPRICE,
- t.CREATETIME,
- t.TRADEDATE,
- t.RELATEDMARKETID,
- t.PRESALEDQTY,
- t.PRESALEDAMOUNT,
- t.SELLSTATUS,
- t.GOODSDETAIL,
- t.TRADEPRICE,
- t.BUYMAXQTY,
- t.PRESALEDEPOSITALGORITHM,
- t.PRESALEDEPOSITVALUE,
- t.PRESALESTATUS,
- t.PICTUREURLS,
- t.BANNERPICURL,
- g.GOODSCODE,
- g.GOODSNAME,
- g.PRESALEPRICE,
- g.TRANSFERDEPOSITRATIO,
- g.PROVIDERUSERID,
- ui.CUSTOMERNAME SELLNAME,
- en.ENUMDICNAME PRESALEMODESTR
- from CPTrade_PresaleGoodsEx t
- inner join Goods g
- on t.relatedgoodsid = g.goodsid
- inner join userinfo ui
- on g.provideruserid = ui.userid
- left join enumdicitem en
- on en.enumdiccode = 'presalemode'
- and t.PresaleMode = en.enumitemname
- where 1=1
- `
- // sqlId.FormatParam(r.PRESALEMODE)
- sqlId.And("t.PRESALEMODE", r.PRESALEMODE)
- sqlId.AndEx("t.PRESALESTATUS", r.PRESALESTATUS, r.PRESALESTATUS != 0)
- if len(r.PRESALESTATUSSTR) > 0 {
- sqlId.Join(fmt.Sprintf(" and t.PRESALESTATUS in (%v)", r.PRESALESTATUSSTR))
- }
- sqlId.OrderBy("t.endtime")
- sqlId.Page(r.Page, r.PageSize)
- return sqlId.String()
- }
- func (r *PresaleAuction) GetDataByPage() (interface{}, error, int, int, int) {
- sData := make([]PresaleAuction, 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
- }
- // PresaleDefault 转让详情
- type PresaleDefault struct {
- GOODSID int32 `json:"goodsid" xorm:"GOODSID" form:"goodsid" binding:"required"` // 期货合约ID(自增ID SEQ_GOODS)
- GOODSCODE string `json:"goodscode" xorm:"GOODSCODE"` // 期货合约代码(内部)
- GOODSNAME string `json:"goodsname" xorm:"GOODSNAME"` // 期货合约名称
- PRESALEPRICE float64 `json:"presaleprice" xorm:"PRESALEPRICE"` // 发售价\订货价(49)
- TRANSFERDEPOSITRATIO float64 `json:"transferdepositratio" xorm:"TRANSFERDEPOSITRATIO"` // 转让定金比例(49)
- BANNERPICURL string `json:"bannerpicurl" xorm:"BANNERPICURL"` // Banner图(逗号分隔)(2:1)
- PICTUREURLS string `json:"pictureurls" xorm:"PICTUREURLS"` // 详情图片(逗号分隔)(宽:1125)
- CUSTOMERNAME string `json:"sellname" xorm:"SELLNAME"` // [发售方]客户名称(企业名称)
- }
- func (r *PresaleDefault) calc() {
- }
- func (r *PresaleDefault) buildSql() string {
- var sqlId utils.SQLVal = `
- select
- g.GOODSID,
- g.GOODSCODE,
- g.GOODSNAME,
- g.PRESALEPRICE,
- g.TRANSFERDEPOSITRATIO,
- cp.BANNERPICURL,
- cp.PICTUREURLS,
- ui.customername "SELLNAME"
- from goods g
- left join CPTrade_PresaleGoodsEx cp
- on g.goodsid = cp.relatedgoodsid
- inner join userinfo ui
- on g.provideruserid = ui.userid
- where g.goodsid = %v
- `
- sqlId.FormatParam(r.GOODSID)
- return sqlId.String()
- }
- // GetDataEx 从数据库中查询数据
- func (r *PresaleDefault) GetDataEx() (interface{}, error) {
- e := db.GetEngine()
- s := e.SQL(r.buildSql())
- sData := make([]PresaleDefault, 0)
- if err := s.Find(&sData); err != nil {
- return nil, err
- }
- // for i := range sData {
- // sData[i].calc()
- // }
- if len(sData) > 0 {
- return sData[0], nil
- } else {
- return nil, errors.New("无数据")
- }
- }
|