checkLogin(); if (!$user_info) return json_send(['code' => 'error', 'msg' => '请先登录']); $user_id = $user_info['uid']; $request->scene('list')->validate(); // 查询条件 $map = []; $limit = request('limit', config('page_num', 10)); $status = request('status', ''); $start_time = request('start_time', ''); $end_time = request('end_time', ''); $product_name = request('product_name', ''); $product_names = request('product_names', ''); $first_responsible_person = request('first_responsible_person', ''); $responsible_person = request('responsible_person', ''); $platform = request('platform', ''); $company_name = request('company_name', ''); $store_name = request('store_name', ''); $store_names = request('store_names', ''); $source_responsible_person = request('source_responsible_person', ''); $processing_status = request('processing_status', ''); $product_specs = request('product_specs', ''); $online_posting_cunt = request('online_posting_cunt', ''); // 时间条件 if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time)]; if ($end_time) $map[] = ['insert_time', '<=', strtotime($end_time)]; // 其他条件 if ($product_name) $map[] = ['product_name', 'like', "%$product_name%"]; if ($store_name) $map[] = ['store_name','like',"%$store_name%"]; //多选平台查询 if($platform && is_string($platform)){ $platform = explode(',', $platform); $ViolationProductModel=$ViolationProductModel->whereIn('platform', $platform); } //多选处理状态查询 if($processing_status && is_string($processing_status)){ $processing_status = explode(',', $processing_status); $ViolationProductModel=$ViolationProductModel->whereIn('processing_status', $processing_status); } //多选状态查询 if($status && is_string($status)){ $status = explode(',', $status); $ViolationProductModel=$ViolationProductModel->whereIn('status', $status); } //多选店铺名称查询 if($store_names && is_string($store_names)){ $store_names = explode(',', $store_names); $ViolationProductModel=$ViolationProductModel->whereIn('store_name', $store_names); } //多选违规挂网次数查询 if($online_posting_cunt && is_string($online_posting_cunt)){ $online_posting_cunt = explode(',', $online_posting_cunt); $ViolationProductModel=$ViolationProductModel->whereIn('online_posting_cunt', $online_posting_cunt); } //多选规格查询 if($product_specs && is_string($product_specs)){ $product_specs = explode(',', $product_specs); $ViolationProductModel=$ViolationProductModel->whereIn('product_specs', $product_specs); } //多选商品查询 if ($product_names && is_string($product_names)) { $product_names = explode(',', $product_names); $ViolationProductModel=$ViolationProductModel->whereIn('product_name', $product_names); } //多选公司查询 if ($company_name && is_string($company_name)) { $company_name = explode(',', $company_name); $ViolationProductModel=$ViolationProductModel->whereIn('company_name', $company_name); } //多选第一责任人 if ($first_responsible_person && is_string($first_responsible_person)) { $first_responsible_person = explode(',', $first_responsible_person); $subQuery = $ViolationProductMemberModel->whereIn('employee_id', $first_responsible_person)->distinct('lowprice_product_logid')->select('lowprice_product_logid'); $ViolationProductModel = $ViolationProductModel->whereIn('id', function ($query1) use ($subQuery) { $query1->select('lowprice_product_logid')->fromSub($subQuery, 'sub1'); }); } //多选责任人 if ($responsible_person && is_string($responsible_person)) { $responsible_person = explode(',', $responsible_person); $subQuery = $ViolationProductMemberModel->whereIn('employee_id', $responsible_person)->distinct('lowprice_product_logid')->select('lowprice_product_logid'); $ViolationProductModel = $ViolationProductModel->whereIn('id', function ($query1) use ($subQuery) { $query1->select('lowprice_product_logid')->fromSub($subQuery, 'sub1'); }); } //多选溯源责任人 if ($source_responsible_person && is_string($source_responsible_person)) { $source_responsible_person = explode(',', $source_responsible_person); $subQuery = $ViolationProductMemberModel->whereIn('employee_id', $source_responsible_person)->distinct('lowprice_product_logid')->select('lowprice_product_logid'); $ViolationProductModel = $ViolationProductModel->whereIn('id', function ($query1) use ($subQuery) { $query1->select('lowprice_product_logid')->fromSub($subQuery, 'sub1'); }); } // 查询数据 $map1 = array_merge($map, [['first_responsible_person', 'like',"%,$user_id,%"]]); $map2 = array_merge($map, [['responsible_person', 'like',"%,$user_id,%"]]); $map3 = array_merge($map, [['source_responsible_person', 'like',"%,$user_id,%"]]); $result = $ViolationProductModel->query() ->where($map1) ->orWhere($map2) ->orWhere($map3) ->orderByDesc('id') ->paginate($limit)->toarray(); // 分配数据 if (!$result) return json_send(['code' => 'error', 'msg' => '暂无数据']); if (isset($result['data']) && count($result['data']) > 0) { foreach ($result['data'] as $key => $value) { //查询第一责任人名称 $first_responsible_person = explode(',', $value['first_responsible_person']); $first_responsible_person_name = $EmployeeModel->whereIn('id', $first_responsible_person)->pluck('name')->toarray(); $result['data'][$key]['first_responsible_person_name'] = $first_responsible_person_name; //查询责任人名称 $responsible_person = explode(',', $value['responsible_person']); $responsible_person_name = $EmployeeModel->whereIn('id', $responsible_person)->pluck('name')->toarray(); $result['data'][$key]['responsible_person_name'] = $responsible_person_name; //查询来源责任人名称 $source_responsible_person = explode(',', $value['source_responsible_person']); $source_responsible_person_name = $EmployeeModel->whereIn('id', $source_responsible_person)->pluck('name')->toarray(); $result['data'][$key]['source_responsible_person_name'] = $source_responsible_person_name; } } // 加载模板 return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]); } /** * 详情 * @author 唐远望 * @version 1.0 * @date 2025-12-09 */ public function detail(Request $request, ViolationProductModel $ViolationProductModel,EmployeeModel $EmployeeModel) { $user_info = $this->checkLogin(); if (!$user_info) return json_send(['code' => 'error', 'msg' => '请先登录']); $request->scene('detail')->validate(); // 接收参数 $id = request('id', 0); $map = ['id' => $id]; $data = $ViolationProductModel->where($map)->first(); if (!$data) return json_send(['code' => 'error', 'msg' => '记录不存在']); //查询第一责任人名称 $first_responsible_person = explode(',', $data->first_responsible_person); $first_responsible_person_name = $EmployeeModel->whereIn('id', $first_responsible_person)->pluck('name')->toarray(); $data->first_responsible_person_name= $first_responsible_person_name; //查询责任人名称 $responsible_person = explode(',', $data->responsible_person); $responsible_person_name = $EmployeeModel->whereIn('id', $responsible_person)->pluck('name')->toarray(); $data->responsible_person_name= $responsible_person_name; //查询来源责任人名称 $source_responsible_person = explode(',', $data->source_responsible_person); $source_responsible_person_name = $EmployeeModel->whereIn('id', $source_responsible_person)->pluck('name')->toarray(); $data->source_responsible_person_name= $source_responsible_person_name; // 加载模板 return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $data]); } /** * 修改状态 * @author 唐远望 * @version 1.0 * @date 2025-12-09 * */ public function set_status(Request $request, ViolationProductModel $ViolationProductModel) { // 验证参数 $request->scene('set_status')->validate(); // 接收数据 $id = request('id', 0); $status = request('status', 0); // 查询用户 $where = ['id' => $id]; // 执行修改 $result = $ViolationProductModel->changeStatus($where, $status); // 提示新增失败 if (!$result) return json_send(['code' => 'error', 'msg' => '设置失败']); // 告知结果 return json_send(['code' => 'success', 'msg' => '设置成功']); } /** * 修改处理状态 * @author 唐远望 * @version 1.0 * @date 2025-12-09 * */ public function set_processing_status(Request $request, ViolationProductModel $ViolationProductModel) { // 验证参数 $request->scene('set_processing_status')->validate(); // 接收数据 $id = request('id', 0); $processing_status = request('processing_status', 0); // 查询用户 $where = ['id' => $id]; // 执行修改 $result = $ViolationProductModel->changeProcessingStatus($where, $processing_status); // 提示新增失败 if (!$result) return json_send(['code' => 'error', 'msg' => '设置失败']); // 告知结果 return json_send(['code' => 'success', 'msg' => '设置成功']); } }