ControlGoods.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. namespace App\Http\Controllers\Api\WashConfig;
  3. use App\Http\Controllers\Api\Api;
  4. use App\Http\Requests\Api\WashConfig\ControlGoods as Request;
  5. use App\Models\Api\WashConfig\ControlGoods as ControlGoodsModel;
  6. /**
  7. * 数据清洗-强管控商品配置
  8. * @author 唐远望
  9. * @version 1.0
  10. * @date 2025-12-15
  11. */
  12. class ControlGoods extends Api
  13. {
  14. /**
  15. * 商品列表
  16. * @author 唐远望
  17. * @version 1.0
  18. * @date 2025-12-15
  19. *
  20. */
  21. public function list(Request $request, ControlGoodsModel $ControlGoodsModel)
  22. {
  23. $user_info = $this->checkLogin();
  24. if (!$user_info) return json_send(['code' => 'error', 'msg' => '请先登录']);
  25. $request->scene('list')->validate();
  26. // 查询条件
  27. $map = [];
  28. $limit = request('limit', config('page_num', 10));
  29. $status = request('status', '0');
  30. $start_time = request('start_time', '');
  31. $end_time = request('end_time', '');
  32. $product_name = request('product_name', '');
  33. $platform = request('platform', '');
  34. $store_scope = request('store_scope', '');
  35. $company_scope = request('company_scope', '');
  36. // 时间条件
  37. if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
  38. if ($end_time) $map[] = ['insert_time', '<=', strtotime($end_time)];
  39. // 其他条件
  40. if ($status) $map[] = ['status', '=', $status];
  41. if ($product_name) $map[] = ['product_name', 'like', "%$product_name%"];
  42. if ($platform) $map[] = ['platform', 'like', "%$platform%"];
  43. if ($store_scope) $map[] = ['store_scope', '=', $store_scope];
  44. if ($company_scope) $map[] = ['company_scope', '=', $company_scope];
  45. // 查询数据
  46. $result = $ControlGoodsModel->query()
  47. ->where($map)
  48. ->orderByDesc('id')
  49. ->select(['id','product_name'])
  50. ->distinct('product_name')
  51. ->paginate($limit);
  52. // 分配数据
  53. if (!$result) return json_send(['code' => 'error', 'msg' => '暂无数据']);
  54. // 加载模板
  55. return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
  56. }
  57. /**
  58. * 规格列表
  59. * @author 唐远望
  60. * @version 1.0
  61. * @date 2025-12-15
  62. *
  63. */
  64. public function spec_list(Request $request, ControlGoodsModel $ControlGoodsModel)
  65. {
  66. $user_info = $this->checkLogin();
  67. if (!$user_info) return json_send(['code' => 'error', 'msg' => '请先登录']);
  68. $request->scene('spec_list')->validate();
  69. // 查询条件
  70. $map = [];
  71. $limit = request('limit', config('page_num', 10));
  72. $status = request('status', '0');
  73. $start_time = request('start_time', '');
  74. $end_time = request('end_time', '');
  75. $product_specs = request('product_specs', '');
  76. $platform = request('platform', '');
  77. $store_scope = request('store_scope', '');
  78. $company_scope = request('company_scope', '');
  79. // 时间条件
  80. if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)];
  81. if ($end_time) $map[] = ['insert_time', '<=', strtotime($end_time)];
  82. // 其他条件
  83. if (is_numeric($status)) $map[] = ['status', '=', $status];
  84. if ($product_specs) $map[] = ['product_specs', 'like', "%$product_specs%"];
  85. if ($platform) $map[] = ['platform', 'like', "%$platform%"];
  86. if ($store_scope) $map[] = ['store_scope', '=', $store_scope];
  87. if ($company_scope) $map[] = ['company_scope', '=', $company_scope];
  88. // 查询数据
  89. $result = $ControlGoodsModel->query()
  90. ->where($map)
  91. ->orderByDesc('id')
  92. ->select(['id','product_specs'])
  93. ->distinct('product_specs')
  94. ->paginate($limit);
  95. // 分配数据
  96. if (!$result) return json_send(['code' => 'error', 'msg' => '暂无数据']);
  97. // 加载模板
  98. return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
  99. }
  100. }