request->post('order_status')); if ($order_status) { $where['order_status'] = $order_status; } $model = new RecoveryOrder(); $list = $model->getUserList($where); $data['list'] = $list->items(); $data['total'] = $list->total(); if ($data['total']) { foreach ($data['list'] as $key => $value) { $data['list'][$key]['is_cancel'] = 0; if ($value['order_status'] == RecoveryStatusEnum::ACCEPTED) { $data['list'][$key]['is_cancel'] = 1; } } } return $this->renderSuccess($data); } /** * @notes:订单状态 * @return Json * @author: wanghousheng */ public function orderStatus(): Json { $list = array_values(RecoveryStatusEnum::data()); return $this->renderSuccess(compact('list')); } /** * @notes:获取详情 * @return Json * @throws BaseException * @author: wanghousheng */ public function detail(): Json { $recoveryId = intval($this->request->post('recovery_id')); if (!$recoveryId) { return $this->renderError('缺少必要参数'); } $model = new RecoveryOrder(); $info = $model->getDetails($recoveryId); if ($info && !empty($info['images'])) { $info['is_cancel'] = 0; if ($info['order_status'] == RecoveryStatusEnum::ACCEPTED) { $info['is_cancel'] = 1; } $images_list = helper::getArrayColumn($info['images'], 'file'); $arr = []; foreach ($images_list as $image) { $arr[] = $image['preview_url']; } $info['images_list'] = $arr; unset($info['images']); } return $this->renderSuccess(['detail' => $info]); } /** * @notes:取消订单 * @return Json * @throws BaseException * @author: wanghousheng */ public function cancel(): Json { $recoveryId = intval($this->request->post('recovery_id')); if (!$recoveryId) { return $this->renderError('缺少必要参数'); } $model = new RecoveryOrder(); if ($model->cancel($recoveryId)) { return $this->renderSuccess('操作成功'); } return $this->renderError('操作失败'); } /** * @notes:新增记录 * @return Json * @throws BaseException * @author: wanghousheng */ public function add(): Json { $imageIds = $this->request->post('image_ids'); if ($imageIds) { if (!is_array($imageIds)) { $imageIds = explode(',', $imageIds); } } else { $imageIds = []; } $shop_id = intval($this->request->post('shop_id')); if (!$shop_id) { return $this->renderError('门店不能为空'); } $recovery_type_arr = array_values(RecoveryStatusEnum::data()); $recovery_type_arr = array_column($recovery_type_arr, 'value'); $recovery_type = intval($this->request->post('recovery_type')); if (!in_array($recovery_type, $recovery_type_arr)) { return $this->renderError('回收方式错误'); } $username = $this->request->post('username'); if (!$username) { return $this->renderError('姓名不能为空'); } $server_time = $this->request->post('server_time'); if (!$server_time || !strtotime($server_time)) { return $this->renderError('服务时间不合法'); } $mobile = $this->request->post('mobile'); if (!$mobile || !preg_match("/1[3457896]\d{9}$/", $mobile)) { return $this->renderError('手机号不正确'); } $expect_price = $this->request->post('expect_price'); if (!$expect_price || helper::number2($expect_price) <= 0) { return $this->renderError('期待价格不能为空'); } $sex = intval($this->request->post('sex', 1)); $remake = $this->request->post('remake'); $brand = $this->request->post('brand'); if (!$brand) { return $this->renderError('品牌不能为空'); } $model = $this->request->post('model'); if (!$model) { return $this->renderError('型号不能为空'); } $wx_account = $this->request->post('wx_account'); $house_number = $this->request->post('house_number'); $shipping_address = $this->request->post('shipping_address'); //邮寄回收 if ($recovery_type == RecoveryTypeEnum::MAIL || $recovery_type == RecoveryTypeEnum::DOOR) { if (!$shipping_address) { return $this->renderError('联系地址不能为空'); } if (!$house_number) { return $this->renderError('门牌号不能为空'); } } $shipping_address .= $house_number; $express_id = intval($this->request->post('express_id')); $express_no = $this->request->post('express_no'); $data = [ 'express_id' => $express_id, 'express_no' => $express_no, 'shipping_address' => $shipping_address, 'wx_account' => $wx_account, 'model' => $model, 'brand' => $brand, 'remake' => $remake, 'sex' => $sex, 'expect_price' => $expect_price, 'mobile' => $mobile, 'server_time' => $server_time, 'username' => $username, 'recovery_type' => $recovery_type, 'shop_id' => $shop_id, ]; $model = new RecoveryOrder(); if ($model->add($data, $imageIds)) { return $this->renderSuccess('提交成功'); } return $this->renderError('提交失败'); } /** * @notes:更新 * @return Json * @author: wanghousheng */ public function update(): Json { $recovery_id = intval($this->request->post('recovery_id')); if (!$recovery_id) { return $this->renderError('缺少必要参数'); } $imageIds = $this->request->post('image_ids'); if ($imageIds && !is_array($imageIds)) { $imageIds = explode(',', $imageIds); } $shop_id = intval($this->request->post('shop_id')); if (!$shop_id) { return $this->renderError('门店不能为空'); } $recovery_type_arr = array_values(RecoveryStatusEnum::data()); $recovery_type_arr = array_column($recovery_type_arr, 'value'); $recovery_type = intval($this->request->post('recovery_type')); if (!in_array($recovery_type, $recovery_type_arr)) { return $this->renderError('回收方式错误'); } $username = $this->request->post('username'); if (!$username) { return $this->renderError('姓名不能为空'); } $server_time = $this->request->post('server_time'); if (!$server_time || !strtotime($server_time)) { return $this->renderError('服务时间不合法'); } $mobile = $this->request->post('mobile'); if (!$mobile || !preg_match("/1[3457896]\d{9}$/", $mobile)) { return $this->renderError('手机号不正确'); } $expect_price = $this->request->post('expect_price'); if (!$expect_price || helper::number2($expect_price) <= 0) { return $this->renderError('期待价格不能为空'); } $sex = intval($this->request->post('sex', 1)); $remake = $this->request->post('remake'); $brand = $this->request->post('brand'); if (!$brand) { return $this->renderError('品牌不能为空'); } $model = $this->request->post('model'); if (!$model) { return $this->renderError('型号不能为空'); } $wx_account = $this->request->post('wx_account'); $house_number = $this->request->post('house_number'); $shipping_address = $this->request->post('shipping_address'); //邮寄回收 if ($recovery_type == RecoveryTypeEnum::MAIL) { if (!$shipping_address) { return $this->renderError('发货地址不能为空'); } if (!$house_number) { return $this->renderError('门牌号不能为空'); } } $shipping_address .= $house_number; $express_id = intval($this->request->post('express_id')); $express_no = $this->request->post('express_no'); $data = [ 'express_id' => $express_id, 'express_no' => $express_no, 'shipping_address' => $shipping_address, 'wx_account' => $wx_account, 'model' => $model, 'brand' => $brand, 'remake' => $remake, 'sex' => $sex, 'expect_price' => $expect_price, 'mobile' => $mobile, 'server_time' => $server_time, 'username' => $username, 'recovery_type' => $recovery_type, 'shop_id' => $shop_id, ]; $model = new RecoveryOrder(); if ($model->edit($data, $recovery_id, $imageIds)) { return $this->renderSuccess('操作成功'); } return $this->renderError('操作失败'); } }