validated(); $goods = ExchangeGoods::create($data); //修改redi商品库存 $goods->updateCacheStock(); return $this->success('ok'); } /** * 修改商品 * @param StoreExchangeGoods $request * @param ExchangeGoods $goods * @return \Illuminate\Contracts\View\Factory|\Illuminate\Foundation\Application|\Illuminate\Http\JsonResponse|\Illuminate\View\View */ public function updateGoods(StoreExchangeGoods $request, ExchangeGoods $goods) { $data = $request->validated(); $goods->update($data); $goods->updateCacheStock(); return $this->success('ok'); } /** * 商品上下架 * @param Request $request * @param ExchangeGoods $goods * @return \Illuminate\Contracts\View\Factory|\Illuminate\Foundation\Application|\Illuminate\Http\JsonResponse|\Illuminate\View\View */ public function saleGoods(Request $request, ExchangeGoods $goods) { $goods->is_sale = $goods->is_sale?0:1; $goods->save(); return $this->success('ok'); } /** * 商品列表 * @param Request $request * @return \Illuminate\Contracts\View\Factory|\Illuminate\Foundation\Application|\Illuminate\Http\JsonResponse|\Illuminate\View\View */ public function goodsList(Request $request) { $goods = ExchangeGoods::query(); $is_sale = $request->input('is_sale'); if (is_numeric($is_sale)) { $goods->sale(); } if ($request->input('keyword')) { $goods = $goods->keywords(); } $goods = $goods->orderByDesc('id')->paginate(); return $this->success('ok', $goods); } /** * 商品详情 * @param Request $request * @param ExchangeGoods $goods * @return \Illuminate\Contracts\View\Factory|\Illuminate\Foundation\Application|\Illuminate\Http\JsonResponse|\Illuminate\View\View */ public function goods(Request $request, ExchangeGoods $goods) { return $this->success('ok', $goods); } /** * 删除商品 * @param Request $request * @param ExchangeGoods $goods * @return \Illuminate\Contracts\View\Factory|\Illuminate\Foundation\Application|\Illuminate\Http\JsonResponse|\Illuminate\View\View * @throws \Exception */ public function deleteGoods(Request $request, ExchangeGoods $goods) { $goods->delete(); return $this->success('ok'); } /** * 商品兑换记录 * @param Request $request * @param ExchangeGoods $goods * @return \Illuminate\Contracts\View\Factory|\Illuminate\Foundation\Application|\Illuminate\Http\JsonResponse|\Illuminate\View\View */ public function exchangeLogs(Request $request, ExchangeGoods $goods) { $logs = $goods->exchangeLogs()->with('user:id,nickname,photo','goods:id,price,title,pic'); $keyword = $request->input('keyword'); if ($keyword) { $logs = $logs->keyword(); } $status = $request->input('status'); if ($status) { $logs = $logs->status(); } $logs = $logs->paginate(); return $this->success('ok', $logs); } public function sendLog(SendCoinExchange $request, CoinExchange $log) { $data = $request->validated(); $data['status'] = 'SENDING'; $log->update($data); return $this->success('ok'); } }