GoodsController.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace App\Http\Controllers\Shop;
  3. use App\Models\Exchange;
  4. use App\Models\Goods;
  5. use Illuminate\Http\Request;
  6. use App\Http\Requests;
  7. use App\Http\Controllers\Controller;
  8. use Illuminate\Support\Facades\DB;
  9. use Illuminate\Support\Facades\Validator;
  10. class GoodsController extends Controller
  11. {
  12. /**
  13. * Display the specified resource.
  14. *
  15. * @param int $id
  16. * @return \Illuminate\Http\Response
  17. */
  18. public function show($id)
  19. {
  20. $goods = Goods::find($id);
  21. return view('theme::goods.show')->with('goods',$goods);
  22. }
  23. /*兑换礼品*/
  24. public function exchange(Request $request)
  25. {
  26. //$goods = Goods::find($goods_id);
  27. $validator = Validator::make($request->all(), [
  28. 'goods_id' => 'required|integer',
  29. 'real_name' => 'required|max:32',
  30. 'phone' => 'required|regex:/^1[3456789]{1}\d{9}$/',
  31. 'email' => 'required|email|max:64',
  32. 'comment' => 'max:512'
  33. ]);
  34. if ($validator->fails()) {
  35. return response()->json(['result'=>$validator->messages()], 200);
  36. }
  37. $goods = Goods::find($request->input('goods_id'));
  38. if(!$goods){
  39. return response()->json(['result'=>['common'=>['商品不存在,请核实!']]], 200);
  40. }
  41. if($goods->remnants <= 0){
  42. return response()->json(['result'=>['common'=>['商品库存不足,请选择其他商品进行兑换!']]], 200);
  43. }
  44. if($request->user()->userData->coins < $goods->coins ){
  45. return response()->json(['result'=>['common'=>['抱歉!您的金币不足!']]], 200);
  46. }
  47. if ($validator->fails()) {
  48. return response()->json(['result'=>$validator->messages()], 200);
  49. }
  50. $this->credit($request->user()->id,'exchange',-$goods->coins,0,$goods->id,$goods->name);
  51. try{
  52. $goods->decrement('remnants');
  53. $goods->save();
  54. $data = $request->all();
  55. $data['user_id'] = $request->user()->id;
  56. $data['coins'] = $goods->coins;
  57. $data['status'] = 0;
  58. Exchange::create($data);
  59. }catch(\Exception $e){
  60. return response()->json(['result'=>['common'=>['数据库操作失败,请稍后再试!']]], 200);
  61. }
  62. return response()->json(['result'=>'ok','data'=>$data],200);
  63. }
  64. }