Coupon.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php namespace App\Http\Controllers\Api;
  2. use App\Http\Controllers\Api\Api;
  3. use App\Models\CouponProduct;
  4. use App\Models\Coupon as Model;
  5. use App\Http\Requests\Api\Coupon as Request;
  6. /**
  7. * 优惠券接口
  8. *
  9. * @author 刘相欣
  10. *
  11. * */
  12. class Coupon extends Api{
  13. /**
  14. * 获取优惠券可用商品 /api/coupon/get_product
  15. *
  16. * @param string $code 授权码
  17. *
  18. * */
  19. public function get_product(Request $request,Model $Model,CouponProduct $CouponProduct){
  20. // 接口验签
  21. // $this->verify_sign();
  22. // 验证参数
  23. $request->scene('get_product')->validate();
  24. // 检查登录
  25. $uid = $this->checkLogin();
  26. // 接收参数
  27. $couponId = request('coupon_id',0);
  28. $limit = request('limit',10);
  29. // 显示
  30. $map = [['id','=',$couponId],['status','=',0]];
  31. // 查询
  32. $coupon = $Model->query()->where($map)->first();
  33. // 获取优惠券可用商品列表
  34. $Paginator = $CouponProduct->query()
  35. ->join('product','coupon_product.product_id','=','product.id')
  36. ->where([['coupon_product.coupon_id','=',$couponId],['product.status','=',0]])
  37. ->orderBy('product.sort')
  38. ->orderBy('product.id')
  39. ->paginate($limit,['product.id','product.sort','product.name','product.thumb','product.spec','product.price','product.market_price','product.stock']);
  40. // 获取数据
  41. $data['total'] = $Paginator->total();
  42. $data['current_page'] = $Paginator->currentPage();
  43. $data['per_page'] = $Paginator->perPage();
  44. $data['last_page'] = $Paginator->lastPage();
  45. $data['data'] = $Paginator->items();
  46. // 处理请求
  47. foreach ( $data['data'] as $key => $value ) {
  48. // 处理数据
  49. $value['thumb'] = path_compat($value['thumb']);
  50. // 重组数据
  51. $data['data'][$key] = $value;
  52. }
  53. // 返回结果
  54. return json_send(['code'=>'success','msg'=>'获取成功','data'=>$data]);
  55. }
  56. }