面包店
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

svc_goods_list.go 4.6 KiB

9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. package goods
  2. import (
  3. "applet/app/admin/md"
  4. "applet/app/db"
  5. "applet/app/svc"
  6. "applet/app/utils"
  7. "github.com/gin-gonic/gin"
  8. )
  9. // 获取列表数据
  10. func GetMallGoodsList(c *gin.Context, req *md.MallGoodsListReq) (interface{}, int64, error) {
  11. var goodsListResp []md.MallGoodListResp
  12. // 获取分库链接
  13. engine := db.Db
  14. // 查询goods数据表获取数据
  15. mallGoodsList, skus, total, err := db.GetMallGoodsListLeftOnMallSku(engine, req)
  16. if err != nil {
  17. return nil, 0, err
  18. }
  19. var tmpMap interface{}
  20. scheme, host, subDomain, moreSubDomain := svc.ImageBucketNew(c)
  21. if err != nil {
  22. return nil, 0, err
  23. }
  24. for _, item := range mallGoodsList {
  25. var goods md.MallGoodListResp
  26. goods.GoodsId = item["goods_id"]
  27. goods.SaleState = utils.StrToInt(item["sale_state"])
  28. goods.Sales = utils.StrToInt(item["sales"])
  29. goods.CreateAt = item["create_at"]
  30. // 商品主图
  31. if item["image_list"] != "" {
  32. utils.Unserialize([]byte(item["image_list"]), &tmpMap)
  33. var imageListUrlTmp []string
  34. for _, v := range tmpMap.([]interface{}) {
  35. imageListUrlTmp = append(imageListUrlTmp, svc.ImageFormatWithBucketNew(scheme, host, subDomain, moreSubDomain, v.(string)))
  36. }
  37. if imageListUrlTmp != nil {
  38. goods.Image = imageListUrlTmp[0]
  39. }
  40. }
  41. goods.UpdateAt = item["update_at"]
  42. goods.Title = item["title"]
  43. // 状态
  44. switch utils.StrToInt64(item["sale_state"]) {
  45. case 1.00:
  46. goods.SaleStateText = "銷售中"
  47. break
  48. case 2.00:
  49. goods.SaleStateText = "下架"
  50. break
  51. }
  52. // sku
  53. for _, skuItem := range skus {
  54. if skuItem.GoodsId == utils.StrToInt64(item["goods_id"]) {
  55. goods.SkuList = append(goods.SkuList, skuItem)
  56. }
  57. }
  58. // 获取价格、库存、重量范围、利润空间
  59. goods.Price = item["price"]
  60. goodsListResp = append(goodsListResp, goods)
  61. }
  62. return goodsListResp, total, err
  63. }
  64. // 获取列表数据(给方案用)
  65. //func GetMallGoodsListForScheme(c *gin.Context, req *md.MallGoodsListReq, schemeId int) (interface{}, int64, error) {
  66. // schemeDb := db.SchemeDb{}
  67. // schemeDb.Set()
  68. // schemeInfo, err := schemeDb.GetScheme(schemeId)
  69. // if err != nil {
  70. // return nil, 0, err
  71. // }
  72. // if schemeInfo == nil {
  73. // return nil, 0, errors.New("未查询到相应方案记录")
  74. // }
  75. //
  76. // var goodsListResp []md.MallGoodListResp
  77. // // 获取分库链接
  78. // engine := db.Db
  79. // // 查询goods数据表获取数据
  80. // mallGoodsList, skus, total, err := db.GetMallGoodsListLeftOnMallSku(engine, req)
  81. // if err != nil {
  82. // return nil, 0, err
  83. // }
  84. // var tmpMap interface{}
  85. // scheme, host, subDomain, moreSubDomain := svc.ImageBucketNew(c)
  86. // if err != nil {
  87. // return nil, 0, err
  88. // }
  89. //
  90. // //获取方案中sku的价格
  91. // var skuIds []string
  92. // for _, v := range skus {
  93. // skuIds = append(skuIds, utils.Int64ToStr(v.SkuId))
  94. // }
  95. //
  96. // var schemeWithSkusMap = map[int]*model.SchemeWithSku{}
  97. // if len(skuIds) > 0 {
  98. // var schemeWithSkus []*model.SchemeWithSku
  99. // err = engine.Where("1 = 1").And(fmt.Sprintf("sku_id In (%s)", strings.Join(skuIds, ","))).Find(&schemeWithSkus)
  100. // if err != nil {
  101. // return nil, 0, err
  102. // }
  103. // for _, v := range schemeWithSkus {
  104. // schemeWithSkusMap[v.SkuId] = v
  105. // }
  106. // }
  107. //
  108. // for _, item := range mallGoodsList {
  109. // var goods md.MallGoodListResp
  110. // goods.GoodsId = item["goods_id"]
  111. // goods.SaleState = utils.StrToInt(item["sale_state"])
  112. // goods.Sales = utils.StrToInt(item["sales"])
  113. // goods.CreateAt = item["create_at"]
  114. //
  115. // // 商品主图
  116. // if item["image_list"] != "" {
  117. // utils.Unserialize([]byte(item["image_list"]), &tmpMap)
  118. // var imageListUrlTmp []string
  119. // for _, v := range tmpMap.([]interface{}) {
  120. // imageListUrlTmp = append(imageListUrlTmp, svc.ImageFormatWithBucketNew(scheme, host, subDomain, moreSubDomain, v.(string)))
  121. // }
  122. // if imageListUrlTmp != nil {
  123. // goods.Image = imageListUrlTmp[0]
  124. // }
  125. // }
  126. //
  127. // goods.UpdateAt = item["update_at"]
  128. // goods.Title = item["title"]
  129. //
  130. // // 状态
  131. // switch utils.StrToInt64(item["sale_state"]) {
  132. // case 1.00:
  133. // goods.SaleStateText = "銷售中"
  134. // break
  135. // case 2.00:
  136. // goods.SaleStateText = "下架"
  137. // break
  138. // }
  139. //
  140. // // sku
  141. // for _, skuItem := range skus {
  142. // if skuItem.GoodsId == utils.StrToInt64(item["goods_id"]) {
  143. // goods.SkuList = append(goods.SkuList, skuItem)
  144. // }
  145. // }
  146. // // 获取价格、库存、重量范围、利润空间
  147. // goods.Price = item["price"]
  148. // goodsListResp = append(goodsListResp, goods)
  149. // }
  150. //
  151. // return goodsListResp, total, err
  152. //}
  153. func CheckSkuCode(c *gin.Context, skuCode, goodsId string) (bool, error) {
  154. engine := db.Db
  155. isHas, _, err := db.GetMallSkuBySkuCode(engine, skuCode, goodsId)
  156. if err != nil {
  157. return false, err
  158. }
  159. return isHas, nil
  160. }