Banner.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php namespace App\Http\Controllers\Api;
  2. use App\Http\Controllers\Api\Api;
  3. use App\Models\Banner as Model;
  4. use App\Models\Custom;
  5. use App\Models\Orders;
  6. /**
  7. * 首页Banner
  8. *
  9. * @author 刘相欣
  10. *
  11. * */
  12. class Banner extends Api{
  13. /**
  14. * 获取客户信息 /api/banner/get_list
  15. *
  16. * @param string $code 授权码
  17. *
  18. * */
  19. public function get_list(Model $Model,Custom $Custom,Orders $Orders){
  20. // 接口验签
  21. // $this->verify_sign();
  22. // 检查登录
  23. $uid = $this->getUid();
  24. // 获取客户信息
  25. $custom = $uid ? $Custom->getOne($uid) : [];
  26. // 客户的城市ID
  27. $cityId = empty($custom['city_id']) ? 0 : $custom['city_id'];
  28. // 查新客户类型
  29. $data = $Model->getList();
  30. // 最终列表
  31. $list = [];
  32. // 循环处理数据
  33. foreach ( $data as $value ) {
  34. // 城市列表转数组
  35. $value['city_ids'] = $value['city_ids'] ? explode(',',$value['city_ids']) : [];
  36. // 如果没有限制城市,或者存在城市限制,但是客户的城市ID符合
  37. if( !$value['city_ids'] || in_array($cityId,$value['city_ids']) ) {
  38. // 正常显示类型
  39. if( empty($value['type']) ) {
  40. // 追加到数组中
  41. $list[] = $value;
  42. // 跳过循环
  43. continue;
  44. }
  45. // 如果不存在客户,跳过此项
  46. if( !$uid ) continue;
  47. // 查询时间段内的订单数据
  48. $order = $Orders->query()->where([['custom_uid','=',$uid],['status','=',1],['insert_time','>=',$value['start_time']],['insert_time','<=',$value['end_time']]])->first(['id']);
  49. // 有订单才显示
  50. if( !$order ) continue;
  51. // 有订单才显示
  52. $list[] = $value;
  53. }
  54. }
  55. // 返回结果
  56. return json_send(['code'=>'success','msg'=>'获取成功','data'=>$list]);
  57. }
  58. }