diff --git a/app/Controller/v3/GoodsController.php b/app/Controller/v3/GoodsController.php index 4ce996b..3425853 100644 --- a/app/Controller/v3/GoodsController.php +++ b/app/Controller/v3/GoodsController.php @@ -114,7 +114,15 @@ class GoodsController extends BaseController $data['on_sale'] = $this->request->input('on_sale',0); $data['is_infinite'] = $this->request->input('is_infinite',0); $data['user_id'] = $this->request->input('user_id',0); + $data['cover_img'] = $this->request->input('cover_img',0); + $banners = $this->request->input('banner',0); $res = $this->goodsService->update($data); + if(!empty($banners)){ + $banners = explode(',',$banners); + foreach ($banners as $banner){ + $this->goodsService->bannerCreate($data['id'],$banner,1); + } + } return $this->success($res); } @@ -162,7 +170,15 @@ class GoodsController extends BaseController $data['on_sale'] = $this->request->input('on_sale',0); $data['is_infinite'] = $this->request->input('is_infinite',0); $data['user_id'] = $this->request->input('user_id',0); + $data['cover_img'] = $this->request->input('cover_img',0); + $banners = $this->request->input('banner',0); $res = $this->goodsService->create($data); + if(!empty($banners)){ + $banners = explode(',',$banners); + foreach ($banners as $banner){ + $this->goodsService->bannerCreate($res['id'],$banner,1); + } + } return $this->success($res); } @@ -177,4 +193,10 @@ class GoodsController extends BaseController $goodsId = $this->request->input('id',0); return $this->success($this->goodsService->updateOnSale($goodsId)); } + + public function bannerDelete() + { + $bannerId = $this->request->input('banner_id',0); + return $this->success($this->goodsService->bannerDelete($bannerId)); + } } \ No newline at end of file diff --git a/app/Model/v3/Goods.php b/app/Model/v3/Goods.php index 7ee3cf8..923974b 100644 --- a/app/Model/v3/Goods.php +++ b/app/Model/v3/Goods.php @@ -62,7 +62,8 @@ class Goods extends Model 'tags', 'remark', 'on_sale', - 'is_infinite' + 'is_infinite', + 'cover_img' ]; /** * The attributes that should be cast to native types. @@ -177,4 +178,9 @@ class Goods extends Model { $this->attributes['spec'] = json_encode(json_decode($value, true)); } + + public function banner() + { + return $this->hasMany(GoodsBanner::class, 'goods_id','id'); + } } \ No newline at end of file diff --git a/app/Model/v3/GoodsBanner.php b/app/Model/v3/GoodsBanner.php index d0cfa69..1ae4438 100644 --- a/app/Model/v3/GoodsBanner.php +++ b/app/Model/v3/GoodsBanner.php @@ -24,6 +24,12 @@ class GoodsBanner extends Model 'banner_url', ]; + protected $fillable = [ + 'id', + 'goods_id', + 'path', + 'type' + ]; public function getBannerUrlAttribute() { diff --git a/app/Service/v3/Implementations/GoodsService.php b/app/Service/v3/Implementations/GoodsService.php index dcaa00d..3ff2de1 100644 --- a/app/Service/v3/Implementations/GoodsService.php +++ b/app/Service/v3/Implementations/GoodsService.php @@ -91,26 +91,6 @@ class GoodsService implements GoodsServiceInterface { $data = [ - 'market_id' => $params['market_id'], - 'store_id' => $params['store_id'], - 'name' => $params['name'], - 'category_id' => $params['category_id'], - 'goods_category_id' => $params['goods_category_id'], - 'goods_unit' => $params['goods_unit'], - 'price' => $params['price'], - 'original_price' => $params['original_price'], - 'inventory' => $params['inventory'], - 'restrict_num' => $params['restrict_num'], - 'start_num' => $params['start_num'], - 'spec' => $params['spec'], - 'tags' => $params['tags'], - 'remark' => $params['remark'], - 'on_sale' => $params['on_sale'], - 'is_infinite' => $params['is_infinite'] - ]; - $this->log->event(LogLabel::CREATE_GOODS_LOG, ['logData' => json_encode( - [ - 'id' => $params['id'], 'market_id' => $params['market_id'], 'store_id' => $params['store_id'], 'name' => $params['name'], @@ -127,9 +107,30 @@ class GoodsService implements GoodsServiceInterface 'remark' => $params['remark'], 'on_sale' => $params['on_sale'], 'is_infinite' => $params['is_infinite'], - 'user_id' => $params['user_id'] - ] - )]); + 'cover_img' => $params['cover_img'] + ]; + // $this->log->event(LogLabel::CREATE_GOODS_LOG, ['logData' => json_encode( + // [ + // 'id' => $params['id'], + // 'market_id' => $params['market_id'], + // 'store_id' => $params['store_id'], + // 'name' => $params['name'], + // 'category_id' => $params['category_id'], + // 'goods_category_id' => $params['goods_category_id'], + // 'goods_unit' => $params['goods_unit'], + // 'price' => $params['price'], + // 'original_price' => $params['original_price'], + // 'inventory' => $params['inventory'], + // 'restrict_num' => $params['restrict_num'], + // 'start_num' => $params['start_num'], + // 'spec' => $params['spec'], + // 'tags' => $params['tags'], + // 'remark' => $params['remark'], + // 'on_sale' => $params['on_sale'], + // 'is_infinite' => $params['is_infinite'], + // 'user_id' => $params['user_id'] + // ] + // )]); return Goods::create($data); } @@ -145,26 +146,6 @@ class GoodsService implements GoodsServiceInterface ) ->update( [ - 'name' => $params['name'], - 'category_id' => $params['category_id'], - 'goods_category_id' => $params['goods_category_id'], - 'goods_unit' => $params['goods_unit'], - 'price' => $params['price'], - 'original_price' => $params['original_price'], - 'inventory' => $params['inventory'], - 'restrict_num' => $params['restrict_num'], - 'start_num' => $params['start_num'], - 'spec' => $params['spec'], - 'tags' => $params['tags'], - 'remark' => $params['remark'], - 'on_sale' => $params['on_sale'], - 'is_infinite' => $params['is_infinite'] - ]); - $this->log->event(LogLabel::UPDATE_GOODS_LOG, ['logData' => json_encode( - [ - 'id' => $params['id'], - 'market_id' => $params['market_id'], - 'store_id' => $params['store_id'], 'name' => $params['name'], 'category_id' => $params['category_id'], 'goods_category_id' => $params['goods_category_id'], @@ -179,15 +160,36 @@ class GoodsService implements GoodsServiceInterface 'remark' => $params['remark'], 'on_sale' => $params['on_sale'], 'is_infinite' => $params['is_infinite'], - 'user_id' => $params['user_id'] - ] - )]); + 'cover_img' => $params['cover_img'] + ]); + // $this->log->event(LogLabel::UPDATE_GOODS_LOG, ['logData' => json_encode( + // [ + // 'id' => $params['id'], + // 'market_id' => $params['market_id'], + // 'store_id' => $params['store_id'], + // 'name' => $params['name'], + // 'category_id' => $params['category_id'], + // 'goods_category_id' => $params['goods_category_id'], + // 'goods_unit' => $params['goods_unit'], + // 'price' => $params['price'], + // 'original_price' => $params['original_price'], + // 'inventory' => $params['inventory'], + // 'restrict_num' => $params['restrict_num'], + // 'start_num' => $params['start_num'], + // 'spec' => $params['spec'], + // 'tags' => $params['tags'], + // 'remark' => $params['remark'], + // 'on_sale' => $params['on_sale'], + // 'is_infinite' => $params['is_infinite'], + // 'user_id' => $params['user_id'] + // ] + // )]); return $goods; } public function info($goodsId) { - $res = Goods::query()->withoutGlobalScope('normal')->where('id',$goodsId)->first(); + $res = Goods::query()->withoutGlobalScope('normal')->where('id',$goodsId)->with('banner')->first(); return $res; } @@ -207,4 +209,19 @@ class GoodsService implements GoodsServiceInterface $goods->on_sale = $onSale % 2; return $goods->save(); } + + public function bannerDelete($bannerId) + { + return GoodsBanner::query()->where('id',$bannerId)->delete(); + } + + public function bannerCreate($goodsId,$path,$type = 1) + { + $date = [ + 'goods_id' => $goodsId, + 'path' => $path, + 'type' => $type + ]; + return GoodsBanner::create($date); + } } \ No newline at end of file diff --git a/app/Service/v3/Interfaces/GoodsServiceInterface.php b/app/Service/v3/Interfaces/GoodsServiceInterface.php index 638fb70..5462562 100644 --- a/app/Service/v3/Interfaces/GoodsServiceInterface.php +++ b/app/Service/v3/Interfaces/GoodsServiceInterface.php @@ -16,4 +16,6 @@ interface GoodsServiceInterface public function info($goodsId); public function getTags(); public function updateOnSale($goodsId); + public function bannerDelete($bannerId); + public function bannerCreate($goodsId, $path, $type = 1); } \ No newline at end of file diff --git a/config/routes.php b/config/routes.php index acf3c31..fbb8832 100644 --- a/config/routes.php +++ b/config/routes.php @@ -175,6 +175,7 @@ Router::addGroup('/v3/', function () { Router::post('horseman/setHorsemanCoordinate', 'App\Controller\v3\HorsemanController@setHorsemanCoordinate'); Router::post('horseman/getOrderInfo', 'App\Controller\v3\HorsemanController@getOrderInfo'); Router::post('horseman/orderComplete', 'App\Controller\v3\HorsemanController@orderComplete'); + Router::post('goods/bannerDelete', 'App\Controller\v3\GoodsController@bannerDelete'); },['middleware' => [\App\Middleware\Auth\ApiMiddleware::class, \App\Middleware\Auth\UserMiddleware::class]]); // 微信支付回调