course/plugin/admin/app/controller/UserController.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'
]);
}
}