guangzuan.go 77 KB

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