作者 赵彬吉

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

@@ -16,7 +16,6 @@ class BaseController extends Controller @@ -16,7 +16,6 @@ class BaseController extends Controller
16 protected $param = [];//所有请求参数 16 protected $param = [];//所有请求参数
17 protected $token = ''; //token 17 protected $token = ''; //token
18 protected $request = [];//助手函数 18 protected $request = [];//助手函数
19 - protected $allCount = 0;//总条数  
20 protected $p = 1;//当前页 19 protected $p = 1;//当前页
21 protected $row = 20;//每页条数 20 protected $row = 20;//每页条数
22 protected $header = [];//设置请求头参数 21 protected $header = [];//设置请求头参数
@@ -137,29 +136,6 @@ class BaseController extends Controller @@ -137,29 +136,6 @@ class BaseController extends Controller
137 $response = response($result,$result_code,$this->header);; 136 $response = response($result,$result_code,$this->header);;
138 throw new HttpResponseException($response); 137 throw new HttpResponseException($response);
139 } 138 }
140 - /**  
141 - * 方法请求输出数据(带分页参数)  
142 - * @param $data  
143 - * @return  
144 - */  
145 - protected function result($lists) {  
146 - $data['data'] = $lists;  
147 - $data['page'] = $this->setPages();  
148 - $this->response('success', 200, $data);  
149 -  
150 - }  
151 -  
152 - /**  
153 - * 设置分页返回参数()  
154 - */  
155 - protected function setPages() {  
156 - $page_count = $this->allCount > $this->row ? ceil($this->allCount / $this->row) : 1;  
157 - $this->header['Total-Count'] = $this->allCount; //总条数  
158 - $this->header['Page-Count'] = $page_count; //总页数  
159 - $this->header['Current-Page'] = $this->p; //当前页数  
160 - $this->header['Per-Page'] = $this->row; //每页条数  
161 - return $this->header;  
162 - }  
163 139
164 /** 140 /**
165 * @name :上传图片 141 * @name :上传图片
  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Bside;
  4 +
  5 +/**
  6 + * @name:用户组相关
  7 + */
  8 +class ProjectGroupController extends BaseController
  9 +{
  10 + /**
  11 + * @name :用户组列表
  12 + * @return json
  13 + * @author :liyuhang
  14 + * @method
  15 + */
  16 + public function lists()
  17 + {
  18 +
  19 + }
  20 +}
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 namespace App\Http; 3 namespace App\Http;
4 4
  5 +use App\Http\Middleware\AccessToken;
5 use App\Http\Middleware\Aside\BlackListMiddleware as AsideBlackListMiddleware; 6 use App\Http\Middleware\Aside\BlackListMiddleware as AsideBlackListMiddleware;
6 use App\Http\Middleware\Aside\ParamMiddleware as AsideParamMiddleware; 7 use App\Http\Middleware\Aside\ParamMiddleware as AsideParamMiddleware;
7 use App\Http\Middleware\Bside\BlackListMiddleware as BsideBlackListMiddleware; 8 use App\Http\Middleware\Bside\BlackListMiddleware as BsideBlackListMiddleware;
@@ -91,6 +92,7 @@ class Kernel extends HttpKernel @@ -91,6 +92,7 @@ class Kernel extends HttpKernel
91 //A端登录验证中间件 92 //A端登录验证中间件
92 'aloginauth'=>AsideLoginAuthMiddleware::class, 93 'aloginauth'=>AsideLoginAuthMiddleware::class,
93 //B端登录验证中间件 94 //B端登录验证中间件
94 - 'bloginauth'=>BsideLoginAuthMiddleware::class 95 + 'bloginauth'=>BsideLoginAuthMiddleware::class,
  96 + 'accesstoken'=>AccessToken::class,
95 ]; 97 ];
96 } 98 }
  1 +<?php
  2 +
  3 +namespace App\Http\Middleware;
  4 +
  5 +use App\Enums\Common\Code;
  6 +use App\Models\ProjectMenu;
  7 +use App\Models\ProjectRole as ProjectRoleModel;
  8 +
  9 +class AccessToken
  10 +{
  11 + /**
  12 + * Handle an incoming request.
  13 + *
  14 + * @param \Illuminate\Http\Request $request
  15 + * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
  16 + * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
  17 + */
  18 + public function handle(Request $request, Closure $next)
  19 + {
  20 + session_start();
  21 + // 指定允许其他域名访问
  22 + $http_origin = "*";
  23 + if(isset($_SERVER['HTTP_ORIGIN'])){
  24 + $http_origin = $_SERVER['HTTP_ORIGIN'];
  25 + }
  26 + header("Access-Control-Allow-Origin:".$http_origin);
  27 + header('Access-Control-Allow-Methods:POST,GET'); //支持的http 动作
  28 + header('Access-Control-Allow-Credentials: true');
  29 + header('Access-Control-Max-Age: 1000');
  30 + header('Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept, Authorization, token'); //响应头 请按照自己需求添加。
  31 + if (strtolower($_SERVER['REQUEST_METHOD']) == 'options') {
  32 + exit;
  33 + }
  34 + return $next($request);
  35 + }
  36 +
  37 +}
@@ -8,28 +8,15 @@ use Illuminate\Support\Facades\DB; @@ -8,28 +8,15 @@ use Illuminate\Support\Facades\DB;
8 class Base extends Model 8 class Base extends Model
9 { 9 {
10 protected $table = ''; 10 protected $table = '';
11 - public $allCount = 0;  
12 //自动维护create_at创建时间 updated_at修改时间 11 //自动维护create_at创建时间 updated_at修改时间
13 public $timestamps = true; 12 public $timestamps = true;
14 - //统一设置 13 + //统一设置返回时间格式
15 protected $casts = [ 14 protected $casts = [
16 'created_at' => 'datetime:Y-m-d H:i:s', 15 'created_at' => 'datetime:Y-m-d H:i:s',
17 'updated_at' => 'datetime:Y-m-d H:i:s', 16 'updated_at' => 'datetime:Y-m-d H:i:s',
18 ]; 17 ];
19 18
20 /** 19 /**
21 - * 日期序列化  
22 - * @param \DateTimeInterface $date  
23 - * @return string  
24 - * @author zbj  
25 - * @date 2023/4/13  
26 - */  
27 - protected function serializeDate(\DateTimeInterface $date): string  
28 - {  
29 - return $date->format('Y-m-d H:i:s');  
30 - }  
31 -  
32 - /**  
33 * @name 列表数据 20 * @name 列表数据
34 * @return void 21 * @return void
35 * @author :liyuhang 22 * @author :liyuhang
@@ -37,12 +24,12 @@ class Base extends Model @@ -37,12 +24,12 @@ class Base extends Model
37 */ 24 */
38 public function lists($map, $p, $row, $order = 'id', $fields = ['*']){ 25 public function lists($map, $p, $row, $order = 'id', $fields = ['*']){
39 //TODO::where(['id'=>'','name'=>'']) 26 //TODO::where(['id'=>'','name'=>''])
40 - $lists = DB::table($this->table)->select($fields)->where($map)->orderBy($order)->paginate($row, ['*'], 'page', $p); 27 + $query = $this->formatQuery($map);
  28 + $lists = $query->select($fields)->orderBy($order)->paginate($row, ['*'], 'page', $p);
41 if (empty($lists)) { 29 if (empty($lists)) {
42 return false; 30 return false;
43 } 31 }
44 $lists = $lists->toArray(); 32 $lists = $lists->toArray();
45 - $this->allCount = $this->where($map)->count();  
46 return $lists; 33 return $lists;
47 } 34 }
48 35
@@ -57,7 +44,8 @@ class Base extends Model @@ -57,7 +44,8 @@ class Base extends Model
57 * @method 44 * @method
58 */ 45 */
59 public function list($map,$order = 'id',$fields = ['*']){ 46 public function list($map,$order = 'id',$fields = ['*']){
60 - $lists = $this->select($fields)->where($map)->orderBy($order)->get(); 47 + $query = $this->formatQuery($map);
  48 + $lists = $query->select($fields)->orderBy($order)->get();
61 if (empty($lists)) { 49 if (empty($lists)) {
62 return false; 50 return false;
63 } 51 }
@@ -73,7 +61,8 @@ class Base extends Model @@ -73,7 +61,8 @@ class Base extends Model
73 */ 61 */
74 public function read($condition,$files = ['*']) 62 public function read($condition,$files = ['*'])
75 { 63 {
76 - $info = $this->select($files)->where($condition)->first(); 64 + $query = $this->formatQuery($condition);
  65 + $info = $query->select($files)->first();
77 if (empty($info)) { 66 if (empty($info)) {
78 return false; 67 return false;
79 } 68 }
@@ -101,8 +90,10 @@ class Base extends Model @@ -101,8 +90,10 @@ class Base extends Model
101 * @method post 90 * @method post
102 */ 91 */
103 public function edit($data,$condition){ 92 public function edit($data,$condition){
  93 + $query = $this->formatQuery($condition);
104 $data['updated_at'] = date('Y-m-d H:i:s'); 94 $data['updated_at'] = date('Y-m-d H:i:s');
105 - return $this->where($condition)->update($data); 95 + $rs = $query->update($data);
  96 + return $rs;
106 } 97 }
107 98
108 /** 99 /**
@@ -112,6 +103,65 @@ class Base extends Model @@ -112,6 +103,65 @@ class Base extends Model
112 * @method 103 * @method
113 */ 104 */
114 public function del($condition){ 105 public function del($condition){
115 - return $this->where($condition)->delete(); 106 + $query = $this->formatQuery($condition);
  107 + return $query->delete();
  108 + }
  109 +
  110 +
  111 + /**
  112 + * @param $map = ['$k'=>['like',$v],$k1]
  113 + * @param $val
  114 + * @name :参数处理查询
  115 + * @return Base
  116 + * @author :liyuhang
  117 + * @method
  118 + */
  119 + public function formatQuery($map = [],$query = ''){
  120 + $query = $this;
  121 + $query->where(function ($query) use ($map){
  122 + foreach ($map as $k => $v){
  123 + if(is_array($v)){
  124 + //拼接数据
  125 + foreach ($v as $k1 => $v1){
  126 + switch ($k1){
  127 + case 'like':
  128 + // like查询 ['name|title'=> ['like','%a%']]
  129 + if (strpos($k, '|') !== false) {
  130 + $query->where(function ($query) use ($k,$v1) {
  131 + $item = explode('|', $k);
  132 + foreach ($item as $vo) {
  133 + $query->orWhere($vo, $v1[0], $v1[1]);
  134 + }
  135 + });
  136 + } else {
  137 + $query->where($k,$v1[0], $v1[1]);
  138 + }
  139 + break;
  140 + case 'in':
  141 + // in查询 ['id'=>['in'=>[1,2,3]]]
  142 + $query->whereIn($k, $v1[1]);
  143 + break;
  144 + case 'no in':
  145 + // in查询 ['id'=>['not in'=>[1,2,3]]]
  146 + $query->whereNotIn($k, $v1[1]);
  147 + break;
  148 + case 'between':
  149 + // in查询 ['id'=>['between'=>[create1,create2]]]
  150 + $query->whereBetween($k, $v1[1]);
  151 + case 'not between':
  152 + // not between查询 ['created_at'=>['not between'=>['xxx', 'xxx]]]
  153 + $query->whereNotBetween($k, $v1[1]);
  154 + break;
  155 + default:
  156 + $query->where($k,$k1,$v1[1]);
  157 + break;
  158 + }
  159 + }
  160 + }else{
  161 + $query->where($k,$v);
  162 + }
  163 + }
  164 + });
  165 + return $query;
116 } 166 }
117 } 167 }
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +class ProjectGroup extends Base
  6 +{
  7 + //设置关联表名
  8 + protected $table = 'gl_project_group';
  9 + //自动维护create_at创建时间 updated_at修改时间
  10 + public $timestamps = true;
  11 +}