hsby.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. package models
  2. import (
  3. "fmt"
  4. "mtp2_if/db"
  5. "mtp2_if/utils"
  6. "time"
  7. )
  8. // Hsbygoodsex 商品扩展表
  9. type Hsbygoodsex struct {
  10. Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商 品ID
  11. Hotindex int32 `json:"hotindex" xorm:"'HOTINDEX'"` // 景点热度
  12. Descprovinceid int64 `json:"descprovinceid" xorm:"'DESCPROVINCEID'"` // 目的地(省)
  13. Desccityid int64 `json:"desccityid" xorm:"'DESCCITYID'"` // 目的地(市)
  14. Vendorid int32 `json:"vendorid" xorm:"'VENDORID'"` // 供应商ID
  15. Goodsdesc string `json:"goodsdesc" xorm:"'GOODSDESC'"` // 商品详情
  16. Createtime time.Time `json:"createtime" xorm:"'CREATETIME'"` // 创建时间
  17. Creatorid int64 `json:"creatorid" xorm:"'CREATORID'"` // 创建人
  18. Modifierid int64 `json:"modifierid" xorm:"'MODIFIERID'"` // 修改人
  19. Modifytime time.Time `json:"modifytime" xorm:"'MODIFYTIME'"` // 修改时间
  20. Memberratio float64 `json:"memberratio" xorm:"'MEMBERRATIO'"` // 会员货款比例 [71]
  21. Videourls string `json:"videourls" xorm:"'VIDEOURLS'"` // 介绍视频[多张用逗号分隔]
  22. Picurls string `json:"picurls" xorm:"'PICURLS'"` // 介绍图片[多张用逗号分隔]
  23. }
  24. // TableName is HSBY_GOODSEX
  25. func (Hsbygoodsex) TableName() string {
  26. return "HSBY_GOODSEX"
  27. }
  28. // Hsbysupplierinfo 供应商表
  29. type Hsbysupplierinfo struct {
  30. Vendorid int32 `json:"vendorid" xorm:"'VENDORID'" binding:"required"` // 供应商ID(SEQ_HSBY_SUPPLIERINFO)
  31. Vendorname string `json:"vendorname" xorm:"'VENDORNAME'"` // 名称描述客服电话名称
  32. Vendordesc string `json:"vendordesc" xorm:"'VENDORDESC'"` // 描述
  33. Vendorphone string `json:"vendorphone" xorm:"'VENDORPHONE'"` // 客服电话
  34. Vendorattr string `json:"vendorattr" xorm:"'VENDORATTR'"` // 附件(多张,逗号分隔)
  35. Createtime time.Time `json:"createtime" xorm:"'CREATETIME'"` // 创建时间
  36. Creatorid int64 `json:"creatorid" xorm:"'CREATORID'"` // 创建人
  37. Modifierid int64 `json:"modifierid" xorm:"'MODIFIERID'"` // 修改人
  38. Modifytime time.Time `json:"modifytime" xorm:"'MODIFYTIME'"` // 修改时间
  39. }
  40. // TableName is HSBY_SUPPLIERINFO
  41. func (Hsbysupplierinfo) TableName() string {
  42. return "HSBY_SUPPLIERINFO"
  43. }
  44. // HsbyTopGoods 热门商品列表
  45. type HsbyTopGoods struct {
  46. Goodsid int64 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID(自增ID SEQ_GOODS)
  47. Goodscode string `json:"goodscode" xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
  48. Goodsname string `json:"goodsname" xorm:"'GOODSNAME'" binding:"required"` // 商品名称
  49. Decimalplace int64 `json:"decimalplace" xorm:"'DECIMALPLACE'"` // 报价小数位
  50. Marketid int64 `json:"marketid" xorm:"'MARKETID'" binding:"required"` // 所属市场ID
  51. Hotindex int32 `json:"hotindex" xorm:"'HOTINDEX'"` // 景点热度
  52. Videourls string `json:"videourls" xorm:"'VIDEOURLS'"` // 介绍视频[多张用逗号分隔]
  53. Picurls string `json:"picurls" xorm:"'PICURLS'"` // 介绍图片[多张用逗号分隔]
  54. Currency string `json:"currency" xorm:"'CURRENCY'"` // 货币
  55. Currencysign string `json:"currencysign" xorm:"'CURRENCYSIGN'"` // 货币符号
  56. Last float64 `json:"last" xorm:"-"` // 现价
  57. }
  58. // GetHsbyTopGoods 获取热门商品列表
  59. // 参数 marketID int 所属市场ID
  60. // 参数 descProvinceID int 目标省ID
  61. // 参数 descCityID int 目标城市ID
  62. // 返回 []TopGoods 热门商品列表
  63. // 返回 error error
  64. func GetHsbyTopGoods(marketID int, descProvinceID int, descCityID int) ([]HsbyTopGoods, error) {
  65. // 热门商品为二级市场(挂牌点选)下的商品信息
  66. engine := db.GetEngine()
  67. topGoodses := make([]HsbyTopGoods, 0)
  68. // 获取挂牌商品信息,以及扩展表信息
  69. session := engine.Table("GOODS").
  70. Select(`GOODS.*,
  71. HSBY_GOODSEX.HOTINDEX, HSBY_GOODSEX.VIDEOURLS, HSBY_GOODSEX.PICURLS,
  72. ENUMDICITEM.ENUMDICNAME CURRENCY, ENUMDICITEM.PARAM2 CURRENCYSIGN`).
  73. Join("LEFT", "HSBY_GOODSEX", "HSBY_GOODSEX.GOODSID = GOODS.GOODSID").
  74. Join("LEFT", "ENUMDICITEM", "ENUMDICITEM.ENUMITEMNAME = GOODS.CURRENCYID and ENUMDICITEM.ENUMDICCODE = 'currency'").
  75. Where("GOODS.MARKETID = ?", marketID)
  76. if descProvinceID > 0 {
  77. session = session.And("HSBY_GOODSEX.DESCPROVINCEID = ?", descProvinceID)
  78. }
  79. if descCityID > 0 {
  80. session = session.And("HSBY_GOODSEX.DESCCITYID = ?", descCityID)
  81. }
  82. if err := session.Find(&topGoodses); err != nil {
  83. return nil, err
  84. }
  85. if len(topGoodses) == 0 {
  86. // 无数据
  87. return topGoodses, nil
  88. }
  89. // 获取商品ID列表
  90. goodsCodes := ""
  91. for _, v := range topGoodses {
  92. if len(goodsCodes) == 0 {
  93. goodsCodes = v.Goodscode
  94. } else {
  95. goodsCodes += "," + v.Goodscode
  96. }
  97. }
  98. // 获取商品现价
  99. quoteDays, err := GetQuoteDays(goodsCodes)
  100. if err != nil {
  101. return nil, err
  102. }
  103. for i, g := range topGoodses {
  104. for _, q := range quoteDays {
  105. if g.Goodscode == q.Goodscode {
  106. if q.Last != 0 {
  107. topGoods := &topGoodses[i]
  108. topGoods.Last = utils.IntToFloat64(int(q.Last), int(g.Decimalplace))
  109. }
  110. continue
  111. }
  112. }
  113. }
  114. return topGoodses, nil
  115. }
  116. // HsbyListingGoodsDetail 二级市场(挂牌点选)商品信息详情
  117. type HsbyListingGoodsDetail struct {
  118. Goodsid int64 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID(自增ID SEQ_GOODS)
  119. Goodscode string `json:"goodscode" xorm:"'GOODSCODE'" binding:"required"` // 商品代码(内部)
  120. Goodsname string `json:"goodsname" xorm:"'GOODSNAME'" binding:"required"` // 商品名称
  121. Decimalplace int64 `json:"decimalplace" xorm:"'DECIMALPLACE'"` // 报价小数位
  122. Marketid int64 `json:"marketid" xorm:"'MARKETID'" binding:"required"` // 所属市场ID
  123. Hotindex int32 `json:"hotindex" xorm:"'HOTINDEX'"` // 景点热度
  124. Videourls string `json:"videourls" xorm:"'VIDEOURLS'"` // 介绍视频[多张用逗号分隔]
  125. Picurls string `json:"picurls" xorm:"'PICURLS'"` // 介绍图片[多张用逗号分隔]
  126. Descprovinceid int64 `json:"descprovinceid" xorm:"'DESCPROVINCEID'"` // 目的地(省)ID
  127. Desccityid int64 `json:"desccityid" xorm:"'DESCCITYID'"` // 目的地(市)ID
  128. Goodsdesc string `json:"goodsdesc" xorm:"'GOODSDESC'"` // 商品详情
  129. Currency string `json:"currency" xorm:"'CURRENCY'"` // 货币
  130. Currencysign string `json:"currencysign" xorm:"'CURRENCYSIGN'"` // 货币符号
  131. Vendorname string `json:"vendorname" xorm:"'VENDORNAME'"` // 供应商名称
  132. Vendorphone string `json:"vendorphone" xorm:"'VENDORPHONE'"` // 供应商客服电话
  133. Vendorattr string `json:"vendorattr" xorm:"'VENDORATTR'"` // 供应商附件(多张,逗号分隔)
  134. Last float64 `json:"last" xorm:"-"` // 现价
  135. }
  136. // GetHsbyListingGoodsDetail 获取二级市场(挂牌点选)商品信息详情
  137. // 参数 goodsID int 目标商品ID
  138. // 返回 *HsbyListingGoodsDetail 二级市场(挂牌点选)商品信息详情,查询无结果返回nil
  139. // 返回 error error
  140. func GetHsbyListingGoodsDetail(goodsID int) (*HsbyListingGoodsDetail, error) {
  141. engine := db.GetEngine()
  142. details := make([]HsbyListingGoodsDetail, 0)
  143. // 获取挂牌商品信息,以及扩展表信息
  144. // FIXME: - 这里使用Get方法,会造成SQL语句的嵌套出错,后期再研究
  145. session := engine.Table("GOODS").
  146. Select(`GOODS.GOODSID, GOODS.GOODSCODE, GOODS.GOODSNAME, GOODS.DECIMALPLACE, GOODS.MARKETID,
  147. HSBY_GOODSEX.HOTINDEX, HSBY_GOODSEX.VIDEOURLS, HSBY_GOODSEX.PICURLS, HSBY_GOODSEX.DESCPROVINCEID, HSBY_GOODSEX.Desccityid, HSBY_GOODSEX.Goodsdesc,
  148. ENUMDICITEM.ENUMDICNAME CURRENCY, ENUMDICITEM.PARAM2 CURRENCYSIGN,
  149. HSBY_SUPPLIERINFO.VENDORNAME, HSBY_SUPPLIERINFO.VENDORPHONE, HSBY_SUPPLIERINFO.VENDORATTR`).
  150. Join("LEFT", "HSBY_GOODSEX", "HSBY_GOODSEX.GOODSID = GOODS.GOODSID").
  151. Join("LEFT", "ENUMDICITEM", "ENUMDICITEM.ENUMITEMNAME = GOODS.CURRENCYID and ENUMDICITEM.ENUMDICCODE = 'currency'").
  152. Join("LEFT", "HSBY_SUPPLIERINFO", "HSBY_SUPPLIERINFO.VENDORID = HSBY_GOODSEX.VENDORID").
  153. Where("GOODS.GOODSID = ?", goodsID)
  154. if err := session.Find(&details); err != nil {
  155. return nil, err
  156. }
  157. // 无目标商品
  158. if len(details) == 0 {
  159. return nil, nil
  160. }
  161. hsbyListingGoodsDetail := details[0]
  162. // 获取商品现价
  163. quoteDays, err := GetQuoteDays(hsbyListingGoodsDetail.Goodscode)
  164. if err != nil {
  165. return nil, err
  166. }
  167. if len(quoteDays) > 0 {
  168. if quoteDays[0].Last != 0 {
  169. hsbyListingGoodsDetail.Last = utils.IntToFloat64(int(quoteDays[0].Last), int(hsbyListingGoodsDetail.Decimalplace))
  170. }
  171. }
  172. return &hsbyListingGoodsDetail, nil
  173. }
  174. // HsbyGoodsOrderDetail 二级市场挂牌商品当前可摘委托单信息
  175. type HsbyGoodsOrderDetail struct {
  176. Orderid int64 `json:"orderid" xorm:"'ORDERID'" binding:"required"` // 委托单号(100+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
  177. Buyorsell int32 `json:"buyorsell" xorm:"'BUYORSELL'" binding:"required"` // 买卖 - 0:买 1:卖
  178. Ordertime time.Time `json:"ordertime" xorm:"'ORDERTIME'" binding:"required"` // 委托时间
  179. Orderprice float64 `json:"orderprice" xorm:"'ORDERPRICE'"` // 委托价格
  180. Enableqty int64 `json:"enableqty" xorm:"ENABLEQTY"` // 可用数量
  181. Customername string `json:"customername" xorm:"'CUSTOMERNAME'"` // 客户名称(企业名称),已脱敏
  182. Currencysign string `json:"currencysign" xorm:"-"` // 货币符号
  183. Goodunit string `json:"goodunit" xorm:"-"` // 报价单位
  184. }
  185. // GetHsbyGoodsOrderDetails 获取二级市场(挂牌点选)商品对应的挂牌委托单信息
  186. // 参数 goodsID int 商品ID
  187. // 返回 []HsbyGoodsOrderDetail 转让(卖出)挂牌委托单
  188. // 返回 []HsbyGoodsOrderDetail 求购(买入)挂牌委托单
  189. // 返回 error error
  190. func GetHsbyGoodsOrderDetails(goodsID int) ([]HsbyGoodsOrderDetail, []HsbyGoodsOrderDetail, error) {
  191. engine := db.GetEngine()
  192. // 获取与目标商品相关的挂牌委托单信息(ListingSelectType = 1 or 3; OrderStatus =3 or 7)
  193. hsbyGoodsOrderDetails := make([]HsbyGoodsOrderDetail, 0)
  194. if err := engine.Table("TRADE_ORDERDETAIL").
  195. Select(`TRADE_ORDERDETAIL.ORDERID, TRADE_ORDERDETAIL.BUYORSELL, TRADE_ORDERDETAIL.ORDERTIME, TRADE_ORDERDETAIL.ORDERPRICE, (TRADE_ORDERDETAIL.ORDERQTY - TRADE_ORDERDETAIL.TRADEQTY - TRADE_ORDERDETAIL.CANCELQTY) ENABLEQTY,
  196. substr(USERINFO.CUSTOMERNAME,0,1)||'****' as CUSTOMERNAME`).
  197. Join("LEFT", "TAACCOUNT", "TAACCOUNT.ACCOUNTID = TRADE_ORDERDETAIL.ACCOUNTID").
  198. Join("LEFT", "USERINFO", "USERINFO.USERID = TAACCOUNT.RELATEDUSERID").
  199. Where("(TRADE_ORDERDETAIL.LISTINGSELECTTYPE = 1 or TRADE_ORDERDETAIL.LISTINGSELECTTYPE = 3) and (TRADE_ORDERDETAIL.ORDERSTATUS = 3 or TRADE_ORDERDETAIL.ORDERSTATUS = 7)").
  200. And("TRADE_ORDERDETAIL.GOODSID = ?", goodsID).Find(&hsbyGoodsOrderDetails); err != nil {
  201. return nil, nil, err
  202. }
  203. sellOrderDetails := make([]HsbyGoodsOrderDetail, 0)
  204. buyOrderDetails := make([]HsbyGoodsOrderDetail, 0)
  205. if len(hsbyGoodsOrderDetails) == 0 {
  206. // 无数据
  207. return sellOrderDetails, buyOrderDetails, nil
  208. }
  209. // 获取商品货币符号和报价单位
  210. goods, err := GetGoods(goodsID)
  211. if err != nil {
  212. return nil, nil, err
  213. }
  214. currencyEnums, err := GetEnumDicItem("currency", int(goods.Currencyid))
  215. if err != nil {
  216. return nil, nil, err
  217. }
  218. currencysign := ""
  219. if len(currencyEnums) > 0 {
  220. currencysign = currencyEnums[0].Param2
  221. }
  222. goodsUnitEnums, err := GetEnumDicItem("goodsunit", int(goods.Goodunitid))
  223. if err != nil {
  224. return nil, nil, err
  225. }
  226. goodsUnit := ""
  227. if len(goodsUnitEnums) > 0 {
  228. goodsUnit = goodsUnitEnums[0].Enumdicname
  229. }
  230. for i := range hsbyGoodsOrderDetails {
  231. orderDetail := &hsbyGoodsOrderDetails[i]
  232. // 设置货币符号和报价单位
  233. orderDetail.Currencysign = currencysign
  234. orderDetail.Goodunit = goodsUnit
  235. // 分解转让(卖)和求购(买)单
  236. if orderDetail.Buyorsell == 1 {
  237. sellOrderDetails = append(sellOrderDetails, *orderDetail)
  238. }
  239. if orderDetail.Buyorsell == 0 {
  240. buyOrderDetails = append(buyOrderDetails, *orderDetail)
  241. }
  242. }
  243. return sellOrderDetails, buyOrderDetails, nil
  244. }
  245. // HybsMyBuyOrderDetail 我的订单(一二级市场的买方向委托单)
  246. type HybsMyBuyOrderDetail struct {
  247. Orderid int64 `json:"orderid" xorm:"'ORDERID'" binding:"required"` // 委托单号(100+Unix秒时间戳(10位)+2位(MarketServiceID)+xxxx)
  248. Marketid int32 `json:"marketid" xorm:"'MARKETID'" binding:"required"` // 市场ID
  249. Goodsid int32 `json:"goodsid" xorm:"'GOODSID'" binding:"required"` // 商品ID
  250. Accountid int64 `json:"accountid" xorm:"'ACCOUNTID'" binding:"required"` // 账户ID[报价币种]
  251. Buyorsell int32 `json:"buyorsell" xorm:"'BUYORSELL'" binding:"required"` // 买卖 - 0:买 1:卖
  252. Orderqty int64 `json:"orderqty" xorm:"'ORDERQTY'" binding:"required"` // 委托数量
  253. Tradeqty int64 `json:"tradeqty" xorm:"'TRADEQTY'"` // 成交数量
  254. Cancelqty int64 `json:"cancelqty" xorm:"'CANCELQTY'"` // 撤单数量
  255. Ordertime time.Time `json:"ordertime" xorm:"'ORDERTIME'" binding:"required"` // 委托时间
  256. Listingselecttype int32 `json:"listingselecttype" xorm:"'LISTINGSELECTTYPE'"` // 挂牌点选类型 - 1:挂牌 2:摘牌 3:先摘后挂
  257. Orderstatus int32 `json:"orderstatus" xorm:"'ORDERSTATUS'"` // 委托状态 - 1: 委托请求 2:待冻结 3:委托成功 4: 委托失败 5:配对成功 6: 已撤销 7:部分成交 8:已成交 9:部成部撤 10:成交失败 11:已拒绝 12:经过摘牌(先摘后挂专用-先摘后挂已摘过) 13:冻结成功(通道交易专用) 14:通道已撤 15:通道部成部撤 16:成交失败违约(荷兰式竞拍专用)
  258. Goodsname string `json:"goodsname" xorm:"'GOODSNAME'" binding:"required"` // 商品名称
  259. Decimalplace int64 `json:"decimalplace" xorm:"'DECIMALPLACE'"` // 报价小数位
  260. Picurls string `json:"picurls" xorm:"'PICURLS'"` // 介绍图片[多张用逗号分隔]
  261. Trademode uint32 `json:"trademode" xorm:"'TRADEMODE'" binding:"required"` // 交易模式 - 10:做市 13:竞价 15:通道交易 16:挂牌点选 17:仓单贸易 18:期权 19:竞拍-降价式 20:竞拍-竞价式 21:竞拍-大宗式 22:受托竞价
  262. Currencysign string `json:"currencysign" xorm:"'CURRENCYSIGN'"` // 货币符号
  263. MyBuyStatus int `json:"mybuystatus" xorm:"-"` // "我的订单"显示状态- 1:抢购中 2:求购中 3:已完成 4:已撤消 5:委托失败
  264. }
  265. // GetHsbyBuyMyOrderDetails 获取“我的订单”数据(包括一二级市场)
  266. // 输入 accountID int 资金账户
  267. // 输入 myBuyStatus int "我的订单"状态, 1:抢购中 2:求购中 3:已完成
  268. // 输出 []HybsMyBuyOrderDetail “我的订单”数据
  269. // 输出 error error
  270. func GetHsbyBuyMyOrderDetails(accountID, myBuyStatus int) ([]HybsMyBuyOrderDetail, error) {
  271. engine := db.GetEngine()
  272. // 获取市场信息
  273. markets, err := GetMarkets()
  274. if err != nil {
  275. return nil, err
  276. }
  277. // 委托状态
  278. orderStatus := "0" // 单据状态,为0的时候查询全部
  279. marketID := 0 // 我的订单包括一二级市场的单据,目前暂时由服务直接报相关类型的第一个市场
  280. switch myBuyStatus {
  281. case 1: // 抢购中 (一级市场)
  282. // 获取市场ID
  283. for _, v := range markets {
  284. if v.Trademode == 71 { // 预售挂牌
  285. marketID = int(v.Marketid)
  286. break
  287. }
  288. }
  289. orderStatus = "3,7"
  290. case 2: // 求购中(二级市场)
  291. // 获取市场ID
  292. for _, v := range markets {
  293. if v.Trademode == 16 { // 挂牌点选
  294. marketID = int(v.Marketid)
  295. break
  296. }
  297. }
  298. orderStatus = "3,7"
  299. case 3: // 已完成
  300. orderStatus = "8,9"
  301. }
  302. hybsMyBuyOrderDetails := make([]HybsMyBuyOrderDetail, 0)
  303. session := engine.Table("TRADE_ORDERDETAIL").
  304. Select(`TRADE_ORDERDETAIL.*,
  305. GOODS.GOODSNAME, GOODS.DECIMALPLACE,
  306. HSBY_GOODSEX.PICURLS,
  307. MARKET.TRADEMODE,
  308. ENUMDICITEM.PARAM2 CURRENCYSIGN`).
  309. Join("LEFT", "GOODS", "GOODS.GOODSID = TRADE_ORDERDETAIL.GOODSID").
  310. Join("LEFT", "HSBY_GOODSEX", "HSBY_GOODSEX.GOODSID = GOODS.GOODSID").
  311. Join("LEFT", "ENUMDICITEM", "GOODS.CURRENCYID = ENUMDICITEM.ENUMITEMNAME and ENUMDICITEM.ENUMDICCODE = 'currency'").
  312. Join("LEFT", "MARKET", "MARKET.MARKETID = TRADE_ORDERDETAIL.MARKETID").
  313. Where("TRADE_ORDERDETAIL.ACCOUNTID = ?", accountID)
  314. // 是否过滤市场(抢购中、求购中)
  315. if marketID > 0 {
  316. session = session.And("TRADE_ORDERDETAIL.MARKETID = ?", marketID)
  317. }
  318. // 是否过滤状态(抢购中、求购中、已完成)
  319. if orderStatus != "0" {
  320. session = session.And(fmt.Sprintf("TRADE_ORDERDETAIL.ORDERSTATUS in (%s)", orderStatus))
  321. }
  322. if err := session.Find(&hybsMyBuyOrderDetails); err != nil {
  323. return nil, err
  324. }
  325. // 设置“我的订单”显示状态
  326. for i := range hybsMyBuyOrderDetails {
  327. detail := &hybsMyBuyOrderDetails[i]
  328. if detail.Trademode == 71 && (detail.Orderstatus == 3 || detail.Orderstatus == 7) {
  329. // 抢购中
  330. detail.MyBuyStatus = 1
  331. } else if detail.Trademode == 16 && (detail.Orderstatus == 3 || detail.Orderstatus == 7) {
  332. // 求购中
  333. detail.MyBuyStatus = 2
  334. } else if detail.Orderstatus == 8 || detail.Orderstatus == 9 {
  335. // 已完成
  336. detail.MyBuyStatus = 3
  337. } else if detail.Orderstatus == 6 {
  338. // 已撤销
  339. detail.MyBuyStatus = 4
  340. } else if detail.Orderstatus == 4 {
  341. // 委托失败
  342. detail.MyBuyStatus = 5
  343. }
  344. }
  345. return hybsMyBuyOrderDetails, nil
  346. }