guangzuan.go 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391
  1. package models
  2. import (
  3. "mtp2_if/db"
  4. "mtp2_if/utils"
  5. "time"
  6. )
  7. // Warehouseinfo 仓库信息表
  8. type GZWarehouseinfo struct {
  9. AUTOID int64 `json:"autoid" xorm:"AUTOID"` // 自增ID
  10. WAREHOUSECODE string `json:"warehousecode" xorm:"WAREHOUSECODE"` // 仓库代码
  11. WAREHOUSENAME string `json:"warehousename" xorm:"WAREHOUSENAME"` // 仓库名称
  12. WAREHOUSETYPE int32 `json:"warehousetype" xorm:"WAREHOUSETYPE"` // 仓库类型 - 1 厂库 2 自有库 3 合作库
  13. AREAUSERID int64 `json:"areauserid" xorm:"AREAUSERID"` // 所属机构
  14. WAREHOUSESTATUS int32 `json:"warehousestatus" xorm:"WAREHOUSESTATUS"` // 仓库状态 - 1:正常 2:注销 3:待审核 4:审核拒绝
  15. COUNTRYID int32 `json:"countryid" xorm:"COUNTRYID"` // 国家
  16. PROVINCEID int32 `json:"provinceid" xorm:"PROVINCEID"` // 省
  17. CITYID int32 `json:"cityid" xorm:"CITYID"` // 市
  18. DISTRICTID int32 `json:"districtid" xorm:"DISTRICTID"` // 区
  19. ADDRESS string `json:"address" xorm:"ADDRESS"` // 详细地址
  20. REMARK string `json:"remark" xorm:"REMARK"` // 审核备注
  21. CREATETIME time.Time `json:"createtime" xorm:"CREATETIME"` // 创建时间
  22. HASVIDEO int32 `json:"hasvideo" xorm:"HASVIDEO"` // 是否有视频 - 0:无 1:有
  23. VIDEOURL string `json:"videourl" xorm:"VIDEOURL"` // 视频地址
  24. CONTACTNAME string `json:"contactname" xorm:"CONTACTNAME"` // 联系人
  25. CONTACTNUM string `json:"contactnum" xorm:"CONTACTNUM"` // 联系电话
  26. PageEx `xorm:"extends"` // 页码信息
  27. UserId int64 `json:"-" form:"userid" binding:"required"` // 用户ID
  28. Status string `json:"-" form:"status"` // 仓库状态(可多项,逗号隔开) 1:正常 2:注销 3:待审核 4:审核拒绝
  29. IsIncludeExchange bool `json:"-" form:"isincludeexchange"` // 是返回交易所仓库
  30. }
  31. // TableName is WAREHOUSEINFO
  32. func (r *GZWarehouseinfo) TableName() string {
  33. return "WAREHOUSEINFO"
  34. }
  35. func (r *GZWarehouseinfo) calc() {
  36. }
  37. func (r *GZWarehouseinfo) buildSql() string {
  38. var sqlId utils.SQLVal = `SELECT t.AUTOID,
  39. t.WAREHOUSECODE,
  40. t.WAREHOUSENAME,
  41. t.WAREHOUSETYPE,
  42. t.AREAUSERID,
  43. t.WAREHOUSESTATUS,
  44. t.COUNTRYID,
  45. t.PROVINCEID,
  46. t.CITYID,
  47. t.DISTRICTID,
  48. t.ADDRESS,
  49. t.REMARK,
  50. to_char(t.CREATETIME,'yyyy-mm-dd hh24:mi:ss') CREATETIME,
  51. t.HASVIDEO,
  52. t.VIDEOURL,
  53. t.CONTACTNAME,
  54. t.CONTACTNUM
  55. FROM WAREHOUSEINFO t
  56. WHERE (t.AREAUSERID = %v) `
  57. sqlId.FormatParam(r.UserId)
  58. if r.IsIncludeExchange {
  59. sqlId.Join(" OR (t.AREAUSERID IS NULL) OR (t.AREAUSERID = 1)")
  60. }
  61. if len(r.Status) > 0 {
  62. sqlId.JoinFormat(" and (t.WAREHOUSESTATUS in (%v))", r.Status)
  63. }
  64. sqlId.Page(r.Page, r.PageSize)
  65. return sqlId.String()
  66. }
  67. // GetDataByPage 获取团队订单
  68. func (r *GZWarehouseinfo) GetDataByPage() (interface{}, error, int, int, int) {
  69. sData := make([]GZWarehouseinfo, 0)
  70. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  71. total := 0
  72. for i := range sData {
  73. sData[i].calc()
  74. total = sData[i].Total
  75. }
  76. return sData, err, r.Page, r.PageSize, total
  77. }
  78. // MyWRPosition 我的库存
  79. type MyWRPosition struct {
  80. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  81. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME"` // 账户名称(机构名称)
  82. SELLMOBILE string `json:"sellmobile" xorm:"SELLMOBILE"` // 手机号码(加密存储)
  83. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  84. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  85. ZSCURRENCYTYPEDISPLAYUNIT string `json:"zscurrencytypedisplayunit" xorm:"ZSCURRENCYTYPEDISPLAYUNIT"` //
  86. WAREHOUSENAMEDISPLAY string `json:"warehousenamedisplay" xorm:"WAREHOUSENAMEDISPLAY"` //
  87. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  88. ZSCOLORTYPE1DISPLAY string `json:"zscolortype1display" xorm:"ZSCOLORTYPE1DISPLAY"` //
  89. ZSCOLORTYPE2DISPLAY string `json:"zscolortype2display" xorm:"ZSCOLORTYPE2DISPLAY"` //
  90. ZSCLARITYTYPE1DISPLAY string `json:"zsclaritytype1display" xorm:"ZSCLARITYTYPE1DISPLAY"` //
  91. ZSCLARITYTYPE2DISPLAY string `json:"zsclaritytype2display" xorm:"ZSCLARITYTYPE2DISPLAY"` //
  92. ZSCUTTYPE1DISPLAY string `json:"zscuttype1display" xorm:"ZSCUTTYPE1DISPLAY"` //
  93. ZSCUTTYPE2DISPLAY string `json:"zscuttype2display" xorm:"ZSCUTTYPE2DISPLAY"` //
  94. ZSSYMMETRYTYPE1DISPLAY string `json:"zssymmetrytype1display" xorm:"ZSSYMMETRYTYPE1DISPLAY"` //
  95. ZSSYMMETRYTYPE2DISPLAY string `json:"zssymmetrytype2display" xorm:"ZSSYMMETRYTYPE2DISPLAY"` //
  96. ZSPOLISHTYPE1DISPLAY string `json:"zspolishtype1display" xorm:"ZSPOLISHTYPE1DISPLAY"` //
  97. ZSPOLISHTYPE2DISPLAY string `json:"zspolishtype2display" xorm:"ZSPOLISHTYPE2DISPLAY"` //
  98. ZSFLUORESCENCETYPE1DISPLAY string `json:"zsfluorescencetype1display" xorm:"ZSFLUORESCENCETYPE1DISPLAY"` //
  99. ZSFLUORESCENCETYPE2DISPLAY string `json:"zsfluorescencetype2display" xorm:"ZSFLUORESCENCETYPE2DISPLAY"` //
  100. ZSCERTTYPEDISPLAY string `json:"zscerttypedisplay" xorm:"ZSCERTTYPEDISPLAY"` //
  101. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  102. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  103. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  104. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  105. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  106. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  107. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  108. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
  109. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  110. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  111. WAREHOUSEID int64 `json:"warehouseid" xorm:"WAREHOUSEID" form:"warehouseid"` // 仓库ID
  112. MARKETPRICE string `json:"marketprice" xorm:"MARKETPRICE"` // 市场价
  113. IMAGEPATH string `json:"imagepath" xorm:"IMAGEPATH"` // 商品照片(相对地址)
  114. WRPATH string `json:"wrpath" xorm:"WRPATH"` // 仓单扫描件(相对地址)
  115. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  116. PRICE float64 `json:"price" xorm:"PRICE"` // 总价(价格) - 类型:1,2,3,4,5
  117. WEIGHT float64 `json:"weight" xorm:"WEIGHT"` // 总重量(克拉重量) - 类型:1,2,3,4,5
  118. WEIGHTAVG float64 `json:"weightavg" xorm:"WEIGHTAVG"` // 平均单颗重量 - 类型:1,3
  119. PRICEPER string `json:"priceper" xorm:"PRICEPER"` // 克拉单价 - 类型:1,2,3,5
  120. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 枚举”ZSShapeType“ - 类型:1,2,4,5 ;(1为多个,逗号分隔)
  121. ZSCOLORTYPE1 int32 `json:"zscolortype1" xorm:"ZSCOLORTYPE1"` // 颜色1 - 枚举”ZSColorType“ - 类型:1,2,3,4
  122. ZSCOLORTYPE2 int32 `json:"zscolortype2" xorm:"ZSCOLORTYPE2"` // 颜色2 - 枚举”ZSColorType“ - 类型:1,3
  123. ZSCLARITYTYPE1 int32 `json:"zsclaritytype1" xorm:"ZSCLARITYTYPE1"` // 净度1 - 枚举”ZSClarityType“ - 类型:1,2,3,4,5
  124. ZSCLARITYTYPE2 int32 `json:"zsclaritytype2" xorm:"ZSCLARITYTYPE2"` // 净度2 - 枚举”ZSClarityType“ - 类型:1,3
  125. ZSCUTTYPE1 int32 `json:"zscuttype1" xorm:"ZSCUTTYPE1"` // 切工1 - 枚举”ZSCutType“ - 类型:1,2,4,5
  126. ZSCUTTYPE2 int32 `json:"zscuttype2" xorm:"ZSCUTTYPE2"` // 切工2 - 枚举”ZSCutType“ - 类型:1
  127. ZSSYMMETRYTYPE1 int32 `json:"zssymmetrytype1" xorm:"ZSSYMMETRYTYPE1"` // 对称度1 - 枚举”ZSSymmetryType“ - 类型:1,2,4,5
  128. ZSSYMMETRYTYPE2 int32 `json:"zssymmetrytype2" xorm:"ZSSYMMETRYTYPE2"` // 对称度2 - 枚举”ZSSymmetryType“ - 类型:1
  129. ZSPOLISHTYPE1 int32 `json:"zspolishtype1" xorm:"ZSPOLISHTYPE1"` // 抛光度1 - 枚举”ZSPolishType“ - 类型:1,2,4,5
  130. ZSPOLISHTYPE2 int32 `json:"zspolishtype2" xorm:"ZSPOLISHTYPE2"` // 抛光度2 - 枚举”ZSPolishType“ - 类型:1
  131. ZSFLUORESCENCETYPE1 int32 `json:"zsfluorescencetype1" xorm:"ZSFLUORESCENCETYPE1"` // 荧光1 - 枚举”ZSFluorescenceType“ - 类型:1,2,3,4,5
  132. ZSFLUORESCENCETYPE2 int32 `json:"zsfluorescencetype2" xorm:"ZSFLUORESCENCETYPE2"` // 荧光2 - 枚举”ZSFluorescenceType” - 类型:1,3
  133. SIZE1 string `json:"size1" xorm:"SIZE1"` // 尺寸1 - 类型:2,4,5
  134. SIZE2 string `json:"size2" xorm:"SIZE2"` // 尺寸2 - 类型:2,4,5
  135. SIZE3 string `json:"size3" xorm:"SIZE3"` // 尺寸3 - 类型:2,4,5
  136. ZSCERTTYPE int32 `json:"zscerttype" xorm:"ZSCERTTYPE"` // 证书类型 - 枚举”ZSCertType“ - 类型:2,4,5
  137. CERNO string `json:"cerno" xorm:"CERNO"` // 证书编号 - 类型:2,4,5
  138. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型范围 - 枚举“ZSCrystalType“ - 类型:3, 多个,逗号分隔
  139. CPCERTNO string `json:"cpcertno" xorm:"CPCERTNO"` // 金伯利证书编号 - 类型:3
  140. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地 - 类型:3
  141. KPWEIGHT string `json:"kpweight" xorm:"KPWEIGHT"` // 金伯利证书重量 - 类型:3
  142. KPPATH string `json:"kppath" xorm:"KPPATH"` // 金伯利证书图片(相对地址) - 类型:3
  143. ZSSTYLETYPE int32 `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 类型:4
  144. STONEDESC string `json:"stonedesc" xorm:"STONEDESC"` // 配石描述 - 类型:4
  145. SETTINGMATERIAL string `json:"settingmaterial" xorm:"SETTINGMATERIAL"` // 镶嵌材料 - 类型:4
  146. ZSCZCOLOR1TYPE int32 `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1 - 枚举”ZSCZColor1Type“ - 类型:5
  147. ZSCZCOLOR2TYPE int32 `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2 - 枚举”ZSCZColor2Type“ - 类型:5
  148. ZSCZCOLOR3TYPE int32 `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3 - 枚举”ZSCZColor3Type“ - 类型:5
  149. ISVALID int32 `json:"isvalid" xorm:"ISVALID"` // 是否有效 - 0:无效 1:有效
  150. TOTALQTY int64 `json:"-" xorm:"TOTALQTY"`
  151. FREEZEQTY int64 `json:"-" xorm:"FREEZEQTY"`
  152. FTOTALQTY SFLOAT64 `json:"ftotalqty"` // 库存数量:WRPosition表:TOTALQTY /100 , 保留两位小数
  153. FFREEZEQTY SFLOAT64 `json:"ffreezeqty"` // 冻结数量:WRPosition表:FREEZEQTY/100 , 保留两位小数
  154. PageEx `xorm:"extends"` // 页码信息
  155. WRUSERID int64 `json:"wruserid" xorm:"WRUSERID" form:"wruserid" binding:"required"` // 登录用户ID
  156. }
  157. func (r *MyWRPosition) calc() {
  158. if r.TOTALQTY != 0 {
  159. r.FTOTALQTY = SFLOAT64(r.TOTALQTY / 100)
  160. r.FTOTALQTY.Round(2)
  161. }
  162. if r.FREEZEQTY != 0 {
  163. r.FFREEZEQTY = SFLOAT64(r.FREEZEQTY / 100)
  164. r.FFREEZEQTY.Round(2)
  165. }
  166. }
  167. func (r *MyWRPosition) buildSql() string {
  168. var sqlId utils.SQLVal = `
  169. SELECT
  170. t.*,
  171. wr.*
  172. FROM WRPosition t
  173. INNER JOIN WRFactorType ft ON t.wrfactortypeid = ft.wrfactortypeid
  174. INNER JOIN View_GZ_WRStandard_Ex_Query wr ON ft.wrstandardid = wr.wrstandardid
  175. WHERE t.wruserid = %v
  176. `
  177. sqlId.FormatParam(r.WRUSERID)
  178. sqlId.AndEx("wr.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  179. sqlId.AndLike("wr.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  180. sqlId.AndEx("wr.WAREHOUSEID", r.WAREHOUSEID, r.WAREHOUSEID > 0)
  181. sqlId.Page(r.Page, r.PageSize)
  182. return sqlId.String()
  183. }
  184. func (r *MyWRPosition) GetDataByPage() (interface{}, error, int, int, int) {
  185. sData := make([]MyWRPosition, 0)
  186. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  187. total := 0
  188. for i := range sData {
  189. sData[i].calc()
  190. total = sData[i].Total
  191. }
  192. return sData, err, r.Page, r.PageSize, total
  193. }
  194. // BuyOrder 求购大厅委托单
  195. type BuyOrder struct {
  196. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  197. ZSTABLEDISPLAY string `json:"zstabledisplay" xorm:"ZSTABLEDISPLAY"` // 求购信息
  198. BUYUSERNAME string `json:"buyusername" xorm:"BUYUSERNAME" form:"buyusername"` // 买方
  199. ZSCATEGORYDISPLAY string `json:"zscategorydisplay" xorm:"ZSCATEGORYDISPLAY"` //
  200. ZSCURRENCYTYPEDISPLAY string `json:"zscurrencytypedisplay" xorm:"ZSCURRENCYTYPEDISPLAY"` //
  201. ZSSHAPETYPEDISPLAY string `json:"zsshapetypedisplay" xorm:"ZSSHAPETYPEDISPLAY"` //
  202. ZSCOLORTYPEDISPLAY string `json:"zscolortypedisplay" xorm:"ZSCOLORTYPEDISPLAY"` //
  203. ZSCLARITYTYPEDISPLAY string `json:"zsclaritytypedisplay" xorm:"ZSCLARITYTYPEDISPLAY"` //
  204. ZSCUTTYPEDISPLAY string `json:"zscuttypedisplay" xorm:"ZSCUTTYPEDISPLAY"` //
  205. ZSSYMMETRYTYPEDISPLAY string `json:"zssymmetrytypedisplay" xorm:"ZSSYMMETRYTYPEDISPLAY"` //
  206. ZSPOLISHTYPEDISPLAY string `json:"zspolishtypedisplay" xorm:"ZSPOLISHTYPEDISPLAY"` //
  207. ZSFLUORESCENCETYPEDISPLAY string `json:"zsfluorescencetypedisplay" xorm:"ZSFLUORESCENCETYPEDISPLAY"` //
  208. ZSCRYSTALTYPEDISPLAY string `json:"zscrystaltypedisplay" xorm:"ZSCRYSTALTYPEDISPLAY"` //
  209. ZSSTYLETYPEDISPLAY string `json:"zsstyletypedisplay" xorm:"ZSSTYLETYPEDISPLAY"` //
  210. ZSCZCOLOR1TYPEDISPLAY string `json:"zsczcolor1typedisplay" xorm:"ZSCZCOLOR1TYPEDISPLAY"` //
  211. ZSCZCOLOR2TYPEDISPLAY string `json:"zsczcolor2typedisplay" xorm:"ZSCZCOLOR2TYPEDISPLAY"` //
  212. ZSCZCOLOR3TYPEDISPLAY string `json:"zsczcolor3typedisplay" xorm:"ZSCZCOLOR3TYPEDISPLAY"` //
  213. WAREHOUSEINFOSDISPLAY string `json:"warehouseinfosdisplay" xorm:"WAREHOUSEINFOSDISPLAY"` //
  214. WRTRADEORDERID int64 `json:"wrtradeorderid" xorm:"WRTRADEORDERID" form:"wrtradeorderid"` // [委托单号]买委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  215. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  216. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账户ID
  217. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
  218. ZSCURRENCYTYPE string `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 多个, 逗号分隔
  219. ZSSHAPETYPE string `json:"zsshapetype" xorm:"ZSSHAPETYPE"` // 形状 - 多个, 逗号分隔
  220. ZSCOLORTYPE string `json:"zscolortype" xorm:"ZSCOLORTYPE"` // 颜色 - 两个, 逗号分隔
  221. ZSCLARITYTYPE string `json:"zsclaritytype" xorm:"ZSCLARITYTYPE"` // 净度 - 两个, 逗号分隔
  222. ZSCUTTYPE string `json:"zscuttype" xorm:"ZSCUTTYPE"` // 切工 - 两个, 逗号分隔
  223. ZSSYMMETRYTYPE string `json:"zssymmetrytype" xorm:"ZSSYMMETRYTYPE"` // 对称度 - 两个, 逗号分隔
  224. ZSPOLISHTYPE string `json:"zspolishtype" xorm:"ZSPOLISHTYPE"` // 抛光度 - 两个, 逗号分隔
  225. ZSFLUORESCENCETYPE string `json:"zsfluorescencetype" xorm:"ZSFLUORESCENCETYPE"` // 荧光 - 多个, 逗号分隔
  226. ZSSIZE string `json:"zssize" xorm:"ZSSIZE"` // 尺寸 - 两个小数, 逗号分隔
  227. ZSCRYSTALTYPE string `json:"zscrystaltype" xorm:"ZSCRYSTALTYPE"` // 晶型 - 多个,逗号分隔
  228. ORIGIN string `json:"origin" xorm:"ORIGIN"` // 原产地
  229. ZSSTYLETYPE string `json:"zsstyletype" xorm:"ZSSTYLETYPE"` // 款式 - 多个, 逗号分隔
  230. ZSCZCOLOR1TYPE string `json:"zsczcolor1type" xorm:"ZSCZCOLOR1TYPE"` // 彩钻颜色1, 逗号分隔
  231. ZSCZCOLOR2TYPE string `json:"zsczcolor2type" xorm:"ZSCZCOLOR2TYPE"` // 彩钻颜色2, 逗号分隔
  232. ZSCZCOLOR3TYPE string `json:"zsczcolor3type" xorm:"ZSCZCOLOR3TYPE"` // 彩钻颜色3, 逗号分隔
  233. REMARK string `json:"remark" xorm:"REMARK"` // 备注
  234. WAREHOUSEIDS string `json:"warehouseids" xorm:"WAREHOUSEIDS"` // 仓库ID - 多个, 逗号分隔
  235. MARKETID int32 `json:"marketid" xorm:"MARKETID"` // 市场ID
  236. PageEx `xorm:"extends"` // 页码信息
  237. }
  238. func (r *BuyOrder) calc() {
  239. }
  240. func (r *BuyOrder) buildSql() string {
  241. var sqlId utils.SQLVal = `
  242. SELECT
  243. q.*,
  244. t.*
  245. FROM WRTrade_OrderDetail t
  246. INNER JOIN View_GZ_BuyOrderDetail_Query q ON t.wrtradeorderid = q.wrtradeorderid
  247. WHERE t.marketid=67201 AND t.BuyOrSell = 0 AND t.WRTradeOrderStatus IN (3,7)
  248. `
  249. sqlId.AndEx("q.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  250. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  251. sqlId.AndEx("q.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID > 0)
  252. sqlId.AndLike("q.BUYUSERNAME", r.BUYUSERNAME)
  253. sqlId.Page(r.Page, r.PageSize)
  254. return sqlId.String()
  255. }
  256. func (r *BuyOrder) GetDataByPage() (interface{}, error, int, int, int) {
  257. sData := make([]BuyOrder, 0)
  258. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  259. total := 0
  260. for i := range sData {
  261. sData[i].calc()
  262. total = sData[i].Total
  263. }
  264. return sData, err, r.Page, r.PageSize, total
  265. }
  266. // SellOrder 出售大厅委托单
  267. type SellOrder struct {
  268. ZSALLPROPERTIES string `json:"-" xorm:"ZSALLPROPERTIES" form:"zsallproperties"` // 商品(查询字段-模糊查询)
  269. SELLUSERNAME string `json:"sellusername" xorm:"SELLUSERNAME" form:"sellusername"` // 卖方(查询字段-模糊查询)
  270. WRSTANDARDID int64 `json:"wrstandardid" xorm:"WRSTANDARDID"` // 现货商品ID
  271. USERID int64 `json:"userid" xorm:"USERID"` // 用户ID
  272. ZSCATEGORY int32 `json:"zscategory" xorm:"ZSCATEGORY" form:"zscategory"` // 钻石分类 - 枚举”ZSCategory“
  273. ZSCURRENCYTYPE int32 `json:"zscurrencytype" xorm:"ZSCURRENCYTYPE"` // 货币类型 - 枚举“ZSCurrencyType”
  274. GOODSNO string `json:"goodsno" xorm:"GOODSNO"` // 商品编号
  275. WRTRADEORDERID int64 `json:"wrtradeorderid" xorm:"WRTRADEORDERID" form:"wrtradeorderid"` // 仓单贸易委托单ID(320+Unix秒时间戳(10位)+xxxxxx)
  276. TRADEDATE string `json:"tradedate" xorm:"TRADEDATE"` // 交易日(yyyyMMdd)
  277. WRTRADETYPE int32 `json:"wrtradetype" xorm:"WRTRADETYPE"` // 仓单贸易类型 - 1:挂牌 2:摘牌 3:提货卖(文化中国) 4:提货买(文化中国)
  278. BUYORSELL int32 `json:"buyorsell" xorm:"BUYORSELL"` // 买卖 - 0:买 1:卖
  279. RELATEDWRTRADEORDERID int64 `json:"relatedwrtradeorderid" xorm:"RELATEDWRTRADEORDERID"` // 关联委托单号(摘牌委托关联挂牌委托单ID)
  280. MARKETID int64 `json:"marketid" xorm:"MARKETID"` // 市场ID
  281. ACCOUNTID int64 `json:"accountid" xorm:"ACCOUNTID"` // 资金账号
  282. WRFACTORTYPEID int64 `json:"wrfactortypeid" xorm:"WRFACTORTYPEID"` // 仓单要素类型ID/商品ID(77)
  283. ORDERQTY int64 `json:"orderqty" xorm:"ORDERQTY"` // 委托数量
  284. TRADEQTY int64 `json:"tradeqty" xorm:"TRADEQTY"` // 成交数量
  285. CANCELQTY int64 `json:"cancelqty" xorm:"CANCELQTY"` // 撤销数量
  286. WRPRICETYPE int32 `json:"wrpricetype" xorm:"WRPRICETYPE"` // 价格方式 - 1:固定价 2-浮动价 - [挂牌]
  287. FIXEDPRICE float64 `json:"fixedprice" xorm:"FIXEDPRICE"` // 固定价格 - [挂牌]
  288. ISSPECIFIED int32 `json:"isspecified" xorm:"ISSPECIFIED"` // 是否指定对手 - 0:不指定 1:指定好友(贸易圈) 2:指定对手 - [挂牌]
  289. PRICEFACTOR float64 `json:"pricefactor" xorm:"PRICEFACTOR"` // 价格系数(浮动价时填写) - [挂牌]
  290. PRICEMOVE float64 `json:"pricemove" xorm:"PRICEMOVE"` // 升贴水(浮动价时填写) - [挂牌]
  291. FIRSTRATIO float64 `json:"firstratio" xorm:"FIRSTRATIO"` // 首付比率 - [挂牌时指定,摘牌时使用]
  292. WRTRANSFERUSERID int64 `json:"wrtransferuserid" xorm:"WRTRANSFERUSERID"` // 仓单受让用户 - [摘牌]
  293. TRADEPRICE float64 `json:"tradeprice" xorm:"TRADEPRICE"` // 成交价格 - [摘牌] (浮动价 ((商品1价格*商品1价格系数+升贴水)* 商品1重量系数 + 商品2价格*商品2价格系数+商品2升贴水)* 商品2重量系数 ...)* 委托单价格系数 + 委托单升贴水)
  294. FREEZEFIRSTAMOUNT float64 `json:"freezefirstamount" xorm:"FREEZEFIRSTAMOUNT"` // 冻结首付金额 - [摘牌]
  295. UNFREEZEFIRSTAMOUNT float64 `json:"unfreezefirstamount" xorm:"UNFREEZEFIRSTAMOUNT"` // 解冻首付金额 - [摘牌]
  296. PERFORMANCETEMPLATEID int64 `json:"performancetemplateid" xorm:"PERFORMANCETEMPLATEID"` // 履约计划模板ID
  297. VALIDTYPE int32 `json:"validtype" xorm:"VALIDTYPE"` // 有效类型 - 1当日有效 2本周有效 3指定日期有效 4一直有效
  298. VALIDTIME time.Time `json:"validtime" xorm:"VALIDTIME"` // 有效期限
  299. ORDERTIME time.Time `json:"ordertime" xorm:"ORDERTIME"` // 委托时间
  300. CANCELTIME time.Time `json:"canceltime" xorm:"CANCELTIME"` // 撤销时间
  301. 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:撤单解冻贷款失败
  302. CLIENTTICKET string `json:"-" xorm:"CLIENTTICKET"` // 客户端流水号
  303. ORDERSRC int32 `json:"-" xorm:"ORDERSRC"` // 委托来源 - 1:客户端 2:管理端 3:风控服务 4:交割服务 5:交易服务 6:交易日结
  304. CLIENTTYPE int32 `json:"-" xorm:"CLIENTTYPE"` // 客户端类型 - 0:保留为未填终端类型 1:PC管理端 2:PC交易端 3:手机客户端_安卓 4:网页客户端 5:微信客户端 6:手机客户端_苹果 7:网上开户客户端 8:无效终端编号 9:报价终端(中江)
  305. UUID string `json:"uuid" xorm:"UUID"` // 发起端唯一id
  306. CLIENTORDERTIME time.Time `json:"clientordertime" xorm:"CLIENTORDERTIME"` // 客户端委托时间
  307. RETCODE int32 `json:"retcode" xorm:"RETCODE"` // 错误代码
  308. OPERATORID int64 `json:"-" xorm:"OPERATORID"` // 操作员ID
  309. PRICEDISPLAYMODE int32 `json:"-" xorm:"PRICEDISPLAYMODE"` // 浮动价显示方式 - 1:合并显示 2:分开显示1: 价格显示一个值 :(商品拟合价*价格系统+升贴水)2: 价格显示两个值:(商品拟合价*价格系统) 、 升贴水
  310. FREEZEMARGIN float64 `json:"freezemargin" xorm:"FREEZEMARGIN"` // 冻结保证金
  311. UNFREEZEMARGIN float64 `json:"unfreezemargin" xorm:"UNFREEZEMARGIN"` // 解冻保证金
  312. FREEZECHARGE float64 `json:"freezecharge" xorm:"FREEZECHARGE"` // 冻结手续费
  313. UNFREEZECHARGE float64 `json:"unfreezecharge" xorm:"UNFREEZECHARGE"` // 解冻手续费
  314. MARGINALGORITHM int32 `json:"marginalgorithm" xorm:"MARGINALGORITHM"` // 保证金方式 - 1:比率 2:固定
  315. MARGINVALUE float64 `json:"marginvalue" xorm:"MARGINVALUE"` // 保证金设置值
  316. CHARGEALGORITHM int32 `json:"chargealgorithm" xorm:"CHARGEALGORITHM"` // 手续费收取方式 1:比率 2:固定
  317. CHARGEALGORITHMVALUE float64 `json:"chargealgorithmvalue" xorm:"CHARGEALGORITHMVALUE"` // 手续费设置值(交易所部分)
  318. CHARGEALGORITHMVALUE2 float64 `json:"chargealgorithmvalue2" xorm:"CHARGEALGORITHMVALUE2"` // 手续费设置值(会员部分)
  319. CANBARGAIN int32 `json:"canbargain" xorm:"CANBARGAIN"` // 是否可议价 - 0:不可 1:可
  320. WRBARGAINID int64 `json:"wrbargainid" xorm:"WRBARGAINID"` // 议价申请单ID
  321. ATTACHMENT1 string `json:"attachment1" xorm:"ATTACHMENT1"` // 附件1
  322. ATTACHMENT2 string `json:"attachment2" xorm:"ATTACHMENT2"` // 附件2
  323. APPLYID int64 `json:"applyid" xorm:"APPLYID"` // 申请单ID
  324. EXCHANGERATE float64 `json:"exchangerate" xorm:"EXCHANGERATE"` // 汇率[67]
  325. ORDERAMOUNT float64 `json:"orderamount" xorm:"ORDERAMOUNT"` // 挂牌金额[账户] [67]= OrderQty * FixedPrice * ExchangeRate /100
  326. PageEx `xorm:"extends"` // 页码信息
  327. }
  328. func (r *SellOrder) calc() {
  329. }
  330. func (r *SellOrder) buildSql() string {
  331. var sqlId utils.SQLVal = `
  332. SELECT
  333. q.*,
  334. t.*
  335. FROM WRTrade_OrderDetail t
  336. INNER JOIN View_GZ_WRStandard_Ex_Query q ON t.wrstandardid = q.wrstandardid
  337. WHERE t.marketid=67201 AND t.BuyOrSell = 1 AND t.WRTradeOrderStatus IN (3,7)
  338. `
  339. sqlId.AndEx("q.ZSCATEGORY", r.ZSCATEGORY, r.ZSCATEGORY > 0)
  340. sqlId.AndLike("q.ZSALLPROPERTIES", r.ZSALLPROPERTIES)
  341. sqlId.AndEx("q.WRTRADEORDERID", r.WRTRADEORDERID, r.WRTRADEORDERID > 0)
  342. sqlId.AndLike("q.SELLUSERNAME", r.SELLUSERNAME)
  343. sqlId.Page(r.Page, r.PageSize)
  344. return sqlId.String()
  345. }
  346. func (r *SellOrder) GetDataByPage() (interface{}, error, int, int, int) {
  347. sData := make([]SellOrder, 0)
  348. err := db.GetEngine().SQL(r.buildSql()).Find(&sData)
  349. total := 0
  350. for i := range sData {
  351. sData[i].calc()
  352. total = sData[i].Total
  353. }
  354. return sData, err, r.Page, r.PageSize, total
  355. }