guangzuan.go 63 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986
  1. package models
  2. import (
  3. "mtp2_if/db"
  4. "mtp2_if/utils"
  5. "strings"
  6. "time"
  7. )
  8. // Warehouseinfo 仓库信息表
  9. type GZWarehouseinfo struct {
  10. AUTOID int64 `json:"autoid" xorm:"AUTOID"` // 自增ID
  11. WAREHOUSECODE string `json:"warehousecode" xorm:"WAREHOUSECODE"` // 仓库代码
  12. WAREHOUSENAME string `json:"warehousename" xorm:"WAREHOUSENAME"` // 仓库名称
  13. WAREHOUSETYPE int32 `json:"warehousetype" xorm:"WAREHOUSETYPE"` // 仓库类型 - 1 厂库 2 自有库 3 合作库
  14. AREAUSERID int64 `json:"areauserid" xorm:"AREAUSERID"` // 所属机构
  15. WAREHOUSESTATUS int32 `json:"warehousestatus" xorm:"WAREHOUSESTATUS"` // 仓库状态 - 1:正常 2:注销 3:待审核 4:审核拒绝
  16. COUNTRYID int32 `json:"countryid" xorm:"COUNTRYID"` // 国家
  17. PROVINCEID int32 `json:"provinceid" xorm:"PROVINCEID"` // 省
  18. CITYID int32 `json:"cityid" xorm:"CITYID"` // 市
  19. DISTRICTID int32 `json:"districtid" xorm:"DISTRICTID"` // 区
  20. ADDRESS string `json:"address" xorm:"ADDRESS"` // 详细地址
  21. REMARK string `json:"remark" xorm:"REMARK"` // 审核备注
  22. CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
  23. HASVIDEO int32 `json:"hasvideo" xorm:"HASVIDEO"` // 是否有视频 - 0:无 1:有
  24. VIDEOURL string `json:"videourl" xorm:"VIDEOURL"` // 视频地址
  25. CONTACTNAME string `json:"contactname" xorm:"CONTACTNAME"` // 联系人
  26. CONTACTNUM string `json:"contactnum" xorm:"CONTACTNUM"` // 联系电话
  27. PageEx `xorm:"extends"` // 页码信息
  28. UserId int64 `json:"-" form:"userid" binding:"required"` // 用户ID
  29. Status string `json:"-" form:"status"` // 仓库状态(可多项,逗号隔开) 1:正常 2:注销 3:待审核 4:审核拒绝
  30. IsIncludeExchange bool `json:"-" form:"isincludeexchange"` // 是返回交易所仓库
  31. }
  32. // TableName is WAREHOUSEINFO
  33. func (r *GZWarehouseinfo) TableName() string {
  34. return "WAREHOUSEINFO"
  35. }
  36. func (r *GZWarehouseinfo) calc() {
  37. }
  38. func (r *GZWarehouseinfo) buildSql() string {
  39. var sqlId utils.SQLVal = `SELECT t.AUTOID,
  40. t.WAREHOUSECODE,
  41. t.WAREHOUSENAME,
  42. t.WAREHOUSETYPE,
  43. t.AREAUSERID,
  44. t.WAREHOUSESTATUS,
  45. t.COUNTRYID,
  46. t.PROVINCEID,
  47. t.CITYID,
  48. t.DISTRICTID,
  49. t.ADDRESS,
  50. t.REMARK,
  51. to_char(t.CREATETIME,'yyyy-mm-dd hh24:mi:ss') CREATETIME,
  52. t.HASVIDEO,
  53. t.VIDEOURL,
  54. t.CONTACTNAME,
  55. t.CONTACTNUM
  56. FROM WAREHOUSEINFO t
  57. WHERE (t.AREAUSERID = %v) `
  58. sqlId.FormatParam(r.UserId)
  59. if r.IsIncludeExchange {
  60. sqlId.Join(" OR (t.AREAUSERID IS NULL) OR (t.AREAUSERID = 1)")
  61. }
  62. if len(r.Status) > 0 {
  63. sqlId.JoinFormat(" and (t.WAREHOUSESTATUS in (%v))", r.Status)
  64. }
  65. sqlId.Page(r.Page, r.PageSize)
  66. return sqlId.String()
  67. }
  68. // GetDataByPage 获取团队订单
  69. func (r *GZWarehouseinfo) GetDataByPage() (interface{}, error, int, int, int) {
  70. sData := make([]GZWarehouseinfo, 0)
  71. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  72. total := 0
  73. for i := range sData {
  74. sData[i].calc()
  75. total = sData[i].Total
  76. }
  77. return sData, err, r.Page, r.PageSize, total
  78. }
  79. // MyWRPosition 我的库存
  80. type MyWRPosition struct {
  81. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  82. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 账户名称(机构名称)
  83. SELLMOBILE string `json:"sellmobile" xorm:"SELLMOBILE"` // 手机号码(加密存储)
  84. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  85. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  86. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  87. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  88. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  89. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  90. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  91. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  92. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  93. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  94. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  95. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  96. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  97. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  98. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  99. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  100. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  101. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  102. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  103. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  104. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  105. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  106. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  107. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  108. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  109. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
  110. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  111. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  112. WAREHOUSEID int64 `json:"warehouseid" xorm:"WAREHOUSEID" form:"warehouseid"` // 仓库ID
  113. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` // 市场价
  114. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` // 商品照片(相对地址)
  115. WRPATH string `json:"wrpath" xorm:"WRPATH"` // 仓单扫描件(相对地址)
  116. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  117. PRICE float64 `json:"price" xorm:"PRICE"` // 总价(价格) - 类型:1,2,3,4,5
  118. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  119. WEIGHTAVG float64 `json:"weightavg" xorm:"WEIGHTAVG"` // 平均单颗重量 - 类型:1,3
  120. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价 - 类型:1,2,3,5
  121. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  122. ZSCOLORTYPE1 int32 `json:"zscolortype1" xorm:"ZSCOLORTYPE1"` // 颜色1 - 枚举”ZSColorType“ - 类型:1,2,3,4
  123. ZSCOLORTYPE2 int32 `json:"zscolortype2" xorm:"ZSCOLORTYPE2"` // 颜色2 - 枚举”ZSColorType“ - 类型:1,3
  124. ZSCLARITYTYPE1 int32 `json:"zsclaritytype1" xorm:"ZSCLARITYTYPE1"` // 净度1 - 枚举”ZSClarityType“ - 类型:1,2,3,4,5
  125. ZSCLARITYTYPE2 int32 `json:"zsclaritytype2" xorm:"ZSCLARITYTYPE2"` // 净度2 - 枚举”ZSClarityType“ - 类型:1,3
  126. ZSCUTTYPE1 int32 `json:"zscuttype1" xorm:"ZSCUTTYPE1"` // 切工1 - 枚举”ZSCutType“ - 类型:1,2,4,5
  127. ZSCUTTYPE2 int32 `json:"zscuttype2" xorm:"ZSCUTTYPE2"` // 切工2 - 枚举”ZSCutType“ - 类型:1
  128. ZSSYMMETRYTYPE1 int32 `json:"zssymmetrytype1" xorm:"ZSSYMMETRYTYPE1"` // 对称度1 - 枚举”ZSSymmetryType“ - 类型:1,2,4,5
  129. ZSSYMMETRYTYPE2 int32 `json:"zssymmetrytype2" xorm:"ZSSYMMETRYTYPE2"` // 对称度2 - 枚举”ZSSymmetryType“ - 类型:1
  130. ZSPOLISHTYPE1 int32 `json:"zspolishtype1" xorm:"ZSPOLISHTYPE1"` // 抛光度1 - 枚举”ZSPolishType“ - 类型:1,2,4,5
  131. ZSPOLISHTYPE2 int32 `json:"zspolishtype2" xorm:"ZSPOLISHTYPE2"` // 抛光度2 - 枚举”ZSPolishType“ - 类型:1
  132. ZSFLUORESCENCETYPE1 int32 `json:"zsfluorescencetype1" xorm:"ZSFLUORESCENCETYPE1"` // 荧光1 - 枚举”ZSFluorescenceType“ - 类型:1,2,3,4,5
  133. ZSFLUORESCENCETYPE2 int32 `json:"zsfluorescencetype2" xorm:"ZSFLUORESCENCETYPE2"` // 荧光2 - 枚举”ZSFluorescenceType” - 类型:1,3
  134. SIZE1 string `json:"size1" xorm:"SIZE1"` // 尺寸1 - 类型:2,4,5
  135. SIZE2 string `json:"size2" xorm:"SIZE2"` // 尺寸2 - 类型:2,4,5
  136. SIZE3 string `json:"size3" xorm:"SIZE3"` // 尺寸3 - 类型:2,4,5
  137. ZSCERTTYPE int32 `json:"zscerttype" xorm:"ZSCERTTYPE"` // 证书类型 - 枚举”ZSCertType“ - 类型:2,4,5
  138. CERNO string `json:"cerno" xorm:"CERNO"` // 证书编号 - 类型:2,4,5
  139. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型范围 - 枚举“ZSCrystalType“ - 类型:3, 多个,逗号分隔
  140. CPCERTNO string `json:"cpcertno" xorm:"CPCERTNO"` // 金伯利证书编号 - 类型:3
  141. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地 - 类型:3
  142. KPWEIGHT string `json:"kpweight" xorm:"KPWEIGHT"` // 金伯利证书重量 - 类型:3
  143. KPPATH string `json:"kppath" xorm:"KPPATH"` // 金伯利证书图片(相对地址) - 类型:3
  144. ZSSTYLETYPE int32 `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 类型:4
  145. STONEDESC string `json:"stonedesc" xorm:"STONEDESC"` // 配石描述 - 类型:4
  146. SETTINGMATERIAL string `json:"settingmaterial" xorm:"SETTINGMATERIAL"` // 镶嵌材料 - 类型:4
  147. ZSCZCOLOR1TYPE int32 `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1 - 枚举”ZSCZColor1Type“ - 类型:5
  148. ZSCZCOLOR2TYPE int32 `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2 - 枚举”ZSCZColor2Type“ - 类型:5
  149. ZSCZCOLOR3TYPE int32 `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3 - 枚举”ZSCZColor3Type“ - 类型:5
  150. ISVALID int32 `json:"isvalid" xorm:"ISVALID"` // 是否有效 - 0:无效 1:有效
  151. TOTALQTY int64 `json:"-" xorm:"TOTALQTY"`
  152. FREEZEQTY int64 `json:"-" xorm:"FREEZEQTY"`
  153. FTOTALQTY float64 `json:"ftotalqty"` // 库存数量:WRPosition表:TOTALQTY /100 , 保留两位小数
  154. FFREEZEQTY float64 `json:"ffreezeqty"` // 冻结数量:WRPosition表:FREEZEQTY/100 , 保留两位小数
  155. PageEx `xorm:"extends"` // 页码信息
  156. WRUSERID int64 `json:"wruserid" xorm:"WRUSERID" form:"wruserid" binding:"required"` // 登录用户ID
  157. }
  158. func (r *MyWRPosition) calc() {
  159. if r.TOTALQTY != 0 {
  160. a := SFLOAT64(r.TOTALQTY / 100)
  161. a.Round(2)
  162. r.FTOTALQTY = a.Float64()
  163. }
  164. if r.FREEZEQTY != 0 {
  165. a := SFLOAT64(r.FREEZEQTY / 100)
  166. a.Round(2)
  167. r.FFREEZEQTY = a.Float64()
  168. }
  169. }
  170. func (r *MyWRPosition) buildSql() string {
  171. var sqlId utils.SQLVal = `
  172. SELECT
  173. t.TOTALQTY,
  174. t.FREEZEQTY,
  175. wr.*
  176. FROM WRPosition t
  177. INNER JOIN WRFactorType ft ON t.wrfactortypeid = ft.wrfactortypeid
  178. INNER JOIN View_GZ_WRStandard_Ex_Query wr ON ft.wrstandardid = wr.wrstandardid
  179. WHERE t.wruserid = %v
  180. `
  181. sqlId.FormatParam(r.WRUSERID)
  182. sqlId.AndEx("wr.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  183. sqlId.AndLike("wr.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  184. sqlId.AndEx("wr.WAREHOUSEID", r.WAREHOUSEID, r.WAREHOUSEID > 0)
  185. sqlId.Page(r.Page, r.PageSize)
  186. return sqlId.String()
  187. }
  188. func (r *MyWRPosition) GetDataByPage() (interface{}, error, int, int, int) {
  189. sData := make([]MyWRPosition, 0)
  190. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  191. total := 0
  192. for i := range sData {
  193. sData[i].calc()
  194. total = sData[i].Total
  195. }
  196. return sData, err, r.Page, r.PageSize, total
  197. }
  198. // BuyOrder 求购大厅委托单
  199. type BuyOrder struct {
  200. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  201. ZSTABLEDISPLAY string `json:"zstabledisplay" xorm:"ZSTABLEDISPLAY"` // 求购信息
  202. BUYUSERNAME string `json:"buyusername" xorm:"BUYUSERNAME" form:"buyusername"` // 买方
  203. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  204. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  205. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  206. ZSCOLORTYPEDISPLAY string `json:"zscolortypedisplay" xorm:"ZSCOLORTYPEDISPLAY"` //
  207. ZSCLARITYTYPEDISPLAY string `json:"zsclaritytypedisplay" xorm:"ZSCLARITYTYPEDISPLAY"` //
  208. ZSCUTTYPEDISPLAY string `json:"zscuttypedisplay" xorm:"ZSCUTTYPEDISPLAY"` //
  209. ZSSYMMETRYTYPEDISPLAY string `json:"zssymmetrytypedisplay" xorm:"ZSSYMMETRYTYPEDISPLAY"` //
  210. ZSPOLISHTYPEDISPLAY string `json:"zspolishtypedisplay" xorm:"ZSPOLISHTYPEDISPLAY"` //
  211. ZSFLUORESCENCETYPEDISPLAY string `json:"zsfluorescencetypedisplay" xorm:"ZSFLUORESCENCETYPEDISPLAY"` //
  212. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  213. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  214. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  215. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  216. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  217. WAREHOUSEINFOSDISPLAY string `json:"warehouseinfosdisplay" xorm:"WAREHOUSEINFOSDISPLAY"` //
  218. WRTRADEORDERID int64 `json:"wrtradeorderid" xorm:"WRTRADEORDERID" form:"wrtradeorderid"` // [委托单号]买委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  219. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  220. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  221. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
  222. ZSCURRENCYTYPE string `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 多个, 逗号分隔
  223. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 多个, 逗号分隔
  224. ZSCOLORTYPE string `json:"zscolortype" xorm:"ZSCOLORTYPE"` // 颜色 - 两个, 逗号分隔
  225. ZSCLARITYTYPE string `json:"zsclaritytype" xorm:"ZSCLARITYTYPE"` // 净度 - 两个, 逗号分隔
  226. ZSCUTTYPE string `json:"zscuttype" xorm:"ZSCUTTYPE"` // 切工 - 两个, 逗号分隔
  227. ZSSYMMETRYTYPE string `json:"zssymmetrytype" xorm:"ZSSYMMETRYTYPE"` // 对称度 - 两个, 逗号分隔
  228. ZSPOLISHTYPE string `json:"zspolishtype" xorm:"ZSPOLISHTYPE"` // 抛光度 - 两个, 逗号分隔
  229. ZSFLUORESCENCETYPE string `json:"zsfluorescencetype" xorm:"ZSFLUORESCENCETYPE"` // 荧光 - 多个, 逗号分隔
  230. ZSSIZE string `json:"zssize" xorm:"ZSSIZE"` // 尺寸 - 两个小数, 逗号分隔
  231. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型 - 多个,逗号分隔
  232. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地
  233. ZSSTYLETYPE string `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 多个, 逗号分隔
  234. ZSCZCOLOR1TYPE string `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1, 逗号分隔
  235. ZSCZCOLOR2TYPE string `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2, 逗号分隔
  236. ZSCZCOLOR3TYPE string `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3, 逗号分隔
  237. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  238. WAREHOUSEIDS string `json:"warehouseids" xorm:"WAREHOUSEIDS"` // 仓库ID - 多个, 逗号分隔
  239. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  240. PageEx `xorm:"extends"` // 页码信息
  241. }
  242. func (r *BuyOrder) calc() {
  243. }
  244. func (r *BuyOrder) buildSql() string {
  245. var sqlId utils.SQLVal = `
  246. SELECT
  247. q.*
  248. FROM WRTrade_OrderDetail t
  249. INNER JOIN View_GZ_BuyOrderDetail_Query q ON t.wrtradeorderid = q.wrtradeorderid
  250. WHERE t.marketid=67201 AND t.BuyOrSell = 0 AND t.WRTradeOrderStatus IN (3,7)
  251. `
  252. sqlId.AndEx("q.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  253. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  254. sqlId.AndEx("q.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID > 0)
  255. sqlId.AndLike("q.BUYUSERNAME", r.BUYUSERNAME)
  256. sqlId.Page(r.Page, r.PageSize)
  257. return sqlId.String()
  258. }
  259. func (r *BuyOrder) GetDataByPage() (interface{}, error, int, int, int) {
  260. sData := make([]BuyOrder, 0)
  261. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  262. total := 0
  263. for i := range sData {
  264. sData[i].calc()
  265. total = sData[i].Total
  266. }
  267. return sData, err, r.Page, r.PageSize, total
  268. }
  269. // SellOrderQueryReq 钻石搜索入参
  270. type SellOrderQueryReq struct {
  271. ZSCATEGORY int32 `json:"zscategory" binding:"required"` // 钻石分类 - 枚举”ZSCategory“
  272. ZSCURRENCYTYPE []string `json:"zscurrencytype"` // 货币类型 - 枚举“ZSCurrencyType”
  273. WAREHOUSEID int64 `json:"warehouseid"` // 仓库ID
  274. WEIGHT1 float64 `json:"weight1"` // 总重量(克拉重量)-从
  275. WEIGHT2 float64 `json:"weight2"` // 总重量(克拉重量)-至
  276. WEIGHTAVG1 float64 `json:"weightavg1"` // 平均单颗重量-从
  277. WEIGHTAVG2 float64 `json:"weightavg2"` // 平均单颗重量-至
  278. ZSSHAPETYPE []string `json:"zsshapetype"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  279. ZSCOLORTYPE []int32 `json:"zscolortype"` // 颜色
  280. ZSCLARITYTYPE []int32 `json:"zsclaritytype"` // 净度
  281. ZSCUTTYPE []int32 `json:"zscuttype"` // 切工
  282. ZSSYMMETRYTYPE []int32 `json:"zssymmetrytype"` // 对称度
  283. ZSPOLISHTYPE []int32 `json:"zspolishtype"` // 抛光度
  284. ZSFLUORESCENCETYPE []int32 `json:"zsfluorescencetype"` // 荧光
  285. ZSCERTTYPE []string `json:"zscerttype"` // 证书类型
  286. ORIGIN string `json:"origin"` // 原产地
  287. ZSSTYLETYPE []string `json:"zsstyletype"` // 款式
  288. ZSCZCOLOR1TYPE []string `json:"zsczcolor1type"` // 彩钻颜色1
  289. PageJosn // 分页
  290. }
  291. // SellOrder 出售大厅委托单
  292. type SellOrder struct {
  293. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  294. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME" form:"sellusername"` // 卖方(查询字段-模糊查询)
  295. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  296. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  297. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
  298. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  299. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  300. IsQueryDiamond bool // 是否钻石查询
  301. ZSCURRENCYTYPE_S []string `json:"-"` // 货币类型 - 枚举“ZSCurrencyType”
  302. WAREHOUSEID int64 `json:"-"` // 仓库ID
  303. WEIGHT float64 `json:"-"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  304. WEIGHT_END float64 `json:"-"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  305. WEIGHTAVG float64 `json:"-"` // 平均单颗重量 - 类型:1,3
  306. WEIGHTAVG_END float64 `json:"-"` // 平均单颗重量 - 类型:1,3
  307. ZSSHAPETYPE []string `json:"-"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  308. ZSCOLORTYPE1 int32 `json:"-"` // 颜色1 - 枚举”ZSColorType“ - 类型:1,2,3,4
  309. ZSCOLORTYPE2 int32 `json:"-"` // 颜色2 - 枚举”ZSColorType“ - 类型:1,3
  310. ZSCOLORTYPE []int32 `json:"-"` // 颜色
  311. ZSCLARITYTYPE1 int32 `json:"-"` // 净度1 - 枚举”ZSClarityType“ - 类型:1,2,3,4,5
  312. ZSCLARITYTYPE2 int32 `json:"-"` // 净度2 - 枚举”ZSClarityType“ - 类型:1,3
  313. ZSCLARITYTYPE []int32 `json:"-"` // 净度
  314. ZSCUTTYPE1 int32 `json:"-"` // 切工1 - 枚举”ZSCutType“ - 类型:1,2,4,5
  315. ZSCUTTYPE2 int32 `json:"-"` // 切工2 - 枚举”ZSCutType“ - 类型:1
  316. ZSCUTTYPE []int32 `json:"-"` // 切工
  317. ZSSYMMETRYTYPE1 int32 `json:"-"` // 对称度1 - 枚举”ZSSymmetryType“ - 类型:1,2,4,5
  318. ZSSYMMETRYTYPE2 int32 `json:"-"` // 对称度2 - 枚举”ZSSymmetryType“ - 类型:1
  319. ZSSYMMETRYTYPE []int32 `json:"-"` // 对称度
  320. ZSPOLISHTYPE1 int32 `json:"-"` // 抛光度1 - 枚举”ZSPolishType“ - 类型:1,2,4,5
  321. ZSPOLISHTYPE2 int32 `json:"-"` // 抛光度2 - 枚举”ZSPolishType“ - 类型:1
  322. ZSPOLISHTYPE []int32 `json:"-"` // 抛光度
  323. ZSFLUORESCENCETYPE1 int32 `json:"-"` // 荧光1 - 枚举”ZSFluorescenceType“ - 类型:1,2,3,4,5
  324. ZSFLUORESCENCETYPE2 int32 `json:"-"` // 荧光2 - 枚举”ZSFluorescenceType” - 类型:1,3
  325. ZSFLUORESCENCETYPE []int32 `json:"-"` // 荧光
  326. ZSCERTTYPE []string `json:"-"` // 证书类型
  327. ORIGIN string `json:"-"` // 原产地 - 类型:3
  328. ZSSTYLETYPE []string `json:"-"` // 款式 - 类型:4
  329. ZSCZCOLOR1TYPE []string `json:"-" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1 - 枚举”ZSCZColor1Type“ - 类型:5
  330. WRTRADEORDERID int64 `json:"wrtradeorderid" xorm:"WRTRADEORDERID" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  331. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  332. WRTRADETYPE int32 `json:"wrtradetype" xorm:"WRTRADETYPE"` // 仓单贸易类型 - 1:挂牌 2:摘牌 3:提货卖(文化中国) 4:提货买(文化中国)
  333. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  334. RELATEDWRTRADEORDERID int64 `json:"relatedwrtradeorderid" xorm:"RELATEDWRTRADEORDERID"` // 关联委托单号(摘牌委托关联挂牌委托单ID)
  335. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  336. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账号
  337. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID/商品ID(77)
  338. ORDERQTY int64 `json:"orderqty" xorm:"ORDERQTY"` // 委托数量
  339. TRADEQTY int64 `json:"tradeqty" xorm:"TRADEQTY"` // 成交数量
  340. CANCELQTY int64 `json:"cancelqty" xorm:"CANCELQTY"` // 撤销数量
  341. WRPRICETYPE int32 `json:"wrpricetype" xorm:"WRPRICETYPE"` // 价格方式 - 1:固定价 2-浮动价 - [挂牌]
  342. FIXEDPRICE float64 `json:"fixedprice" xorm:"FIXEDPRICE"` // 固定价格 - [挂牌]
  343. ISSPECIFIED int32 `json:"isspecified" xorm:"ISSPECIFIED"` // 是否指定对手 - 0:不指定 1:指定好友(贸易圈) 2:指定对手 - [挂牌]
  344. PRICEFACTOR float64 `json:"pricefactor" xorm:"PRICEFACTOR"` // 价格系数(浮动价时填写) - [挂牌]
  345. PRICEMOVE float64 `json:"pricemove" xorm:"PRICEMOVE"` // 升贴水(浮动价时填写) - [挂牌]
  346. FIRSTRATIO float64 `json:"firstratio" xorm:"FIRSTRATIO"` // 首付比率 - [挂牌时指定,摘牌时使用]
  347. WRTRANSFERUSERID int64 `json:"wrtransferuserid" xorm:"WRTRANSFERUSERID"` // 仓单受让用户 - [摘牌]
  348. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格 - [摘牌] (浮动价 ((商品1价格*商品1价格系数+升贴水)* 商品1重量系数 + 商品2价格*商品2价格系数+商品2升贴水)* 商品2重量系数 ...)* 委托单价格系数 + 委托单升贴水)
  349. FREEZEFIRSTAMOUNT float64 `json:"freezefirstamount" xorm:"FREEZEFIRSTAMOUNT"` // 冻结首付金额 - [摘牌]
  350. UNFREEZEFIRSTAMOUNT float64 `json:"unfreezefirstamount" xorm:"UNFREEZEFIRSTAMOUNT"` // 解冻首付金额 - [摘牌]
  351. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  352. VALIDTYPE int32 `json:"validtype" xorm:"VALIDTYPE"` // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效
  353. VALIDTIME time.Time `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  354. ORDERTIME time.Time `json:"ordertime" xorm:"ORDERTIME"` // 委托时间
  355. CANCELTIME time.Time `json:"canceltime" xorm:"CANCELTIME"` // 撤销时间
  356. WRTRADEORDERSTATUS int32 `json:"wrtradeorderstatus" xorm:"WRTRADEORDERSTATUS"` // 委托状态 - 参考枚举'WRTradeOrderStatus' - 1:委托请求 2:待冻结 3:委托成功 4:委托失败 5:配对成功 6:已撤 7:部成 8:已成 9:部成部撤 10:成交失败 11:委托拒绝 12:经过摘牌(先摘后挂专用) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用) 17:冻结PD成功 18:冻结PD失败 19:冻结能量成功 20:冻结能量失败 21:预约已报价 22:过期未付 23:优惠券处理中 24:仓单生成失败 25:首付扣款失败 26:履约失败 27:撤单解冻贷款失败
  357. CLIENTTICKET string `json:"-" xorm:"CLIENTTICKET"` // 客户端流水号
  358. ORDERSRC int32 `json:"-" xorm:"ORDERSRC"` // 委托来源 - 1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结
  359. CLIENTTYPE int32 `json:"-" xorm:"CLIENTTYPE"` // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
  360. UUID string `json:"uuid" xorm:"UUID"` // 发起端唯一id
  361. CLIENTORDERTIME time.Time `json:"clientordertime" xorm:"CLIENTORDERTIME"` // 客户端委托时间
  362. RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 错误代码
  363. OPERATORID int64 `json:"-" xorm:"OPERATORID"` // 操作员ID
  364. PRICEDISPLAYMODE int32 `json:"-" xorm:"PRICEDISPLAYMODE"` // 浮动价显示方式 - 1:合并显示 2:分开显示1: 价格显示一个值 :(商品拟合价*价格系统+升贴水)2: 价格显示两个值:(商品拟合价*价格系统) 、 升贴水
  365. FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金
  366. UNFREEZEMARGIN float64 `json:"unfreezemargin" xorm:"UNFREEZEMARGIN"` // 解冻保证金
  367. FREEZECHARGE float64 `json:"freezecharge" xorm:"FREEZECHARGE"` // 冻结手续费
  368. UNFREEZECHARGE float64 `json:"unfreezecharge" xorm:"UNFREEZECHARGE"` // 解冻手续费
  369. MARGINALGORITHM int32 `json:"marginalgorithm" xorm:"MARGINALGORITHM"` // 保证金方式 - 1:比率 2:固定
  370. MARGINVALUE float64 `json:"marginvalue" xorm:"MARGINVALUE"` // 保证金设置值
  371. CHARGEALGORITHM int32 `json:"chargealgorithm" xorm:"CHARGEALGORITHM"` // 手续费收取方式 1:比率 2:固定
  372. CHARGEALGORITHMVALUE float64 `json:"chargealgorithmvalue" xorm:"CHARGEALGORITHMVALUE"` // 手续费设置值(交易所部分)
  373. CHARGEALGORITHMVALUE2 float64 `json:"chargealgorithmvalue2" xorm:"CHARGEALGORITHMVALUE2"` // 手续费设置值(会员部分)
  374. CANBARGAIN int32 `json:"canbargain" xorm:"CANBARGAIN"` // 是否可议价 - 0:不可 1:可
  375. WRBARGAINID int64 `json:"wrbargainid" xorm:"WRBARGAINID"` // 议价申请单ID
  376. ATTACHMENT1 string `json:"attachment1" xorm:"ATTACHMENT1"` // 附件1
  377. ATTACHMENT2 string `json:"attachment2" xorm:"ATTACHMENT2"` // 附件2
  378. APPLYID int64 `json:"applyid" xorm:"APPLYID"` // 申请单ID
  379. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率[67]
  380. ORDERAMOUNT float64 `json:"orderamount" xorm:"ORDERAMOUNT"` // 挂牌金额[账户] [67]= OrderQty * FixedPrice * ExchangeRate /100
  381. PageEx `xorm:"extends"` // 页码信息
  382. }
  383. func (r *SellOrder) calc() {
  384. }
  385. // buildSql 出售大厅
  386. func (r *SellOrder) buildSql() string {
  387. var sqlId utils.SQLVal = `
  388. SELECT
  389. q.SELLUSERNAME,
  390. q.ZSCATEGORY,
  391. q.ZSCURRENCYTYPE,
  392. q.GOODSNO,
  393. t.*
  394. FROM WRTrade_OrderDetail t
  395. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  396. WHERE t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  397. `
  398. sqlId.AndEx("q.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  399. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  400. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID > 0)
  401. sqlId.AndLike("q.SELLUSERNAME", r.SELLUSERNAME)
  402. sqlId.OrderByDesc("t.WRTRADEORDERID")
  403. sqlId.Page(r.Page, r.PageSize)
  404. return sqlId.String()
  405. }
  406. // buildQueryDiamond 钻石搜索
  407. func (r *SellOrder) buildQueryDiamond() string {
  408. var sqlId utils.SQLVal = `
  409. SELECT
  410. q.SELLUSERNAME,
  411. q.ZSCATEGORY,
  412. q.ZSCURRENCYTYPE,
  413. q.GOODSNO,
  414. t.*
  415. FROM WRTrade_OrderDetail t
  416. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  417. WHERE t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  418. `
  419. sqlId.And("q.ZSCATEGORY", r.ZSCATEGORY)
  420. if len(r.ZSCURRENCYTYPE_S) > 0 {
  421. sqlId.JoinFormat(" AND q.ZSCURRENCYTYPE IN (%v)", strings.Join(r.ZSCURRENCYTYPE_S, ","))
  422. }
  423. sqlId.AndEx("q.WAREHOUSEID", r.WAREHOUSEID, r.WAREHOUSEID > 0)
  424. utils.AndBetween(&sqlId, "q.WEIGHT", r.WEIGHT, r.WEIGHT_END)
  425. utils.AndBetween(&sqlId, "q.WEIGHTAVG", r.WEIGHTAVG, r.WEIGHTAVG_END)
  426. sqlId.AndLikes("q.ZSSHAPETYPE", r.ZSSHAPETYPE...)
  427. for _, t := range r.ZSCOLORTYPE {
  428. sqlId.LessOrEq("q.ZSCOLORTYPE1", t)
  429. sqlId.BiggerOrEq("q.ZSCOLORTYPE2", t)
  430. }
  431. for _, t := range r.ZSCLARITYTYPE {
  432. sqlId.LessOrEq("q.ZSCLARITYTYPE1", t)
  433. sqlId.BiggerOrEq("q.ZSCLARITYTYPE2", t)
  434. }
  435. for _, t := range r.ZSCUTTYPE {
  436. sqlId.LessOrEq("q.ZSCUTTYPE1", t)
  437. sqlId.BiggerOrEq("q.ZSCUTTYPE2", t)
  438. }
  439. for _, t := range r.ZSSYMMETRYTYPE {
  440. sqlId.LessOrEq("q.ZSSYMMETRYTYPE1", t)
  441. sqlId.BiggerOrEq("q.ZSSYMMETRYTYPE2", t)
  442. }
  443. for _, t := range r.ZSPOLISHTYPE {
  444. sqlId.LessOrEq("q.ZSPOLISHTYPE1", t)
  445. sqlId.BiggerOrEq("q.ZSPOLISHTYPE2", t)
  446. }
  447. for _, t := range r.ZSFLUORESCENCETYPE {
  448. sqlId.LessOrEq("q.ZSFLUORESCENCETYPE1", t)
  449. sqlId.BiggerOrEq("q.ZSFLUORESCENCETYPE2", t)
  450. }
  451. if len(r.ZSCERTTYPE) > 0 {
  452. sqlId.JoinFormat(" AND q.ZSCERTTYPE IN (%v)", strings.Join(r.ZSCERTTYPE, ","))
  453. }
  454. sqlId.AndLike("q.ORIGIN", r.ORIGIN)
  455. if len(r.ZSSTYLETYPE) > 0 {
  456. sqlId.JoinFormat(" AND q.ZSSTYLETYPE IN (%v)", strings.Join(r.ZSSTYLETYPE, ","))
  457. }
  458. if len(r.ZSCZCOLOR1TYPE) > 0 {
  459. sqlId.JoinFormat(" AND q.ZSCZCOLOR1TYPE IN (%v)", strings.Join(r.ZSCZCOLOR1TYPE, ","))
  460. }
  461. sqlId.Page(r.Page, r.PageSize)
  462. return sqlId.String()
  463. }
  464. func (r *SellOrder) GetDataByPage() (interface{}, error, int, int, int) {
  465. sData := make([]SellOrder, 0)
  466. sql := ""
  467. if !r.IsQueryDiamond {
  468. // 出售大厅查询
  469. sql = r.buildSql()
  470. } else {
  471. // 钻石搜索
  472. sql = r.buildQueryDiamond()
  473. }
  474. err := db.GetEngine().SQL(sql).Find(&sData)
  475. total := 0
  476. for i := range sData {
  477. sData[i].calc()
  478. total = sData[i].Total
  479. }
  480. return sData, err, r.Page, r.PageSize, total
  481. }
  482. // MyBuyOrder 我的求购
  483. type MyBuyOrder struct {
  484. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  485. ZSTABLEDISPLAY string `json:"zstabledisplay" xorm:"ZSTABLEDISPLAY"` // 求购信息
  486. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  487. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  488. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  489. ZSCOLORTYPEDISPLAY string `json:"zscolortypedisplay" xorm:"ZSCOLORTYPEDISPLAY"` //
  490. ZSCLARITYTYPEDISPLAY string `json:"zsclaritytypedisplay" xorm:"ZSCLARITYTYPEDISPLAY"` //
  491. ZSCUTTYPEDISPLAY string `json:"zscuttypedisplay" xorm:"ZSCUTTYPEDISPLAY"` //
  492. ZSSYMMETRYTYPEDISPLAY string `json:"zssymmetrytypedisplay" xorm:"ZSSYMMETRYTYPEDISPLAY"` //
  493. ZSPOLISHTYPEDISPLAY string `json:"zspolishtypedisplay" xorm:"ZSPOLISHTYPEDISPLAY"` //
  494. ZSFLUORESCENCETYPEDISPLAY string `json:"zsfluorescencetypedisplay" xorm:"ZSFLUORESCENCETYPEDISPLAY"` //
  495. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  496. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  497. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  498. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  499. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  500. WAREHOUSEINFOSDISPLAY string `json:"warehouseinfosdisplay" xorm:"WAREHOUSEINFOSDISPLAY"` //
  501. WRTRADEORDERID int64 `json:"wrtradeorderid" xorm:"WRTRADEORDERID" form:"wrtradeorderid"` // [委托单号]买委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  502. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  503. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  504. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
  505. ZSCURRENCYTYPE string `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 多个, 逗号分隔
  506. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 多个, 逗号分隔
  507. ZSCOLORTYPE string `json:"zscolortype" xorm:"ZSCOLORTYPE"` // 颜色 - 两个, 逗号分隔
  508. ZSCLARITYTYPE string `json:"zsclaritytype" xorm:"ZSCLARITYTYPE"` // 净度 - 两个, 逗号分隔
  509. ZSCUTTYPE string `json:"zscuttype" xorm:"ZSCUTTYPE"` // 切工 - 两个, 逗号分隔
  510. ZSSYMMETRYTYPE string `json:"zssymmetrytype" xorm:"ZSSYMMETRYTYPE"` // 对称度 - 两个, 逗号分隔
  511. ZSPOLISHTYPE string `json:"zspolishtype" xorm:"ZSPOLISHTYPE"` // 抛光度 - 两个, 逗号分隔
  512. ZSFLUORESCENCETYPE string `json:"zsfluorescencetype" xorm:"ZSFLUORESCENCETYPE"` // 荧光 - 多个, 逗号分隔
  513. ZSSIZE string `json:"zssize" xorm:"ZSSIZE"` // 尺寸 - 两个小数, 逗号分隔
  514. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型 - 多个,逗号分隔
  515. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地
  516. ZSSTYLETYPE string `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 多个, 逗号分隔
  517. ZSCZCOLOR1TYPE string `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1, 逗号分隔
  518. ZSCZCOLOR2TYPE string `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2, 逗号分隔
  519. ZSCZCOLOR3TYPE string `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3, 逗号分隔
  520. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  521. WAREHOUSEIDS string `json:"warehouseids" xorm:"WAREHOUSEIDS"` // 仓库ID - 多个, 逗号分隔
  522. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  523. IsHis bool `json:"-" form:"ishis"` // 是否历史查询
  524. PageEx `xorm:"extends"` // 页码信息
  525. }
  526. func (r *MyBuyOrder) calc() {
  527. }
  528. func (r *MyBuyOrder) buildSql() string {
  529. var sqlId utils.SQLVal = `
  530. SELECT
  531. q.*
  532. FROM WRTrade_OrderDetail t
  533. INNER JOIN View_GZ_BuyOrderDetail_Query q ON t.wrtradeorderid = q.wrtradeorderid
  534. WHERE t.marketid=67201 AND t.BuyOrSell = 0 AND t.WRTradeOrderStatus IN (3,7)
  535. `
  536. sqlId.And("t.USERID", r.USERID)
  537. sqlId.AndEx("q.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  538. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  539. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID > 0)
  540. sqlId.OrderByDesc("t.WRTRADEORDERID")
  541. sqlId.Page(r.Page, r.PageSize)
  542. return sqlId.String()
  543. }
  544. func (r *MyBuyOrder) buildSql_His() string {
  545. var sqlId utils.SQLVal = `
  546. SELECT
  547. q.*
  548. FROM HIS_WRTrade_OrderDetail t
  549. INNER JOIN View_GZ_BuyOrderDetail_Query q ON t.wrtradeorderid = q.wrtradeorderid
  550. WHERE t.isvaliddata =1 AND t.marketid=67201 AND t.BuyOrSell = 0 AND t.WRTradeOrderStatus IN (3,7)
  551. `
  552. sqlId.And("t.USERID", r.USERID)
  553. sqlId.AndEx("q.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  554. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  555. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID > 0)
  556. sqlId.OrderByDesc("t.WRTRADEORDERID")
  557. sqlId.Page(r.Page, r.PageSize)
  558. return sqlId.String()
  559. }
  560. func (r *MyBuyOrder) GetDataByPage() (interface{}, error, int, int, int) {
  561. sData := make([]MyBuyOrder, 0)
  562. sql := ""
  563. if r.IsHis {
  564. sql = r.buildSql_His()
  565. } else {
  566. sql = r.buildSql()
  567. }
  568. err := db.GetEngine().SQL(sql).Find(&sData)
  569. total := 0
  570. for i := range sData {
  571. sData[i].calc()
  572. total = sData[i].Total
  573. }
  574. return sData, err, r.Page, r.PageSize, total
  575. }
  576. // MySellOrder 我的出售
  577. type MySellOrder struct {
  578. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  579. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  580. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  581. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
  582. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  583. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  584. WRTRADEORDERID int64 `json:"wrtradeorderid" xorm:"WRTRADEORDERID" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  585. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  586. WRTRADETYPE int32 `json:"wrtradetype" xorm:"WRTRADETYPE"` // 仓单贸易类型 - 1:挂牌 2:摘牌 3:提货卖(文化中国) 4:提货买(文化中国)
  587. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  588. RELATEDWRTRADEORDERID int64 `json:"relatedwrtradeorderid" xorm:"RELATEDWRTRADEORDERID"` // 关联委托单号(摘牌委托关联挂牌委托单ID)
  589. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  590. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账号
  591. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID/商品ID(77)
  592. ORDERQTY int64 `json:"orderqty" xorm:"ORDERQTY"` // 委托数量
  593. TRADEQTY int64 `json:"tradeqty" xorm:"TRADEQTY"` // 成交数量
  594. CANCELQTY int64 `json:"cancelqty" xorm:"CANCELQTY"` // 撤销数量
  595. WRPRICETYPE int32 `json:"wrpricetype" xorm:"WRPRICETYPE"` // 价格方式 - 1:固定价 2-浮动价 - [挂牌]
  596. FIXEDPRICE float64 `json:"fixedprice" xorm:"FIXEDPRICE"` // 固定价格 - [挂牌]
  597. ISSPECIFIED int32 `json:"isspecified" xorm:"ISSPECIFIED"` // 是否指定对手 - 0:不指定 1:指定好友(贸易圈) 2:指定对手 - [挂牌]
  598. PRICEFACTOR float64 `json:"pricefactor" xorm:"PRICEFACTOR"` // 价格系数(浮动价时填写) - [挂牌]
  599. PRICEMOVE float64 `json:"pricemove" xorm:"PRICEMOVE"` // 升贴水(浮动价时填写) - [挂牌]
  600. FIRSTRATIO float64 `json:"firstratio" xorm:"FIRSTRATIO"` // 首付比率 - [挂牌时指定,摘牌时使用]
  601. WRTRANSFERUSERID int64 `json:"wrtransferuserid" xorm:"WRTRANSFERUSERID"` // 仓单受让用户 - [摘牌]
  602. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格 - [摘牌] (浮动价 ((商品1价格*商品1价格系数+升贴水)* 商品1重量系数 + 商品2价格*商品2价格系数+商品2升贴水)* 商品2重量系数 ...)* 委托单价格系数 + 委托单升贴水)
  603. FREEZEFIRSTAMOUNT float64 `json:"freezefirstamount" xorm:"FREEZEFIRSTAMOUNT"` // 冻结首付金额 - [摘牌]
  604. UNFREEZEFIRSTAMOUNT float64 `json:"unfreezefirstamount" xorm:"UNFREEZEFIRSTAMOUNT"` // 解冻首付金额 - [摘牌]
  605. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  606. VALIDTYPE int32 `json:"validtype" xorm:"VALIDTYPE"` // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效
  607. VALIDTIME time.Time `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  608. ORDERTIME time.Time `json:"ordertime" xorm:"ORDERTIME"` // 委托时间
  609. CANCELTIME time.Time `json:"canceltime" xorm:"CANCELTIME"` // 撤销时间
  610. WRTRADEORDERSTATUS int32 `json:"wrtradeorderstatus" xorm:"WRTRADEORDERSTATUS"` // 委托状态 - 参考枚举'WRTradeOrderStatus' - 1:委托请求 2:待冻结 3:委托成功 4:委托失败 5:配对成功 6:已撤 7:部成 8:已成 9:部成部撤 10:成交失败 11:委托拒绝 12:经过摘牌(先摘后挂专用) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用) 17:冻结PD成功 18:冻结PD失败 19:冻结能量成功 20:冻结能量失败 21:预约已报价 22:过期未付 23:优惠券处理中 24:仓单生成失败 25:首付扣款失败 26:履约失败 27:撤单解冻贷款失败
  611. CLIENTTICKET string `json:"-" xorm:"CLIENTTICKET"` // 客户端流水号
  612. ORDERSRC int32 `json:"-" xorm:"ORDERSRC"` // 委托来源 - 1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结
  613. CLIENTTYPE int32 `json:"-" xorm:"CLIENTTYPE"` // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
  614. UUID string `json:"uuid" xorm:"UUID"` // 发起端唯一id
  615. CLIENTORDERTIME time.Time `json:"clientordertime" xorm:"CLIENTORDERTIME"` // 客户端委托时间
  616. RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 错误代码
  617. OPERATORID int64 `json:"-" xorm:"OPERATORID"` // 操作员ID
  618. PRICEDISPLAYMODE int32 `json:"-" xorm:"PRICEDISPLAYMODE"` // 浮动价显示方式 - 1:合并显示 2:分开显示1: 价格显示一个值 :(商品拟合价*价格系统+升贴水)2: 价格显示两个值:(商品拟合价*价格系统) 、 升贴水
  619. FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金
  620. UNFREEZEMARGIN float64 `json:"unfreezemargin" xorm:"UNFREEZEMARGIN"` // 解冻保证金
  621. FREEZECHARGE float64 `json:"freezecharge" xorm:"FREEZECHARGE"` // 冻结手续费
  622. UNFREEZECHARGE float64 `json:"unfreezecharge" xorm:"UNFREEZECHARGE"` // 解冻手续费
  623. MARGINALGORITHM int32 `json:"marginalgorithm" xorm:"MARGINALGORITHM"` // 保证金方式 - 1:比率 2:固定
  624. MARGINVALUE float64 `json:"marginvalue" xorm:"MARGINVALUE"` // 保证金设置值
  625. CHARGEALGORITHM int32 `json:"chargealgorithm" xorm:"CHARGEALGORITHM"` // 手续费收取方式 1:比率 2:固定
  626. CHARGEALGORITHMVALUE float64 `json:"chargealgorithmvalue" xorm:"CHARGEALGORITHMVALUE"` // 手续费设置值(交易所部分)
  627. CHARGEALGORITHMVALUE2 float64 `json:"chargealgorithmvalue2" xorm:"CHARGEALGORITHMVALUE2"` // 手续费设置值(会员部分)
  628. CANBARGAIN int32 `json:"canbargain" xorm:"CANBARGAIN"` // 是否可议价 - 0:不可 1:可
  629. WRBARGAINID int64 `json:"wrbargainid" xorm:"WRBARGAINID"` // 议价申请单ID
  630. ATTACHMENT1 string `json:"attachment1" xorm:"ATTACHMENT1"` // 附件1
  631. ATTACHMENT2 string `json:"attachment2" xorm:"ATTACHMENT2"` // 附件2
  632. APPLYID int64 `json:"applyid" xorm:"APPLYID"` // 申请单ID
  633. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率[67]
  634. ORDERAMOUNT float64 `json:"orderamount" xorm:"ORDERAMOUNT"` // 挂牌金额[账户] [67]= OrderQty * FixedPrice * ExchangeRate /100
  635. IsHis bool `json:"-" form:"ishis"` // 是否历史查询
  636. PageEx `xorm:"extends"` // 页码信息
  637. }
  638. func (r *MySellOrder) calc() {
  639. }
  640. func (r *MySellOrder) buildSql() string {
  641. var sqlId utils.SQLVal = `
  642. SELECT
  643. q.ZSCATEGORY,
  644. q.ZSCURRENCYTYPE,
  645. q.GOODSNO,
  646. t.*
  647. FROM WRTrade_OrderDetail t
  648. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  649. WHERE t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  650. `
  651. sqlId.And("q.USERID", r.USERID)
  652. sqlId.AndEx("q.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  653. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  654. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID > 0)
  655. sqlId.OrderByDesc("t.WRTRADEORDERID")
  656. sqlId.Page(r.Page, r.PageSize)
  657. return sqlId.String()
  658. }
  659. func (r *MySellOrder) buildSql_His() string {
  660. var sqlId utils.SQLVal = `
  661. SELECT
  662. q.ZSCATEGORY,
  663. q.ZSCURRENCYTYPE,
  664. q.GOODSNO,
  665. t.*
  666. FROM HIS_WRTrade_OrderDetail t
  667. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  668. WHERE t.isvaliddata =1 AND t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  669. `
  670. sqlId.And("q.USERID", r.USERID)
  671. sqlId.AndEx("q.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  672. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  673. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID > 0)
  674. sqlId.OrderByDesc("t.WRTRADEORDERID")
  675. sqlId.Page(r.Page, r.PageSize)
  676. return sqlId.String()
  677. }
  678. func (r *MySellOrder) GetDataByPage() (interface{}, error, int, int, int) {
  679. sData := make([]MySellOrder, 0)
  680. sql := ""
  681. if r.IsHis {
  682. sql = r.buildSql_His()
  683. } else {
  684. sql = r.buildSql()
  685. }
  686. err := db.GetEngine().SQL(sql).Find(&sData)
  687. total := 0
  688. for i := range sData {
  689. sData[i].calc()
  690. total = sData[i].Total
  691. }
  692. return sData, err, r.Page, r.PageSize, total
  693. }
  694. // MyDeListing 我的摘牌
  695. type MyDeListing struct {
  696. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  697. SELLUSERNAME string `json:"-" xorm:"SELLUSERNAME"` // 卖方
  698. BUYUSERNAME string `json:"-" xorm:"BUYUSERNAME"` // 买方
  699. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  700. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
  701. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  702. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  703. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  704. WRTRADEDETAILID int64 `json:"wrtradedetailid" xorm:"WRTRADEDETAILID" form:"wrtradedetailid"` // 仓单贸易成交单ID(321+Unix秒时间戳(10位)+xxxxxx)
  705. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  706. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  707. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID
  708. DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
  709. WRSTANDARDID int32 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  710. BUYUSERID int64 `json:"buyuserid" xorm:"BUYUSERID"` // 买方用户ID
  711. BUYACCOUNTID int64 `json:"buyaccountid" xorm:"BUYACCOUNTID"` // 买方账号ID
  712. SELLUSERID int64 `json:"selluserid" xorm:"SELLUSERID"` // 卖方用户ID
  713. SELLACCOUNTID int64 `json:"sellaccountid" xorm:"SELLACCOUNTID"` // 卖方账号ID
  714. TRADETIME time.Time `json:"tradetime" xorm:"TRADETIME"` // 成交时间
  715. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格
  716. TRADEQTY int64 `json:"tradeqty" xorm:"TRADEQTY"` // 成交数量
  717. TRADEAMOUNT float64 `json:"tradeamount" xorm:"TRADEAMOUNT"` // 成交金额
  718. PERFORMANCEPLANID int64 `json:"performanceplanid" xorm:"PERFORMANCEPLANID"` // 履约计划ID/合同ID
  719. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率
  720. BUYCHARGEVALUE float64 `json:"buychargevalue" xorm:"BUYCHARGEVALUE"` // 买方手续费
  721. SELLCHARGEVALUE float64 `json:"sellchargevalue" xorm:"SELLCHARGEVALUE"` // 卖方手续费
  722. ORITRADEAMOUNT float64 `json:"oritradeamount" xorm:"ORITRADEAMOUNT"` // 成交金额[商品币种]
  723. MATCHUSERNAME string `json:"matchusername"` // 对手方
  724. BuyOrSell int64 `json:"buyorsell" form:"buyorsell"` // 方向 - 0:全部 1:买 2:卖
  725. BeginDate string `json:"-" form:"begindate"` // 开始交易日
  726. EndDate string `json:"-" form:"enddate"` // 结束交易日
  727. PageEx `xorm:"extends"` // 页码信息
  728. }
  729. func (r *MyDeListing) calc() {
  730. // 设置对手方
  731. if r.USERID == r.BUYUSERID {
  732. r.MATCHUSERNAME = r.SELLUSERNAME
  733. r.BuyOrSell = 1
  734. } else if r.USERID == r.SELLUSERID {
  735. r.MATCHUSERNAME = r.BUYUSERNAME
  736. r.BuyOrSell = 2
  737. }
  738. }
  739. func (r *MyDeListing) buildSql() string {
  740. var sqlId utils.SQLVal = `
  741. SELECT
  742. ua1.accountname BUYUSERNAME,
  743. q.SELLUSERNAME,
  744. q.USERID,
  745. q.ZSCATEGORY,
  746. q.ZSCATEGORYDISPLAY,
  747. q.ZSCURRENCYTYPE,
  748. q.GOODSNO,
  749. t.*
  750. FROM WRTrade_TradeQuote t
  751. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  752. LEFT JOIN UserAccount ua1 ON t.BuyUserID = ua1.userid
  753. WHERE t.marketid=67201
  754. `
  755. sqlId.AndEx("q.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  756. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  757. sqlId.AndEx("t.WRTRADEDETAILID", r.WRTRADEDETAILID, r.WRTRADEDETAILID > 0)
  758. switch r.BuyOrSell {
  759. case 0:
  760. // 全部
  761. sqlId.JoinFormat(" AND (t.BUYUSERID=%v OR t.SELLUSERID=%v)", r.USERID, r.USERID)
  762. case 1:
  763. // 买
  764. sqlId.And("t.BUYUSERID", r.USERID)
  765. case 2:
  766. // 卖
  767. sqlId.And("t.SELLUSERID", r.USERID)
  768. }
  769. if r.BeginDate != "" && r.EndDate != "" {
  770. sqlId.JoinFormat(" AND (t.TRADEDATE >= '%v' AND t.TRADEDATE <= '%v')", r.BeginDate, r.EndDate)
  771. }
  772. sqlId.OrderByDesc("t.WRTRADEDETAILID")
  773. sqlId.Page(r.Page, r.PageSize)
  774. return sqlId.String()
  775. }
  776. func (r *MyDeListing) GetDataByPage() (interface{}, error, int, int, int) {
  777. sData := make([]MyDeListing, 0)
  778. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  779. total := 0
  780. for i := range sData {
  781. sData[i].calc()
  782. total = sData[i].Total
  783. }
  784. return sData, err, r.Page, r.PageSize, total
  785. }
  786. // MyBargainApply 我的询价-求购
  787. type MyBargainApply struct {
  788. WRBARGAINID int64 `json:"wrbargainid" xorm:"WRBARGAINID"` // [询价单号]议价申请单ID(327+Unix秒时间戳(10位)+xxxxxx)
  789. WRTRADEORDERID int64 `json:"wrtradeorderid" xorm:"WRTRADEORDERID"` // 关联委托单ID
  790. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  791. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  792. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 摘牌人用户ID
  793. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 摘牌资金账号
  794. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  795. APPLYQTY int64 `json:"applyqty" xorm:"APPLYQTY"` // 摘牌数量
  796. APPLYPRICE string `json:"applyprice" xorm:"APPLYPRICE"` // 申请价格
  797. APPLYSTATUS int32 `json:"applystatus" xorm:"APPLYSTATUS" form:"applystatus"` // 申请状态 - 1:待确认 2:已确认 3:已拒绝 4:已撤销 5:系统撤销 6:处理失败 7:确认中
  798. HANDLESTATUS int32 `json:"handlestatus" xorm:"HANDLESTATUS"` // 处理状态
  799. APPLYTIME time.Time `json:"applytime" xorm:"APPLYTIME"` // 申请时间
  800. APPLYREMARK string `json:"applyremark" xorm:"APPLYREMARK"` // 申请备注
  801. CONFIRMQTY int64 `json:"confirmqty" xorm:"CONFIRMQTY"` // 可接受数量(拒绝时填写)-作废
  802. CONFIRMPRICE float64 `json:"confirmprice" xorm:"CONFIRMPRICE"` // 可接受价格(拒绝时填写)-作废
  803. CONFIRMUSERID int64 `json:"confirmuserid" xorm:"CONFIRMUSERID"` // 确认人
  804. CONFIRMTIME time.Time `json:"confirmtime" xorm:"CONFIRMTIME"` // 确认时间
  805. CONFIRMREMARK string `json:"confirmremark" xorm:"CONFIRMREMARK"` // 确认备注
  806. REFPRICE string `json:"refprice" xorm:"REFPRICE"` // 参考价格
  807. RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 委托返回代码
  808. MATCHUSERID int64 `json:"matchuserid" xorm:"MATCHUSERID"` // 挂牌方用户ID
  809. MATCHACCOUNTID int64 `json:"matchaccountid" xorm:"MATCHACCOUNTID"` // 挂牌方资金账号
  810. LADINGBILLID int64 `json:"ladingbillid" xorm:"LADINGBILLID"` // 摘牌方提单ID [卖]
  811. SUBNUM int32 `json:"subnum" xorm:"SUBNUM"` // 摘牌方提单子单号 [卖]
  812. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 卖方
  813. PageEx `xorm:"extends"` // 页码信息
  814. }
  815. func (r *MyBargainApply) calc() {
  816. }
  817. func (r *MyBargainApply) buildSql() string {
  818. var sqlId utils.SQLVal = `
  819. SELECT
  820. ua.accountname SELLUSERNAME,
  821. t.*,
  822. FROM WRTrade_BargainApply t
  823. LEFT JOIN UserAccount ua ON t.MATCHUSERID = ua.userid
  824. WHERE t.marketid=67201
  825. `
  826. sqlId.And("t.USERID", r.USERID)
  827. sqlId.AndEx("t.APPLYSTATUS", r.APPLYSTATUS, r.APPLYSTATUS > 0)
  828. sqlId.OrderByDesc("t.WRBARGAINID")
  829. sqlId.Page(r.Page, r.PageSize)
  830. return sqlId.String()
  831. }
  832. func (r *MyBargainApply) GetDataByPage() (interface{}, error, int, int, int) {
  833. sData := make([]MyBargainApply, 0)
  834. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  835. total := 0
  836. for i := range sData {
  837. sData[i].calc()
  838. total = sData[i].Total
  839. }
  840. return sData, err, r.Page, r.PageSize, total
  841. }
  842. // MyDelistingApply 我的询价-出售
  843. type MyDelistingApply struct {
  844. SELLDELISTINGAPPLYID int64 `json:"selldelistingapplyid" xorm:"SELLDELISTINGAPPLYID"` // [询价单号]卖摘牌申请ID(916+Unix秒时间戳(10位)+xxxxxx)
  845. BUYWRTRADEORDERID int64 `json:"buywrtradeorderid" xorm:"BUYWRTRADEORDERID"` // 买委托单ID
  846. BUYUSERID int64 `json:"buyuserid" xorm:"BUYUSERID"` // 买方用户ID
  847. SELLUSERID int64 `json:"selluserid" xorm:"SELLUSERID" form:"userid" binding:"required"` // 卖方用户ID
  848. SELLACCOUNTID int64 `json:"sellaccountid" xorm:"SELLACCOUNTID"` // 卖方账户ID
  849. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  850. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID
  851. APPLYQTY float64 `json:"applyqty" xorm:"APPLYQTY"` // 申请数量
  852. APPLYPRICE float64 `json:"applyprice" xorm:"APPLYPRICE"` // 申请价格
  853. APPLYSTATUS int32 `json:"applystatus" xorm:"APPLYSTATUS" form:"applystatus"` // 申请状态 - 1:待确认 2:已确认 3:已拒绝 4:已撤销 5:系统撤销 6:处理失败 7:确认中
  854. APPLYREMARK string `json:"applyremark" xorm:"APPLYREMARK"` // 申请备注
  855. APPLYTIME time.Time `json:"applytime" xorm:"APPLYTIME"` // 申请时间
  856. AUDITREMARK string `json:"auditremark" xorm:"AUDITREMARK"` // 确认备注
  857. SELLTRADEORDERID int64 `json:"selltradeorderid" xorm:"SELLTRADEORDERID"` // 卖方委托ID(买方确认成交后更新)
  858. AUDITTIME time.Time `json:"audittime" xorm:"AUDITTIME"` // 确认时间
  859. LADINGBILLID int64 `json:"ladingbillid" xorm:"LADINGBILLID"` // 卖方提单ID
  860. SUBNUM int32 `json:"subnum" xorm:"SUBNUM"` // 卖方提单子单号
  861. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  862. BUYUSERNAME string `json:"buyusername" xorm:"BUYUSERNAME"` // 买方
  863. PageEx `xorm:"extends"` // 页码信息
  864. }
  865. func (r *MyDelistingApply) calc() {
  866. }
  867. func (r *MyDelistingApply) buildSql() string {
  868. var sqlId utils.SQLVal = `
  869. SELECT
  870. ua.accountname BUYUSERNAME,
  871. t.*,
  872. FROM GZ_SellDelistingApply t
  873. LEFT JOIN UserAccount ua ON t.BUYUSERID = ua.userid
  874. WHERE t.marketid=67201
  875. `
  876. sqlId.And("t.SELLUSERID", r.SELLUSERID)
  877. sqlId.AndEx("t.APPLYSTATUS", r.APPLYSTATUS, r.APPLYSTATUS > 0)
  878. sqlId.OrderByDesc("t.SELLDELISTINGAPPLYID")
  879. sqlId.Page(r.Page, r.PageSize)
  880. return sqlId.String()
  881. }
  882. func (r *MyDelistingApply) GetDataByPage() (interface{}, error, int, int, int) {
  883. sData := make([]MyDelistingApply, 0)
  884. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  885. total := 0
  886. for i := range sData {
  887. sData[i].calc()
  888. total = sData[i].Total
  889. }
  890. return sData, err, r.Page, r.PageSize, total
  891. }