130 lines
3.2 KiB
PHP
130 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace plugin\admin\app\controller;
|
|
|
|
use app\constant\ResponseCode;
|
|
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
|
use Illuminate\Database\Query\Builder as QueryBuilder;
|
|
use support\Model;
|
|
use support\Request;
|
|
use support\Response;
|
|
use plugin\admin\app\model\User;
|
|
use plugin\admin\app\controller\Crud;
|
|
use support\exception\BusinessException;
|
|
|
|
/**
|
|
* 用户
|
|
*/
|
|
class UserController extends Crud
|
|
{
|
|
|
|
/**
|
|
* @var User
|
|
*/
|
|
protected $model = null;
|
|
|
|
/**
|
|
* 构造函数
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
$this->model = new User;
|
|
}
|
|
|
|
/**
|
|
* 浏览
|
|
* @return Response
|
|
*/
|
|
public function index(): Response
|
|
{
|
|
return view('user/index');
|
|
}
|
|
|
|
/**
|
|
* 插入
|
|
* @param Request $request
|
|
* @return Response
|
|
* @throws BusinessException
|
|
*/
|
|
public function insert(Request $request): Response
|
|
{
|
|
if ($request->method() === 'POST') {
|
|
return parent::insert($request);
|
|
}
|
|
return view('user/insert');
|
|
}
|
|
|
|
/**
|
|
* 更新
|
|
* @param Request $request
|
|
* @return Response
|
|
* @throws BusinessException
|
|
*/
|
|
public function update(Request $request): Response
|
|
{
|
|
if ($request->method() === 'POST') {
|
|
return parent::update($request);
|
|
}
|
|
return view('user/update');
|
|
}
|
|
|
|
|
|
public function select(Request $request): Response
|
|
{
|
|
|
|
$data = $request->all();
|
|
$user = \app\common\model\User::order('id desc')->alias('u');
|
|
|
|
if (isset($data['id']) && $data['id']) {
|
|
$user->where(['u.id' => $data['id']]);
|
|
}
|
|
if (isset($data['nickname']) && $data['nickname']) {
|
|
$user->where('u.nickname', 'like', '%' . $data['nickname'] . '%');
|
|
}
|
|
|
|
if (isset($data['join_time']) && array_filter($data['join_time'])) {
|
|
$time = $data['join_time'];
|
|
$user->whereBetweenTime('u.join_time', $time[0], $time[1]);
|
|
}
|
|
|
|
$page = isset($data['page']) ? $data['page'] : 1;
|
|
$limit = isset($data['limit']) ? $data['limit'] : 10;
|
|
$count = $user->count();
|
|
$list = $user->leftJoin('studio s', 'u.studio_id = s.id')
|
|
->leftJoin('photographer p', 'u.id = p.user_id')
|
|
->field('u.*, p.name as photographer_name,s.studio_name')
|
|
->page($page, $limit)->select();
|
|
|
|
return json([
|
|
'code' => ResponseCode::WEB_API_SUCCESS,
|
|
'count' => $count,
|
|
'data' => $list,
|
|
'msg' => 'ok'
|
|
]);
|
|
}
|
|
|
|
public function getNoPhotographerUser(Request $request)
|
|
{
|
|
$user = \app\common\model\User::order('id desc')->field('id as value, nickname as name')->select();
|
|
return json([
|
|
'code' => ResponseCode::WEB_API_SUCCESS,
|
|
'count' => 10,
|
|
'data' => $user,
|
|
'msg' => 'ok'
|
|
]);
|
|
}
|
|
public function getNoStudioUser(Request $request)
|
|
{
|
|
$user = \app\common\model\User::order('id desc')->field('id as value, nickname as name')->select();
|
|
return json([
|
|
'code' => ResponseCode::WEB_API_SUCCESS,
|
|
'count' => 10,
|
|
'data' => $user,
|
|
'msg' => 'ok'
|
|
]);
|
|
}
|
|
|
|
|
|
}
|