You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
6.4 KiB
225 lines
6.4 KiB
<?php
|
|
declare (strict_types=1);
|
|
|
|
namespace app\store\controller;
|
|
|
|
use app\common\enum\RecoveryStatusEnum;
|
|
use app\common\model\RecoveryOrder;
|
|
use app\store\model\server\RecoveryCategory;
|
|
use app\store\model\server\ServerRecovery;
|
|
use cores\Request;
|
|
use think\db\exception\DataNotFoundException;
|
|
use think\db\exception\DbException;
|
|
use think\db\exception\ModelNotFoundException;
|
|
use think\response\Json;
|
|
|
|
class Recovery extends Controller
|
|
{
|
|
/**
|
|
* @notes:分类列表
|
|
* @return Json
|
|
* @author: wanghousheng
|
|
*/
|
|
public function categoryList(): Json
|
|
{
|
|
$name = $this->request->post('name');
|
|
$where = [];
|
|
if (!empty($name)) {
|
|
$where[] = ['name', 'like', `%$name%`];
|
|
}
|
|
$model = new RecoveryCategory();
|
|
try {
|
|
$list = $model->getList($where);
|
|
} catch (DataNotFoundException|ModelNotFoundException|DbException $e) {
|
|
return $this->renderError($e->getMessage() ?: '接口异常');
|
|
}
|
|
return $this->renderSuccess(compact('list'));
|
|
}
|
|
|
|
/**
|
|
* @notes:添加分类
|
|
* @return Json
|
|
* @author: wanghousheng
|
|
*/
|
|
public function addCategory(): Json
|
|
{
|
|
$data = $this->postForm();
|
|
if (!$data) {
|
|
return $this->renderError('缺少必要参数');
|
|
}
|
|
$model = new RecoveryCategory();
|
|
if ($model->add($data)) {
|
|
return $this->renderSuccess('添加成功');
|
|
}
|
|
return $this->renderError($model->getError() ?: '添加失败');
|
|
}
|
|
|
|
/**
|
|
* @notes:编辑分类
|
|
* @param int $categoryId
|
|
* @return Json
|
|
* @author: wanghousheng
|
|
*/
|
|
public function editCategory(int $categoryId): Json
|
|
{
|
|
$data = $this->postForm();
|
|
if (!$data) {
|
|
return $this->renderError('缺少必要参数');
|
|
}
|
|
$model = RecoveryCategory::detail($categoryId);
|
|
if ($model->edit($data)) {
|
|
return $this->renderSuccess('编辑成功');
|
|
}
|
|
return $this->renderError($model->getError() ?: '编辑失败');
|
|
}
|
|
|
|
public function deleteCategory(int $categoryId): Json
|
|
{
|
|
$model = RecoveryCategory::detail($categoryId);
|
|
if ($model->remove()) {
|
|
return $this->renderSuccess('删除成功');
|
|
}
|
|
return $this->renderError('删除失败');
|
|
}
|
|
|
|
/**
|
|
* @notes:回收列表
|
|
* @return Json
|
|
* @author: wanghousheng
|
|
*/
|
|
public function recoveryList(): Json
|
|
{
|
|
// 获取列表记录
|
|
$model = new ServerRecovery();
|
|
$recovery_name = $this->request->post('recovery_name');
|
|
$category_id = intval($this->request->post('category_id'));
|
|
$status = intval($this->request->post('status'));
|
|
$where = [];
|
|
if ($recovery_name) {
|
|
$where[] = ['server_recovery.server_name', 'like', "%$recovery_name%"];
|
|
}
|
|
if ($category_id) {
|
|
$where[] = ['server_recovery.category_id', '=', $category_id];
|
|
}
|
|
if ($status) {
|
|
$where[] = ['server_recovery.status', '=', $status];
|
|
}
|
|
try {
|
|
$list = $model->getList($where);
|
|
} catch (DbException $e) {
|
|
return $this->renderError($e->getMessage());
|
|
}
|
|
return $this->renderSuccess(compact('list'));
|
|
}
|
|
|
|
public function recoveryDetail(int $recoveryId): Json
|
|
{
|
|
// 获取商品详情
|
|
$model = new ServerRecovery;
|
|
$info = $model->getDetail($recoveryId);
|
|
return $this->renderSuccess(compact('info'));
|
|
}
|
|
|
|
/**
|
|
* @notes:添加回收
|
|
* @return Json
|
|
* @author: wanghousheng
|
|
*/
|
|
public function addRecovery(): Json
|
|
{
|
|
$data = $this->postForm();
|
|
if (!$data) {
|
|
return $this->renderError('缺少必要参数');
|
|
}
|
|
$model = new ServerRecovery();
|
|
if ($model->add($data)) {
|
|
return $this->renderSuccess('添加成功');
|
|
}
|
|
return $this->renderError($model->getError() ?: '添加失败');
|
|
}
|
|
|
|
/**
|
|
* @notes:编辑回收
|
|
* @param int $recoveryId
|
|
* @return Json
|
|
* @author: wanghousheng
|
|
*/
|
|
public function editRecovery(int $recoveryId): Json
|
|
{
|
|
$data = $this->postForm();
|
|
if (!$data) {
|
|
return $this->renderError('缺少必要参数');
|
|
}
|
|
$model = ServerRecovery::detail($recoveryId);
|
|
if ($model->edit($data)) {
|
|
return $this->renderSuccess('编辑成功');
|
|
}
|
|
return $this->renderError($model->getError() ?: '编辑失败');
|
|
}
|
|
|
|
/**
|
|
* @notes:订单状态
|
|
* @return Json
|
|
* @author: wanghousheng
|
|
*/
|
|
public function orderStatus(): Json
|
|
{
|
|
$list = array_values(RecoveryStatusEnum::data());
|
|
return $this->renderSuccess(compact('list'));
|
|
}
|
|
|
|
/**
|
|
* @notes:删除回收
|
|
* @param array $recoveryId
|
|
* @return Json
|
|
* @author: wanghousheng
|
|
*/
|
|
public function deleteRecovery(array $recoveryId): Json
|
|
{
|
|
$model = new ServerRecovery;
|
|
if ($model->remove($recoveryId)) {
|
|
return $this->renderSuccess('删除成功');
|
|
}
|
|
return $this->renderError('删除失败');
|
|
}
|
|
|
|
/**
|
|
* 修改回收状态(上下架)
|
|
* @param array $recoveryIds id集
|
|
* @param bool $state 为true表示上架
|
|
* @return Json
|
|
*/
|
|
public function recoveryStatus(array $recoveryIds, bool $state): Json
|
|
{
|
|
$model = new ServerRecovery;
|
|
if (!$model->setStatus($recoveryIds, $state)) {
|
|
return $this->renderError($model->getError() ?: '操作失败');
|
|
}
|
|
return $this->renderSuccess('操作成功');
|
|
}
|
|
|
|
/**
|
|
* 回收订单列表
|
|
*/
|
|
public function orderList(Request $request): Json
|
|
{
|
|
$params = $request->param();
|
|
$filter = [];
|
|
if(!empty($params['order_no'])) {
|
|
$filter[] = ['order_no', 'like', "%{$params['order_no']}%"];
|
|
}
|
|
if (!empty($params['order_status']) && $params['order_status'] != 'all') {
|
|
$filter[] = ['order_status', '=', $params['order_status']];
|
|
}
|
|
|
|
$model = new RecoveryOrder();
|
|
$list = $model->where($filter)
|
|
->alias('a')
|
|
->join('user b', 'b.user_id = a.user_id')
|
|
->field('a.*,b.mobile as user_mobile,b.nick_name as user_nick_name')
|
|
->order('create_time', 'desc')
|
|
->paginate(10);
|
|
return $this->renderSuccess(compact('list'));
|
|
}
|
|
|
|
} |