作者 赵彬吉

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

@@ -43,8 +43,8 @@ class AiCommandController extends BaseController @@ -43,8 +43,8 @@ class AiCommandController extends BaseController
43 ],[ 43 ],[
44 'id.required' => 'ID不能为空' 44 'id.required' => 'ID不能为空'
45 ]); 45 ]);
46 - $aiCommandLogic->ai_info();  
47 - $this->response('success'); 46 + $info = $aiCommandLogic->ai_info();
  47 + $this->response('success',Code::SUCCESS,$info);
48 } 48 }
49 49
50 /** 50 /**
@@ -88,9 +88,10 @@ class AiCommandController extends BaseController @@ -88,9 +88,10 @@ class AiCommandController extends BaseController
88 */ 88 */
89 public function del(AiCommandLogic $aiCommandLogic){ 89 public function del(AiCommandLogic $aiCommandLogic){
90 $this->request->validate([ 90 $this->request->validate([
91 - 'id'=>'required' 91 + 'id'=>['required','array'],
92 ],[ 92 ],[
93 - 'id.required' => 'ID不能为空' 93 + 'id.required' => 'ID不能为空',
  94 + 'id.array' => 'ID为数组',
94 ]); 95 ]);
95 $aiCommandLogic->ai_del(); 96 $aiCommandLogic->ai_del();
96 $this->response('success'); 97 $this->response('success');
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Aside\Ai; @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Aside\Ai;
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Controllers\Aside\BaseController; 6 use App\Http\Controllers\Aside\BaseController;
7 use App\Models\Ai\AiLog as AiLogModel; 7 use App\Models\Ai\AiLog as AiLogModel;
  8 +use App\Models\User\User;
8 9
9 /** 10 /**
10 * @remark :ai发送记录 11 * @remark :ai发送记录
@@ -23,6 +24,12 @@ class AiLogController extends BaseController @@ -23,6 +24,12 @@ class AiLogController extends BaseController
23 */ 24 */
24 public function lists(AiLogModel $aiLogModel){ 25 public function lists(AiLogModel $aiLogModel){
25 $lists = $aiLogModel->lists($this->map,$this->page,$this->row,$this->order); 26 $lists = $aiLogModel->lists($this->map,$this->page,$this->row,$this->order);
  27 + if(!empty($lists['list'])){
  28 + foreach ($lists['list'] as $k => $v){
  29 + $v['operator_name'] = (new User())->read(['id'=>$v['operator_id']])['name'];
  30 + $lists['list'][$k] = $v;
  31 + }
  32 + }
26 $this->response('success',Code::SUCCESS,$lists); 33 $this->response('success',Code::SUCCESS,$lists);
27 } 34 }
28 } 35 }
@@ -5,12 +5,10 @@ namespace App\Http\Controllers\Aside; @@ -5,12 +5,10 @@ namespace App\Http\Controllers\Aside;
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Enums\Common\Common; 6 use App\Enums\Common\Common;
7 use App\Http\Controllers\Controller; 7 use App\Http\Controllers\Controller;
8 -use App\Models\User\User as UserModel;  
9 use Illuminate\Http\JsonResponse; 8 use Illuminate\Http\JsonResponse;
10 use Illuminate\Http\Request; 9 use Illuminate\Http\Request;
11 use Illuminate\Http\Exceptions\HttpResponseException; 10 use Illuminate\Http\Exceptions\HttpResponseException;
12 use Illuminate\Support\Facades\Cache; 11 use Illuminate\Support\Facades\Cache;
13 -use Illuminate\Support\Facades\Session;  
14 12
15 class BaseController extends Controller 13 class BaseController extends Controller
16 { 14 {
@@ -160,12 +158,6 @@ class BaseController extends Controller @@ -160,12 +158,6 @@ class BaseController extends Controller
160 case 'image': 158 case 'image':
161 $v['image_link'] = url('/a/image/' . $v); 159 $v['image_link'] = url('/a/image/' . $v);
162 break; 160 break;
163 - case 'operator_id':  
164 - if(!empty($v)){  
165 - $name = (new UserModel())->read(['id'=>$v],['id','name']);  
166 - $data['operator_name'] = (isset($name['name']) && !empty($name['name'])) ? $name['name'] : '无名称';  
167 - }  
168 - break;  
169 } 161 }
170 } 162 }
171 } 163 }
@@ -25,9 +25,7 @@ class LoginController extends BaseController @@ -25,9 +25,7 @@ class LoginController extends BaseController
25 'mobile.required' => '请输入手机号', 25 'mobile.required' => '请输入手机号',
26 'password.required' => '请输入密码', 26 'password.required' => '请输入密码',
27 ]); 27 ]);
28 -  
29 $data = $logic->login(); 28 $data = $logic->login();
30 -  
31 return $this->success($data); 29 return $this->success($data);
32 } 30 }
33 31
1 <?php 1 <?php
2 2
3 -namespace App\Http\Controllers\Aside; 3 +namespace App\Http\Controllers\Aside\Service;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
  6 +use App\Http\Controllers\Aside\BaseController;
6 use App\Http\Logic\Aside\Service\ServiceLogic; 7 use App\Http\Logic\Aside\Service\ServiceLogic;
7 8
8 /** 9 /**
@@ -34,6 +35,12 @@ class ServiceController extends BaseController @@ -34,6 +35,12 @@ class ServiceController extends BaseController
34 * @time :2023/6/25 11:51 35 * @time :2023/6/25 11:51
35 */ 36 */
36 public function save(ServiceLogic $serviceLogic){ 37 public function save(ServiceLogic $serviceLogic){
  38 + $this->request->validate([
  39 + 'data'=>['required','array'],
  40 + ], [
  41 + 'data.required' => 'data不能为空',
  42 + 'data.array' => 'data必须为数组',
  43 + ]);
37 $serviceLogic->serviceSave(); 44 $serviceLogic->serviceSave();
38 $this->response('success'); 45 $this->response('success');
39 } 46 }
@@ -56,9 +56,11 @@ class TemplateController extends BaseController @@ -56,9 +56,11 @@ class TemplateController extends BaseController
56 */ 56 */
57 public function save(TemplateRequest $request){ 57 public function save(TemplateRequest $request){
58 58
59 - TemplateLogic::instance()->save($request->validated()); 59 + $res = TemplateLogic::instance()->save($request->validated());
60 60
  61 + $data = TemplateLogic::instance()->getInfo($res['id']);
61 62
  63 + return $this->success($data);
62 } 64 }
63 65
64 66
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Aside\User; @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Aside\User;
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Controllers\Aside\BaseController; 6 use App\Http\Controllers\Aside\BaseController;
7 use App\Http\Logic\Aside\User\DeptLogic; 7 use App\Http\Logic\Aside\User\DeptLogic;
  8 +use Illuminate\Support\Facades\DB;
8 9
9 /** 10 /**
10 * @remark :b端用户组织架构 11 * @remark :b端用户组织架构
@@ -47,4 +48,67 @@ class ProjectDeptController extends BaseController @@ -47,4 +48,67 @@ class ProjectDeptController extends BaseController
47 $this->response('success',Code::SUCCESS,$info); 48 $this->response('success',Code::SUCCESS,$info);
48 } 49 }
49 50
  51 + /**
  52 + * @remark :根据组织架构获取用户
  53 + * @name :getDeptUser
  54 + * @author :lyh
  55 + * @method :post
  56 + * @time :2023/6/26 10:21
  57 + */
  58 + public function getDeptUser(){
  59 + $query = DB::table('gl_project_user')
  60 + ->leftJoin('gl_project_dept_user', 'gl_project_user.id', '=', 'gl_project_dept_user.user_id')
  61 + ->leftJoin('gl_project_dept', 'gl_project_dept_user.dept_id', '=', 'gl_project_dept.id')
  62 + ->join('gl_project_role', 'gl_project_user.role_id', '=', 'gl_project_role.id')
  63 + ->orderBy('gl_project_dept_user.id','desc');
  64 + $query = $this->searchParam($query);
  65 + $lists = $query->paginate($this->row, $this->selectParam(), 'page', $this->page);
  66 + return $this->success($lists);
  67 + }
  68 +
  69 + /**
  70 + * @name :(查询参数设置)selectParam
  71 + * @author :lyh
  72 + * @method :post
  73 + * @time :2023/6/14 15:00
  74 + */
  75 + public function selectParam(){
  76 + $select = [
  77 + 'gl_project_dept_user.dept_id AS dept_id',
  78 + 'gl_project_user.name AS name',
  79 + 'gl_project_user.project_id AS project_id',
  80 + 'gl_project_user.mobile AS mobile',
  81 + 'gl_project_user.email AS email',
  82 + 'gl_project_user.status AS status',
  83 + 'gl_project_user.role_id AS role_id',
  84 + 'gl_project_user.operator_id AS operator_id',
  85 + 'gl_project_dept_user.is_admin AS is_admin',
  86 + 'gl_project_dept.title AS title',
  87 + 'gl_project_dept.pid AS pid',
  88 + 'gl_project_dept.remark AS remark',
  89 + 'gl_project_user.id AS user_id',
  90 + 'gl_project_dept_user.id AS id',
  91 + 'gl_project_role.name AS role_name'
  92 + ];
  93 + return $select;
  94 + }
  95 + /**
  96 + * @name :(搜索参数处理)searchParam
  97 + * @author :lyh
  98 + * @method :post
  99 + * @time :2023/6/14 14:58
  100 + */
  101 + public function searchParam(&$query){
  102 + //搜索条件处理
  103 + if(isset($this->map['name'])){
  104 + $query = $query->where('gl_project_user.name',$this->map['name'][0],'%'.$this->map['name'][1].'%');
  105 + }
  106 + if(isset($this->map['dept_id'])){
  107 + $query = $query->where('gl_project_dept_user.dept_id',$this->map['dept_id']);
  108 + }
  109 + if(isset($this->map['project_id'])){
  110 + $query = $query->where('gl_project_user.project_id',$this->map['project_id']);
  111 + }
  112 + return $query;
  113 + }
50 } 114 }
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Aside\User; @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Aside\User;
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Controllers\Aside\BaseController; 6 use App\Http\Controllers\Aside\BaseController;
7 use App\Http\Logic\Aside\User\ProjectMenuLogic; 7 use App\Http\Logic\Aside\User\ProjectMenuLogic;
  8 +use App\Http\Requests\Aside\User\ProjectMenuRequest;
8 use App\Http\Requests\Aside\User\ProjectRoleRequest; 9 use App\Http\Requests\Aside\User\ProjectRoleRequest;
9 use App\Models\User\ProjectMenu; 10 use App\Models\User\ProjectMenu;
10 use App\Models\User\ProjectMenu as ProjectMenuModel; 11 use App\Models\User\ProjectMenu as ProjectMenuModel;
@@ -70,7 +71,7 @@ class ProjectMenuController extends BaseController @@ -70,7 +71,7 @@ class ProjectMenuController extends BaseController
70 } 71 }
71 72
72 /** 73 /**
73 - * @param ProjectRoleRequest $request 74 + * @param ProjectMenuRequest $request
74 * @param ProjectMenuLogic $projectMenuLogic 75 * @param ProjectMenuLogic $projectMenuLogic
75 * @remark :添加菜单 76 * @remark :添加菜单
76 * @name :add 77 * @name :add
@@ -78,14 +79,14 @@ class ProjectMenuController extends BaseController @@ -78,14 +79,14 @@ class ProjectMenuController extends BaseController
78 * @method :post 79 * @method :post
79 * @time :2023/6/21 17:23 80 * @time :2023/6/21 17:23
80 */ 81 */
81 - public function add(ProjectRoleRequest $request,ProjectMenuLogic $projectMenuLogic){ 82 + public function add(ProjectMenuRequest $request,ProjectMenuLogic $projectMenuLogic){
82 $request->validated(); 83 $request->validated();
83 $projectMenuLogic->menu_add(); 84 $projectMenuLogic->menu_add();
84 $this->response('success'); 85 $this->response('success');
85 } 86 }
86 87
87 /** 88 /**
88 - * @param ProjectRoleRequest $request 89 + * @param ProjectMenuRequest $request
89 * @param ProjectMenuLogic $projectMenuLogic 90 * @param ProjectMenuLogic $projectMenuLogic
90 * @remark :编辑菜单 91 * @remark :编辑菜单
91 * @name :edit 92 * @name :edit
@@ -93,7 +94,7 @@ class ProjectMenuController extends BaseController @@ -93,7 +94,7 @@ class ProjectMenuController extends BaseController
93 * @method :post 94 * @method :post
94 * @time :2023/6/21 17:22 95 * @time :2023/6/21 17:22
95 */ 96 */
96 - public function edit(ProjectRoleRequest $request,ProjectMenuLogic $projectMenuLogic){ 97 + public function edit(ProjectMenuRequest $request,ProjectMenuLogic $projectMenuLogic){
97 $request->validate([ 98 $request->validate([
98 'id'=>'required' 99 'id'=>'required'
99 ],[ 100 ],[
@@ -267,4 +267,30 @@ class FileController @@ -267,4 +267,30 @@ class FileController
267 } 267 }
268 return $data; 268 return $data;
269 } 269 }
  270 +
  271 + /**
  272 + * @remark :文件下载
  273 + * @name :downLoad
  274 + * @author :lyh
  275 + * @method :post
  276 + * @time :2023/6/26 16:28
  277 + */
  278 + public function downLoad($hash){
  279 + $file_model = new File();
  280 + $info = $file_model->read(['hash' => $hash]);
  281 + if ($info === false) {
  282 + $this->response('指定文件不存在!', Code::USER_ERROR);
  283 + }
  284 + $path = $info['path'];
  285 + if (!is_file($path)) {
  286 + $this->response('指定文件已被系统删除!', Code::USER_ERROR);
  287 + }
  288 + $fileUrl = url('public/upload/files/'.basename($path)); // 文件的 URL
  289 + $fileName = 'downloaded_file'.'.'.$info['type']; // 要保存的文件名
  290 + // 设置响应头
  291 + header('Content-Type: application/octet-stream');
  292 + header('Content-Disposition: attachment; filename="' . $fileName . '"');
  293 + // 下载文件
  294 + readfile($fileUrl);
  295 + }
270 } 296 }
@@ -242,7 +242,6 @@ class ImageController @@ -242,7 +242,6 @@ class ImageController
242 * @method 242 * @method
243 */ 243 */
244 protected function _extents($data) { 244 protected function _extents($data) {
245 -  
246 if (empty($data) || !is_array($data)) { 245 if (empty($data) || !is_array($data)) {
247 return empty($data) ? is_array($data) ? [] : '' : $data; 246 return empty($data) ? is_array($data) ? [] : '' : $data;
248 } 247 }
@@ -264,4 +263,5 @@ class ImageController @@ -264,4 +263,5 @@ class ImageController
264 } 263 }
265 return $data; 264 return $data;
266 } 265 }
  266 +
267 } 267 }
@@ -23,10 +23,10 @@ class AiCommandLogic extends BaseLogic @@ -23,10 +23,10 @@ class AiCommandLogic extends BaseLogic
23 */ 23 */
24 public function ai_info(){ 24 public function ai_info(){
25 $info = $this->model->read($this->param); 25 $info = $this->model->read($this->param);
26 - if($info !== false){ 26 + if($info === false){
27 $this->fail('当前数据不存在'); 27 $this->fail('当前数据不存在');
28 } 28 }
29 - return $this->success(); 29 + return $this->success($info);
30 } 30 }
31 31
32 /** 32 /**
@@ -43,6 +43,8 @@ class AiCommandLogic extends BaseLogic @@ -43,6 +43,8 @@ class AiCommandLogic extends BaseLogic
43 if($info !== false){ 43 if($info !== false){
44 $this->fail('当前指令已存在'); 44 $this->fail('当前指令已存在');
45 } 45 }
  46 + $this->param['operator_id'] = $this->manager['id'];
  47 + $this->param['create_id'] = $this->manager['id'];
46 $rs = $this->model->add($this->param); 48 $rs = $this->model->add($this->param);
47 if($rs === false){ 49 if($rs === false){
48 $this->fail('error'); 50 $this->fail('error');
@@ -86,4 +88,6 @@ class AiCommandLogic extends BaseLogic @@ -86,4 +88,6 @@ class AiCommandLogic extends BaseLogic
86 } 88 }
87 return $this->success(); 89 return $this->success();
88 } 90 }
  91 +
  92 +
89 } 93 }
@@ -16,11 +16,17 @@ class BaseLogic extends Logic @@ -16,11 +16,17 @@ class BaseLogic extends Logic
16 { 16 {
17 protected $requestAll; 17 protected $requestAll;
18 18
  19 + protected $manager;
  20 +
  21 + protected $request;
  22 +
19 protected $side = Common::A; 23 protected $side = Common::A;
20 24
21 public function __construct() 25 public function __construct()
22 { 26 {
23 - $this->requestAll = request()->all(); 27 + $this->request = request();
  28 + $this->requestAll = $this->request->all();
  29 + $this->manager = Cache::get(Common::MANAGE_TOKEN . $this->request->header('token'));
24 } 30 }
25 31
26 32
@@ -35,6 +35,9 @@ class ServiceLogic extends BaseLogic @@ -35,6 +35,9 @@ class ServiceLogic extends BaseLogic
35 case 'android': 35 case 'android':
36 $v['android_link'] = url('a/image/'.$v['values']); 36 $v['android_link'] = url('a/image/'.$v['values']);
37 break; 37 break;
  38 + case 'official_account':
  39 + $v['android_link'] = url('a/image/'.$v['values']);
  40 + break;
38 case 'ios': 41 case 'ios':
39 $v['ios_link'] = url('a/image/'.$v['values']); 42 $v['ios_link'] = url('a/image/'.$v['values']);
40 break; 43 break;
@@ -15,7 +15,7 @@ class DeptLogic extends BaseLogic @@ -15,7 +15,7 @@ class DeptLogic extends BaseLogic
15 } 15 }
16 16
17 /** 17 /**
18 - * @remark :Dept组织价格列表 18 + * @remark :Dept组织架构列表
19 * @name :DeptLists 19 * @name :DeptLists
20 * @author :lyh 20 * @author :lyh
21 * @method :post 21 * @method :post
@@ -41,4 +41,5 @@ class DeptLogic extends BaseLogic @@ -41,4 +41,5 @@ class DeptLogic extends BaseLogic
41 return $this->success($info); 41 return $this->success($info);
42 } 42 }
43 43
  44 +
44 } 45 }
@@ -170,7 +170,27 @@ class CountLogic extends BaseLogic @@ -170,7 +170,27 @@ class CountLogic extends BaseLogic
170 */ 170 */
171 public function enterprise_service(){ 171 public function enterprise_service(){
172 $serviceModel = new Service(); 172 $serviceModel = new Service();
173 - $info = $serviceModel->list(['type'=>1],'created_at');  
174 - return $this->success($info); 173 + $lists = $serviceModel->list(['type'=>1],'created_at');
  174 + foreach ($lists as $k => $v){
  175 + switch ($v['key']){
  176 + case 'images':
  177 + $arr = explode(',',$v['values']);
  178 + foreach ($arr as $k1 => $v1){
  179 + $v['images_link'][$k1] = url('a/image/'.$v1);
  180 + }
  181 + break;
  182 + case 'android':
  183 + $v['android_link'] = url('a/image/'.$v['values']);
  184 + break;
  185 + case 'official_account':
  186 + $v['official_account_link'] = url('a/image/'.$v['values']);
  187 + break;
  188 + case 'ios':
  189 + $v['ios_link'] = url('a/image/'.$v['values']);
  190 + break;
  191 + }
  192 + $lists[$k] = $v;
  193 + }
  194 + return $this->success($lists);
175 } 195 }
176 } 196 }
@@ -42,7 +42,7 @@ class TemplateRequest extends FormRequest @@ -42,7 +42,7 @@ class TemplateRequest extends FormRequest
42 ]; 42 ];
43 43
44 // 更新场景 44 // 更新场景
45 - if(!$this->is('a/template/insert')){ 45 + if($this->is('a/template/insert')){
46 unset($rule['id']); 46 unset($rule['id']);
47 } 47 }
48 48
@@ -24,7 +24,7 @@ class ProjectMenuRequest extends FormRequest @@ -24,7 +24,7 @@ class ProjectMenuRequest extends FormRequest
24 public function rules() 24 public function rules()
25 { 25 {
26 return [ 26 return [
27 - 'name'=>'required|string|max:11||unique:gl_project_menu', 27 + 'name'=>'required|string|max:11',
28 ]; 28 ];
29 } 29 }
30 30
@@ -2,9 +2,9 @@ @@ -2,9 +2,9 @@
2 /** 2 /**
3 * A端用户路由文件 3 * A端用户路由文件
4 */ 4 */
5 -use \Illuminate\Support\Facades\Route;  
6 -use \App\Http\Controllers\Aside;  
7 5
  6 +use App\Http\Controllers\Aside;
  7 +use Illuminate\Support\Facades\Route;
8 8
9 9
10 Route::middleware(['aloginauth'])->group(function () { 10 Route::middleware(['aloginauth'])->group(function () {
@@ -44,6 +44,7 @@ Route::middleware(['aloginauth'])->group(function () { @@ -44,6 +44,7 @@ Route::middleware(['aloginauth'])->group(function () {
44 Route::prefix('dept')->group(function () { 44 Route::prefix('dept')->group(function () {
45 Route::any('/', [Aside\User\ProjectDeptController::class, 'lists'])->name('admin.group_lists'); 45 Route::any('/', [Aside\User\ProjectDeptController::class, 'lists'])->name('admin.group_lists');
46 Route::any('/read', [Aside\User\ProjectDeptController::class, 'read'])->name('admin.group_info'); 46 Route::any('/read', [Aside\User\ProjectDeptController::class, 'read'])->name('admin.group_info');
  47 + Route::any('/getDeptUser', [Aside\User\ProjectDeptController::class, 'getDeptUser'])->name('admin.getDeptUser');
47 }); 48 });
48 49
49 50
@@ -56,6 +57,8 @@ Route::middleware(['aloginauth'])->group(function () { @@ -56,6 +57,8 @@ Route::middleware(['aloginauth'])->group(function () {
56 Route::any('/add', [Aside\Ai\AiCommandController::class, 'add'])->name('admin.ai_add'); 57 Route::any('/add', [Aside\Ai\AiCommandController::class, 'add'])->name('admin.ai_add');
57 Route::any('/edit', [Aside\Ai\AiCommandController::class, 'edit'])->name('admin.ai_edit'); 58 Route::any('/edit', [Aside\Ai\AiCommandController::class, 'edit'])->name('admin.ai_edit');
58 Route::any('/del', [Aside\Ai\AiCommandController::class, 'del'])->name('admin.ai_del'); 59 Route::any('/del', [Aside\Ai\AiCommandController::class, 'del'])->name('admin.ai_del');
  60 + //发送记录
  61 + Route::any('/log', [Aside\Ai\AiLogController::class, 'lists'])->name('admin.lists');
59 }); 62 });
60 63
61 //站内信 64 //站内信
@@ -116,8 +119,8 @@ Route::middleware(['aloginauth'])->group(function () { @@ -116,8 +119,8 @@ Route::middleware(['aloginauth'])->group(function () {
116 119
117 //企业服务配置信息 120 //企业服务配置信息
118 Route::prefix('service')->group(function () { 121 Route::prefix('service')->group(function () {
119 - Route::any('/', [Aside\ServiceController::class, 'lists'])->name('admin.service_lists');  
120 - Route::any('/save', [Aside\ServiceController::class, 'save'])->name('admin.service_save'); 122 + Route::any('/', [Aside\Service\ServiceController::class, 'lists'])->name('admin.service_lists');
  123 + Route::any('/save', [Aside\Service\ServiceController::class, 'save'])->name('admin.service_save');
121 }); 124 });
122 125
123 //项目管理 126 //项目管理