|
|
|
<?php
|
|
|
|
declare (strict_types=1);
|
|
|
|
|
|
|
|
namespace app\api\controller;
|
|
|
|
|
|
|
|
use app\api\model\RecoveryOrder;
|
|
|
|
use app\common\enum\RecoveryStatusEnum;
|
|
|
|
use app\common\enum\RecoveryTypeEnum;
|
|
|
|
use app\common\library\helper;
|
|
|
|
use cores\exception\BaseException;
|
|
|
|
use think\db\exception\DbException;
|
|
|
|
use think\response\Json;
|
|
|
|
|
|
|
|
class Recovery extends Controller
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @notes:用户回收订单列表
|
|
|
|
* @return Json
|
|
|
|
* @throws BaseException
|
|
|
|
* @throws DbException
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function list(): Json
|
|
|
|
{
|
|
|
|
$where = [];
|
|
|
|
$order_status = intval($this->request->post('order_status'));
|
|
|
|
if ($order_status) {
|
|
|
|
$where['order_status'] = $order_status;
|
|
|
|
}
|
|
|
|
$model = new RecoveryOrder();
|
|
|
|
$list = $model->getUserList($where);
|
|
|
|
return $this->renderSuccess(compact('list'));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:订单状态
|
|
|
|
* @return Json
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function orderStatus(): Json
|
|
|
|
{
|
|
|
|
$list = array_values(RecoveryStatusEnum::data());
|
|
|
|
return $this->renderSuccess(compact('list'));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @notes:获取详情
|
|
|
|
* @return Json|void
|
|
|
|
* @throws BaseException
|
|
|
|
* @author: wanghousheng
|
|
|
|
*/
|
|
|
|
public function detail()
|
|
|
|
{
|
|
|
|
$recoveryId = intval($this->request->post('recovery_id'));
|
|
|
|
if (!$recoveryId) {
|
|
|
|
return $this->renderError('缺少必要参数');
|
|
|
|
}
|
|
|
|
$model = new RecoveryOrder();
|
|
|
|
$model->getDetails($recoveryId);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @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('操作失败');
|
|
|
|
}
|
|
|
|
}
|