StoreProduct.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\model\api;
  4. use think\Model;
  5. /**
  6. * @mixin \think\Model
  7. */
  8. class StoreProduct extends Model
  9. {
  10. protected $name = 'store_product';
  11. /**
  12. * 获取商品列表
  13. * @param array $where
  14. * @param int $page
  15. * @param int $pageSize
  16. * @return array
  17. */
  18. public function getList($where = [], $page = 1, $pageSize = 20)
  19. {
  20. $page = (int)$page;
  21. $pageSize = (int)$pageSize;
  22. $query = $this->where($where);
  23. $totalCount = $query->count();
  24. $list = $query
  25. ->order('sort', 'desc')
  26. ->order('id', 'desc')
  27. ->page($page, $pageSize)
  28. ->select()
  29. ->toArray();
  30. return [
  31. 'list' => $list,
  32. 'totalCount' => $totalCount,
  33. 'pageSize' => $pageSize,
  34. 'page' => $page
  35. ];
  36. }
  37. /**
  38. * 获取商品详情
  39. * @param int $id
  40. * @return array|null
  41. */
  42. public function getDetail($id)
  43. {
  44. $product = $this->where('id', $id)->find();
  45. if (!$product) {
  46. return null;
  47. }
  48. $data = $product->toArray();
  49. // 获取SKU列表
  50. $skuList = (new StoreProductAttrValue())->where('product_id', $id)->select()->toArray();
  51. $data['sku_list'] = $skuList;
  52. return $data;
  53. }
  54. }