guangzuan.go 126 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157
  1. package models
  2. import (
  3. "encoding/hex"
  4. "mtp2_if/db"
  5. "mtp2_if/utils"
  6. "strings"
  7. "time"
  8. )
  9. // Warehouseinfo 仓库信息表
  10. type GZWarehouseinfo struct {
  11. AUTOID int64 `json:"autoid" xorm:"AUTOID"` // 自增ID
  12. WAREHOUSECODE string `json:"warehousecode" xorm:"WAREHOUSECODE"` // 仓库代码
  13. WAREHOUSENAME string `json:"warehousename" xorm:"WAREHOUSENAME"` // 仓库名称
  14. WAREHOUSETYPE int32 `json:"warehousetype" xorm:"WAREHOUSETYPE"` // 仓库类型 - 1 厂库 2 自有库 3 合作库
  15. AREAUSERID int64 `json:"areauserid" xorm:"AREAUSERID"` // 所属机构
  16. WAREHOUSESTATUS int32 `json:"warehousestatus" xorm:"WAREHOUSESTATUS"` // 仓库状态 - 1:正常 2:注销 3:待审核 4:审核拒绝
  17. COUNTRYID int32 `json:"countryid" xorm:"COUNTRYID"` // 国家
  18. PROVINCEID int32 `json:"provinceid" xorm:"PROVINCEID"` // 省
  19. CITYID int32 `json:"cityid" xorm:"CITYID"` // 市
  20. DISTRICTID int32 `json:"districtid" xorm:"DISTRICTID"` // 区
  21. ADDRESS string `json:"address" xorm:"ADDRESS"` // 详细地址
  22. REMARK string `json:"remark" xorm:"REMARK"` // 审核备注
  23. CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
  24. HASVIDEO int32 `json:"hasvideo" xorm:"HASVIDEO"` // 是否有视频 - 0:无 1:有
  25. VIDEOURL string `json:"videourl" xorm:"VIDEOURL"` // 视频地址
  26. CONTACTNAME string `json:"contactname" xorm:"CONTACTNAME"` // 联系人
  27. CONTACTNUM string `json:"contactnum" xorm:"CONTACTNUM"` // 联系电话
  28. PageEx `xorm:"extends"` // 页码信息
  29. UserId int64 `json:"-" form:"userid" binding:"required"` // 用户ID
  30. Status string `json:"-" form:"status"` // 仓库状态(可多项,逗号隔开) 1:正常 2:注销 3:待审核 4:审核拒绝
  31. IsIncludeExchange bool `json:"-" form:"isincludeexchange"` // 是返回交易所仓库
  32. }
  33. // TableName is WAREHOUSEINFO
  34. func (r *GZWarehouseinfo) TableName() string {
  35. return "WAREHOUSEINFO"
  36. }
  37. func (r *GZWarehouseinfo) calc() {
  38. }
  39. func (r *GZWarehouseinfo) buildSql() string {
  40. var sqlId utils.SQLVal = `SELECT t.AUTOID,
  41. t.WAREHOUSECODE,
  42. t.WAREHOUSENAME,
  43. t.WAREHOUSETYPE,
  44. t.AREAUSERID,
  45. t.WAREHOUSESTATUS,
  46. t.COUNTRYID,
  47. t.PROVINCEID,
  48. t.CITYID,
  49. t.DISTRICTID,
  50. t.ADDRESS,
  51. t.REMARK,
  52. to_char(t.CREATETIME,'yyyy-mm-dd hh24:mi:ss') CREATETIME,
  53. t.HASVIDEO,
  54. t.VIDEOURL,
  55. t.CONTACTNAME,
  56. t.CONTACTNUM
  57. FROM WAREHOUSEINFO t
  58. WHERE (t.AREAUSERID = %v) `
  59. sqlId.FormatParam(r.UserId)
  60. if r.IsIncludeExchange {
  61. sqlId.Join(" OR (t.AREAUSERID IS NULL) OR (t.AREAUSERID = 1)")
  62. }
  63. if len(r.Status) > 0 {
  64. sqlId.JoinFormat(" and (t.WAREHOUSESTATUS in (%v))", r.Status)
  65. }
  66. sqlId.Page(r.Page, r.PageSize)
  67. return sqlId.String()
  68. }
  69. // GetDataByPage 获取团队订单
  70. func (r *GZWarehouseinfo) GetDataByPage() (interface{}, error, int, int, int) {
  71. sData := make([]GZWarehouseinfo, 0)
  72. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  73. total := 0
  74. for i := range sData {
  75. sData[i].calc()
  76. total = sData[i].Total
  77. }
  78. return sData, err, r.Page, r.PageSize, total
  79. }
  80. // MyWRPosition 我的库存
  81. type MyWRPosition struct {
  82. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  83. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 账户名称(机构名称)
  84. SELLMOBILE string `json:"sellmobile" xorm:"SELLMOBILE"` // 手机号码(加密存储)
  85. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  86. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  87. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  88. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  89. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  90. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  91. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  92. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  93. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  94. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  95. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  96. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  97. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  98. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  99. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  100. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  101. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  102. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  103. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  104. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  105. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  106. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  107. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  108. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  109. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  110. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  111. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  112. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  113. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  114. WAREHOUSEID int64 `json:"warehouseid" xorm:"WAREHOUSEID" form:"warehouseid"` // 仓库ID
  115. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` // 市场价
  116. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` // 商品照片(相对地址)
  117. WRPATH string `json:"wrpath" xorm:"WRPATH"` // 仓单扫描件(相对地址)
  118. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  119. PRICE float64 `json:"price" xorm:"PRICE"` // 总价(价格) - 类型:1,2,3,4,5
  120. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  121. WEIGHTAVG float64 `json:"weightavg" xorm:"WEIGHTAVG"` // 平均单颗重量 - 类型:1,3
  122. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价 - 类型:1,2,3,5
  123. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  124. ZSCOLORTYPE1 int32 `json:"zscolortype1" xorm:"ZSCOLORTYPE1"` // 颜色1 - 枚举”ZSColorType“ - 类型:1,2,3,4
  125. ZSCOLORTYPE2 int32 `json:"zscolortype2" xorm:"ZSCOLORTYPE2"` // 颜色2 - 枚举”ZSColorType“ - 类型:1,3
  126. ZSCLARITYTYPE1 int32 `json:"zsclaritytype1" xorm:"ZSCLARITYTYPE1"` // 净度1 - 枚举”ZSClarityType“ - 类型:1,2,3,4,5
  127. ZSCLARITYTYPE2 int32 `json:"zsclaritytype2" xorm:"ZSCLARITYTYPE2"` // 净度2 - 枚举”ZSClarityType“ - 类型:1,3
  128. ZSCUTTYPE1 int32 `json:"zscuttype1" xorm:"ZSCUTTYPE1"` // 切工1 - 枚举”ZSCutType“ - 类型:1,2,4,5
  129. ZSCUTTYPE2 int32 `json:"zscuttype2" xorm:"ZSCUTTYPE2"` // 切工2 - 枚举”ZSCutType“ - 类型:1
  130. ZSSYMMETRYTYPE1 int32 `json:"zssymmetrytype1" xorm:"ZSSYMMETRYTYPE1"` // 对称度1 - 枚举”ZSSymmetryType“ - 类型:1,2,4,5
  131. ZSSYMMETRYTYPE2 int32 `json:"zssymmetrytype2" xorm:"ZSSYMMETRYTYPE2"` // 对称度2 - 枚举”ZSSymmetryType“ - 类型:1
  132. ZSPOLISHTYPE1 int32 `json:"zspolishtype1" xorm:"ZSPOLISHTYPE1"` // 抛光度1 - 枚举”ZSPolishType“ - 类型:1,2,4,5
  133. ZSPOLISHTYPE2 int32 `json:"zspolishtype2" xorm:"ZSPOLISHTYPE2"` // 抛光度2 - 枚举”ZSPolishType“ - 类型:1
  134. ZSFLUORESCENCETYPE1 int32 `json:"zsfluorescencetype1" xorm:"ZSFLUORESCENCETYPE1"` // 荧光1 - 枚举”ZSFluorescenceType“ - 类型:1,2,3,4,5
  135. ZSFLUORESCENCETYPE2 int32 `json:"zsfluorescencetype2" xorm:"ZSFLUORESCENCETYPE2"` // 荧光2 - 枚举”ZSFluorescenceType” - 类型:1,3
  136. SIZE1 string `json:"size1" xorm:"SIZE1"` // 尺寸1 - 类型:2,4,5
  137. SIZE2 string `json:"size2" xorm:"SIZE2"` // 尺寸2 - 类型:2,4,5
  138. SIZE3 string `json:"size3" xorm:"SIZE3"` // 尺寸3 - 类型:2,4,5
  139. ZSCERTTYPE int32 `json:"zscerttype" xorm:"ZSCERTTYPE"` // 证书类型 - 枚举”ZSCertType“ - 类型:2,4,5
  140. CERNO string `json:"cerno" xorm:"CERNO"` // 证书编号 - 类型:2,4,5
  141. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型范围 - 枚举“ZSCrystalType“ - 类型:3, 多个,逗号分隔
  142. CPCERTNO string `json:"cpcertno" xorm:"CPCERTNO"` // 金伯利证书编号 - 类型:3
  143. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地 - 类型:3
  144. KPWEIGHT string `json:"kpweight" xorm:"KPWEIGHT"` // 金伯利证书重量 - 类型:3
  145. KPPATH string `json:"kppath" xorm:"KPPATH"` // 金伯利证书图片(相对地址) - 类型:3
  146. ZSSTYLETYPE int32 `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 类型:4
  147. STONEDESC string `json:"stonedesc" xorm:"STONEDESC"` // 配石描述 - 类型:4
  148. SETTINGMATERIAL string `json:"settingmaterial" xorm:"SETTINGMATERIAL"` // 镶嵌材料 - 类型:4
  149. ZSCZCOLOR1TYPE int32 `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1 - 枚举”ZSCZColor1Type“ - 类型:5
  150. ZSCZCOLOR2TYPE int32 `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2 - 枚举”ZSCZColor2Type“ - 类型:5
  151. ZSCZCOLOR3TYPE int32 `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3 - 枚举”ZSCZColor3Type“ - 类型:5
  152. ISVALID int32 `json:"isvalid" xorm:"ISVALID"` // 是否有效 - 0:无效 1:有效
  153. QTY int64 `json:"-" xorm:"QTY"`
  154. FREEZERQTY int64 `json:"-" xorm:"FREEZERQTY"`
  155. FTOTALQTY float64 `json:"ftotalqty"` // 库存数量:WRPosition表:TOTALQTY /100 , 保留两位小数
  156. FFREEZEQTY float64 `json:"ffreezeqty"` // 冻结数量:WRPosition表:FREEZEQTY/100 , 保留两位小数
  157. LADINGBILLID string `json:"ladingbillid" xorm:"LADINGBILLID"` // 提单ID(208+Unix秒时间戳(10位)+xxxxxx)
  158. SUBNUM int32 `json:"subnum" xorm:"SUBNUM"` // 提单子单号
  159. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  160. PageEx `xorm:"extends"` // 页码信息
  161. WRUSERID int64 `json:"wruserid" xorm:"WRUSERID" form:"wruserid" binding:"required"` // 登录用户ID
  162. MARKETFLAG int `json:"marketflag" form:"marketflag"` // 是否上架,0-全部 1-是 2-否
  163. }
  164. func (r *MyWRPosition) calc() {
  165. if r.QTY != 0 {
  166. a := SFLOAT64(float64(r.QTY) / 100)
  167. a.Round(2)
  168. r.FTOTALQTY = a.Float64()
  169. }
  170. if r.FREEZERQTY != 0 {
  171. a := SFLOAT64(float64(r.FREEZERQTY) / 100)
  172. a.Round(2)
  173. r.FFREEZEQTY = a.Float64()
  174. }
  175. if r.FREEZERQTY > 0 {
  176. r.MARKETFLAG = 1
  177. } else {
  178. r.MARKETFLAG = 2
  179. }
  180. }
  181. func (r *MyWRPosition) buildSql() string {
  182. var sqlId utils.SQLVal = `
  183. SELECT
  184. t.QTY,
  185. t.FREEZERQTY,
  186. to_char(t.LADINGBILLID) LADINGBILLID,
  187. t.SUBNUM,
  188. to_char(od.WRTRADEORDERID) WRTRADEORDERID1,
  189. wr.*
  190. FROM WRHoldLB t
  191. INNER JOIN WRFactorType ft ON t.wrfactortypeid = ft.wrfactortypeid
  192. INNER JOIN View_GZ_WRStandard_Ex_Query wr ON ft.wrstandardid = wr.wrstandardid
  193. LEFT JOIN WRTrade_OrderDetail od ON od.wrstandardid = wr.wrstandardid
  194. WHERE t.userid = %v
  195. `
  196. sqlId.FormatParam(r.WRUSERID)
  197. if r.ZSCATEGORYS != "" {
  198. sqlId.JoinFormat(" AND wr.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  199. }
  200. sqlId.AndLike("wr.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  201. sqlId.AndEx("wr.WAREHOUSEID", r.WAREHOUSEID, r.WAREHOUSEID > 0)
  202. sqlId.Page(r.Page, r.PageSize)
  203. return sqlId.String()
  204. }
  205. func (r *MyWRPosition) GetDataByPage() (interface{}, error, int, int, int) {
  206. sData := make([]MyWRPosition, 0)
  207. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  208. total := 0
  209. for i := range sData {
  210. sData[i].calc()
  211. total = sData[i].Total
  212. }
  213. return sData, err, r.Page, r.PageSize, total
  214. }
  215. // BuyOrder 求购大厅委托单
  216. type BuyOrder struct {
  217. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  218. ZSTABLEDISPLAY string `json:"zstabledisplay" xorm:"ZSTABLEDISPLAY"` // 求购信息
  219. BUYUSERNAME string `json:"buyusername" xorm:"BUYUSERNAME" form:"buyusername"` // 买方
  220. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  221. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  222. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  223. ZSCOLORTYPEDISPLAY string `json:"zscolortypedisplay" xorm:"ZSCOLORTYPEDISPLAY"` //
  224. ZSCLARITYTYPEDISPLAY string `json:"zsclaritytypedisplay" xorm:"ZSCLARITYTYPEDISPLAY"` //
  225. ZSCUTTYPEDISPLAY string `json:"zscuttypedisplay" xorm:"ZSCUTTYPEDISPLAY"` //
  226. ZSSYMMETRYTYPEDISPLAY string `json:"zssymmetrytypedisplay" xorm:"ZSSYMMETRYTYPEDISPLAY"` //
  227. ZSPOLISHTYPEDISPLAY string `json:"zspolishtypedisplay" xorm:"ZSPOLISHTYPEDISPLAY"` //
  228. ZSFLUORESCENCETYPEDISPLAY string `json:"zsfluorescencetypedisplay" xorm:"ZSFLUORESCENCETYPEDISPLAY"` //
  229. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  230. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  231. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  232. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  233. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  234. WAREHOUSEINFOSDISPLAY string `json:"warehouseinfosdisplay" xorm:"WAREHOUSEINFOSDISPLAY"` //
  235. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // [委托单号]买委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  236. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  237. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  238. 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:撤单解冻贷款失败WRTrade_OrderDetail、
  239. VALIDTIME string `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  240. ORDERTIME string `json:"ordertime" xorm:"ORDERTIME"` // 委托时间
  241. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  242. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  243. ZSCURRENCYTYPE string `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 多个, 逗号分隔
  244. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 多个, 逗号分隔
  245. ZSCOLORTYPE string `json:"zscolortype" xorm:"ZSCOLORTYPE"` // 颜色 - 两个, 逗号分隔
  246. ZSCLARITYTYPE string `json:"zsclaritytype" xorm:"ZSCLARITYTYPE"` // 净度 - 两个, 逗号分隔
  247. ZSCUTTYPE string `json:"zscuttype" xorm:"ZSCUTTYPE"` // 切工 - 两个, 逗号分隔
  248. ZSSYMMETRYTYPE string `json:"zssymmetrytype" xorm:"ZSSYMMETRYTYPE"` // 对称度 - 两个, 逗号分隔
  249. ZSPOLISHTYPE string `json:"zspolishtype" xorm:"ZSPOLISHTYPE"` // 抛光度 - 两个, 逗号分隔
  250. ZSFLUORESCENCETYPE string `json:"zsfluorescencetype" xorm:"ZSFLUORESCENCETYPE"` // 荧光 - 多个, 逗号分隔
  251. ZSSIZE string `json:"zssize" xorm:"ZSSIZE"` // 尺寸 - 两个小数, 逗号分隔
  252. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型 - 多个,逗号分隔
  253. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地
  254. ZSSTYLETYPE string `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 多个, 逗号分隔
  255. ZSCZCOLOR1TYPE string `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1, 逗号分隔
  256. ZSCZCOLOR2TYPE string `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2, 逗号分隔
  257. ZSCZCOLOR3TYPE string `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3, 逗号分隔
  258. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  259. WAREHOUSEIDS string `json:"warehouseids" xorm:"WAREHOUSEIDS"` // 仓库ID - 多个, 逗号分隔
  260. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  261. PageEx `xorm:"extends"` // 页码信息
  262. }
  263. func (r *BuyOrder) calc() {
  264. }
  265. func (r *BuyOrder) buildSql() string {
  266. var sqlId utils.SQLVal = `
  267. SELECT
  268. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  269. t.WRTRADEORDERSTATUS,
  270. to_char(t.VALIDTIME, 'yyyy-mm-dd') VALIDTIME,
  271. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME,
  272. q.*
  273. FROM WRTrade_OrderDetail t
  274. INNER JOIN View_GZ_BuyOrderDetail_Query q ON t.wrtradeorderid = q.wrtradeorderid
  275. WHERE t.marketid=67201 AND t.BuyOrSell = 0 AND t.WRTradeOrderStatus IN (3,7)
  276. `
  277. if r.ZSCATEGORYS != "" {
  278. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  279. }
  280. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  281. sqlId.AndEx("q.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  282. sqlId.AndLike("q.BUYUSERNAME", r.BUYUSERNAME)
  283. sqlId.Page(r.Page, r.PageSize)
  284. return sqlId.String()
  285. }
  286. func (r *BuyOrder) GetDataByPage() (interface{}, error, int, int, int) {
  287. sData := make([]BuyOrder, 0)
  288. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  289. total := 0
  290. for i := range sData {
  291. sData[i].calc()
  292. total = sData[i].Total
  293. }
  294. return sData, err, r.Page, r.PageSize, total
  295. }
  296. // SellOrderQueryReq 钻石搜索入参
  297. type SellOrderQueryReq struct {
  298. ZSCATEGORY int32 `json:"zscategory" binding:"required"` // 钻石分类 - 枚举”ZSCategory“
  299. ZSCURRENCYTYPE []string `json:"zscurrencytype"` // 货币类型 - 枚举“ZSCurrencyType”
  300. WAREHOUSEID int64 `json:"warehouseid"` // 仓库ID
  301. WEIGHT1 float64 `json:"weight1"` // 总重量(克拉重量)-从
  302. WEIGHT2 float64 `json:"weight2"` // 总重量(克拉重量)-至
  303. WEIGHTAVG1 float64 `json:"weightavg1"` // 平均单颗重量-从
  304. WEIGHTAVG2 float64 `json:"weightavg2"` // 平均单颗重量-至
  305. ZSSHAPETYPE []string `json:"zsshapetype"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  306. ZSCOLORTYPE []int32 `json:"zscolortype"` // 颜色
  307. ZSCLARITYTYPE []int32 `json:"zsclaritytype"` // 净度
  308. ZSCUTTYPE []int32 `json:"zscuttype"` // 切工
  309. ZSSYMMETRYTYPE []int32 `json:"zssymmetrytype"` // 对称度
  310. ZSPOLISHTYPE []int32 `json:"zspolishtype"` // 抛光度
  311. ZSFLUORESCENCETYPE []int32 `json:"zsfluorescencetype"` // 荧光
  312. ZSCERTTYPE []string `json:"zscerttype"` // 证书类型
  313. ORIGIN string `json:"origin"` // 原产地
  314. ZSSTYLETYPE []string `json:"zsstyletype"` // 款式
  315. ZSCZCOLOR1TYPE []string `json:"zsczcolor1type"` // 彩钻颜色1
  316. PageJosn // 分页
  317. }
  318. // SellOrder 出售大厅委托单
  319. type SellOrder struct {
  320. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  321. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME" form:"sellusername"` // 卖方(查询字段-模糊查询)
  322. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` // 钻石分类 - 描述
  323. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  324. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  325. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  326. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  327. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  328. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  329. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  330. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  331. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  332. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  333. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  334. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  335. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  336. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  337. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  338. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  339. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  340. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  341. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  342. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  343. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  344. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  345. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` //
  346. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` //
  347. WRPATH string `json:"wrpath" xorm:"WRPATH"` //
  348. REMARK string `json:"remark" xorm:"REMARK"` //
  349. PRICEPER string `json:"priceper" xorm:"PRICEPER"` //
  350. SIZE1 string `json:"size1" xorm:"SIZE1"` //
  351. SIZE2 string `json:"size2" xorm:"SIZE2"` //
  352. SIZE3 string `json:"size3" xorm:"SIZE3"` //
  353. CERNO string `json:"cerno" xorm:"CERNO"` //
  354. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` //
  355. CPCERTNO string `json:"cpcertno" xorm:"CPCERTNO"` //
  356. KPWEIGHT string `json:"kpweight" xorm:"KPWEIGHT"` //
  357. KPPATH string `json:"kppath" xorm:"KPPATH"` //
  358. STONEDESC string `json:"stonedesc" xorm:"STONEDESC"` //
  359. SETTINGMATERIAL string `json:"settingmaterial" xorm:"SETTINGMATERIAL"` //
  360. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  361. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  362. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  363. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  364. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  365. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  366. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  367. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  368. IsQueryDiamond bool // 是否钻石查询
  369. ZSCURRENCYTYPE_S []string `json:"-"` // 货币类型 - 枚举“ZSCurrencyType”
  370. WAREHOUSEID int64 `json:"-"` // 仓库ID
  371. WEIGHT float64 `json:"-"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  372. WEIGHT_END float64 `json:"-"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  373. WEIGHTAVG float64 `json:"-"` // 平均单颗重量 - 类型:1,3
  374. WEIGHTAVG_END float64 `json:"-"` // 平均单颗重量 - 类型:1,3
  375. ZSSHAPETYPE []string `json:"-"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  376. ZSCOLORTYPE1 int32 `json:"-"` // 颜色1 - 枚举”ZSColorType“ - 类型:1,2,3,4
  377. ZSCOLORTYPE2 int32 `json:"-"` // 颜色2 - 枚举”ZSColorType“ - 类型:1,3
  378. ZSCOLORTYPE []int32 `json:"-"` // 颜色
  379. ZSCLARITYTYPE1 int32 `json:"-"` // 净度1 - 枚举”ZSClarityType“ - 类型:1,2,3,4,5
  380. ZSCLARITYTYPE2 int32 `json:"-"` // 净度2 - 枚举”ZSClarityType“ - 类型:1,3
  381. ZSCLARITYTYPE []int32 `json:"-"` // 净度
  382. ZSCUTTYPE1 int32 `json:"-"` // 切工1 - 枚举”ZSCutType“ - 类型:1,2,4,5
  383. ZSCUTTYPE2 int32 `json:"-"` // 切工2 - 枚举”ZSCutType“ - 类型:1
  384. ZSCUTTYPE []int32 `json:"-"` // 切工
  385. ZSSYMMETRYTYPE1 int32 `json:"-"` // 对称度1 - 枚举”ZSSymmetryType“ - 类型:1,2,4,5
  386. ZSSYMMETRYTYPE2 int32 `json:"-"` // 对称度2 - 枚举”ZSSymmetryType“ - 类型:1
  387. ZSSYMMETRYTYPE []int32 `json:"-"` // 对称度
  388. ZSPOLISHTYPE1 int32 `json:"-"` // 抛光度1 - 枚举”ZSPolishType“ - 类型:1,2,4,5
  389. ZSPOLISHTYPE2 int32 `json:"-"` // 抛光度2 - 枚举”ZSPolishType“ - 类型:1
  390. ZSPOLISHTYPE []int32 `json:"-"` // 抛光度
  391. ZSFLUORESCENCETYPE1 int32 `json:"-"` // 荧光1 - 枚举”ZSFluorescenceType“ - 类型:1,2,3,4,5
  392. ZSFLUORESCENCETYPE2 int32 `json:"-"` // 荧光2 - 枚举”ZSFluorescenceType” - 类型:1,3
  393. ZSFLUORESCENCETYPE []int32 `json:"-"` // 荧光
  394. ZSCERTTYPE []string `json:"-"` // 证书类型
  395. ORIGIN string `json:"-"` // 原产地 - 类型:3
  396. ZSSTYLETYPE []string `json:"-"` // 款式 - 类型:4
  397. ZSCZCOLOR1TYPE []string `json:"-" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1 - 枚举”ZSCZColor1Type“ - 类型:5
  398. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  399. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  400. WRTRADETYPE int32 `json:"wrtradetype" xorm:"WRTRADETYPE"` // 仓单贸易类型 - 1:挂牌 2:摘牌 3:提货卖(文化中国) 4:提货买(文化中国)
  401. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  402. RELATEDWRTRADEORDERID int64 `json:"relatedwrtradeorderid" xorm:"RELATEDWRTRADEORDERID"` // 关联委托单号(摘牌委托关联挂牌委托单ID)
  403. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  404. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账号
  405. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID/商品ID(77)
  406. ORDERQTY int64 `json:"-" xorm:"ORDERQTY"` // 委托数量
  407. TRADEQTY int64 `json:"-" xorm:"TRADEQTY"` // 成交数量
  408. CANCELQTY int64 `json:"cancelqty" xorm:"CANCELQTY"` // 撤销数量
  409. WRPRICETYPE int32 `json:"wrpricetype" xorm:"WRPRICETYPE"` // 价格方式 - 1:固定价 2-浮动价 - [挂牌]
  410. FIXEDPRICE float64 `json:"fixedprice" xorm:"FIXEDPRICE"` // [克拉单价]固定价格 - [挂牌]
  411. ISSPECIFIED int32 `json:"isspecified" xorm:"ISSPECIFIED"` // 是否指定对手 - 0:不指定 1:指定好友(贸易圈) 2:指定对手 - [挂牌]
  412. PRICEFACTOR float64 `json:"pricefactor" xorm:"PRICEFACTOR"` // 价格系数(浮动价时填写) - [挂牌]
  413. PRICEMOVE float64 `json:"pricemove" xorm:"PRICEMOVE"` // 升贴水(浮动价时填写) - [挂牌]
  414. FIRSTRATIO float64 `json:"firstratio" xorm:"FIRSTRATIO"` // 首付比率 - [挂牌时指定,摘牌时使用]
  415. WRTRANSFERUSERID int64 `json:"wrtransferuserid" xorm:"WRTRANSFERUSERID"` // 仓单受让用户 - [摘牌]
  416. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格 - [摘牌] (浮动价 ((商品1价格*商品1价格系数+升贴水)* 商品1重量系数 + 商品2价格*商品2价格系数+商品2升贴水)* 商品2重量系数 ...)* 委托单价格系数 + 委托单升贴水)
  417. FREEZEFIRSTAMOUNT float64 `json:"freezefirstamount" xorm:"FREEZEFIRSTAMOUNT"` // 冻结首付金额 - [摘牌]
  418. UNFREEZEFIRSTAMOUNT float64 `json:"unfreezefirstamount" xorm:"UNFREEZEFIRSTAMOUNT"` // 解冻首付金额 - [摘牌]
  419. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  420. VALIDTYPE int32 `json:"validtype" xorm:"VALIDTYPE"` // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效
  421. VALIDTIME time.Time `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  422. ORDERTIME string `json:"ordertime" xorm:"ORDERTIME1"` // 委托时间
  423. CANCELTIME time.Time `json:"canceltime" xorm:"CANCELTIME"` // 撤销时间
  424. 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:撤单解冻贷款失败
  425. CLIENTTICKET string `json:"-" xorm:"CLIENTTICKET"` // 客户端流水号
  426. ORDERSRC int32 `json:"-" xorm:"ORDERSRC"` // 委托来源 - 1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结
  427. CLIENTTYPE int32 `json:"-" xorm:"CLIENTTYPE"` // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
  428. UUID string `json:"uuid" xorm:"UUID"` // 发起端唯一id
  429. CLIENTORDERTIME time.Time `json:"clientordertime" xorm:"CLIENTORDERTIME"` // 客户端委托时间
  430. RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 错误代码
  431. OPERATORID int64 `json:"-" xorm:"OPERATORID"` // 操作员ID
  432. PRICEDISPLAYMODE int32 `json:"-" xorm:"PRICEDISPLAYMODE"` // 浮动价显示方式 - 1:合并显示 2:分开显示1: 价格显示一个值 :(商品拟合价*价格系统+升贴水)2: 价格显示两个值:(商品拟合价*价格系统) 、 升贴水
  433. FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金
  434. UNFREEZEMARGIN float64 `json:"unfreezemargin" xorm:"UNFREEZEMARGIN"` // 解冻保证金
  435. FREEZECHARGE float64 `json:"freezecharge" xorm:"FREEZECHARGE"` // 冻结手续费
  436. UNFREEZECHARGE float64 `json:"unfreezecharge" xorm:"UNFREEZECHARGE"` // 解冻手续费
  437. MARGINALGORITHM int32 `json:"marginalgorithm" xorm:"MARGINALGORITHM"` // 保证金方式 - 1:比率 2:固定
  438. MARGINVALUE float64 `json:"marginvalue" xorm:"MARGINVALUE"` // 保证金设置值
  439. CHARGEALGORITHM int32 `json:"chargealgorithm" xorm:"CHARGEALGORITHM"` // 手续费收取方式 1:比率 2:固定
  440. CHARGEALGORITHMVALUE float64 `json:"chargealgorithmvalue" xorm:"CHARGEALGORITHMVALUE"` // 手续费设置值(交易所部分)
  441. CHARGEALGORITHMVALUE2 float64 `json:"chargealgorithmvalue2" xorm:"CHARGEALGORITHMVALUE2"` // 手续费设置值(会员部分)
  442. CANBARGAIN int32 `json:"canbargain" xorm:"CANBARGAIN"` // 是否可议价 - 0:不可 1:可
  443. WRBARGAINID int64 `json:"wrbargainid" xorm:"WRBARGAINID"` // 议价申请单ID
  444. ATTACHMENT1 string `json:"attachment1" xorm:"ATTACHMENT1"` // 附件1
  445. ATTACHMENT2 string `json:"attachment2" xorm:"ATTACHMENT2"` // 附件2
  446. APPLYID int64 `json:"applyid" xorm:"APPLYID"` // 申请单ID
  447. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率[67]
  448. ORDERAMOUNT float64 `json:"orderamount" xorm:"ORDERAMOUNT"` // 挂牌金额[账户] [67]= OrderQty * FixedPrice * ExchangeRate /100
  449. TOTALQTY float64 `json:"totalqty" xorm:"TOTALQTY"` // 总重量
  450. REMAINQTY float64 `json:"remainqty" xorm:"REMAINQTY"` // 剩余重量
  451. PageEx `xorm:"extends"` // 页码信息
  452. }
  453. func (r *SellOrder) calc() {
  454. }
  455. // buildSql 出售大厅
  456. func (r *SellOrder) buildSql() string {
  457. var sqlId utils.SQLVal = `
  458. SELECT
  459. (t.ORDERQTY / 100) TOTALQTY,
  460. ((t.ORDERQTY - t.TRADEQTY) / 100) REMAINQTY,
  461. q.ZSCATEGORYDISPLAY,
  462. q.SELLUSERNAME,
  463. q.ZSCATEGORY,
  464. q.ZSCURRENCYTYPE,
  465. q.GOODSNO,
  466. q.ZSCURRENCYTYPEDISPLAY ,
  467. q.ZSCURRENCYTYPEDISPLAYUNIT ,
  468. q.WAREHOUSENAMEDISPLAY ,
  469. q.ZSSHAPETYPEDISPLAY ,
  470. q.ZSCOLORTYPE1DISPLAY ,
  471. q.ZSCOLORTYPE2DISPLAY ,
  472. q.ZSCLARITYTYPE1DISPLAY ,
  473. q.ZSCLARITYTYPE2DISPLAY ,
  474. q.ZSCUTTYPE1DISPLAY ,
  475. q.ZSCUTTYPE2DISPLAY ,
  476. q.ZSSYMMETRYTYPE1DISPLAY ,
  477. q.ZSSYMMETRYTYPE2DISPLAY ,
  478. q.ZSPOLISHTYPE1DISPLAY ,
  479. q.ZSPOLISHTYPE2DISPLAY ,
  480. q.ZSFLUORESCENCETYPE1DISPLAY,
  481. q.ZSFLUORESCENCETYPE2DISPLAY,
  482. q.ZSCERTTYPEDISPLAY ,
  483. q.ZSCRYSTALTYPEDISPLAY ,
  484. q.ZSSTYLETYPEDISPLAY ,
  485. q.ZSCZCOLOR1TYPEDISPLAY ,
  486. q.ZSCZCOLOR2TYPEDISPLAY ,
  487. q.ZSCZCOLOR3TYPEDISPLAY ,
  488. q.MARKETPRICE ,
  489. q.IMAGEPATH ,
  490. q.WRPATH ,
  491. q.REMARK ,
  492. q.PRICEPER ,
  493. q.SIZE1 ,
  494. q.SIZE2 ,
  495. q.SIZE3 ,
  496. q.CERNO ,
  497. q.ZSCRYSTALTYPE ,
  498. q.CPCERTNO ,
  499. q.KPWEIGHT ,
  500. q.KPPATH ,
  501. q.STONEDESC ,
  502. q.SETTINGMATERIAL ,
  503. q.PRICE,
  504. CASE WHEN
  505. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  506. ELSE q.SIZE1
  507. END AS SIZEDISPLAY,
  508. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME1,
  509. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  510. t.WRTRADEORDERID ,
  511. t.TRADEDATE ,
  512. t.WRTRADETYPE ,
  513. t.BUYORSELL ,
  514. t.RELATEDWRTRADEORDERID,
  515. t.MARKETID ,
  516. t.ACCOUNTID ,
  517. t.WRFACTORTYPEID ,
  518. t.ORDERQTY ,
  519. t.TRADEQTY ,
  520. t.CANCELQTY ,
  521. t.WRPRICETYPE ,
  522. t.FIXEDPRICE ,
  523. t.ISSPECIFIED ,
  524. t.PRICEFACTOR ,
  525. t.PRICEMOVE ,
  526. t.FIRSTRATIO ,
  527. t.WRTRANSFERUSERID ,
  528. t.TRADEPRICE ,
  529. t.FREEZEFIRSTAMOUNT ,
  530. t.UNFREEZEFIRSTAMOUNT ,
  531. t.PERFORMANCETEMPLATEID,
  532. t.VALIDTYPE ,
  533. t.VALIDTIME ,
  534. t.ORDERTIME ,
  535. t.CANCELTIME ,
  536. t.WRTRADEORDERSTATUS ,
  537. t.CLIENTTICKET ,
  538. t.ORDERSRC ,
  539. t.CLIENTTYPE ,
  540. t.UUID ,
  541. t.CLIENTORDERTIME ,
  542. t.RETCODE ,
  543. t.OPERATORID ,
  544. t.PRICEDISPLAYMODE ,
  545. t.FREEZEMARGIN ,
  546. t.UNFREEZEMARGIN ,
  547. t.FREEZECHARGE ,
  548. t.UNFREEZECHARGE ,
  549. t.MARGINALGORITHM ,
  550. t.MARGINVALUE ,
  551. t.CHARGEALGORITHM ,
  552. t.CHARGEALGORITHMVALUE ,
  553. t.CHARGEALGORITHMVALUE2,
  554. t.CANBARGAIN ,
  555. t.WRBARGAINID ,
  556. t.ATTACHMENT1 ,
  557. t.ATTACHMENT2 ,
  558. t.APPLYID ,
  559. t.EXCHANGERATE ,
  560. t.ORDERAMOUNT
  561. FROM WRTrade_OrderDetail t
  562. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  563. WHERE t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  564. `
  565. if r.ZSCATEGORYS != "" {
  566. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  567. }
  568. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  569. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  570. sqlId.AndLike("q.SELLUSERNAME", r.SELLUSERNAME)
  571. sqlId.OrderByDesc("t.WRTRADEORDERID")
  572. sqlId.Page(r.Page, r.PageSize)
  573. return sqlId.String()
  574. }
  575. // buildQueryDiamond 钻石搜索
  576. func (r *SellOrder) buildQueryDiamond() string {
  577. var sqlId utils.SQLVal = `
  578. SELECT
  579. (t.ORDERQTY / 100) TOTALQTY,
  580. ((t.ORDERQTY - t.TRADEQTY) / 100) REMAINQTY,
  581. q.ZSCATEGORYDISPLAY,
  582. q.SELLUSERNAME,
  583. q.ZSCATEGORY,
  584. q.ZSCURRENCYTYPE,
  585. q.GOODSNO,
  586. q.ZSCURRENCYTYPEDISPLAY ,
  587. q.ZSCURRENCYTYPEDISPLAYUNIT ,
  588. q.WAREHOUSENAMEDISPLAY ,
  589. q.ZSSHAPETYPEDISPLAY ,
  590. q.ZSCOLORTYPE1DISPLAY ,
  591. q.ZSCOLORTYPE2DISPLAY ,
  592. q.ZSCLARITYTYPE1DISPLAY ,
  593. q.ZSCLARITYTYPE2DISPLAY ,
  594. q.ZSCUTTYPE1DISPLAY ,
  595. q.ZSCUTTYPE2DISPLAY ,
  596. q.ZSSYMMETRYTYPE1DISPLAY ,
  597. q.ZSSYMMETRYTYPE2DISPLAY ,
  598. q.ZSPOLISHTYPE1DISPLAY ,
  599. q.ZSPOLISHTYPE2DISPLAY ,
  600. q.ZSFLUORESCENCETYPE1DISPLAY,
  601. q.ZSFLUORESCENCETYPE2DISPLAY,
  602. q.ZSCERTTYPEDISPLAY ,
  603. q.ZSCRYSTALTYPEDISPLAY ,
  604. q.ZSSTYLETYPEDISPLAY ,
  605. q.ZSCZCOLOR1TYPEDISPLAY ,
  606. q.ZSCZCOLOR2TYPEDISPLAY ,
  607. q.ZSCZCOLOR3TYPEDISPLAY ,
  608. q.MARKETPRICE ,
  609. q.IMAGEPATH ,
  610. q.WRPATH ,
  611. q.REMARK ,
  612. q.PRICEPER ,
  613. q.SIZE1 ,
  614. q.SIZE2 ,
  615. q.SIZE3 ,
  616. q.CERNO ,
  617. q.ZSCRYSTALTYPE ,
  618. q.CPCERTNO ,
  619. q.KPWEIGHT ,
  620. q.KPPATH ,
  621. q.STONEDESC ,
  622. q.SETTINGMATERIAL ,
  623. q.PRICE,
  624. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME1,
  625. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  626. t.TRADEDATE ,
  627. t.WRTRADETYPE ,
  628. t.BUYORSELL ,
  629. t.RELATEDWRTRADEORDERID,
  630. t.MARKETID ,
  631. t.ACCOUNTID ,
  632. t.WRFACTORTYPEID ,
  633. t.ORDERQTY ,
  634. t.TRADEQTY ,
  635. t.CANCELQTY ,
  636. t.WRPRICETYPE ,
  637. t.FIXEDPRICE ,
  638. t.ISSPECIFIED ,
  639. t.PRICEFACTOR ,
  640. t.PRICEMOVE ,
  641. t.FIRSTRATIO ,
  642. t.WRTRANSFERUSERID ,
  643. t.TRADEPRICE ,
  644. t.FREEZEFIRSTAMOUNT ,
  645. t.UNFREEZEFIRSTAMOUNT ,
  646. t.PERFORMANCETEMPLATEID,
  647. t.VALIDTYPE ,
  648. t.VALIDTIME ,
  649. t.ORDERTIME ,
  650. t.CANCELTIME ,
  651. t.WRTRADEORDERSTATUS ,
  652. t.CLIENTTICKET ,
  653. t.ORDERSRC ,
  654. t.CLIENTTYPE ,
  655. t.UUID ,
  656. t.CLIENTORDERTIME ,
  657. t.RETCODE ,
  658. t.OPERATORID ,
  659. t.PRICEDISPLAYMODE ,
  660. t.FREEZEMARGIN ,
  661. t.UNFREEZEMARGIN ,
  662. t.FREEZECHARGE ,
  663. t.UNFREEZECHARGE ,
  664. t.MARGINALGORITHM ,
  665. t.MARGINVALUE ,
  666. t.CHARGEALGORITHM ,
  667. t.CHARGEALGORITHMVALUE ,
  668. t.CHARGEALGORITHMVALUE2,
  669. t.CANBARGAIN ,
  670. t.WRBARGAINID ,
  671. t.ATTACHMENT1 ,
  672. t.ATTACHMENT2 ,
  673. t.APPLYID ,
  674. t.EXCHANGERATE ,
  675. t.ORDERAMOUNT
  676. FROM WRTrade_OrderDetail t
  677. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  678. WHERE t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  679. `
  680. sqlId.And("q.ZSCATEGORY", r.ZSCATEGORY)
  681. if len(r.ZSCURRENCYTYPE_S) > 0 {
  682. sqlId.JoinFormat(" AND q.ZSCURRENCYTYPE IN (%v)", strings.Join(r.ZSCURRENCYTYPE_S, ","))
  683. }
  684. sqlId.AndEx("q.WAREHOUSEID", r.WAREHOUSEID, r.WAREHOUSEID > 0)
  685. utils.AndBetween(&sqlId, "q.WEIGHT", r.WEIGHT, r.WEIGHT_END)
  686. utils.AndBetween(&sqlId, "q.WEIGHTAVG", r.WEIGHTAVG, r.WEIGHTAVG_END)
  687. sqlId.AndLikes("q.ZSSHAPETYPE", r.ZSSHAPETYPE...)
  688. for _, t := range r.ZSCOLORTYPE {
  689. sqlId.LessOrEq("q.ZSCOLORTYPE1", t)
  690. sqlId.BiggerOrEq("q.ZSCOLORTYPE2", t)
  691. }
  692. for _, t := range r.ZSCLARITYTYPE {
  693. sqlId.LessOrEq("q.ZSCLARITYTYPE1", t)
  694. sqlId.BiggerOrEq("q.ZSCLARITYTYPE2", t)
  695. }
  696. for _, t := range r.ZSCUTTYPE {
  697. sqlId.LessOrEq("q.ZSCUTTYPE1", t)
  698. sqlId.BiggerOrEq("q.ZSCUTTYPE2", t)
  699. }
  700. for _, t := range r.ZSSYMMETRYTYPE {
  701. sqlId.LessOrEq("q.ZSSYMMETRYTYPE1", t)
  702. sqlId.BiggerOrEq("q.ZSSYMMETRYTYPE2", t)
  703. }
  704. for _, t := range r.ZSPOLISHTYPE {
  705. sqlId.LessOrEq("q.ZSPOLISHTYPE1", t)
  706. sqlId.BiggerOrEq("q.ZSPOLISHTYPE2", t)
  707. }
  708. for _, t := range r.ZSFLUORESCENCETYPE {
  709. sqlId.LessOrEq("q.ZSFLUORESCENCETYPE1", t)
  710. sqlId.BiggerOrEq("q.ZSFLUORESCENCETYPE2", t)
  711. }
  712. if len(r.ZSCERTTYPE) > 0 {
  713. sqlId.JoinFormat(" AND q.ZSCERTTYPE IN (%v)", strings.Join(r.ZSCERTTYPE, ","))
  714. }
  715. sqlId.AndLike("q.ORIGIN", r.ORIGIN)
  716. if len(r.ZSSTYLETYPE) > 0 {
  717. sqlId.JoinFormat(" AND q.ZSSTYLETYPE IN (%v)", strings.Join(r.ZSSTYLETYPE, ","))
  718. }
  719. if len(r.ZSCZCOLOR1TYPE) > 0 {
  720. sqlId.JoinFormat(" AND q.ZSCZCOLOR1TYPE IN (%v)", strings.Join(r.ZSCZCOLOR1TYPE, ","))
  721. }
  722. sqlId.Page(r.Page, r.PageSize)
  723. return sqlId.String()
  724. }
  725. func (r *SellOrder) GetDataByPage() (interface{}, error, int, int, int) {
  726. sData := make([]SellOrder, 0)
  727. sql := ""
  728. if !r.IsQueryDiamond {
  729. // 出售大厅查询
  730. sql = r.buildSql()
  731. } else {
  732. // 钻石搜索
  733. sql = r.buildQueryDiamond()
  734. }
  735. err := db.GetEngine().SQL(sql).Find(&sData)
  736. total := 0
  737. for i := range sData {
  738. sData[i].calc()
  739. total = sData[i].Total
  740. }
  741. return sData, err, r.Page, r.PageSize, total
  742. }
  743. // MyBuyOrder 我的求购
  744. type MyBuyOrder struct {
  745. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  746. ZSTABLEDISPLAY string `json:"zstabledisplay" xorm:"ZSTABLEDISPLAY"` // 求购信息
  747. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  748. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  749. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  750. ZSCOLORTYPEDISPLAY string `json:"zscolortypedisplay" xorm:"ZSCOLORTYPEDISPLAY"` //
  751. ZSCLARITYTYPEDISPLAY string `json:"zsclaritytypedisplay" xorm:"ZSCLARITYTYPEDISPLAY"` //
  752. ZSCUTTYPEDISPLAY string `json:"zscuttypedisplay" xorm:"ZSCUTTYPEDISPLAY"` //
  753. ZSSYMMETRYTYPEDISPLAY string `json:"zssymmetrytypedisplay" xorm:"ZSSYMMETRYTYPEDISPLAY"` //
  754. ZSPOLISHTYPEDISPLAY string `json:"zspolishtypedisplay" xorm:"ZSPOLISHTYPEDISPLAY"` //
  755. ZSFLUORESCENCETYPEDISPLAY string `json:"zsfluorescencetypedisplay" xorm:"ZSFLUORESCENCETYPEDISPLAY"` //
  756. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  757. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  758. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  759. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  760. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  761. WAREHOUSEINFOSDISPLAY string `json:"warehouseinfosdisplay" xorm:"WAREHOUSEINFOSDISPLAY"` //
  762. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // [委托单号]买委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  763. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  764. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  765. 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:撤单解冻贷款失败WRTrade_OrderDetail、
  766. VALIDTIME string `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  767. ORDERTIME string `json:"ordertime" xorm:"ORDERTIME"` // 委托时间
  768. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  769. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  770. ZSCURRENCYTYPE string `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 多个, 逗号分隔
  771. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 多个, 逗号分隔
  772. ZSCOLORTYPE string `json:"zscolortype" xorm:"ZSCOLORTYPE"` // 颜色 - 两个, 逗号分隔
  773. ZSCLARITYTYPE string `json:"zsclaritytype" xorm:"ZSCLARITYTYPE"` // 净度 - 两个, 逗号分隔
  774. ZSCUTTYPE string `json:"zscuttype" xorm:"ZSCUTTYPE"` // 切工 - 两个, 逗号分隔
  775. ZSSYMMETRYTYPE string `json:"zssymmetrytype" xorm:"ZSSYMMETRYTYPE"` // 对称度 - 两个, 逗号分隔
  776. ZSPOLISHTYPE string `json:"zspolishtype" xorm:"ZSPOLISHTYPE"` // 抛光度 - 两个, 逗号分隔
  777. ZSFLUORESCENCETYPE string `json:"zsfluorescencetype" xorm:"ZSFLUORESCENCETYPE"` // 荧光 - 多个, 逗号分隔
  778. ZSSIZE string `json:"zssize" xorm:"ZSSIZE"` // 尺寸 - 两个小数, 逗号分隔
  779. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型 - 多个,逗号分隔
  780. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地
  781. ZSSTYLETYPE string `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 多个, 逗号分隔
  782. ZSCZCOLOR1TYPE string `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1, 逗号分隔
  783. ZSCZCOLOR2TYPE string `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2, 逗号分隔
  784. ZSCZCOLOR3TYPE string `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3, 逗号分隔
  785. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  786. WAREHOUSEIDS string `json:"warehouseids" xorm:"WAREHOUSEIDS"` // 仓库ID - 多个, 逗号分隔
  787. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  788. IsHis bool `json:"-" form:"ishis"` // 是否历史查询
  789. BeginDate string `json:"-" form:"begindate"` // 开始交易日
  790. EndDate string `json:"-" form:"enddate"` // 结束交易日
  791. PageEx `xorm:"extends"` // 页码信息
  792. }
  793. func (r *MyBuyOrder) calc() {
  794. }
  795. func (r *MyBuyOrder) buildSql() string {
  796. var sqlId utils.SQLVal = `
  797. SELECT
  798. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  799. t.WRTRADEORDERSTATUS,
  800. to_char(t.VALIDTIME, 'yyyy-mm-dd') VALIDTIME,
  801. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME,
  802. q.*
  803. FROM WRTrade_OrderDetail t
  804. INNER JOIN View_GZ_BuyOrderDetail_Query q ON t.wrtradeorderid = q.wrtradeorderid
  805. WHERE t.marketid=67201 AND t.BuyOrSell = 0 AND t.WRTradeOrderStatus IN (3,7)
  806. `
  807. sqlId.And("t.USERID", r.USERID)
  808. if r.ZSCATEGORYS != "" {
  809. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  810. }
  811. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  812. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  813. sqlId.OrderByDesc("t.WRTRADEORDERID")
  814. sqlId.Page(r.Page, r.PageSize)
  815. return sqlId.String()
  816. }
  817. func (r *MyBuyOrder) buildSql_His() string {
  818. var sqlId utils.SQLVal = `
  819. SELECT
  820. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  821. t.WRTRADEORDERSTATUS,
  822. to_char(t.VALIDTIME, 'yyyy-mm-dd') VALIDTIME,
  823. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME,
  824. q.*
  825. FROM HIS_WRTrade_OrderDetail t
  826. INNER JOIN View_GZ_BuyOrderDetail_Query q ON t.wrtradeorderid = q.wrtradeorderid
  827. WHERE t.isvaliddata =1 AND t.marketid=67201 AND t.BuyOrSell = 0 AND t.WRTradeOrderStatus IN (3,7)
  828. `
  829. sqlId.And("t.USERID", r.USERID)
  830. if r.ZSCATEGORYS != "" {
  831. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  832. }
  833. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  834. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  835. if r.BeginDate != "" && r.EndDate != "" {
  836. sqlId.JoinFormat(" AND (t.TRADEDATE >= '%v' AND t.TRADEDATE <= '%v')", r.BeginDate, r.EndDate)
  837. }
  838. sqlId.OrderByDesc("t.WRTRADEORDERID")
  839. sqlId.Page(r.Page, r.PageSize)
  840. return sqlId.String()
  841. }
  842. func (r *MyBuyOrder) GetDataByPage() (interface{}, error, int, int, int) {
  843. sData := make([]MyBuyOrder, 0)
  844. sql := ""
  845. if r.IsHis {
  846. sql = r.buildSql_His()
  847. } else {
  848. sql = r.buildSql()
  849. }
  850. err := db.GetEngine().SQL(sql).Find(&sData)
  851. total := 0
  852. for i := range sData {
  853. sData[i].calc()
  854. total = sData[i].Total
  855. }
  856. return sData, err, r.Page, r.PageSize, total
  857. }
  858. // MySellOrder 我的出售
  859. type MySellOrder struct {
  860. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  861. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  862. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  863. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  864. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  865. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  866. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  867. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` // 钻石分类 - 描述
  868. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  869. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  870. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  871. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  872. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  873. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  874. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  875. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  876. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  877. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  878. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  879. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  880. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  881. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  882. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  883. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  884. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  885. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  886. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  887. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  888. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  889. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  890. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` //
  891. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` //
  892. WRPATH string `json:"wrpath" xorm:"WRPATH"` //
  893. REMARK string `json:"remark" xorm:"REMARK"` //
  894. PRICEPER string `json:"priceper" xorm:"PRICEPER"` //
  895. SIZE1 string `json:"size1" xorm:"SIZE1"` //
  896. SIZE2 string `json:"size2" xorm:"SIZE2"` //
  897. SIZE3 string `json:"size3" xorm:"SIZE3"` //
  898. CERNO string `json:"cerno" xorm:"CERNO"` //
  899. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` //
  900. CPCERTNO string `json:"cpcertno" xorm:"CPCERTNO"` //
  901. KPWEIGHT string `json:"kpweight" xorm:"KPWEIGHT"` //
  902. KPPATH string `json:"kppath" xorm:"KPPATH"` //
  903. STONEDESC string `json:"stonedesc" xorm:"STONEDESC"` //
  904. SETTINGMATERIAL string `json:"settingmaterial" xorm:"SETTINGMATERIAL"` //
  905. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  906. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  907. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  908. WRTRADETYPE int32 `json:"wrtradetype" xorm:"WRTRADETYPE"` // 仓单贸易类型 - 1:挂牌 2:摘牌 3:提货卖(文化中国) 4:提货买(文化中国)
  909. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  910. RELATEDWRTRADEORDERID int64 `json:"relatedwrtradeorderid" xorm:"RELATEDWRTRADEORDERID"` // 关联委托单号(摘牌委托关联挂牌委托单ID)
  911. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  912. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账号
  913. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID/商品ID(77)
  914. ORDERQTY int64 `json:"-" xorm:"ORDERQTY"` // 委托数量
  915. TRADEQTY int64 `json:"-" xorm:"TRADEQTY"` // 成交数量
  916. CANCELQTY int64 `json:"cancelqty" xorm:"CANCELQTY"` // 撤销数量
  917. WRPRICETYPE int32 `json:"wrpricetype" xorm:"WRPRICETYPE"` // 价格方式 - 1:固定价 2-浮动价 - [挂牌]
  918. FIXEDPRICE float64 `json:"fixedprice" xorm:"FIXEDPRICE"` // [克拉单价]固定价格 - [挂牌]
  919. ISSPECIFIED int32 `json:"isspecified" xorm:"ISSPECIFIED"` // 是否指定对手 - 0:不指定 1:指定好友(贸易圈) 2:指定对手 - [挂牌]
  920. PRICEFACTOR float64 `json:"pricefactor" xorm:"PRICEFACTOR"` // 价格系数(浮动价时填写) - [挂牌]
  921. PRICEMOVE float64 `json:"pricemove" xorm:"PRICEMOVE"` // 升贴水(浮动价时填写) - [挂牌]
  922. FIRSTRATIO float64 `json:"firstratio" xorm:"FIRSTRATIO"` // 首付比率 - [挂牌时指定,摘牌时使用]
  923. WRTRANSFERUSERID int64 `json:"wrtransferuserid" xorm:"WRTRANSFERUSERID"` // 仓单受让用户 - [摘牌]
  924. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格 - [摘牌] (浮动价 ((商品1价格*商品1价格系数+升贴水)* 商品1重量系数 + 商品2价格*商品2价格系数+商品2升贴水)* 商品2重量系数 ...)* 委托单价格系数 + 委托单升贴水)
  925. FREEZEFIRSTAMOUNT float64 `json:"freezefirstamount" xorm:"FREEZEFIRSTAMOUNT"` // 冻结首付金额 - [摘牌]
  926. UNFREEZEFIRSTAMOUNT float64 `json:"unfreezefirstamount" xorm:"UNFREEZEFIRSTAMOUNT"` // 解冻首付金额 - [摘牌]
  927. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  928. VALIDTYPE int32 `json:"validtype" xorm:"VALIDTYPE"` // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效
  929. VALIDTIME time.Time `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  930. ORDERTIME string `json:"ordertime" xorm:"ORDERTIME1"` // 委托时间
  931. CANCELTIME time.Time `json:"canceltime" xorm:"CANCELTIME"` // 撤销时间
  932. 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:撤单解冻贷款失败
  933. CLIENTTICKET string `json:"-" xorm:"CLIENTTICKET"` // 客户端流水号
  934. ORDERSRC int32 `json:"-" xorm:"ORDERSRC"` // 委托来源 - 1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结
  935. CLIENTTYPE int32 `json:"-" xorm:"CLIENTTYPE"` // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
  936. UUID string `json:"uuid" xorm:"UUID"` // 发起端唯一id
  937. CLIENTORDERTIME time.Time `json:"clientordertime" xorm:"CLIENTORDERTIME"` // 客户端委托时间
  938. RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 错误代码
  939. OPERATORID int64 `json:"-" xorm:"OPERATORID"` // 操作员ID
  940. PRICEDISPLAYMODE int32 `json:"-" xorm:"PRICEDISPLAYMODE"` // 浮动价显示方式 - 1:合并显示 2:分开显示1: 价格显示一个值 :(商品拟合价*价格系统+升贴水)2: 价格显示两个值:(商品拟合价*价格系统) 、 升贴水
  941. FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金
  942. UNFREEZEMARGIN float64 `json:"unfreezemargin" xorm:"UNFREEZEMARGIN"` // 解冻保证金
  943. FREEZECHARGE float64 `json:"freezecharge" xorm:"FREEZECHARGE"` // 冻结手续费
  944. UNFREEZECHARGE float64 `json:"unfreezecharge" xorm:"UNFREEZECHARGE"` // 解冻手续费
  945. MARGINALGORITHM int32 `json:"marginalgorithm" xorm:"MARGINALGORITHM"` // 保证金方式 - 1:比率 2:固定
  946. MARGINVALUE float64 `json:"marginvalue" xorm:"MARGINVALUE"` // 保证金设置值
  947. CHARGEALGORITHM int32 `json:"chargealgorithm" xorm:"CHARGEALGORITHM"` // 手续费收取方式 1:比率 2:固定
  948. CHARGEALGORITHMVALUE float64 `json:"chargealgorithmvalue" xorm:"CHARGEALGORITHMVALUE"` // 手续费设置值(交易所部分)
  949. CHARGEALGORITHMVALUE2 float64 `json:"chargealgorithmvalue2" xorm:"CHARGEALGORITHMVALUE2"` // 手续费设置值(会员部分)
  950. CANBARGAIN int32 `json:"canbargain" xorm:"CANBARGAIN"` // 是否可议价 - 0:不可 1:可
  951. WRBARGAINID int64 `json:"wrbargainid" xorm:"WRBARGAINID"` // 议价申请单ID
  952. ATTACHMENT1 string `json:"attachment1" xorm:"ATTACHMENT1"` // 附件1
  953. ATTACHMENT2 string `json:"attachment2" xorm:"ATTACHMENT2"` // 附件2
  954. APPLYID int64 `json:"applyid" xorm:"APPLYID"` // 申请单ID
  955. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率[67]
  956. ORDERAMOUNT float64 `json:"orderamount" xorm:"ORDERAMOUNT"` // 挂牌金额[账户] [67]= OrderQty * FixedPrice * ExchangeRate /100
  957. TOTALQTY float64 `json:"totalqty" xorm:"TOTALQTY"` // 总重量
  958. SELLEDQTY float64 `json:"selledqty" xorm:"SELLEDQTY"` // 成交重量
  959. IsHis bool `json:"-" form:"ishis"` // 是否历史查询
  960. BeginDate string `json:"-" form:"begindate"` // 开始交易日
  961. EndDate string `json:"-" form:"enddate"` // 结束交易日
  962. PageEx `xorm:"extends"` // 页码信息
  963. }
  964. func (r *MySellOrder) calc() {
  965. }
  966. func (r *MySellOrder) buildSql() string {
  967. var sqlId utils.SQLVal = `
  968. SELECT
  969. (t.ORDERQTY / 100) TOTALQTY,
  970. (t.TRADEQTY / 100) SELLEDQTY,
  971. q.ZSCATEGORY,
  972. q.ZSCURRENCYTYPE,
  973. q.GOODSNO,
  974. q.ZSCURRENCYTYPEDISPLAY ,
  975. q.ZSCURRENCYTYPEDISPLAYUNIT ,
  976. q.WAREHOUSENAMEDISPLAY ,
  977. q.ZSSHAPETYPEDISPLAY ,
  978. q.ZSCOLORTYPE1DISPLAY ,
  979. q.ZSCOLORTYPE2DISPLAY ,
  980. q.ZSCLARITYTYPE1DISPLAY ,
  981. q.ZSCLARITYTYPE2DISPLAY ,
  982. q.ZSCUTTYPE1DISPLAY ,
  983. q.ZSCUTTYPE2DISPLAY ,
  984. q.ZSSYMMETRYTYPE1DISPLAY ,
  985. q.ZSSYMMETRYTYPE2DISPLAY ,
  986. q.ZSPOLISHTYPE1DISPLAY ,
  987. q.ZSPOLISHTYPE2DISPLAY ,
  988. q.ZSFLUORESCENCETYPE1DISPLAY,
  989. q.ZSFLUORESCENCETYPE2DISPLAY,
  990. q.ZSCERTTYPEDISPLAY ,
  991. q.ZSCRYSTALTYPEDISPLAY ,
  992. q.ZSSTYLETYPEDISPLAY ,
  993. q.ZSCZCOLOR1TYPEDISPLAY ,
  994. q.ZSCZCOLOR2TYPEDISPLAY ,
  995. q.ZSCZCOLOR3TYPEDISPLAY ,
  996. q.MARKETPRICE ,
  997. q.IMAGEPATH ,
  998. q.WRPATH ,
  999. q.REMARK ,
  1000. q.PRICEPER ,
  1001. q.SIZE1 ,
  1002. q.SIZE2 ,
  1003. q.SIZE3 ,
  1004. q.CERNO ,
  1005. q.ZSCRYSTALTYPE ,
  1006. q.CPCERTNO ,
  1007. q.KPWEIGHT ,
  1008. q.KPPATH ,
  1009. q.STONEDESC ,
  1010. q.SETTINGMATERIAL ,
  1011. q.PRICE,
  1012. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME1,
  1013. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  1014. t.WRTRADEORDERID ,
  1015. t.TRADEDATE ,
  1016. t.WRTRADETYPE ,
  1017. t.BUYORSELL ,
  1018. t.RELATEDWRTRADEORDERID,
  1019. t.MARKETID ,
  1020. t.ACCOUNTID ,
  1021. t.WRFACTORTYPEID ,
  1022. t.ORDERQTY ,
  1023. t.TRADEQTY ,
  1024. t.CANCELQTY ,
  1025. t.WRPRICETYPE ,
  1026. t.FIXEDPRICE ,
  1027. t.ISSPECIFIED ,
  1028. t.PRICEFACTOR ,
  1029. t.PRICEMOVE ,
  1030. t.FIRSTRATIO ,
  1031. t.WRTRANSFERUSERID ,
  1032. t.TRADEPRICE ,
  1033. t.FREEZEFIRSTAMOUNT ,
  1034. t.UNFREEZEFIRSTAMOUNT ,
  1035. t.PERFORMANCETEMPLATEID,
  1036. t.VALIDTYPE ,
  1037. t.VALIDTIME ,
  1038. t.ORDERTIME ,
  1039. t.CANCELTIME ,
  1040. t.WRTRADEORDERSTATUS ,
  1041. t.CLIENTTICKET ,
  1042. t.ORDERSRC ,
  1043. t.CLIENTTYPE ,
  1044. t.UUID ,
  1045. t.CLIENTORDERTIME ,
  1046. t.RETCODE ,
  1047. t.OPERATORID ,
  1048. t.PRICEDISPLAYMODE ,
  1049. t.FREEZEMARGIN ,
  1050. t.UNFREEZEMARGIN ,
  1051. t.FREEZECHARGE ,
  1052. t.UNFREEZECHARGE ,
  1053. t.MARGINALGORITHM ,
  1054. t.MARGINVALUE ,
  1055. t.CHARGEALGORITHM ,
  1056. t.CHARGEALGORITHMVALUE ,
  1057. t.CHARGEALGORITHMVALUE2,
  1058. t.CANBARGAIN ,
  1059. t.WRBARGAINID ,
  1060. t.ATTACHMENT1 ,
  1061. t.ATTACHMENT2 ,
  1062. t.APPLYID ,
  1063. t.EXCHANGERATE ,
  1064. t.ORDERAMOUNT
  1065. FROM WRTrade_OrderDetail t
  1066. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  1067. WHERE t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  1068. `
  1069. sqlId.And("q.USERID", r.USERID)
  1070. if r.ZSCATEGORYS != "" {
  1071. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  1072. }
  1073. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  1074. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  1075. sqlId.OrderByDesc("t.WRTRADEORDERID")
  1076. sqlId.Page(r.Page, r.PageSize)
  1077. return sqlId.String()
  1078. }
  1079. func (r *MySellOrder) buildSql_His() string {
  1080. var sqlId utils.SQLVal = `
  1081. SELECT
  1082. (t.ORDERQTY / 100) TOTALQTY,
  1083. (t.TRADEQTY / 100) SELLEDQTY,
  1084. q.ZSCATEGORY,
  1085. q.ZSCURRENCYTYPE,
  1086. q.GOODSNO,
  1087. q.ZSCURRENCYTYPEDISPLAY ,
  1088. q.ZSCURRENCYTYPEDISPLAYUNIT ,
  1089. q.WAREHOUSENAMEDISPLAY ,
  1090. q.ZSSHAPETYPEDISPLAY ,
  1091. q.ZSCOLORTYPE1DISPLAY ,
  1092. q.ZSCOLORTYPE2DISPLAY ,
  1093. q.ZSCLARITYTYPE1DISPLAY ,
  1094. q.ZSCLARITYTYPE2DISPLAY ,
  1095. q.ZSCUTTYPE1DISPLAY ,
  1096. q.ZSCUTTYPE2DISPLAY ,
  1097. q.ZSSYMMETRYTYPE1DISPLAY ,
  1098. q.ZSSYMMETRYTYPE2DISPLAY ,
  1099. q.ZSPOLISHTYPE1DISPLAY ,
  1100. q.ZSPOLISHTYPE2DISPLAY ,
  1101. q.ZSFLUORESCENCETYPE1DISPLAY,
  1102. q.ZSFLUORESCENCETYPE2DISPLAY,
  1103. q.ZSCERTTYPEDISPLAY ,
  1104. q.ZSCRYSTALTYPEDISPLAY ,
  1105. q.ZSSTYLETYPEDISPLAY ,
  1106. q.ZSCZCOLOR1TYPEDISPLAY ,
  1107. q.ZSCZCOLOR2TYPEDISPLAY ,
  1108. q.ZSCZCOLOR3TYPEDISPLAY ,
  1109. q.MARKETPRICE ,
  1110. q.IMAGEPATH ,
  1111. q.WRPATH ,
  1112. q.REMARK ,
  1113. q.PRICEPER ,
  1114. q.SIZE1 ,
  1115. q.SIZE2 ,
  1116. q.SIZE3 ,
  1117. q.CERNO ,
  1118. q.ZSCRYSTALTYPE ,
  1119. q.CPCERTNO ,
  1120. q.KPWEIGHT ,
  1121. q.KPPATH ,
  1122. q.STONEDESC ,
  1123. q.SETTINGMATERIAL ,
  1124. q.PRICE,
  1125. to_char(t.ORDERTIME, 'yyyy-mm-dd hh24:mi:ss') ORDERTIME1,
  1126. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  1127. t.WRTRADEORDERID ,
  1128. t.TRADEDATE ,
  1129. t.WRTRADETYPE ,
  1130. t.BUYORSELL ,
  1131. t.RELATEDWRTRADEORDERID,
  1132. t.MARKETID ,
  1133. t.ACCOUNTID ,
  1134. t.WRFACTORTYPEID ,
  1135. t.ORDERQTY ,
  1136. t.TRADEQTY ,
  1137. t.CANCELQTY ,
  1138. t.WRPRICETYPE ,
  1139. t.FIXEDPRICE ,
  1140. t.ISSPECIFIED ,
  1141. t.PRICEFACTOR ,
  1142. t.PRICEMOVE ,
  1143. t.FIRSTRATIO ,
  1144. t.WRTRANSFERUSERID ,
  1145. t.TRADEPRICE ,
  1146. t.FREEZEFIRSTAMOUNT ,
  1147. t.UNFREEZEFIRSTAMOUNT ,
  1148. t.PERFORMANCETEMPLATEID,
  1149. t.VALIDTYPE ,
  1150. t.VALIDTIME ,
  1151. t.ORDERTIME ,
  1152. t.CANCELTIME ,
  1153. t.WRTRADEORDERSTATUS ,
  1154. t.CLIENTTICKET ,
  1155. t.ORDERSRC ,
  1156. t.CLIENTTYPE ,
  1157. t.UUID ,
  1158. t.CLIENTORDERTIME ,
  1159. t.RETCODE ,
  1160. t.OPERATORID ,
  1161. t.PRICEDISPLAYMODE ,
  1162. t.FREEZEMARGIN ,
  1163. t.UNFREEZEMARGIN ,
  1164. t.FREEZECHARGE ,
  1165. t.UNFREEZECHARGE ,
  1166. t.MARGINALGORITHM ,
  1167. t.MARGINVALUE ,
  1168. t.CHARGEALGORITHM ,
  1169. t.CHARGEALGORITHMVALUE ,
  1170. t.CHARGEALGORITHMVALUE2,
  1171. t.CANBARGAIN ,
  1172. t.WRBARGAINID ,
  1173. t.ATTACHMENT1 ,
  1174. t.ATTACHMENT2 ,
  1175. t.APPLYID ,
  1176. t.EXCHANGERATE ,
  1177. t.ORDERAMOUNT
  1178. FROM HIS_WRTrade_OrderDetail t
  1179. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  1180. WHERE t.isvaliddata =1 AND t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  1181. `
  1182. sqlId.And("q.USERID", r.USERID)
  1183. if r.ZSCATEGORYS != "" {
  1184. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  1185. }
  1186. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  1187. sqlId.AndEx("t.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID != "")
  1188. if r.BeginDate != "" && r.EndDate != "" {
  1189. sqlId.JoinFormat(" AND (t.TRADEDATE >= '%v' AND t.TRADEDATE <= '%v')", r.BeginDate, r.EndDate)
  1190. }
  1191. sqlId.OrderByDesc("t.WRTRADEORDERID")
  1192. sqlId.Page(r.Page, r.PageSize)
  1193. return sqlId.String()
  1194. }
  1195. func (r *MySellOrder) GetDataByPage() (interface{}, error, int, int, int) {
  1196. sData := make([]MySellOrder, 0)
  1197. sql := ""
  1198. if r.IsHis {
  1199. sql = r.buildSql_His()
  1200. } else {
  1201. sql = r.buildSql()
  1202. }
  1203. err := db.GetEngine().SQL(sql).Find(&sData)
  1204. total := 0
  1205. for i := range sData {
  1206. sData[i].calc()
  1207. total = sData[i].Total
  1208. }
  1209. return sData, err, r.Page, r.PageSize, total
  1210. }
  1211. // MyDeListing 我的摘牌
  1212. type MyDeListing struct {
  1213. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  1214. SELLUSERNAME string `json:"-" xorm:"SELLUSERNAME"` // 卖方
  1215. BUYUSERNAME string `json:"-" xorm:"BUYUSERNAME"` // 买方
  1216. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  1217. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  1218. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类
  1219. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  1220. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  1221. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  1222. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1223. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  1224. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  1225. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1226. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  1227. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  1228. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  1229. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  1230. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  1231. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  1232. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  1233. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  1234. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  1235. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  1236. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  1237. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  1238. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  1239. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1240. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1241. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1242. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1243. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1244. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  1245. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  1246. WRTRADEDETAILID string `json:"wrtradedetailid" xorm:"WRTRADEDETAILID1" form:"wrtradedetailid"` // 仓单贸易成交单ID(321+Unix秒时间戳(10位)+xxxxxx)
  1247. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  1248. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  1249. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID
  1250. DELIVERYGOODSID int32 `json:"deliverygoodsid" xorm:"DELIVERYGOODSID"` // 现货品种ID
  1251. WRSTANDARDID int32 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  1252. BUYUSERID int64 `json:"buyuserid" xorm:"BUYUSERID"` // 买方用户ID
  1253. BUYACCOUNTID int64 `json:"buyaccountid" xorm:"BUYACCOUNTID"` // 买方账号ID
  1254. SELLUSERID int64 `json:"selluserid" xorm:"SELLUSERID"` // 卖方用户ID
  1255. SELLACCOUNTID int64 `json:"sellaccountid" xorm:"SELLACCOUNTID"` // 卖方账号ID
  1256. TRADETIME string `json:"tradetime" xorm:"TRADETIME1"` // 成交时间
  1257. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格
  1258. TRADEQTY int64 `json:"-" xorm:"TRADEQTY"` // 成交数量
  1259. TRADEAMOUNT float64 `json:"tradeamount" xorm:"TRADEAMOUNT"` // 成交金额
  1260. PERFORMANCEPLANID int64 `json:"performanceplanid" xorm:"PERFORMANCEPLANID"` // 履约计划ID/合同ID
  1261. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率
  1262. BUYCHARGEVALUE float64 `json:"buychargevalue" xorm:"BUYCHARGEVALUE"` // 买方手续费
  1263. SELLCHARGEVALUE float64 `json:"sellchargevalue" xorm:"SELLCHARGEVALUE"` // 卖方手续费
  1264. ORITRADEAMOUNT float64 `json:"oritradeamount" xorm:"ORITRADEAMOUNT"` // 成交金额[商品币种]
  1265. QTY float64 `json:"qty" xorm:"QTY"` // 成交重量
  1266. MATCHUSERNAME string `json:"matchusername" form:"matchusername"` // 对手方
  1267. BuyOrSell int64 `json:"buyorsell" form:"buyorsell"` // 方向 - 0:买 1:卖
  1268. BeginDate string `json:"-" form:"begindate"` // 开始交易日
  1269. EndDate string `json:"-" form:"enddate"` // 结束交易日
  1270. PageEx `xorm:"extends"` // 页码信息
  1271. }
  1272. func (r *MyDeListing) calc() {
  1273. // 设置对手方
  1274. if r.USERID == r.BUYUSERID {
  1275. r.MATCHUSERNAME = r.SELLUSERNAME
  1276. r.BuyOrSell = 0
  1277. } else if r.USERID == r.SELLUSERID {
  1278. r.MATCHUSERNAME = r.BUYUSERNAME
  1279. r.BuyOrSell = 1
  1280. }
  1281. }
  1282. func (r *MyDeListing) buildSql() string {
  1283. var sqlId utils.SQLVal = `
  1284. SELECT
  1285. ua1.accountname BUYUSERNAME,
  1286. q.SELLUSERNAME,
  1287. q.USERID,
  1288. q.ZSCATEGORY,
  1289. q.ZSCATEGORYDISPLAY,
  1290. q.ZSCURRENCYTYPE,
  1291. q.GOODSNO,
  1292. q.ZSCURRENCYTYPEDISPLAY,
  1293. q.ZSCURRENCYTYPEDISPLAYUNIT,
  1294. q.WAREHOUSENAMEDISPLAY,
  1295. q.ZSSHAPETYPEDISPLAY,
  1296. q.ZSCOLORTYPE1DISPLAY,
  1297. q.ZSCOLORTYPE2DISPLAY,
  1298. q.ZSCLARITYTYPE1DISPLAY,
  1299. q.ZSCLARITYTYPE2DISPLAY,
  1300. q.ZSCUTTYPE1DISPLAY,
  1301. q.ZSCUTTYPE2DISPLAY,
  1302. q.ZSSYMMETRYTYPE1DISPLAY,
  1303. q.ZSSYMMETRYTYPE2DISPLAY,
  1304. q.ZSPOLISHTYPE1DISPLAY,
  1305. q.ZSPOLISHTYPE2DISPLAY,
  1306. q.ZSFLUORESCENCETYPE1DISPLAY,
  1307. q.ZSFLUORESCENCETYPE2DISPLAY,
  1308. q.ZSCERTTYPEDISPLAY,
  1309. q.ZSCRYSTALTYPEDISPLAY,
  1310. q.ZSSTYLETYPEDISPLAY,
  1311. q.ZSCZCOLOR1TYPEDISPLAY,
  1312. q.ZSCZCOLOR2TYPEDISPLAY,
  1313. q.ZSCZCOLOR3TYPEDISPLAY,
  1314. CASE WHEN
  1315. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  1316. ELSE q.SIZE1
  1317. END AS SIZEDISPLAY,
  1318. q.PRICE,
  1319. (t.TRADEQTY / 100) QTY,
  1320. to_char(t.TRADETIME, 'yyyy-mm-dd hh24:mi:ss') TRADETIME1,
  1321. to_char(t.WRTRADEDETAILID) WRTRADEDETAILID1,
  1322. t.*
  1323. FROM WRTrade_TradeQuote t
  1324. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  1325. LEFT JOIN UserAccount ua1 ON t.BuyUserID = ua1.userid
  1326. WHERE t.marketid=67201
  1327. `
  1328. if r.ZSCATEGORYS != "" {
  1329. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  1330. }
  1331. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  1332. sqlId.AndEx("t.WRTRADEDETAILID", r.WRTRADEDETAILID, r.WRTRADEDETAILID != "")
  1333. switch r.BuyOrSell {
  1334. case 0:
  1335. // 买
  1336. sqlId.And("t.BUYUSERID", r.USERID)
  1337. if r.MATCHUSERNAME != "" {
  1338. sqlId.AndLike("q.SELLUSERNAME", r.MATCHUSERNAME)
  1339. }
  1340. case 1:
  1341. // 卖
  1342. sqlId.And("t.SELLUSERID", r.USERID)
  1343. if r.MATCHUSERNAME != "" {
  1344. sqlId.AndLike("ua1.accountname", r.MATCHUSERNAME)
  1345. }
  1346. }
  1347. if r.BeginDate != "" && r.EndDate != "" {
  1348. sqlId.JoinFormat(" AND (t.TRADEDATE >= '%v' AND t.TRADEDATE <= '%v')", r.BeginDate, r.EndDate)
  1349. }
  1350. sqlId.OrderByDesc("t.WRTRADEDETAILID")
  1351. sqlId.Page(r.Page, r.PageSize)
  1352. return sqlId.String()
  1353. }
  1354. func (r *MyDeListing) GetDataByPage() (interface{}, error, int, int, int) {
  1355. sData := make([]MyDeListing, 0)
  1356. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  1357. total := 0
  1358. for i := range sData {
  1359. sData[i].calc()
  1360. total = sData[i].Total
  1361. }
  1362. return sData, err, r.Page, r.PageSize, total
  1363. }
  1364. // MyBargainApply 我的询价-求购
  1365. type MyBargainApply struct {
  1366. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1367. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  1368. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  1369. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1370. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  1371. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  1372. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  1373. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  1374. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  1375. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  1376. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  1377. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  1378. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  1379. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  1380. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  1381. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  1382. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  1383. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1384. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1385. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1386. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1387. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1388. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  1389. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  1390. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价 - 类型:1,2,3,5
  1391. WRBARGAINID string `json:"wrbargainid" xorm:"WRBARGAINID1"` // [询价单号]议价申请单ID(327+Unix秒时间戳(10位)+xxxxxx)
  1392. WRTRADEORDERID int64 `json:"wrtradeorderid" xorm:"WRTRADEORDERID"` // 关联委托单ID
  1393. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  1394. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  1395. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 摘牌人用户ID
  1396. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 摘牌资金账号
  1397. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  1398. APPLYQTY int64 `json:"-" xorm:"APPLYQTY"` // 摘牌数量
  1399. APPLYPRICE string `json:"applyprice" xorm:"APPLYPRICE"` // 申请价格
  1400. APPLYSTATUS int32 `json:"applystatus" xorm:"APPLYSTATUS" form:"applystatus"` // 申请状态 - 1:待确认 2:已确认 3:已拒绝 4:已撤销 5:系统撤销 6:处理失败 7:确认中
  1401. HANDLESTATUS int32 `json:"handlestatus" xorm:"HANDLESTATUS"` // 处理状态
  1402. APPLYTIME string `json:"applytime" xorm:"APPLYTIME1"` // 申请时间
  1403. APPLYREMARK string `json:"applyremark" xorm:"APPLYREMARK"` // 申请备注
  1404. CONFIRMQTY int64 `json:"confirmqty" xorm:"CONFIRMQTY"` // 可接受数量(拒绝时填写)-作废
  1405. CONFIRMPRICE float64 `json:"confirmprice" xorm:"CONFIRMPRICE"` // 可接受价格(拒绝时填写)-作废
  1406. CONFIRMUSERID int64 `json:"confirmuserid" xorm:"CONFIRMUSERID"` // 确认人
  1407. CONFIRMTIME time.Time `json:"confirmtime" xorm:"CONFIRMTIME"` // 确认时间
  1408. CONFIRMREMARK string `json:"confirmremark" xorm:"CONFIRMREMARK"` // 确认备注
  1409. REFPRICE string `json:"refprice" xorm:"REFPRICE"` // 参考价格
  1410. RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 委托返回代码
  1411. MATCHUSERID int64 `json:"matchuserid" xorm:"MATCHUSERID"` // 挂牌方用户ID
  1412. MATCHACCOUNTID int64 `json:"matchaccountid" xorm:"MATCHACCOUNTID"` // 挂牌方资金账号
  1413. LADINGBILLID int64 `json:"ladingbillid" xorm:"LADINGBILLID"` // 摘牌方提单ID [卖]
  1414. SUBNUM int32 `json:"subnum" xorm:"SUBNUM"` // 摘牌方提单子单号 [卖]
  1415. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 卖方
  1416. QTY float64 `json:"qty" xorm:"QTY"` // 申请数量
  1417. PageEx `xorm:"extends"` // 页码信息
  1418. }
  1419. func (r *MyBargainApply) calc() {
  1420. }
  1421. func (r *MyBargainApply) buildSql() string {
  1422. var sqlId utils.SQLVal = `
  1423. SELECT
  1424. q.ZSCURRENCYTYPEDISPLAY,
  1425. q.ZSCURRENCYTYPEDISPLAYUNIT,
  1426. q.WAREHOUSENAMEDISPLAY,
  1427. q.ZSSHAPETYPEDISPLAY,
  1428. q.ZSCOLORTYPE1DISPLAY,
  1429. q.ZSCOLORTYPE2DISPLAY,
  1430. q.ZSCLARITYTYPE1DISPLAY,
  1431. q.ZSCLARITYTYPE2DISPLAY,
  1432. q.ZSCUTTYPE1DISPLAY,
  1433. q.ZSCUTTYPE2DISPLAY,
  1434. q.ZSSYMMETRYTYPE1DISPLAY,
  1435. q.ZSSYMMETRYTYPE2DISPLAY,
  1436. q.ZSPOLISHTYPE1DISPLAY,
  1437. q.ZSPOLISHTYPE2DISPLAY,
  1438. q.ZSFLUORESCENCETYPE1DISPLAY,
  1439. q.ZSFLUORESCENCETYPE2DISPLAY,
  1440. q.ZSCERTTYPEDISPLAY,
  1441. q.ZSCRYSTALTYPEDISPLAY,
  1442. q.ZSSTYLETYPEDISPLAY,
  1443. q.ZSCZCOLOR1TYPEDISPLAY,
  1444. q.ZSCZCOLOR2TYPEDISPLAY,
  1445. q.ZSCZCOLOR3TYPEDISPLAY,
  1446. ua.accountname SELLUSERNAME,
  1447. CASE WHEN
  1448. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  1449. ELSE q.SIZE1
  1450. END AS SIZEDISPLAY,
  1451. q.PRICE,
  1452. q.PRICEPER,
  1453. (t.APPLYQTY / 100) QTY,
  1454. to_char(t.APPLYTIME, 'yyyy-mm-dd hh24:mi:ss') APPLYTIME1,
  1455. to_char(t.WRBARGAINID) WRBARGAINID1,
  1456. t.*
  1457. FROM WRTrade_BargainApply t
  1458. LEFT JOIN UserAccount ua ON t.MATCHUSERID = ua.userid
  1459. LEFT JOIN Wrtrade_Orderdetail d ON d.wrtradeorderid = t.wrtradeorderid
  1460. LEFT JOIN view_GZ_WRStandard_Ex_Query q ON d.wrstandardid = q.wrstandardid
  1461. WHERE t.marketid=67201
  1462. `
  1463. sqlId.And("t.USERID", r.USERID)
  1464. sqlId.AndEx("t.APPLYSTATUS", r.APPLYSTATUS, r.APPLYSTATUS > 0)
  1465. sqlId.OrderByDesc("t.WRBARGAINID")
  1466. sqlId.Page(r.Page, r.PageSize)
  1467. return sqlId.String()
  1468. }
  1469. func (r *MyBargainApply) GetDataByPage() (interface{}, error, int, int, int) {
  1470. sData := make([]MyBargainApply, 0)
  1471. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  1472. total := 0
  1473. for i := range sData {
  1474. sData[i].calc()
  1475. total = sData[i].Total
  1476. }
  1477. return sData, err, r.Page, r.PageSize, total
  1478. }
  1479. // MyDelistingApply 我的询价-出售
  1480. type MyDelistingApply struct {
  1481. // -- VIEW_GZ_BUYORDERDETAIL_QUERY
  1482. ZSALLPROPERTIES string `json:"zsallproperties" xorm:"ZSALLPROPERTIES"` //
  1483. ZSTABLEDISPLAY string `json:"zstabledisplay" xorm:"ZSTABLEDISPLAY"` //
  1484. BUYUSERNAME string `json:"buyusername" xorm:"BUYUSERNAME"` //
  1485. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  1486. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1487. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1488. ZSCOLORTYPEDISPLAY string `json:"zscolortypedisplay" xorm:"ZSCOLORTYPEDISPLAY"` //
  1489. ZSCLARITYTYPEDISPLAY string `json:"zsclaritytypedisplay" xorm:"ZSCLARITYTYPEDISPLAY"` //
  1490. ZSCUTTYPEDISPLAY string `json:"zscuttypedisplay" xorm:"ZSCUTTYPEDISPLAY"` //
  1491. ZSSYMMETRYTYPEDISPLAY string `json:"zssymmetrytypedisplay" xorm:"ZSSYMMETRYTYPEDISPLAY"` //
  1492. ZSPOLISHTYPEDISPLAY string `json:"zspolishtypedisplay" xorm:"ZSPOLISHTYPEDISPLAY"` //
  1493. ZSFLUORESCENCETYPEDISPLAY string `json:"zsfluorescencetypedisplay" xorm:"ZSFLUORESCENCETYPEDISPLAY"` //
  1494. ZSSIZEDISPLAY string `json:"zssizedisplay" xorm:"ZSSIZEDISPLAY"` //
  1495. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1496. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1497. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1498. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1499. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1500. WAREHOUSEINFOSDISPLAY string `json:"warehouseinfosdisplay" xorm:"WAREHOUSEINFOSDISPLAY"` //
  1501. // -- view_GZ_WRStandard_Ex_Query --
  1502. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  1503. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  1504. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 克拉重量
  1505. SELLDELISTINGAPPLYID string `json:"selldelistingapplyid" xorm:"SELLDELISTINGAPPLYID1"` // [询价单号]卖摘牌申请ID(916+Unix秒时间戳(10位)+xxxxxx)
  1506. BUYWRTRADEORDERID string `json:"buywrtradeorderid" xorm:"BUYWRTRADEORDERID1"` // 买委托单ID
  1507. BUYUSERID int64 `json:"buyuserid" xorm:"BUYUSERID"` // 买方用户ID
  1508. SELLUSERID int64 `json:"selluserid" xorm:"SELLUSERID" form:"userid" binding:"required"` // 卖方用户ID
  1509. SELLACCOUNTID int64 `json:"sellaccountid" xorm:"SELLACCOUNTID"` // 卖方账户ID
  1510. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  1511. WRFACTORTYPEID string `json:"wrfactortypeid" xorm:"WRFACTORTYPEID1"` // 仓单要素类型ID
  1512. APPLYQTY float64 `json:"applyqty" xorm:"APPLYQTY"` // 申请数量
  1513. APPLYPRICE float64 `json:"applyprice" xorm:"APPLYPRICE"` // 申请价格
  1514. APPLYSTATUS int32 `json:"applystatus" xorm:"APPLYSTATUS" form:"applystatus"` // 申请状态 - 1:待确认 2:已确认 3:已拒绝 4:已撤销 5:系统撤销 6:处理失败 7:确认中
  1515. APPLYREMARK string `json:"applyremark" xorm:"APPLYREMARK"` // 申请备注
  1516. APPLYTIME string `json:"applytime" xorm:"APPLYTIME1"` // 申请时间
  1517. AUDITREMARK string `json:"auditremark" xorm:"AUDITREMARK"` // 确认备注
  1518. SELLTRADEORDERID string `json:"selltradeorderid" xorm:"SELLTRADEORDERID1"` // 卖方委托ID(买方确认成交后更新)
  1519. AUDITTIME time.Time `json:"audittime" xorm:"AUDITTIME"` // 确认时间
  1520. LADINGBILLID string `json:"ladingbillid" xorm:"LADINGBILLID1"` // 卖方提单ID
  1521. SUBNUM int32 `json:"subnum" xorm:"SUBNUM"` // 卖方提单子单号
  1522. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  1523. PageEx `xorm:"extends"` // 页码信息
  1524. }
  1525. func (r *MyDelistingApply) calc() {
  1526. }
  1527. func (r *MyDelistingApply) buildSql() string {
  1528. var sqlId utils.SQLVal = `
  1529. SELECT
  1530. q.GOODSNO,
  1531. q.PRICE,
  1532. q.WEIGHT,
  1533. p.ZSALLPROPERTIES ,
  1534. p.ZSTABLEDISPLAY ,
  1535. p.BUYUSERNAME ,
  1536. p.ZSCATEGORYDISPLAY ,
  1537. p.ZSCURRENCYTYPEDISPLAY ,
  1538. p.ZSSHAPETYPEDISPLAY ,
  1539. p.ZSCOLORTYPEDISPLAY ,
  1540. p.ZSCLARITYTYPEDISPLAY ,
  1541. p.ZSCUTTYPEDISPLAY ,
  1542. p.ZSSYMMETRYTYPEDISPLAY ,
  1543. p.ZSPOLISHTYPEDISPLAY ,
  1544. p.ZSFLUORESCENCETYPEDISPLAY,
  1545. p.ZSSIZEDISPLAY ,
  1546. p.ZSCRYSTALTYPEDISPLAY ,
  1547. p.ZSSTYLETYPEDISPLAY ,
  1548. p.ZSCZCOLOR1TYPEDISPLAY ,
  1549. p.ZSCZCOLOR2TYPEDISPLAY ,
  1550. p.ZSCZCOLOR3TYPEDISPLAY ,
  1551. p.WAREHOUSEINFOSDISPLAY ,
  1552. to_char(t.APPLYTIME, 'yyyy-mm-dd hh24:mi:ss') APPLYTIME1,
  1553. to_char(t.SELLDELISTINGAPPLYID) SELLDELISTINGAPPLYID1,
  1554. to_char(t.BUYWRTRADEORDERID) BUYWRTRADEORDERID1,
  1555. t.BUYUSERID ,
  1556. t.SELLUSERID ,
  1557. t.SELLACCOUNTID ,
  1558. t.WRSTANDARDID ,
  1559. to_char(t.WRFACTORTYPEID) WRFACTORTYPEID1 ,
  1560. t.APPLYQTY ,
  1561. t.APPLYPRICE ,
  1562. t.APPLYSTATUS ,
  1563. t.APPLYREMARK ,
  1564. t.APPLYTIME ,
  1565. t.AUDITREMARK ,
  1566. to_char(t.SELLTRADEORDERID) SELLTRADEORDERID1,
  1567. t.AUDITTIME ,
  1568. to_char(t.LADINGBILLID) LADINGBILLID1 ,
  1569. t.SUBNUM ,
  1570. t.MARKETID
  1571. FROM GZ_SellDelistingApply t
  1572. LEFT JOIN VIEW_GZ_BUYORDERDETAIL_QUERY p ON t.BUYWRTRADEORDERID = p.WRTRADEORDERID
  1573. LEFT JOIN view_GZ_WRStandard_Ex_Query q ON t.WRSTANDARDID = q.WRSTANDARDID
  1574. WHERE t.marketid=67201
  1575. `
  1576. sqlId.And("t.SELLUSERID", r.SELLUSERID)
  1577. sqlId.AndEx("t.APPLYSTATUS", r.APPLYSTATUS, r.APPLYSTATUS > 0)
  1578. sqlId.OrderByDesc("t.SELLDELISTINGAPPLYID")
  1579. sqlId.Page(r.Page, r.PageSize)
  1580. return sqlId.String()
  1581. }
  1582. func (r *MyDelistingApply) GetDataByPage() (interface{}, error, int, int, int) {
  1583. sData := make([]MyDelistingApply, 0)
  1584. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  1585. total := 0
  1586. for i := range sData {
  1587. sData[i].calc()
  1588. total = sData[i].Total
  1589. }
  1590. return sData, err, r.Page, r.PageSize, total
  1591. }
  1592. // GZGoods 钻石信息
  1593. type GZGoods struct {
  1594. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES"` // 商品(查询字段-模糊查询)
  1595. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 账户名称(机构名称)
  1596. SELLMOBILE string `json:"-" xorm:"SELLMOBILE"` // 手机号码(加密存储)
  1597. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  1598. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1599. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  1600. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  1601. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1602. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  1603. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  1604. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  1605. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  1606. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  1607. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  1608. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  1609. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  1610. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  1611. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  1612. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  1613. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  1614. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  1615. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1616. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1617. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1618. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1619. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1620. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  1621. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  1622. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY"` // 钻石分类 - 枚举”ZSCategory“
  1623. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  1624. GOODSNO string `json:"goodsno" xorm:"GOODSNO" form:"goodsno" binding:"required"` // 商品编号
  1625. WAREHOUSEID int64 `json:"warehouseid" xorm:"WAREHOUSEID"` // 仓库ID
  1626. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` // 市场价
  1627. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` // 商品照片(相对地址)
  1628. WRPATH string `json:"wrpath" xorm:"WRPATH"` // 仓单扫描件(相对地址)
  1629. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  1630. PRICE float64 `json:"price" xorm:"PRICE"` // 总价(价格) - 类型:1,2,3,4,5
  1631. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  1632. WEIGHTAVG float64 `json:"weightavg" xorm:"WEIGHTAVG"` // 平均单颗重量 - 类型:1,3
  1633. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价 - 类型:1,2,3,5
  1634. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  1635. ZSCOLORTYPE1 int32 `json:"zscolortype1" xorm:"ZSCOLORTYPE1"` // 颜色1 - 枚举”ZSColorType“ - 类型:1,2,3,4
  1636. ZSCOLORTYPE2 int32 `json:"zscolortype2" xorm:"ZSCOLORTYPE2"` // 颜色2 - 枚举”ZSColorType“ - 类型:1,3
  1637. ZSCLARITYTYPE1 int32 `json:"zsclaritytype1" xorm:"ZSCLARITYTYPE1"` // 净度1 - 枚举”ZSClarityType“ - 类型:1,2,3,4,5
  1638. ZSCLARITYTYPE2 int32 `json:"zsclaritytype2" xorm:"ZSCLARITYTYPE2"` // 净度2 - 枚举”ZSClarityType“ - 类型:1,3
  1639. ZSCUTTYPE1 int32 `json:"zscuttype1" xorm:"ZSCUTTYPE1"` // 切工1 - 枚举”ZSCutType“ - 类型:1,2,4,5
  1640. ZSCUTTYPE2 int32 `json:"zscuttype2" xorm:"ZSCUTTYPE2"` // 切工2 - 枚举”ZSCutType“ - 类型:1
  1641. ZSSYMMETRYTYPE1 int32 `json:"zssymmetrytype1" xorm:"ZSSYMMETRYTYPE1"` // 对称度1 - 枚举”ZSSymmetryType“ - 类型:1,2,4,5
  1642. ZSSYMMETRYTYPE2 int32 `json:"zssymmetrytype2" xorm:"ZSSYMMETRYTYPE2"` // 对称度2 - 枚举”ZSSymmetryType“ - 类型:1
  1643. ZSPOLISHTYPE1 int32 `json:"zspolishtype1" xorm:"ZSPOLISHTYPE1"` // 抛光度1 - 枚举”ZSPolishType“ - 类型:1,2,4,5
  1644. ZSPOLISHTYPE2 int32 `json:"zspolishtype2" xorm:"ZSPOLISHTYPE2"` // 抛光度2 - 枚举”ZSPolishType“ - 类型:1
  1645. ZSFLUORESCENCETYPE1 int32 `json:"zsfluorescencetype1" xorm:"ZSFLUORESCENCETYPE1"` // 荧光1 - 枚举”ZSFluorescenceType“ - 类型:1,2,3,4,5
  1646. ZSFLUORESCENCETYPE2 int32 `json:"zsfluorescencetype2" xorm:"ZSFLUORESCENCETYPE2"` // 荧光2 - 枚举”ZSFluorescenceType” - 类型:1,3
  1647. SIZE1 string `json:"size1" xorm:"SIZE1"` // 尺寸1 - 类型:2,4,5
  1648. SIZE2 string `json:"size2" xorm:"SIZE2"` // 尺寸2 - 类型:2,4,5
  1649. SIZE3 string `json:"size3" xorm:"SIZE3"` // 尺寸3 - 类型:2,4,5
  1650. ZSCERTTYPE int32 `json:"zscerttype" xorm:"ZSCERTTYPE"` // 证书类型 - 枚举”ZSCertType“ - 类型:2,4,5
  1651. CERNO string `json:"cerno" xorm:"CERNO"` // 证书编号 - 类型:2,4,5
  1652. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型范围 - 枚举“ZSCrystalType“ - 类型:3, 多个,逗号分隔
  1653. CPCERTNO string `json:"cpcertno" xorm:"CPCERTNO"` // 金伯利证书编号 - 类型:3
  1654. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地 - 类型:3
  1655. KPWEIGHT string `json:"kpweight" xorm:"KPWEIGHT"` // 金伯利证书重量 - 类型:3
  1656. KPPATH string `json:"kppath" xorm:"KPPATH"` // 金伯利证书图片(相对地址) - 类型:3
  1657. ZSSTYLETYPE int32 `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 类型:4
  1658. STONEDESC string `json:"stonedesc" xorm:"STONEDESC"` // 配石描述 - 类型:4
  1659. SETTINGMATERIAL string `json:"settingmaterial" xorm:"SETTINGMATERIAL"` // 镶嵌材料 - 类型:4
  1660. ZSCZCOLOR1TYPE int32 `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1 - 枚举”ZSCZColor1Type“ - 类型:5
  1661. ZSCZCOLOR2TYPE int32 `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2 - 枚举”ZSCZColor2Type“ - 类型:5
  1662. ZSCZCOLOR3TYPE int32 `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3 - 枚举”ZSCZColor3Type“ - 类型:5
  1663. ISVALID int32 `json:"isvalid" xorm:"ISVALID"` // 是否有效 - 0:无效 1:有效
  1664. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  1665. MOBILE string `json:"mobile"` // 手机号码
  1666. }
  1667. func (r *GZGoods) calc() {
  1668. key, _ := hex.DecodeString(utils.AESSecretKey)
  1669. if len(r.SELLMOBILE) > 0 {
  1670. // 手机号码解密
  1671. if phonenum, err := hex.DecodeString(r.SELLMOBILE); err == nil { // hex -> []byte
  1672. if mobile, err := utils.AESDecrypt(phonenum, key); err == nil {
  1673. r.MOBILE = string(mobile)
  1674. }
  1675. }
  1676. }
  1677. }
  1678. func (r *GZGoods) buildSql() string {
  1679. var sqlId utils.SQLVal = `
  1680. SELECT
  1681. t.*,
  1682. u.MOBILE,
  1683. to_char(od.WRTRADEORDERID) WRTRADEORDERID1
  1684. FROM View_GZ_WRStandard_Ex_Query t
  1685. LEFT JOIN userinfo u ON u.USERID = t.USERID
  1686. LEFT JOIN WRTrade_OrderDetail od ON od.wrstandardid = t.wrstandardid
  1687. WHERE GOODSNO = '%v'
  1688. `
  1689. sqlId.FormatParam(r.GOODSNO)
  1690. return sqlId.String()
  1691. }
  1692. // GetDataEx 从数据库中查询数据
  1693. func (r *GZGoods) GetDataEx() (interface{}, error) {
  1694. e := db.GetEngine()
  1695. s := e.SQL(r.buildSql())
  1696. var sData GZGoods
  1697. has, err := s.Get(&sData)
  1698. if err != nil {
  1699. return nil, err
  1700. }
  1701. if !has {
  1702. return struct{}{}, nil
  1703. }
  1704. sData.calc()
  1705. return sData, nil
  1706. }
  1707. // MyPerformanc 我的履约
  1708. type MyPerformanc struct {
  1709. // PerformancePlan
  1710. PERFORMANCEPLANID string `json:"performanceplanid" xorm:"PERFORMANCEPLANID1"` // 履约计划ID(130+yyMMddHHmmss+xxxx)
  1711. RELATEDORDERID string `json:"relatedorderid" xorm:"RELATEDORDERID1"` // 关联单号(履约类型的关联单号)
  1712. AMOUNT float64 `json:"amount" xorm:"AMOUNT"` // 履约金额
  1713. PAYMENTTYPE int32 `json:"paymenttype" xorm:"PAYMENTTYPE"` // 买方支付方式 - 1:冻结 2:扣款
  1714. PERFORMANCESTATUS int32 `json:"performancestatus" xorm:"PERFORMANCESTATUS"` // 履约状态 - 1:待激活 2:正常 3:处理错误 4:违约待处理 5:违约处理中 6:完成 7.违约已完成 8:释放冻结失败 9:超时待处理 10:超时关闭
  1715. CURSTEPID string `json:"curstepid" xorm:"CURSTEPID1"` // 当前步骤ID
  1716. BUYPAIDAMOUNT float64 `json:"buypaidamount" xorm:"BUYPAIDAMOUNT"` // 买方已冻/已扣金额
  1717. SELLRECEIVEDAMOUNT float64 `json:"sellreceivedamount" xorm:"SELLRECEIVEDAMOUNT"` // 卖方已收金额
  1718. BUYERFREEZEAMOUNT float64 `json:"buyerfreezeamount" xorm:"BUYERFREEZEAMOUNT"` // 买方履约前冻结资金
  1719. BUYERFREEZEAMOUNTREMAIN float64 `json:"buyerfreezeamountremain" xorm:"BUYERFREEZEAMOUNTREMAIN"` // 买方履约前冻结资金剩余
  1720. SELLERFREEZEAMOUNT float64 `json:"sellerfreezeamount" xorm:"SELLERFREEZEAMOUNT"` // 卖方履约前冻结资金
  1721. SELLERFREEZEAMOUNTREMAIN float64 `json:"sellerfreezeamountremain" xorm:"SELLERFREEZEAMOUNTREMAIN"` // 卖方履约前冻结资金剩余
  1722. OVERSHORTAMOUNT float64 `json:"overshortamount" xorm:"OVERSHORTAMOUNT"` // 溢短金额
  1723. BUYERINFO string `json:"buyerinfo" xorm:"BUYERINFO"` // 买方联系信息 - 存JSON字符串, 根据枚举‘BuyerContactInfo',显示\隐藏字段,若数据不为JSON,则直接显示{ "ContactInfo": "xxxxxxxx", "ReceiveInfo": "xxxxxxxxx", "ReceiptInfo": "xxxxxxxxxxxx"}
  1724. SELLERINFO string `json:"sellerinfo" xorm:"SELLERINFO"` // 卖方联系信息 - 存JSON字符串, 根据枚举‘SellerContactInfo',显示\隐藏字段,若数据不为JSON,则直接显示{ "ContactInfo": "xxxxxxxx"}
  1725. // PerformanceStep
  1726. STEPTYPEID int32 `json:"steptypeid" xorm:"STEPTYPEID"` // 履约步骤类型ID - 1:买方支付 2:卖方收款 3:买方自提 4:卖方发货 5:买方确认货 6:卖方发票 7:买方确认票 8:仓单转移 9:释放卖方冻结 10:货款溢短 11:生成合同[中江] 12:运费 90:确认支付 91. 确认放行 92买方支付(直接扣款) 用于-1模板“
  1727. // useraccount
  1728. ACCOUNTNAME string `json:"accountname" xorm:"ACCOUNTNAME"` // [对手方]账户名称(机构名称)
  1729. // View_GZ_WRStandard_Ex_Query
  1730. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  1731. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  1732. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1733. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  1734. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  1735. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1736. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  1737. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  1738. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  1739. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  1740. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  1741. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  1742. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  1743. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  1744. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  1745. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  1746. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  1747. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  1748. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  1749. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1750. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1751. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1752. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1753. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1754. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  1755. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价
  1756. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  1757. USERID int64 `json:"-" form:"userid" binding:"required"` // 用户ID
  1758. BuyOrSell int64 `json:"buyorsell" form:"buyorsell"` // 方向 - 0:买 1:卖
  1759. IsHis bool `json:"-" form:"ishis"` // 是否历史查询
  1760. BeginDate string `json:"-" form:"begindate"` // 开始交易日
  1761. EndDate string `json:"-" form:"enddate"` // 结束交易日
  1762. PageEx `xorm:"extends"` // 页码信息
  1763. }
  1764. func (r *MyPerformanc) calc() {
  1765. }
  1766. func (r *MyPerformanc) buildSql() string {
  1767. var sqlId utils.SQLVal = `
  1768. SELECT
  1769. to_char(pp.PERFORMANCEPLANID) PERFORMANCEPLANID1,
  1770. to_char(pp.RELATEDORDERID) RELATEDORDERID1 ,
  1771. pp.AMOUNT ,
  1772. pp.PAYMENTTYPE ,
  1773. pp.PERFORMANCESTATUS ,
  1774. to_char(pp.CURSTEPID) CURSTEPID1 ,
  1775. pp.BUYPAIDAMOUNT ,
  1776. pp.SELLRECEIVEDAMOUNT ,
  1777. pp.BUYERFREEZEAMOUNT ,
  1778. pp.BUYERFREEZEAMOUNTREMAIN ,
  1779. pp.SELLERFREEZEAMOUNT ,
  1780. pp.SELLERFREEZEAMOUNTREMAIN,
  1781. pp.OVERSHORTAMOUNT ,
  1782. pp.BUYERINFO ,
  1783. pp.SELLERINFO ,
  1784. ps.STEPTYPEID,
  1785. ua.ACCOUNTNAME ,
  1786. wr.ZSALLPROPERTIES ,
  1787. wr.ZSCATEGORYDISPLAY ,
  1788. wr.ZSCURRENCYTYPEDISPLAY ,
  1789. wr.ZSCURRENCYTYPEDISPLAYUNIT ,
  1790. wr.WAREHOUSENAMEDISPLAY ,
  1791. wr.ZSSHAPETYPEDISPLAY ,
  1792. wr.ZSCOLORTYPE1DISPLAY ,
  1793. wr.ZSCOLORTYPE2DISPLAY ,
  1794. wr.ZSCLARITYTYPE1DISPLAY ,
  1795. wr.ZSCLARITYTYPE2DISPLAY ,
  1796. wr.ZSCUTTYPE1DISPLAY ,
  1797. wr.ZSCUTTYPE2DISPLAY ,
  1798. wr.ZSSYMMETRYTYPE1DISPLAY ,
  1799. wr.ZSSYMMETRYTYPE2DISPLAY ,
  1800. wr.ZSPOLISHTYPE1DISPLAY ,
  1801. wr.ZSPOLISHTYPE2DISPLAY ,
  1802. wr.ZSFLUORESCENCETYPE1DISPLAY,
  1803. wr.ZSFLUORESCENCETYPE2DISPLAY,
  1804. wr.ZSCERTTYPEDISPLAY ,
  1805. wr.ZSCRYSTALTYPEDISPLAY ,
  1806. wr.ZSSTYLETYPEDISPLAY ,
  1807. wr.ZSCZCOLOR1TYPEDISPLAY ,
  1808. wr.ZSCZCOLOR2TYPEDISPLAY ,
  1809. wr.ZSCZCOLOR3TYPEDISPLAY ,
  1810. wr.PRICE ,
  1811. wr.PRICEPER ,
  1812. CASE WHEN
  1813. wr.SIZE1 IS NOT NULL AND wr.SIZE2 IS NOT NULL AND wr.SIZE2 IS NOT NULL THEN wr.SIZE1 || '*' || wr.SIZE2 || '*' || wr.SIZE3
  1814. ELSE wr.SIZE1
  1815. END AS SIZEDISPLAY
  1816. FROM PerformancePlan pp
  1817. inner join PerformanceStep ps on pp.curstepid = ps.performancestepid
  1818. inner join wrtrade_tradedetail td on pp.relatedorderid = td.wrtradedetailid
  1819. inner join taaccount ta on td.accountid = ta.accountid
  1820. inner join taaccount ta2 on td.matchaccountid = ta2.accountid
  1821. inner join useraccount ua on ta2.relateduserid = ua.userid
  1822. inner join wrfactortype ft on td.wrfactortypeid = ft.wrfactortypeid
  1823. inner join View_GZ_WRStandard_Ex_Query wr on ft.wrstandardid = wr.wrstandardid
  1824. where 1=1
  1825. `
  1826. sqlId.And("ta.relateduserid", r.USERID)
  1827. sqlId.And("td.buyorsell", r.BuyOrSell)
  1828. sqlId.AndLike("wr.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  1829. sqlId.OrderByDesc("pp.PERFORMANCEPLANID")
  1830. sqlId.Page(r.Page, r.PageSize)
  1831. return sqlId.String()
  1832. }
  1833. func (r *MyPerformanc) buildSql_His() string {
  1834. var sqlId utils.SQLVal = `
  1835. SELECT
  1836. to_char(pp.PERFORMANCEPLANID) PERFORMANCEPLANID1,
  1837. pp.RELATEDORDERID ,
  1838. pp.AMOUNT ,
  1839. pp.PAYMENTTYPE ,
  1840. pp.PERFORMANCESTATUS ,
  1841. pp.CURSTEPID ,
  1842. pp.BUYPAIDAMOUNT ,
  1843. pp.SELLRECEIVEDAMOUNT ,
  1844. pp.BUYERFREEZEAMOUNT ,
  1845. pp.BUYERFREEZEAMOUNTREMAIN ,
  1846. pp.SELLERFREEZEAMOUNT ,
  1847. pp.SELLERFREEZEAMOUNTREMAIN,
  1848. pp.OVERSHORTAMOUNT ,
  1849. pp.BUYERINFO ,
  1850. pp.SELLERINFO ,
  1851. ps.STEPTYPEID,
  1852. ua.ACCOUNTNAME ,
  1853. wr.ZSALLPROPERTIES ,
  1854. wr.ZSCATEGORYDISPLAY ,
  1855. wr.ZSCURRENCYTYPEDISPLAY ,
  1856. wr.ZSCURRENCYTYPEDISPLAYUNIT ,
  1857. wr.WAREHOUSENAMEDISPLAY ,
  1858. wr.ZSSHAPETYPEDISPLAY ,
  1859. wr.ZSCOLORTYPE1DISPLAY ,
  1860. wr.ZSCOLORTYPE2DISPLAY ,
  1861. wr.ZSCLARITYTYPE1DISPLAY ,
  1862. wr.ZSCLARITYTYPE2DISPLAY ,
  1863. wr.ZSCUTTYPE1DISPLAY ,
  1864. wr.ZSCUTTYPE2DISPLAY ,
  1865. wr.ZSSYMMETRYTYPE1DISPLAY ,
  1866. wr.ZSSYMMETRYTYPE2DISPLAY ,
  1867. wr.ZSPOLISHTYPE1DISPLAY ,
  1868. wr.ZSPOLISHTYPE2DISPLAY ,
  1869. wr.ZSFLUORESCENCETYPE1DISPLAY,
  1870. wr.ZSFLUORESCENCETYPE2DISPLAY,
  1871. wr.ZSCERTTYPEDISPLAY ,
  1872. wr.ZSCRYSTALTYPEDISPLAY ,
  1873. wr.ZSSTYLETYPEDISPLAY ,
  1874. wr.ZSCZCOLOR1TYPEDISPLAY ,
  1875. wr.ZSCZCOLOR2TYPEDISPLAY ,
  1876. wr.ZSCZCOLOR3TYPEDISPLAY ,
  1877. wr.PRICE ,
  1878. wr.PRICEPER ,
  1879. CASE WHEN
  1880. wr.SIZE1 IS NOT NULL AND wr.SIZE2 IS NOT NULL AND wr.SIZE2 IS NOT NULL THEN wr.SIZE1 || '*' || wr.SIZE2 || '*' || wr.SIZE3
  1881. ELSE wr.SIZE1
  1882. END AS SIZEDISPLAY
  1883. FROM HIS_PerformancePlan pp
  1884. inner join HIS_PerformanceStep ps on pp.curstepid = ps.performancestepid
  1885. inner join HIS_wrtrade_tradedetail td on pp.relatedorderid = td.wrtradedetailid
  1886. inner join taaccount ta on td.accountid = ta.accountid
  1887. inner join taaccount ta2 on td.matchaccountid = ta2.accountid
  1888. inner join useraccount ua on ta2.relateduserid = ua.userid
  1889. inner join wrfactortype ft on td.wrfactortypeid = ft.wrfactortypeid
  1890. inner join View_GZ_WRStandard_Ex_Query wr on ft.wrstandardid = wr.wrstandardid
  1891. where pp.isvaliddata =1 and ps.isvaliddata = 1 and td.isvaliddata = 1
  1892. `
  1893. sqlId.And("ta.relateduserid", r.USERID)
  1894. sqlId.And("td.buyorsell", r.BuyOrSell)
  1895. sqlId.AndLike("wr.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  1896. if r.BeginDate != "" && r.EndDate != "" {
  1897. sqlId.JoinFormat(" AND (pp.createtime between to_date('%v', 'yyyyMMdd') and to_date('%v', 'yyyyMMdd'))", r.BeginDate, r.EndDate)
  1898. }
  1899. sqlId.OrderByDesc("pp.PERFORMANCEPLANID")
  1900. sqlId.Page(r.Page, r.PageSize)
  1901. return sqlId.String()
  1902. }
  1903. func (r *MyPerformanc) GetDataByPage() (interface{}, error, int, int, int) {
  1904. sData := make([]MyPerformanc, 0)
  1905. sql := ""
  1906. if r.IsHis {
  1907. sql = r.buildSql_His()
  1908. } else {
  1909. sql = r.buildSql()
  1910. }
  1911. err := db.GetEngine().SQL(sql).Find(&sData)
  1912. total := 0
  1913. for i := range sData {
  1914. sData[i].calc()
  1915. total = sData[i].Total
  1916. }
  1917. return sData, err, r.Page, r.PageSize, total
  1918. }
  1919. // MyFavorite 我的收藏
  1920. type MyFavorite struct {
  1921. USERID int64 `json:"userid" xorm:"USERID" form:"userid" binding:"required"` // 用户ID
  1922. WRTRADEORDERID string `json:"wrtradeorderid" xorm:"WRTRADEORDERID1"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  1923. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  1924. WRFACTORTYPEID string `json:"wrfactortypeid" xorm:"WRFACTORTYPEID1"` // 仓单要素类型ID/商品ID(77)
  1925. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID(自增 SEQ_GOODS 确保不重复)
  1926. FAVORITESTATUS int32 `json:"favoritestatus" xorm:"FAVORITESTATUS"` // 收藏状态 - 1:正常 2:失效
  1927. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  1928. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  1929. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  1930. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  1931. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  1932. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  1933. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  1934. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  1935. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  1936. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  1937. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  1938. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  1939. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  1940. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  1941. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  1942. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  1943. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  1944. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  1945. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  1946. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  1947. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  1948. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  1949. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  1950. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  1951. PRICE float64 `json:"price" xorm:"PRICE"` // 价格
  1952. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价
  1953. SIZEDISPLAY string `json:"sizedisplay" xorm:"SIZEDISPLAY"` // 尺寸
  1954. PageEx `xorm:"extends"` // 页码信息
  1955. ZSCATEGORYS string `json:"-" form:"zscategorys"` // 钻石分类,格式: 1,2,3
  1956. }
  1957. func (r *MyFavorite) calc() {
  1958. }
  1959. func (r *MyFavorite) buildSql() string {
  1960. var sqlId utils.SQLVal = `
  1961. SELECT
  1962. t.USERID ,
  1963. to_char(t.WRTRADEORDERID) WRTRADEORDERID1,
  1964. t.BUYORSELL ,
  1965. to_char(t.WRFACTORTYPEID) WRFACTORTYPEID1,
  1966. t.WRSTANDARDID ,
  1967. t.FAVORITESTATUS,
  1968. t.MARKETID ,
  1969. q.ZSCATEGORYDISPLAY ,
  1970. q.ZSCURRENCYTYPEDISPLAY ,
  1971. q.ZSCURRENCYTYPEDISPLAYUNIT ,
  1972. q.WAREHOUSENAMEDISPLAY ,
  1973. q.ZSSHAPETYPEDISPLAY ,
  1974. q.ZSCOLORTYPE1DISPLAY ,
  1975. q.ZSCOLORTYPE2DISPLAY ,
  1976. q.ZSCLARITYTYPE1DISPLAY ,
  1977. q.ZSCLARITYTYPE2DISPLAY ,
  1978. q.ZSCUTTYPE1DISPLAY ,
  1979. q.ZSCUTTYPE2DISPLAY ,
  1980. q.ZSSYMMETRYTYPE1DISPLAY ,
  1981. q.ZSSYMMETRYTYPE2DISPLAY ,
  1982. q.ZSPOLISHTYPE1DISPLAY ,
  1983. q.ZSPOLISHTYPE2DISPLAY ,
  1984. q.ZSFLUORESCENCETYPE1DISPLAY,
  1985. q.ZSFLUORESCENCETYPE2DISPLAY,
  1986. q.ZSCERTTYPEDISPLAY ,
  1987. q.ZSCRYSTALTYPEDISPLAY ,
  1988. q.ZSSTYLETYPEDISPLAY ,
  1989. q.ZSCZCOLOR1TYPEDISPLAY ,
  1990. q.ZSCZCOLOR2TYPEDISPLAY ,
  1991. q.ZSCZCOLOR3TYPEDISPLAY ,
  1992. q.PRICE ,
  1993. q.PRICEPER ,
  1994. CASE WHEN
  1995. q.SIZE1 IS NOT NULL AND q.SIZE2 IS NOT NULL AND q.SIZE2 IS NOT NULL THEN q.SIZE1 || '*' || q.SIZE2 || '*' || q.SIZE3
  1996. ELSE q.SIZE1
  1997. END AS SIZEDISPLAY
  1998. FROM Wrtrade_Myfavorite t
  1999. LEFT JOIN view_GZ_WRStandard_Ex_Query q ON t.WRSTANDARDID = q.WRSTANDARDID
  2000. WHERE t.marketid=67201
  2001. `
  2002. sqlId.And("t.USERID", r.USERID)
  2003. if r.ZSCATEGORYS != "" {
  2004. sqlId.JoinFormat(" AND q.ZSCATEGORY in (%v)", r.ZSCATEGORYS)
  2005. }
  2006. sqlId.OrderByDesc("t.CREATETIME")
  2007. sqlId.Page(r.Page, r.PageSize)
  2008. return sqlId.String()
  2009. }
  2010. func (r *MyFavorite) GetDataByPage() (interface{}, error, int, int, int) {
  2011. sData := make([]MyFavorite, 0)
  2012. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  2013. total := 0
  2014. for i := range sData {
  2015. sData[i].calc()
  2016. total = sData[i].Total
  2017. }
  2018. return sData, err, r.Page, r.PageSize, total
  2019. }