作者 赵彬吉

Merge branch 'dev' of http://47.244.231.31:8099/zhl/globalso-v6 into dev

... ... @@ -16,7 +16,6 @@ class BaseController extends Controller
protected $param = [];//所有请求参数
protected $token = ''; //token
protected $request = [];//助手函数
protected $allCount = 0;//总条数
protected $p = 1;//当前页
protected $row = 20;//每页条数
protected $header = [];//设置请求头参数
... ... @@ -137,29 +136,6 @@ class BaseController extends Controller
$response = response($result,$result_code,$this->header);;
throw new HttpResponseException($response);
}
/**
* 方法请求输出数据(带分页参数)
* @param $data
* @return
*/
protected function result($lists) {
$data['data'] = $lists;
$data['page'] = $this->setPages();
$this->response('success', 200, $data);
}
/**
* 设置分页返回参数()
*/
protected function setPages() {
$page_count = $this->allCount > $this->row ? ceil($this->allCount / $this->row) : 1;
$this->header['Total-Count'] = $this->allCount; //总条数
$this->header['Page-Count'] = $page_count; //总页数
$this->header['Current-Page'] = $this->p; //当前页数
$this->header['Per-Page'] = $this->row; //每页条数
return $this->header;
}
/**
* @name :上传图片
... ...
<?php
namespace App\Http\Controllers\Bside;
/**
* @name:用户组相关
*/
class ProjectGroupController extends BaseController
{
/**
* @name :用户组列表
* @return json
* @author :liyuhang
* @method
*/
public function lists()
{
}
}
... ...
... ... @@ -2,6 +2,7 @@
namespace App\Http;
use App\Http\Middleware\AccessToken;
use App\Http\Middleware\Aside\BlackListMiddleware as AsideBlackListMiddleware;
use App\Http\Middleware\Aside\ParamMiddleware as AsideParamMiddleware;
use App\Http\Middleware\Bside\BlackListMiddleware as BsideBlackListMiddleware;
... ... @@ -91,6 +92,7 @@ class Kernel extends HttpKernel
//A端登录验证中间件
'aloginauth'=>AsideLoginAuthMiddleware::class,
//B端登录验证中间件
'bloginauth'=>BsideLoginAuthMiddleware::class
'bloginauth'=>BsideLoginAuthMiddleware::class,
'accesstoken'=>AccessToken::class,
];
}
... ...
<?php
namespace App\Http\Middleware;
use App\Enums\Common\Code;
use App\Models\ProjectMenu;
use App\Models\ProjectRole as ProjectRoleModel;
class AccessToken
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
session_start();
// 指定允许其他域名访问
$http_origin = "*";
if(isset($_SERVER['HTTP_ORIGIN'])){
$http_origin = $_SERVER['HTTP_ORIGIN'];
}
header("Access-Control-Allow-Origin:".$http_origin);
header('Access-Control-Allow-Methods:POST,GET'); //支持的http 动作
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept, Authorization, token'); //响应头 请按照自己需求添加。
if (strtolower($_SERVER['REQUEST_METHOD']) == 'options') {
exit;
}
return $next($request);
}
}
... ...
... ... @@ -8,28 +8,15 @@ use Illuminate\Support\Facades\DB;
class Base extends Model
{
protected $table = '';
public $allCount = 0;
//自动维护create_at创建时间 updated_at修改时间
public $timestamps = true;
//统一设置
//统一设置返回时间格式
protected $casts = [
'created_at' => 'datetime:Y-m-d H:i:s',
'updated_at' => 'datetime:Y-m-d H:i:s',
];
/**
* 日期序列化
* @param \DateTimeInterface $date
* @return string
* @author zbj
* @date 2023/4/13
*/
protected function serializeDate(\DateTimeInterface $date): string
{
return $date->format('Y-m-d H:i:s');
}
/**
* @name 列表数据
* @return void
* @author :liyuhang
... ... @@ -37,12 +24,12 @@ class Base extends Model
*/
public function lists($map, $p, $row, $order = 'id', $fields = ['*']){
//TODO::where(['id'=>'','name'=>''])
$lists = DB::table($this->table)->select($fields)->where($map)->orderBy($order)->paginate($row, ['*'], 'page', $p);
$query = $this->formatQuery($map);
$lists = $query->select($fields)->orderBy($order)->paginate($row, ['*'], 'page', $p);
if (empty($lists)) {
return false;
}
$lists = $lists->toArray();
$this->allCount = $this->where($map)->count();
return $lists;
}
... ... @@ -57,7 +44,8 @@ class Base extends Model
* @method
*/
public function list($map,$order = 'id',$fields = ['*']){
$lists = $this->select($fields)->where($map)->orderBy($order)->get();
$query = $this->formatQuery($map);
$lists = $query->select($fields)->orderBy($order)->get();
if (empty($lists)) {
return false;
}
... ... @@ -73,7 +61,8 @@ class Base extends Model
*/
public function read($condition,$files = ['*'])
{
$info = $this->select($files)->where($condition)->first();
$query = $this->formatQuery($condition);
$info = $query->select($files)->first();
if (empty($info)) {
return false;
}
... ... @@ -101,8 +90,10 @@ class Base extends Model
* @method post
*/
public function edit($data,$condition){
$query = $this->formatQuery($condition);
$data['updated_at'] = date('Y-m-d H:i:s');
return $this->where($condition)->update($data);
$rs = $query->update($data);
return $rs;
}
/**
... ... @@ -112,6 +103,65 @@ class Base extends Model
* @method
*/
public function del($condition){
return $this->where($condition)->delete();
$query = $this->formatQuery($condition);
return $query->delete();
}
/**
* @param $map = ['$k'=>['like',$v],$k1]
* @param $val
* @name :参数处理查询
* @return Base
* @author :liyuhang
* @method
*/
public function formatQuery($map = [],$query = ''){
$query = $this;
$query->where(function ($query) use ($map){
foreach ($map as $k => $v){
if(is_array($v)){
//拼接数据
foreach ($v as $k1 => $v1){
switch ($k1){
case 'like':
// like查询 ['name|title'=> ['like','%a%']]
if (strpos($k, '|') !== false) {
$query->where(function ($query) use ($k,$v1) {
$item = explode('|', $k);
foreach ($item as $vo) {
$query->orWhere($vo, $v1[0], $v1[1]);
}
});
} else {
$query->where($k,$v1[0], $v1[1]);
}
break;
case 'in':
// in查询 ['id'=>['in'=>[1,2,3]]]
$query->whereIn($k, $v1[1]);
break;
case 'no in':
// in查询 ['id'=>['not in'=>[1,2,3]]]
$query->whereNotIn($k, $v1[1]);
break;
case 'between':
// in查询 ['id'=>['between'=>[create1,create2]]]
$query->whereBetween($k, $v1[1]);
case 'not between':
// not between查询 ['created_at'=>['not between'=>['xxx', 'xxx]]]
$query->whereNotBetween($k, $v1[1]);
break;
default:
$query->where($k,$k1,$v1[1]);
break;
}
}
}else{
$query->where($k,$v);
}
}
});
return $query;
}
}
... ...
<?php
namespace App\Models;
class ProjectGroup extends Base
{
//设置关联表名
protected $table = 'gl_project_group';
//自动维护create_at创建时间 updated_at修改时间
public $timestamps = true;
}
... ...