作者 liyuhang

gx

  1 +<?php
  2 +
  3 +namespace App\Files;
  4 +
  5 +use Illuminate\Http\Request;
  6 +
  7 +class Image
  8 +{
  9 + protected $request = [];
  10 +
  11 + public function __construct(Request $request)
  12 + {
  13 + $this->request = $request;
  14 + }
  15 +
  16 +
  17 +}
@@ -5,10 +5,48 @@ namespace App\Http\Controllers\Aside; @@ -5,10 +5,48 @@ namespace App\Http\Controllers\Aside;
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Controllers\Controller; 6 use App\Http\Controllers\Controller;
7 use App\Utils\EncryptUtils; 7 use App\Utils\EncryptUtils;
  8 +use Illuminate\Http\Exceptions\HttpResponseException;
8 use Illuminate\Http\JsonResponse; 9 use Illuminate\Http\JsonResponse;
  10 +use Illuminate\Http\Request;
  11 +use Illuminate\Http\Response;
  12 +use Illuminate\Support\Facades\Cache;
9 13
10 class BaseController extends Controller 14 class BaseController extends Controller
11 { 15 {
  16 + protected $param = [];//所有请求参数
  17 + protected $token = ''; //token
  18 + protected $request = [];//助手函数
  19 + protected $allCount = 0;//总条数
  20 + protected $p = 1;//当前页
  21 + protected $row = 20;//每页条数
  22 + protected $header = [];//设置请求头参数
  23 + protected $order = 'id';
  24 + protected $map = [];//处理后的参数
  25 + protected $uid = 0;
  26 + /**
  27 + * 获取所有参数
  28 + */
  29 + public function __construct(Request $request)
  30 + {
  31 + $this->request = $request;
  32 + $this->param = $this->request->all();
  33 + $this->token = $this->request->header('token');
  34 + $this->get_param();
  35 + $this->auth_token();
  36 + }
  37 +
  38 + /**
  39 + * @name
  40 + * @return void
  41 + * @author :liyuhang
  42 + * @method
  43 + */
  44 + public function auth_token(){
  45 + $info = Cache::get($this->token);
  46 + if(isset($info) && !empty($info)){
  47 + $this->uid = $info['id'];
  48 + }
  49 + }
12 /** 50 /**
13 * 成功返回 51 * 成功返回
14 * @param array $data 52 * @param array $data
@@ -36,6 +74,88 @@ class BaseController extends Controller @@ -36,6 +74,88 @@ class BaseController extends Controller
36 $response = [ 74 $response = [
37 'p' => (new EncryptUtils())->openssl_en($response, $k, $i)]; 75 'p' => (new EncryptUtils())->openssl_en($response, $k, $i)];
38 } 76 }
39 - return response()->json($response); 77 + return response()->json($response)->header($this->header);
  78 + }
  79 +
  80 + /**
  81 + * @name 参数过滤
  82 + * @return void
  83 + * @author :liyuhang
  84 + * @method
  85 + */
  86 + public function get_param(){
  87 + $param = $this->param;
  88 + foreach ($param as $k => $v){
  89 + if(is_array($v)){
  90 + continue;
  91 + }
  92 + switch ($k){
  93 + case "order":
  94 + $this->order = $v;
  95 + break;
  96 + case 'p':
  97 + $this->p = $v;
  98 + break;
  99 + case 'row':
  100 + $this->row = $v;
  101 + break;
  102 + case "create_at":
  103 + $this->_btw[0] = $v;
  104 + $this->_btw[1] = date('Y-m-d H:i:s',time());
  105 + $this->map['create_at'] = ['between', $this->_btw];
  106 + break;
  107 + case "update_at":
  108 + $this->_btw[1] = $v;
  109 + $this->map['update_at'] = ['between', $this->_btw];
  110 + break;
  111 + default:
  112 + if (!empty($v)) {
  113 + $this->map[$k] = $v;
  114 + }
  115 + break;
  116 + }
  117 + }
  118 +
  119 + }
  120 + /**
  121 + * @name 统一返回参数
  122 + * @return void
  123 + * @author :liyuhang
  124 + * @method
  125 + */
  126 + public function response($msg,$code = 200,$data = [],$result_code = null,$type = 'application/json'){
  127 + $result_code === null && $result_code = $code;
  128 + $result = [
  129 + 'msg' =>$msg,
  130 + 'code'=>$result_code,
  131 + 'data'=>$data
  132 + ];
  133 + $this->header['Content-Type'] = $type;
  134 + $this->header['token'] = $this->token;
  135 + $response = Response::create(json_encode($result),$code,$this->header);
  136 + throw new HttpResponseException($response);
  137 + }
  138 + /**
  139 + * 方法请求输出数据(带分页参数)
  140 + * @param $data
  141 + * @return
  142 + */
  143 + protected function result($lists) {
  144 + $data['data'] = $lists;
  145 + $data['page'] = $this->setPages();
  146 + $this->response('success', 200, $data);
  147 +
  148 + }
  149 +
  150 + /**
  151 + * 设置分页返回参数()
  152 + */
  153 + protected function setPages() {
  154 + $page_count = $this->allCount > $this->row ? ceil($this->allCount / $this->row) : 1;
  155 + $this->header['Total-Count'] = $this->allCount; //总条数
  156 + $this->header['Page-Count'] = $page_count; //总页数
  157 + $this->header['Current-Page'] = $this->p; //当前页数
  158 + $this->header['Per-Page'] = $this->row; //每页条数
  159 + return $this->header;
40 } 160 }
41 } 161 }
  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Aside;
  4 +
  5 +use App\Http\Controllers\Bside\BaseController;
  6 +
  7 +use App\Models\Project as ProjectModel;
  8 +
  9 +/**
  10 + * @name:项目信息
  11 + */
  12 +class ProjectController extends BaseController
  13 +{
  14 + /**
  15 + * @name :项目列表
  16 + * @return void
  17 + * @author :liyuhang
  18 + * @method
  19 + */
  20 + public function lists(){
  21 + $projectModel = new ProjectModel();
  22 + $lists = $projectModel->lists($this->map,$this->p,$this->row,$this->order);
  23 + $this->result($lists);
  24 + }
  25 +}
@@ -22,6 +22,7 @@ class BaseController extends Controller @@ -22,6 +22,7 @@ class BaseController extends Controller
22 protected $order = 'id'; 22 protected $order = 'id';
23 protected $map = [];//处理后的参数 23 protected $map = [];//处理后的参数
24 protected $uid = 0; 24 protected $uid = 0;
  25 + protected $user = [];//当前登录用户详情
25 /** 26 /**
26 * 获取所有参数 27 * 获取所有参数
27 */ 28 */
@@ -43,6 +44,7 @@ class BaseController extends Controller @@ -43,6 +44,7 @@ class BaseController extends Controller
43 public function auth_token(){ 44 public function auth_token(){
44 $info = Cache::get($this->token); 45 $info = Cache::get($this->token);
45 if(isset($info) && !empty($info)){ 46 if(isset($info) && !empty($info)){
  47 + $this->user = $info;
46 $this->uid = $info['id']; 48 $this->uid = $info['id'];
47 } 49 }
48 } 50 }
@@ -73,7 +75,7 @@ class BaseController extends Controller @@ -73,7 +75,7 @@ class BaseController extends Controller
73 $response = [ 75 $response = [
74 'p' => (new EncryptUtils())->openssl_en($response, $k, $i)]; 76 'p' => (new EncryptUtils())->openssl_en($response, $k, $i)];
75 } 77 }
76 - return response()->json($response)->header($this->header); 78 + return response()->json($response,200,$this->header);
77 } 79 }
78 80
79 /** 81 /**
@@ -157,4 +159,22 @@ class BaseController extends Controller @@ -157,4 +159,22 @@ class BaseController extends Controller
157 $this->header['Per-Page'] = $this->row; //每页条数 159 $this->header['Per-Page'] = $this->row; //每页条数
158 return $this->header; 160 return $this->header;
159 } 161 }
  162 +
  163 + /**
  164 + * @name :上传图片
  165 + * @return void
  166 + * @author :liyuhang
  167 + * @method
  168 + */
  169 + public function uploads(){
  170 + $url = './uploads/images/';
  171 + $param = $this->request->post();
  172 + if($this->request->hasFile('image') && $this->request->file('image')->isValid()){
  173 + $filename = date('ymdHis').rand(10000,99999).$this->request->file('image');
  174 + $this->request->file('image')->move('./uploads/images/',$filename);
  175 + }else{
  176 + return false;
  177 + }
  178 + return $url.$filename;
  179 + }
160 } 180 }
  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Bside;
  4 +
  5 +use App\Models\ProductClassify as ProductClassifyModel;
  6 +
  7 +/**
  8 + * @name:产品分类
  9 + */
  10 +class ProductClassify extends BaseController
  11 +{
  12 + /**
  13 + * @name : 获取当前登录的产品分裂
  14 + * @return void
  15 + * @author :liyuhang
  16 + * @method
  17 + */
  18 + public function lists(){
  19 + //TODO::获取当前登录用户
  20 + $this->map['project_id'] = $this->user['project_id'];
  21 + $productClassifyModel = new ProductClassifyModel();
  22 + $lists = $productClassifyModel->lists($this->map,$this->p,$this->row,$this->order);
  23 + }
  24 +}
  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Bside;
  4 +
  5 +/**
  6 + * @name:产品表
  7 + */
  8 +class ProductController extends BaseController
  9 +{
  10 + /**
  11 + * @name : 产品列表
  12 + * @return void
  13 + * @author :liyuhang
  14 + * @method
  15 + */
  16 + public function lists(){
  17 + //获取当前登录用户下的产品列表
  18 +
  19 + }
  20 +}
  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Bside;
  4 +
  5 +use App\Models\Project as ProjectModel;
  6 +use Illuminate\Support\Facades\DB;
  7 +
  8 +/**
  9 + * @name:user用户获取相关项目
  10 + */
  11 +class ProjectController extends BaseController
  12 +{
  13 + /**
  14 + * @name :根据登录用户获取所有项目
  15 + * @return void
  16 + * @author :liyuhang
  17 + * @method
  18 + */
  19 + public function page_lists(){
  20 +
  21 + $projectModel = new ProjectModel();
  22 + $lists = DB::table($projectModel->table)->select(['*'])->where($this->map)->forPage($this->p,$this->row)->orderBy($this->order)->get();
  23 +
  24 + }
  25 +}
@@ -2,16 +2,114 @@ @@ -2,16 +2,114 @@
2 2
3 namespace App\Http\Controllers\Bside; 3 namespace App\Http\Controllers\Bside;
4 4
  5 +use App\Enums\Common\Code;
  6 +use App\Models\ProjectMenu as ProjectMenuModel;
  7 +use App\Models\ProjectRole as ProjectRoleModel;
  8 +use Illuminate\Support\Facades\Validator;
  9 +
5 class ProjectMenuController extends BaseController 10 class ProjectMenuController extends BaseController
6 { 11 {
7 /** 12 /**
8 - * @name :菜单列表 13 + * @name :用户组菜单列表(带分页)
9 * @return void 14 * @return void
10 * @author :liyuhang 15 * @author :liyuhang
11 * @method 16 * @method
12 */ 17 */
13 public function lists(){ 18 public function lists(){
14 //根据角色获取菜单列表 19 //根据角色获取菜单列表
  20 + $projectMenuModel = new ProjectMenuModel();
  21 + $lists = $projectMenuModel->lists($this->param,$this->p,$this->row,$this->order);
  22 + $this->result($lists);
  23 + }
15 24
  25 + /**
  26 + * @name :添加用户组菜单
  27 + * @return void
  28 + * @author :liyuhang
  29 + * @method
  30 + */
  31 + public function add(){
  32 + //参数验证
  33 + $rules = [
  34 + 'name'=>'required|max:11',
  35 + 'rules'=>'required',
  36 + ];
  37 + //验证的提示信息
  38 + $message = [
  39 + 'name.required'=>'名称必须填写',
  40 + 'name.max' => '名称不大于16字符.',
  41 + 'rules.required'=>'路由必须填写',
  42 + ];
  43 + $validate = Validator::make($this->param, $rules, $message);
  44 + if($validate->fails()){
  45 + return $this->response($validate->errors()->first(),Code::USER_PARAMS_ERROE,$this->param);
  46 + }
  47 + $projectMenuModel = new ProjectMenuModel();
  48 + $rs = $projectMenuModel->add($this->param);
  49 + if($rs === false){
  50 + $this->response('请求失败',Code::USER_ERROR,[]);
  51 + }
  52 + $this->response('success',Code::SUCCESS);
  53 + }
  54 +
  55 + /**
  56 + * @name :编辑用户组菜单
  57 + * @return void
  58 + * @author :liyuhang
  59 + * @method
  60 + */
  61 + public function edit(){
  62 + //参数验证
  63 + $rules = [
  64 + 'id'=>'required',
  65 + 'name'=>'required|max:11',
  66 + 'rules'=>'required',
  67 + ];
  68 + //验证的提示信息
  69 + $message = [
  70 + 'id.required'=>'服务器id错误',
  71 + 'name.required'=>'名称必须填写',
  72 + 'name.max' => '名称不大于16字符.',
  73 + 'rules.required'=>'路由必须填写',
  74 + ];
  75 + $validate = Validator::make($this->param, $rules, $message);
  76 + if($validate->fails()){
  77 + return $this->response($validate->errors()->first(),Code::USER_PARAMS_ERROE,$this->param);
  78 + }
  79 + $projectMenuModel = new ProjectMenuModel();
  80 + $rs = $projectMenuModel->edit($this->param,['id'=>$this->param['id']]);
  81 + if($rs === false){
  82 + $this->response('请求失败',Code::USER_ERROR);
  83 + }
  84 + $this->response('success',Code::SUCCESS);
  85 + }
  86 +
  87 + /**
  88 + * @name :编辑状态
  89 + * @return void
  90 + * @author :liyuhang
  91 + * @method
  92 + */
  93 + public function status(){
  94 + //参数验证
  95 + $rules = [
  96 + 'id'=>'required',
  97 + 'status'=>'required',
  98 + ];
  99 + //验证的提示信息
  100 + $message = [
  101 + 'id.required'=>'主键必须填写',
  102 + 'status.required'=>'状态必须填写',
  103 + ];
  104 + $validate = Validator::make($this->param, $rules, $message);
  105 + if($validate->fails()){
  106 + return $this->response($validate->errors()->first(),Code::USER_PARAMS_ERROE,$this->param);
  107 + }
  108 + $projectMenuModel = new ProjectMenuModel();
  109 + $rs = $projectMenuModel->edit(['status'=>$this->param['status']],['id'=>$this->param['id']]);
  110 + if($rs === false){
  111 + $this->response('编辑失败',Code::USER_PARAMS_ERROE);
  112 + }
  113 + $this->response($this->param['status'] == 0 ? '启用成功' : '禁用成功',Code::SUCCESS);
16 } 114 }
17 } 115 }
@@ -15,6 +15,7 @@ class ProjectRoleController extends BaseController @@ -15,6 +15,7 @@ class ProjectRoleController extends BaseController
15 * @method 15 * @method
16 */ 16 */
17 public function lists(){ 17 public function lists(){
  18 + //TODO::根据当前登录用户返回
18 $projectRoleModel = new ProjectRoleModel(); 19 $projectRoleModel = new ProjectRoleModel();
19 $lists = $projectRoleModel->lists($this->param,$this->p,$this->row,$this->order); 20 $lists = $projectRoleModel->lists($this->param,$this->p,$this->row,$this->order);
20 $this->result($lists); 21 $this->result($lists);
@@ -27,6 +28,7 @@ class ProjectRoleController extends BaseController @@ -27,6 +28,7 @@ class ProjectRoleController extends BaseController
27 * @method 28 * @method
28 */ 29 */
29 public function add(){ 30 public function add(){
  31 + //TODO::获取当前用户的所在项目组
30 //参数验证 32 //参数验证
31 $rules = [ 33 $rules = [
32 'name'=>'required|max:11', 34 'name'=>'required|max:11',
@@ -69,6 +71,7 @@ class ProjectRoleController extends BaseController @@ -69,6 +71,7 @@ class ProjectRoleController extends BaseController
69 * @method 71 * @method
70 */ 72 */
71 public function edit(){ 73 public function edit(){
  74 + //TODO::根据当前登录用户返回
72 //参数验证 75 //参数验证
73 $rules = [ 76 $rules = [
74 'id'=>'required', 77 'id'=>'required',
@@ -89,6 +92,7 @@ class ProjectRoleController extends BaseController @@ -89,6 +92,7 @@ class ProjectRoleController extends BaseController
89 $data['pid'] = 0; 92 $data['pid'] = 0;
90 } 93 }
91 $data = [ 94 $data = [
  95 + //TODO::自动写入当前用户
92 'name' => $this->param['name'], 96 'name' => $this->param['name'],
93 'pid' => $this->param['pid'], 97 'pid' => $this->param['pid'],
94 ]; 98 ];
@@ -24,6 +24,7 @@ class UserController extends BaseController @@ -24,6 +24,7 @@ class UserController extends BaseController
24 if(empty($lists)){ 24 if(empty($lists)){
25 $this->response('请求失败',Code::USER_ERROR,[]); 25 $this->response('请求失败',Code::USER_ERROR,[]);
26 } 26 }
  27 + return response()->json($lists);
27 $this->result($lists); 28 $this->result($lists);
28 } 29 }
29 30
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +class Product extends Base
  6 +{
  7 + //设置关联表名
  8 + protected $table = 'gl_product';
  9 + //自动维护create_at创建时间 updated_at修改时间
  10 + public $timestamps = true;
  11 +}
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +class ProductClassify extends Base
  6 +{
  7 + //设置关联表名
  8 + protected $table = 'gl_product_classify';
  9 + //自动维护create_at创建时间 updated_at修改时间
  10 + public $timestamps = true;
  11 +}
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Support\Facades\DB;
  6 +
  7 +class Project extends Base
  8 +{
  9 + //设置关联表名
  10 + protected $table = 'gl_project';
  11 + //自动维护create_at创建时间 updated_at修改时间
  12 + public $timestamps = true;
  13 +
  14 + /**
  15 + * @name:获取当前对象不分页列表
  16 + */
  17 + public function page_lists(){
  18 + $lists = DB::table($this->table)->select(['*'])->where($this->map)->orderBy($this->order)->get();
  19 + return $lists;
  20 + }
  21 +}
@@ -15,7 +15,7 @@ class DingService extends BaseService @@ -15,7 +15,7 @@ class DingService extends BaseService
15 { 15 {
16 use RedisTrait; 16 use RedisTrait;
17 17
18 - const LINK = 'https://oapi.dingtalk.com/robot/send?access_token=723c99369cc16806a26fee8b8ab2c5ae37a78ef842e6a3af89fed0b2a6211836'; 18 + const LINK = 'https://oapi.dingtalk.com/robot/send111?access_token=723c99369cc16806a26fee8b8ab2c5ae37a78ef842e6a3af89fed0b2a6211836';
19 const INFO = 'INFO'; 19 const INFO = 'INFO';
20 const ERROR = 'ERROR'; 20 const ERROR = 'ERROR';
21 const WARNNING = 'WARNNING'; 21 const WARNNING = 'WARNNING';
@@ -13,4 +13,5 @@ Route::middleware(['bloginauth'])->group(function () { @@ -13,4 +13,5 @@ Route::middleware(['bloginauth'])->group(function () {
13 Route::group([], function () { 13 Route::group([], function () {
14 Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login'); 14 Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login');
15 Route::any('/user/lists', [\App\Http\Controllers\Bside\UserController::class, 'lists'])->name('user_lists'); 15 Route::any('/user/lists', [\App\Http\Controllers\Bside\UserController::class, 'lists'])->name('user_lists');
  16 + Route::any('/project/page_lists', [\App\Http\Controllers\Bside\ProjectController::class, 'page_lists'])->name('page_lists');
16 }); 17 });