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.

57 lines
1.4 KiB

5 years ago
5 years ago
  1. <?php
  2. namespace App\Service\v3\Implementations;
  3. use App\Service\v3\Interfaces\GoodsActivityServiceInterface;
  4. use Hyperf\DbConnection\Db;
  5. use App\Constants\v3\Store;
  6. use App\Constants\v3\Goods;
  7. use App\Model\v3\GoodsActivity;
  8. use App\Model\v3\GoodsActivityBanner;
  9. class GoodsActivityService implements GoodsActivityServiceInterface
  10. {
  11. public function do($goodsId)
  12. {
  13. }
  14. public function check($goodsId,$num = 1)
  15. {
  16. $data = GoodsActivity::query()->with('store')->where('id', $goodsId)->first();
  17. //活动商品 校验
  18. if($data->expire_time < time()){
  19. return '活动已结束';
  20. }
  21. if($data->store->is_rest != Store::IS_OPEN_YES){
  22. return '店铺已休息';
  23. }
  24. if($data->on_sale == Goods::ON_SALE_NO || !is_null($data->deleted_at)){
  25. return '商品已下架';
  26. }
  27. if($data->is_infinite != Goods::IS_INVENTORY && $data->inventory < $num){
  28. return '库存不足';
  29. }
  30. return '';
  31. }
  32. public function undo()
  33. {
  34. // TODO: Implement undo() method.
  35. }
  36. public function getBanner($goodsId)
  37. {
  38. $banner = GoodsActivityBanner::query()->where('goods_id',$goodsId)->orderByDesc('type')->get();
  39. return $banner;
  40. }
  41. public function detail($goodsId)
  42. {
  43. $res = GoodsActivity::query()->with('store')->where('id',$goodsId)->first();
  44. return $res;
  45. }
  46. }