Merge remote-tracking branch 'origin/master' into akun
正在显示
10 个修改的文件
包含
86 行增加
和
46 行删除
| @@ -55,7 +55,7 @@ class UpdateRoute extends Command | @@ -55,7 +55,7 @@ class UpdateRoute extends Command | ||
| 55 | */ | 55 | */ |
| 56 | public function handle(){ | 56 | public function handle(){ |
| 57 | $projectModel = new Project(); | 57 | $projectModel = new Project(); |
| 58 | - $list = $projectModel->list(['id'=>687]); | 58 | + $list = $projectModel->list(['id'=>775]); |
| 59 | $data = []; | 59 | $data = []; |
| 60 | foreach ($list as $v){ | 60 | foreach ($list as $v){ |
| 61 | echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL; | 61 | echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL; |
| @@ -110,7 +110,7 @@ class UpdateRoute extends Command | @@ -110,7 +110,7 @@ class UpdateRoute extends Command | ||
| 110 | // $tag = "-tag"; | 110 | // $tag = "-tag"; |
| 111 | // if ((substr($v['route'], -strlen($tag)) === $tag)) { | 111 | // if ((substr($v['route'], -strlen($tag)) === $tag)) { |
| 112 | // echo date('Y-m-d H:i:s') . '拼接 :'.$v['id'] . PHP_EOL; | 112 | // echo date('Y-m-d H:i:s') . '拼接 :'.$v['id'] . PHP_EOL; |
| 113 | -//// $route = Translate::tran($v['route'], 'en').$tag; | 113 | +// $route = Translate::tran($v['route'], 'en').$tag; |
| 114 | // // 如果不是以 '-tag' 结尾,则拼接上 '-tag' | 114 | // // 如果不是以 '-tag' 结尾,则拼接上 '-tag' |
| 115 | // $route = trim($v['route'],'-tag'); | 115 | // $route = trim($v['route'],'-tag'); |
| 116 | // $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']); | 116 | // $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']); |
| @@ -594,12 +594,12 @@ if (!function_exists('getFileUrl')) { | @@ -594,12 +594,12 @@ if (!function_exists('getFileUrl')) { | ||
| 594 | if(substr($path,0,2) == '//'){ | 594 | if(substr($path,0,2) == '//'){ |
| 595 | return 'https:'.$path; | 595 | return 'https:'.$path; |
| 596 | } | 596 | } |
| 597 | - $file_type = pathinfo($path, PATHINFO_EXTENSION); | ||
| 598 | - $fileTypeArr = ['zip', 'pdf', 'mp4', 'doc', 'docx', 'm4v', 'xlsx']; | ||
| 599 | - if(in_array(strtolower($file_type),$fileTypeArr)){ | ||
| 600 | - $cdn2 = config('filesystems.disks.cos')['cdn2']; | ||
| 601 | - return $cdn2.$path; | ||
| 602 | - } | 597 | +// $file_type = pathinfo($path, PATHINFO_EXTENSION); |
| 598 | +// $fileTypeArr = ['zip', 'pdf', 'mp4', 'doc', 'docx', 'm4v', 'xlsx']; | ||
| 599 | +// if(in_array(strtolower($file_type),$fileTypeArr)){ | ||
| 600 | +// $cdn2 = config('filesystems.disks.cos')['cdn2']; | ||
| 601 | +// return $cdn2.$path; | ||
| 602 | +// } | ||
| 603 | if($location == 0){ | 603 | if($location == 0){ |
| 604 | //v6-file.globalso.com | 604 | //v6-file.globalso.com |
| 605 | $cos = config('filesystems.disks.cos'); | 605 | $cos = config('filesystems.disks.cos'); |
| @@ -3,16 +3,10 @@ | @@ -3,16 +3,10 @@ | ||
| 3 | namespace App\Http\Controllers\Aside\Manage; | 3 | namespace App\Http\Controllers\Aside\Manage; |
| 4 | 4 | ||
| 5 | use App\Enums\Common\Code; | 5 | use App\Enums\Common\Code; |
| 6 | -use App\Helper\Arr; | ||
| 7 | use App\Http\Controllers\Aside\BaseController; | 6 | use App\Http\Controllers\Aside\BaseController; |
| 8 | use App\Http\Logic\Aside\Manage\MenuLogic; | 7 | use App\Http\Logic\Aside\Manage\MenuLogic; |
| 9 | use App\Http\Requests\Aside\Manage\MenuRequest; | 8 | use App\Http\Requests\Aside\Manage\MenuRequest; |
| 10 | -use App\Models\Manage\Menu; | ||
| 11 | use App\Rules\Ids; | 9 | use App\Rules\Ids; |
| 12 | -use Illuminate\Http\Request; | ||
| 13 | -use Illuminate\Support\Facades\Route; | ||
| 14 | -use Illuminate\Support\Str; | ||
| 15 | - | ||
| 16 | /** | 10 | /** |
| 17 | * 后台菜单 | 11 | * 后台菜单 |
| 18 | * Class MenuController | 12 | * Class MenuController |
| @@ -987,15 +987,18 @@ class ProjectController extends BaseController | @@ -987,15 +987,18 @@ class ProjectController extends BaseController | ||
| 987 | ]); | 987 | ]); |
| 988 | //查看当前用户是否存在 | 988 | //查看当前用户是否存在 |
| 989 | $hrModel = new ManageHr(); | 989 | $hrModel = new ManageHr(); |
| 990 | - $hrInfo = $hrModel->read(['id'=>$this->param['old_id']]); | ||
| 991 | - if($hrInfo === false){ | 990 | + $oldHrInfo = $hrModel->read(['id'=>$this->param['old_id']]); |
| 991 | + if($oldHrInfo === false){ | ||
| 992 | $this->response('当前用户不存在',Code::SYSTEM_ERROR); | 992 | $this->response('当前用户不存在',Code::SYSTEM_ERROR); |
| 993 | } | 993 | } |
| 994 | - $hrInfo = $hrModel->read(['id'=>$this->param['new_id'],'status'=>1]); | ||
| 995 | - if($hrInfo === false){ | 994 | + $newHrInfo = $hrModel->read(['id'=>$this->param['new_id'],'status'=>1]); |
| 995 | + if($newHrInfo === false){ | ||
| 996 | $this->response('变更的用户不存在',Code::SYSTEM_ERROR); | 996 | $this->response('变更的用户不存在',Code::SYSTEM_ERROR); |
| 997 | } | 997 | } |
| 998 | - $logic->getManagerFiled($hrInfo['entry_position'],$this->param['old_id'],$this->param['new_id'],$this->param['project_id'] ?? []); | 998 | + if($oldHrInfo['entry_position'] != $newHrInfo['entry_position']){ |
| 999 | + $this->response('不同岗位不允许变更',Code::SYSTEM_ERROR); | ||
| 1000 | + } | ||
| 1001 | + $logic->getManagerFiled($newHrInfo['entry_position'],$this->param['old_id'],$this->param['new_id'],$this->param['project_id'] ?? []); | ||
| 999 | $this->response('success'); | 1002 | $this->response('success'); |
| 1000 | } | 1003 | } |
| 1001 | 1004 |
| @@ -11,7 +11,12 @@ namespace App\Http\Controllers\Bside\BCom; | @@ -11,7 +11,12 @@ namespace App\Http\Controllers\Bside\BCom; | ||
| 11 | 11 | ||
| 12 | use App\Enums\Common\Code; | 12 | use App\Enums\Common\Code; |
| 13 | use App\Http\Controllers\Bside\BaseController; | 13 | use App\Http\Controllers\Bside\BaseController; |
| 14 | +use App\Models\HomeCount\Count; | ||
| 14 | use App\Models\HomeCount\MonthCount; | 15 | use App\Models\HomeCount\MonthCount; |
| 16 | +use App\Models\News\News; | ||
| 17 | +use App\Models\Product\Category; | ||
| 18 | +use App\Models\Product\Product; | ||
| 19 | +use Carbon\Carbon; | ||
| 15 | 20 | ||
| 16 | class MonthReportController extends BaseController | 21 | class MonthReportController extends BaseController |
| 17 | { | 22 | { |
| @@ -40,24 +45,42 @@ class MonthReportController extends BaseController | @@ -40,24 +45,42 @@ class MonthReportController extends BaseController | ||
| 40 | $monthCountModel = new MonthCount(); | 45 | $monthCountModel = new MonthCount(); |
| 41 | $this->map['project_id'] = $this->user['project_id']; | 46 | $this->map['project_id'] = $this->user['project_id']; |
| 42 | $info = $monthCountModel->read($this->map); | 47 | $info = $monthCountModel->read($this->map); |
| 43 | - foreach ($info as $k => $v){ | ||
| 44 | - if(!empty($v['source_country'])){ | ||
| 45 | - $v['source_country'] = json_decode($v['source_country']); | ||
| 46 | - } | ||
| 47 | - if(!empty($v['referrer_port'])){ | ||
| 48 | - $v['referrer_port'] = json_decode($v['referrer_port']); | ||
| 49 | - } | ||
| 50 | - if(!empty($v['referrer_url'])){ | ||
| 51 | - $v['referrer_url'] = json_decode($v['referrer_url']); | ||
| 52 | - } | ||
| 53 | - if(!empty($v['source'])){ | ||
| 54 | - $v['source'] = json_decode($v['source']); | ||
| 55 | - } | ||
| 56 | - if(!empty($v['country'])){ | ||
| 57 | - $v['country'] = json_decode($v['country']); | ||
| 58 | - } | ||
| 59 | - $lists[$k] = $v; | 48 | + if(!empty($info['source_country'])){ |
| 49 | + $info['source_country'] = json_decode($info['source_country']); | ||
| 60 | } | 50 | } |
| 51 | + if(!empty($info['referrer_port'])){ | ||
| 52 | + $info['referrer_port'] = json_decode($info['referrer_port']); | ||
| 53 | + } | ||
| 54 | + if(!empty($info['referrer_url'])){ | ||
| 55 | + $info['referrer_url'] = json_decode($info['referrer_url']); | ||
| 56 | + } | ||
| 57 | + if(!empty($info['source'])){ | ||
| 58 | + $info['source'] = json_decode($info['source']); | ||
| 59 | + } | ||
| 60 | + if(!empty($info['country'])){ | ||
| 61 | + $info['country'] = json_decode($info['country']); | ||
| 62 | + } | ||
| 63 | + // 获取上个月的开始时间 | ||
| 64 | + $startTime = Carbon::now()->subMonth()->startOfMonth()->toDateString(); | ||
| 65 | + // 获取上个月的结束时间 | ||
| 66 | + $endTime = Carbon::now()->subMonth()->endOfMonth()->toDateString(); | ||
| 67 | + $param = [ | ||
| 68 | + 'date' => ['between',[$startTime,$endTime]], | ||
| 69 | + 'project_id' => $this->user['project_id'] | ||
| 70 | + ]; | ||
| 71 | + $info['pv_ip'] = (new Count())->list($param,'date',['id','pv_num','ip_num','date']); | ||
| 72 | + $categoryModel = new Category(); | ||
| 73 | + $info['category_num'] = $categoryModel->formatQuery(['status'=>1])->count(); | ||
| 74 | + $productModel = new Product(); | ||
| 75 | + $info['products_num'] = $productModel->formatQuery(['status'=>1])->count(); | ||
| 76 | + $info['products_num_last_30'] = $productModel->formatQuery( | ||
| 77 | + ['status'=>1,'created_at'=>['between',[now()->subDays(30)->startOfDay()->toDateString(),now()->startOfDay()->toDateString()]] | ||
| 78 | + ])->count(); | ||
| 79 | + $newsModel = new News(); | ||
| 80 | + $info['news_num'] = $newsModel->formatQuery(['status'=>0])->count(); | ||
| 81 | + $info['news_num_last_7'] = $newsModel->formatQuery( | ||
| 82 | + ['status'=>1,'created_at'=>['between',[now()->subDays(7)->startOfDay()->toDateString(),now()->startOfDay()->toDateString()]] | ||
| 83 | + ])->count(); | ||
| 61 | $this->response('success',Code::SUCCESS,$info); | 84 | $this->response('success',Code::SUCCESS,$info); |
| 62 | } | 85 | } |
| 63 | } | 86 | } |
| @@ -41,7 +41,7 @@ class LoginLogic extends BaseLogic | @@ -41,7 +41,7 @@ class LoginLogic extends BaseLogic | ||
| 41 | */ | 41 | */ |
| 42 | public function login() | 42 | public function login() |
| 43 | { | 43 | { |
| 44 | - $manage = $this->model->select('id', 'name', 'password', 'token', 'status', 'gid', 'dept_id','role') | 44 | + $manage = $this->model->select('id', 'name', 'password', 'token', 'status', 'gid', 'dept_id','role','rules') |
| 45 | ->where('mobile', $this->param['mobile'])->first(); | 45 | ->where('mobile', $this->param['mobile'])->first(); |
| 46 | if (!$manage){ | 46 | if (!$manage){ |
| 47 | $this->fail('登录用户名不存在'); | 47 | $this->fail('登录用户名不存在'); |
| @@ -3,6 +3,7 @@ | @@ -3,6 +3,7 @@ | ||
| 3 | namespace App\Http\Logic\Aside\Manage; | 3 | namespace App\Http\Logic\Aside\Manage; |
| 4 | 4 | ||
| 5 | 5 | ||
| 6 | +use App\Helper\Arr; | ||
| 6 | use App\Helper\Common; | 7 | use App\Helper\Common; |
| 7 | use App\Http\Logic\Aside\BaseLogic; | 8 | use App\Http\Logic\Aside\BaseLogic; |
| 8 | use App\Models\Manage\Manage; | 9 | use App\Models\Manage\Manage; |
| @@ -59,6 +60,9 @@ class ManageLogic extends BaseLogic | @@ -59,6 +60,9 @@ class ManageLogic extends BaseLogic | ||
| 59 | if($managerInfo !== false){ | 60 | if($managerInfo !== false){ |
| 60 | $this->fail('当前手机号码已存在'); | 61 | $this->fail('当前手机号码已存在'); |
| 61 | } | 62 | } |
| 63 | + if (isset($this->param['rules']) && is_array($this->param['rules'])){ | ||
| 64 | + $this->param['rules'] = Arr::arrToSet($this->param['rules']); | ||
| 65 | + } | ||
| 62 | $this->param['password'] = Hash::make(isset($this->param['password']) ?? 'globalsov6'); | 66 | $this->param['password'] = Hash::make(isset($this->param['password']) ?? 'globalsov6'); |
| 63 | $this->model->add($this->param); | 67 | $this->model->add($this->param); |
| 64 | $this->success(); | 68 | $this->success(); |
| @@ -93,6 +97,9 @@ class ManageLogic extends BaseLogic | @@ -93,6 +97,9 @@ class ManageLogic extends BaseLogic | ||
| 93 | if(isset($this->param['password']) && !empty($this->param['password'])){ | 97 | if(isset($this->param['password']) && !empty($this->param['password'])){ |
| 94 | $this->param['password'] = Hash::make($this->param['password']); | 98 | $this->param['password'] = Hash::make($this->param['password']); |
| 95 | } | 99 | } |
| 100 | + if (isset($this->param['rules']) && is_array($this->param['rules'])){ | ||
| 101 | + $this->param['rules'] = Arr::arrToSet($this->param['rules']); | ||
| 102 | + } | ||
| 96 | $this->model->edit($this->param,['id'=>$this->param['id']]); | 103 | $this->model->edit($this->param,['id'=>$this->param['id']]); |
| 97 | } | 104 | } |
| 98 | 105 | ||
| @@ -120,7 +127,10 @@ class ManageLogic extends BaseLogic | @@ -120,7 +127,10 @@ class ManageLogic extends BaseLogic | ||
| 120 | */ | 127 | */ |
| 121 | public function getManagerInfo(){ | 128 | public function getManagerInfo(){ |
| 122 | $info = $this->model->read(['id'=>$this->param['id']], | 129 | $info = $this->model->read(['id'=>$this->param['id']], |
| 123 | - ['id','name','email','mobile','status','gid','sort','dept_id','is_dept_manager','created_at','role','updated_at']); | 130 | + ['id','name','email','mobile','status','gid','sort','dept_id','is_dept_manager','created_at','role','rules','updated_at']); |
| 131 | + if(!empty($info['rules'])){ | ||
| 132 | + $info['rules'] = Arr::setToArr($info['rules']); | ||
| 133 | + } | ||
| 124 | if($info === false){ | 134 | if($info === false){ |
| 125 | $this->fail('error'); | 135 | $this->fail('error'); |
| 126 | } | 136 | } |
| @@ -93,6 +93,14 @@ class MenuLogic extends BaseLogic | @@ -93,6 +93,14 @@ class MenuLogic extends BaseLogic | ||
| 93 | */ | 93 | */ |
| 94 | public function getMenuByGroupId($gid){ | 94 | public function getMenuByGroupId($gid){ |
| 95 | $rights = Group::where(['id' => $gid, 'status' => Group::STATUS_NORMAL])->pluck('rights')->first(); | 95 | $rights = Group::where(['id' => $gid, 'status' => Group::STATUS_NORMAL])->pluck('rights')->first(); |
| 96 | + //获取个人权限 | ||
| 97 | + if(isset($this->manager['rules']) && !empty($this->manager['rules'])){ | ||
| 98 | + $rules = Arr::setToArr($this->manager['rules']); | ||
| 99 | + // 合并两个数组 | ||
| 100 | + $mergedArray = array_merge($rules, $rights); | ||
| 101 | + // 去除重复的元素 | ||
| 102 | + $rights = array_unique($mergedArray); | ||
| 103 | + } | ||
| 96 | $map = [ | 104 | $map = [ |
| 97 | 'type'=>0, | 105 | 'type'=>0, |
| 98 | 'status' => Menu::STATUS_NORMAL, | 106 | 'status' => Menu::STATUS_NORMAL, |
| @@ -864,6 +864,7 @@ class ProjectLogic extends BaseLogic | @@ -864,6 +864,7 @@ class ProjectLogic extends BaseLogic | ||
| 864 | $param['designer_mid'] = $old_id; | 864 | $param['designer_mid'] = $old_id; |
| 865 | $deployBuildModel = new DeployBuild(); | 865 | $deployBuildModel = new DeployBuild(); |
| 866 | $deployBuildModel->edit(['designer_mid'=>$new_id],$param); | 866 | $deployBuildModel->edit(['designer_mid'=>$new_id],$param); |
| 867 | + break; | ||
| 867 | //技术助理 | 868 | //技术助理 |
| 868 | case 40: | 869 | case 40: |
| 869 | $param['tech_mid'] = $old_id; | 870 | $param['tech_mid'] = $old_id; |
| @@ -878,32 +879,35 @@ class ProjectLogic extends BaseLogic | @@ -878,32 +879,35 @@ class ProjectLogic extends BaseLogic | ||
| 878 | $deployOptimizeModel->edit(['manager_mid'=>$new_id],$param); | 879 | $deployOptimizeModel->edit(['manager_mid'=>$new_id],$param); |
| 879 | $param['tech_leader'] = $old_id; | 880 | $param['tech_leader'] = $old_id; |
| 880 | unset($param['manager_mid']); | 881 | unset($param['manager_mid']); |
| 881 | - $deployOptimizeModel->edit(['tech_leader'=>$new_id],['tech_leader'=>$old_id]); | 882 | + $deployOptimizeModel->edit(['tech_leader'=>$new_id],$param); |
| 882 | break; | 883 | break; |
| 883 | //优化师 | 884 | //优化师 |
| 884 | - case 44: | 885 | + case 46: |
| 885 | $param['optimist_mid'] = $old_id; | 886 | $param['optimist_mid'] = $old_id; |
| 886 | $deployOptimizeModel = new DeployOptimize(); | 887 | $deployOptimizeModel = new DeployOptimize(); |
| 887 | $deployOptimizeModel->edit(['optimist_mid'=>$new_id],$param); | 888 | $deployOptimizeModel->edit(['optimist_mid'=>$new_id],$param); |
| 888 | $param['assist_mid'] = $old_id; | 889 | $param['assist_mid'] = $old_id; |
| 889 | unset($param['optimist_mid']); | 890 | unset($param['optimist_mid']); |
| 890 | - $deployOptimizeModel->edit(['assist_mid'=>$new_id],['assist_mid'=>$old_id]); | 891 | + $deployOptimizeModel->edit(['assist_mid'=>$new_id],$param); |
| 891 | break; | 892 | break; |
| 892 | - case 46: | 893 | + case 49: |
| 893 | //优化师助理 | 894 | //优化师助理 |
| 894 | $param['assist_mid'] = $old_id; | 895 | $param['assist_mid'] = $old_id; |
| 895 | $deployOptimizeModel = new DeployOptimize(); | 896 | $deployOptimizeModel = new DeployOptimize(); |
| 896 | $deployOptimizeModel->edit(['assist_mid'=>$new_id],$param); | 897 | $deployOptimizeModel->edit(['assist_mid'=>$new_id],$param); |
| 898 | + break; | ||
| 897 | case 45: | 899 | case 45: |
| 898 | //售后技术 | 900 | //售后技术 |
| 899 | $param['tech_mid'] = $old_id; | 901 | $param['tech_mid'] = $old_id; |
| 900 | $deployOptimizeModel = new DeployOptimize(); | 902 | $deployOptimizeModel = new DeployOptimize(); |
| 901 | $deployOptimizeModel->edit(['tech_mid'=>$new_id],$param); | 903 | $deployOptimizeModel->edit(['tech_mid'=>$new_id],$param); |
| 904 | + break; | ||
| 902 | case 38: | 905 | case 38: |
| 903 | //品控 | 906 | //品控 |
| 904 | $param['design_mid'] = $old_id; | 907 | $param['design_mid'] = $old_id; |
| 905 | $deployOptimizeModel = new DeployOptimize(); | 908 | $deployOptimizeModel = new DeployOptimize(); |
| 906 | $deployOptimizeModel->edit(['design_mid'=>$new_id],$param); | 909 | $deployOptimizeModel->edit(['design_mid'=>$new_id],$param); |
| 910 | + break; | ||
| 907 | default: | 911 | default: |
| 908 | break; | 912 | break; |
| 909 | } | 913 | } |
| @@ -55,10 +55,8 @@ class RouteMap extends Base | @@ -55,10 +55,8 @@ class RouteMap extends Base | ||
| 55 | public static function generateRoute($title, $source, $source_id, $project_id){ | 55 | public static function generateRoute($title, $source, $source_id, $project_id){ |
| 56 | if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $title)){ | 56 | if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $title)){ |
| 57 | $title = Translate::tran($title, 'en'); | 57 | $title = Translate::tran($title, 'en'); |
| 58 | - }else{ | ||
| 59 | - if(!preg_match('/[a-zA-Z]/', $title)){ | ||
| 60 | - $title = Translate::tran($title, 'en'); | ||
| 61 | - } | 58 | + }elseif(preg_match('/^[\x{0400}-\x{04FF}]+$/u', $title)){ |
| 59 | + $title = Translate::tran($title, 'en'); | ||
| 62 | } | 60 | } |
| 63 | $i=1; | 61 | $i=1; |
| 64 | $sign = generateRoute($title); | 62 | $sign = generateRoute($title); |
-
请 注册 或 登录 后发表评论