作者 刘锟

Merge remote-tracking branch 'origin/master' into akun

... ... @@ -55,7 +55,7 @@ class UpdateRoute extends Command
*/
public function handle(){
$projectModel = new Project();
$list = $projectModel->list(['id'=>687]);
$list = $projectModel->list(['id'=>775]);
$data = [];
foreach ($list as $v){
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
... ... @@ -110,7 +110,7 @@ class UpdateRoute extends Command
// $tag = "-tag";
// if ((substr($v['route'], -strlen($tag)) === $tag)) {
// echo date('Y-m-d H:i:s') . '拼接 :'.$v['id'] . PHP_EOL;
//// $route = Translate::tran($v['route'], 'en').$tag;
// $route = Translate::tran($v['route'], 'en').$tag;
// // 如果不是以 '-tag' 结尾,则拼接上 '-tag'
// $route = trim($v['route'],'-tag');
// $route = RouteMap::setRoute($route, RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $v['project_id']);
... ...
... ... @@ -594,12 +594,12 @@ if (!function_exists('getFileUrl')) {
if(substr($path,0,2) == '//'){
return 'https:'.$path;
}
$file_type = pathinfo($path, PATHINFO_EXTENSION);
$fileTypeArr = ['zip', 'pdf', 'mp4', 'doc', 'docx', 'm4v', 'xlsx'];
if(in_array(strtolower($file_type),$fileTypeArr)){
$cdn2 = config('filesystems.disks.cos')['cdn2'];
return $cdn2.$path;
}
// $file_type = pathinfo($path, PATHINFO_EXTENSION);
// $fileTypeArr = ['zip', 'pdf', 'mp4', 'doc', 'docx', 'm4v', 'xlsx'];
// if(in_array(strtolower($file_type),$fileTypeArr)){
// $cdn2 = config('filesystems.disks.cos')['cdn2'];
// return $cdn2.$path;
// }
if($location == 0){
//v6-file.globalso.com
$cos = config('filesystems.disks.cos');
... ...
... ... @@ -3,16 +3,10 @@
namespace App\Http\Controllers\Aside\Manage;
use App\Enums\Common\Code;
use App\Helper\Arr;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Manage\MenuLogic;
use App\Http\Requests\Aside\Manage\MenuRequest;
use App\Models\Manage\Menu;
use App\Rules\Ids;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;
/**
* 后台菜单
* Class MenuController
... ...
... ... @@ -987,15 +987,18 @@ class ProjectController extends BaseController
]);
//查看当前用户是否存在
$hrModel = new ManageHr();
$hrInfo = $hrModel->read(['id'=>$this->param['old_id']]);
if($hrInfo === false){
$oldHrInfo = $hrModel->read(['id'=>$this->param['old_id']]);
if($oldHrInfo === false){
$this->response('当前用户不存在',Code::SYSTEM_ERROR);
}
$hrInfo = $hrModel->read(['id'=>$this->param['new_id'],'status'=>1]);
if($hrInfo === false){
$newHrInfo = $hrModel->read(['id'=>$this->param['new_id'],'status'=>1]);
if($newHrInfo === false){
$this->response('变更的用户不存在',Code::SYSTEM_ERROR);
}
$logic->getManagerFiled($hrInfo['entry_position'],$this->param['old_id'],$this->param['new_id'],$this->param['project_id'] ?? []);
if($oldHrInfo['entry_position'] != $newHrInfo['entry_position']){
$this->response('不同岗位不允许变更',Code::SYSTEM_ERROR);
}
$logic->getManagerFiled($newHrInfo['entry_position'],$this->param['old_id'],$this->param['new_id'],$this->param['project_id'] ?? []);
$this->response('success');
}
... ...
... ... @@ -11,7 +11,12 @@ namespace App\Http\Controllers\Bside\BCom;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
use App\Models\HomeCount\Count;
use App\Models\HomeCount\MonthCount;
use App\Models\News\News;
use App\Models\Product\Category;
use App\Models\Product\Product;
use Carbon\Carbon;
class MonthReportController extends BaseController
{
... ... @@ -40,24 +45,42 @@ class MonthReportController extends BaseController
$monthCountModel = new MonthCount();
$this->map['project_id'] = $this->user['project_id'];
$info = $monthCountModel->read($this->map);
foreach ($info as $k => $v){
if(!empty($v['source_country'])){
$v['source_country'] = json_decode($v['source_country']);
if(!empty($info['source_country'])){
$info['source_country'] = json_decode($info['source_country']);
}
if(!empty($v['referrer_port'])){
$v['referrer_port'] = json_decode($v['referrer_port']);
if(!empty($info['referrer_port'])){
$info['referrer_port'] = json_decode($info['referrer_port']);
}
if(!empty($v['referrer_url'])){
$v['referrer_url'] = json_decode($v['referrer_url']);
if(!empty($info['referrer_url'])){
$info['referrer_url'] = json_decode($info['referrer_url']);
}
if(!empty($v['source'])){
$v['source'] = json_decode($v['source']);
if(!empty($info['source'])){
$info['source'] = json_decode($info['source']);
}
if(!empty($v['country'])){
$v['country'] = json_decode($v['country']);
}
$lists[$k] = $v;
if(!empty($info['country'])){
$info['country'] = json_decode($info['country']);
}
// 获取上个月的开始时间
$startTime = Carbon::now()->subMonth()->startOfMonth()->toDateString();
// 获取上个月的结束时间
$endTime = Carbon::now()->subMonth()->endOfMonth()->toDateString();
$param = [
'date' => ['between',[$startTime,$endTime]],
'project_id' => $this->user['project_id']
];
$info['pv_ip'] = (new Count())->list($param,'date',['id','pv_num','ip_num','date']);
$categoryModel = new Category();
$info['category_num'] = $categoryModel->formatQuery(['status'=>1])->count();
$productModel = new Product();
$info['products_num'] = $productModel->formatQuery(['status'=>1])->count();
$info['products_num_last_30'] = $productModel->formatQuery(
['status'=>1,'created_at'=>['between',[now()->subDays(30)->startOfDay()->toDateString(),now()->startOfDay()->toDateString()]]
])->count();
$newsModel = new News();
$info['news_num'] = $newsModel->formatQuery(['status'=>0])->count();
$info['news_num_last_7'] = $newsModel->formatQuery(
['status'=>1,'created_at'=>['between',[now()->subDays(7)->startOfDay()->toDateString(),now()->startOfDay()->toDateString()]]
])->count();
$this->response('success',Code::SUCCESS,$info);
}
}
... ...
... ... @@ -41,7 +41,7 @@ class LoginLogic extends BaseLogic
*/
public function login()
{
$manage = $this->model->select('id', 'name', 'password', 'token', 'status', 'gid', 'dept_id','role')
$manage = $this->model->select('id', 'name', 'password', 'token', 'status', 'gid', 'dept_id','role','rules')
->where('mobile', $this->param['mobile'])->first();
if (!$manage){
$this->fail('登录用户名不存在');
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Http\Logic\Aside\Manage;
use App\Helper\Arr;
use App\Helper\Common;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Manage\Manage;
... ... @@ -59,6 +60,9 @@ class ManageLogic extends BaseLogic
if($managerInfo !== false){
$this->fail('当前手机号码已存在');
}
if (isset($this->param['rules']) && is_array($this->param['rules'])){
$this->param['rules'] = Arr::arrToSet($this->param['rules']);
}
$this->param['password'] = Hash::make(isset($this->param['password']) ?? 'globalsov6');
$this->model->add($this->param);
$this->success();
... ... @@ -93,6 +97,9 @@ class ManageLogic extends BaseLogic
if(isset($this->param['password']) && !empty($this->param['password'])){
$this->param['password'] = Hash::make($this->param['password']);
}
if (isset($this->param['rules']) && is_array($this->param['rules'])){
$this->param['rules'] = Arr::arrToSet($this->param['rules']);
}
$this->model->edit($this->param,['id'=>$this->param['id']]);
}
... ... @@ -120,7 +127,10 @@ class ManageLogic extends BaseLogic
*/
public function getManagerInfo(){
$info = $this->model->read(['id'=>$this->param['id']],
['id','name','email','mobile','status','gid','sort','dept_id','is_dept_manager','created_at','role','updated_at']);
['id','name','email','mobile','status','gid','sort','dept_id','is_dept_manager','created_at','role','rules','updated_at']);
if(!empty($info['rules'])){
$info['rules'] = Arr::setToArr($info['rules']);
}
if($info === false){
$this->fail('error');
}
... ...
... ... @@ -93,6 +93,14 @@ class MenuLogic extends BaseLogic
*/
public function getMenuByGroupId($gid){
$rights = Group::where(['id' => $gid, 'status' => Group::STATUS_NORMAL])->pluck('rights')->first();
//获取个人权限
if(isset($this->manager['rules']) && !empty($this->manager['rules'])){
$rules = Arr::setToArr($this->manager['rules']);
// 合并两个数组
$mergedArray = array_merge($rules, $rights);
// 去除重复的元素
$rights = array_unique($mergedArray);
}
$map = [
'type'=>0,
'status' => Menu::STATUS_NORMAL,
... ...
... ... @@ -864,6 +864,7 @@ class ProjectLogic extends BaseLogic
$param['designer_mid'] = $old_id;
$deployBuildModel = new DeployBuild();
$deployBuildModel->edit(['designer_mid'=>$new_id],$param);
break;
//技术助理
case 40:
$param['tech_mid'] = $old_id;
... ... @@ -878,32 +879,35 @@ class ProjectLogic extends BaseLogic
$deployOptimizeModel->edit(['manager_mid'=>$new_id],$param);
$param['tech_leader'] = $old_id;
unset($param['manager_mid']);
$deployOptimizeModel->edit(['tech_leader'=>$new_id],['tech_leader'=>$old_id]);
$deployOptimizeModel->edit(['tech_leader'=>$new_id],$param);
break;
//优化师
case 44:
case 46:
$param['optimist_mid'] = $old_id;
$deployOptimizeModel = new DeployOptimize();
$deployOptimizeModel->edit(['optimist_mid'=>$new_id],$param);
$param['assist_mid'] = $old_id;
unset($param['optimist_mid']);
$deployOptimizeModel->edit(['assist_mid'=>$new_id],['assist_mid'=>$old_id]);
$deployOptimizeModel->edit(['assist_mid'=>$new_id],$param);
break;
case 46:
case 49:
//优化师助理
$param['assist_mid'] = $old_id;
$deployOptimizeModel = new DeployOptimize();
$deployOptimizeModel->edit(['assist_mid'=>$new_id],$param);
break;
case 45:
//售后技术
$param['tech_mid'] = $old_id;
$deployOptimizeModel = new DeployOptimize();
$deployOptimizeModel->edit(['tech_mid'=>$new_id],$param);
break;
case 38:
//品控
$param['design_mid'] = $old_id;
$deployOptimizeModel = new DeployOptimize();
$deployOptimizeModel->edit(['design_mid'=>$new_id],$param);
break;
default:
break;
}
... ...
... ... @@ -55,11 +55,9 @@ class RouteMap extends Base
public static function generateRoute($title, $source, $source_id, $project_id){
if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $title)){
$title = Translate::tran($title, 'en');
}else{
if(!preg_match('/[a-zA-Z]/', $title)){
}elseif(preg_match('/^[\x{0400}-\x{04FF}]+$/u', $title)){
$title = Translate::tran($title, 'en');
}
}
$i=1;
$sign = generateRoute($title);
$info = self::where(['project_id' => $project_id, 'source' => $source, 'source_id'=>$source_id])->first();
... ...