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.

48 lines
1.2 KiB

6 years ago
6 years ago
  1. <?php
  2. namespace App\Service\v3\Implementations;
  3. use App\Constants\v3\ErrorCode;
  4. use App\Service\v3\Interfaces\GoodsServiceInterface;
  5. use Hyperf\DbConnection\Db;
  6. use App\Model\v3\Goods;
  7. use App\Model\v3\GoodsBanner;
  8. use App\Constants\v3\Store;
  9. use App\Constants\v3\goods as goodsConstants;
  10. class GoodsService implements GoodsServiceInterface
  11. {
  12. public function do($goodsId)
  13. {
  14. $res = Goods::query()->with('store')->where('id',$goodsId)->first();
  15. return $res;
  16. }
  17. public function check($goodsId,$num = 1)
  18. {
  19. $data = Goods::query()->with('store')->where('id', $goodsId)->first();
  20. if($data->store->is_rest == 1){
  21. return ErrorCode::GOODS_ON_SALE_NO;
  22. }
  23. if($data->on_sale == 0 || !is_null($data->deleted_at)){
  24. return ErrorCode::GOODS_ON_SALE_NO;
  25. }
  26. if($data->is_infinite != 1 && $data->inventory < $num){
  27. return ErrorCode::GOODS_INVENTORY_ERROR;
  28. }
  29. return true;
  30. }
  31. public function undo()
  32. {
  33. // TODO: Implement undo() method.
  34. }
  35. public function getBanner()
  36. {
  37. $banner = GoodsBanner::query()->where('goods_id',1572)->get();
  38. return $banner;
  39. }
  40. }