Product.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace app\model\api;
  3. use library\traits\ModelTrait;
  4. use think\Model;
  5. /**
  6. * @mixin \think\Model
  7. */
  8. class Product extends Model
  9. {
  10. use ModelTrait;
  11. public static function getProductList($data)
  12. {
  13. $cid = $data['cid'];
  14. $keyword = $data['keyword'];
  15. $page = $data['page'];
  16. $limit = $data['limit'];
  17. $model = self::where('is_del', 0)->where('is_show', 1);
  18. if($keyword != ''){
  19. $model->where('store_name|keyword', 'LIKE', "%$keyword%");
  20. }
  21. if($cid){
  22. if($cid == -1){
  23. $model->where('issuing', 1);
  24. }else if($cid == -2){
  25. $model->where('is_leftover', 1);
  26. }else if($cid == -3){
  27. $model->where('is_best', 1);
  28. }else{
  29. $model->where('cate_id', $cid);
  30. }
  31. if($data['sort'] == 'sort'){
  32. $model->order('sort DESC, add_time DESC');
  33. }
  34. }else{
  35. $model->where('stars', '>', 1);
  36. if($data['sort'] == 'sort'){
  37. $model->order('stars DESC, sort DESC, add_time DESC');
  38. }
  39. }
  40. if($data['sort'] == 'sales'){
  41. $model->orderRaw('sales+ficti desc');
  42. }
  43. if($data['sort'] == 'commission'){
  44. $model->orderRaw('price-ot_price desc');
  45. }
  46. if($data['sort'] == 'new'){
  47. $model->order('add_time DESC');
  48. }
  49. $list = $model->page((int)$page, (int)$limit)->field('id,store_name,image,price,cost,ot_price,(price-ot_price) as commission,IFNULL(sales,0) + IFNULL(ficti,0) as sales,label,is_new')->select();
  50. $list = count($list) ? $list->toArray() : [];
  51. return $list;
  52. }
  53. public static function getValidProduct($productId, $field = 'add_time,browse,cate_id,code_path,cost,ficti,id,image,is_sub,is_best,is_del,is_hot,is_show,keyword,ot_price,postage,price,(price-ot_price) as commission,sales,slider_image,detail_image,sort,stock,store_info,store_name,unit_name,vip_price,spec_type,IFNULL(sales,0) + IFNULL(ficti,0) as fsales,video_link,description,code,is_new')
  54. {
  55. $Product = self::where('is_del', 0)->where('is_show', 1)->where('id', $productId)->field($field)->find();
  56. if ($Product) return $Product->toArray();
  57. else return false;
  58. }
  59. public static function getGoodList($limit = 18, $field = '*')
  60. {
  61. $list = self::where('is_best', 1)->order('sort desc,id desc')->limit($limit)->field($field)->select();
  62. $list = count($list) ? $list->toArray() : [];
  63. return $list;
  64. }
  65. }