作者 邓超

Merge branch 'develop' into dc

<?php
namespace App\Console\Commands\YesterdayCount;
use App\Models\CustomerVisit\CustomerVisitItem;
use App\Models\Project\DeployBuild;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
class Yesterday extends Command
{
public $error = 0;
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'yesterday_count';
/**
* The console command description.
*
* @var string
*/
protected $description = '统计昨日数据';
/**
* @name :(定时执行)handle
* @author :lyh
* @method :post
* @time :2023/5/12 14:48
*/
public function handle()
{
$deployModel = new DeployBuild();
$list = $deployModel->list();
$data = [];
foreach ($list as $v){
$arr = [];
$yesterday = now()->subDay();
$arr['yesterday_pv_num'] = DB::table('gl_customer_visit_item')->whereDate('created_at', $yesterday)->where('domain',$v['test_domain'])->count();
$arr['yesterday_ip_num'] = DB::table('gl_customer_visit')->whereDate('created_at', $yesterday)->where('domain',$v['test_domain'])->count();
$arr['inquiry_num'] = DB::table('gl_inquiry_set')->whereDate('created_at', $yesterday)->where('project_id',$v['project_id'])->count();
$arr['date'] = date('Y-m-d',time());
$data[] = $arr;
}
DB::table('gl_yesterday_count')->insert($data);
echo $this->error;
}
}
... ...
... ... @@ -23,6 +23,7 @@ class Kernel extends ConsoleKernel
$schedule->command('rank_data_recomm_domain')->weeklyOn(1, '01:00')->withoutOverlapping(1); // 排名数据-引荐域名,每周一凌晨执行一次
$schedule->command('rank_data_week')->weeklyOn(1, '01:00')->withoutOverlapping(1); // 排名数据,每周一凌晨执行一次
$schedule->command('share_user')->dailyAt('01:00')->withoutOverlapping(1); // 清除用户ayr_share数据,每天凌晨1点执行一次
$schedule->command('yesterday_count')->dailyAt('01:00')->withoutOverlapping(1); // 清除用户ayr_share数据,每天凌晨1点执行一次
$schedule->command('web_traffic 1')->everyThirtyMinutes(); // 引流 1-3个月的项目,半小时一次
$schedule->command('web_traffic 2')->cron('*/18 * * * *'); // 引流 4-8个月的项目,18分钟一次
$schedule->command('web_traffic 3')->cron('*/12 * * * *'); // 引流 大于9个月的项目,12分钟一次
... ...
<?php
namespace App\Http\Controllers\Bside\HomeCount;
use App\Enums\Common\Code;
use App\Http\Controllers\Bside\BaseController;
class CountController extends BaseController
{
/**
* @name :(昨日统计数据)yesterday_count
* @author :lyh
* @method :post
* @time :2023/5/23 17:23
*/
public function count(){
$data = [];
//TODO::全球搜方案信息
//TODO::网站访问量统计
//TODO::关键字排名数据
//TODO::关键字排名数据
return $this->response('success',Code::SUCCESS,$data);
}
}
... ...
<?php
namespace App\Http\Controllers\Bside;
use App\Http\Logic\Bside\VisitLogic;
use Illuminate\Http\Request;
/**
* 访问明细
* Class VisitController
* @package App\Http\Controllers\Bside
* @author zbj
* @date 2023/5/22
*/
class VisitController extends BaseController
{
public function index(VisitLogic $logic)
{
$data = $logic->getList();
return $this->success($data);
}
public function item(Request $request, VisitLogic $logic){
$request->validate([
'id'=>'required'
],[
'id.required' => 'ID不能为空'
]);
$map = [
['customer_visit_id' => $this->param['id']]
];
$data = $logic->getItemList($map);
return $this->success($data);
}
}
... ...
... ... @@ -40,7 +40,9 @@ class AyrReleaseLogic extends BaseLogic
public function release_add(){
$this->param['project_id'] = $this->user['project_id'];
$this->param['operator_id'] = $this->user['id'];
if(isset($this->param['images']) && !empty($this->param['images'])){
$this->param['images'] = implode(',',$this->param['images']);
}
$this->param['platforms'] = json_encode($this->param['platforms']);
$rs = $this->model->add($this->param);
if($rs === false){
... ...
... ... @@ -213,10 +213,12 @@ class AyrShareLogic extends BaseLogic
$this->fail('不支持视频');
}
//验证图片数
if(isset($this->param['images']) && !empty($this->param['images'])){
$img_num = count($this->param['images']);
if($img_num > $this->send_num[$v]){
$this->fail('发布图片数量超过最大限制,'.$v.'只允许'.$this->send_num[$v].'张图');
}
}
//验证图片数
// $img_num = count($this->param['video']);
// if($img_num > 1){
... ...
<?php
namespace App\Http\Logic\Bside\HomeCount;
use App\Http\Logic\Bside\BaseLogic;
class CountLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new Yes();
}
/**
* @name :(昨日统计数据)yesterday_count
* @author :lyh
* @method :post
* @time :2023/5/23 17:30
*/
public function yesterday_count(){
return $this->success();
}
}
... ...
... ... @@ -23,7 +23,7 @@ class DeptUserLogic extends BaseLogic
*/
public function dept_user_save(){
if(isset($this->param['id']) && !empty($this->param['id'])){
$rs = $this->dept_user_edit($this->param);
$rs = $this->dept_user_edit();
}else{
$rs = $this->dept_user_add();
}
... ... @@ -60,8 +60,8 @@ class DeptUserLogic extends BaseLogic
* @method :post
* @time :2023/5/17 17:54
*/
public function dept_user_edit($param){
$rs = $this->model->edit($param,['id'=>$this->param['id']]);
public function dept_user_edit(){
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
$this->fail('error');
}
... ...
<?php
namespace App\Http\Logic\Bside;
use App\Http\Logic\Logic;
use App\Models\Visit\Visit;
use App\Models\Visit\VisitItem;
/**
* Class VisitLogic
* @package App\Http\Logic\Bside
* @author zbj
* @date 2023/5/22
*/
class VisitLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->model = new Visit();
}
public function getList(array $map = [], array $sort = ['id' => 'desc'], array $columns = ['*'], int $limit = 20)
{
return Logic::getList($map, $sort, ['id', 'url', 'referrer_url', 'device_port', 'country', 'ip', 'depth', 'created_at'], $limit);
}
public function getItemList(array $map = [], array $sort = ['id' => 'desc'], array $columns = ['*'], int $limit = 20){
$this->model = new VisitItem();
return Logic::getList($map, $sort, ['url', 'created_at'], 0);
}
}
... ...
... ... @@ -24,12 +24,9 @@ class AyrReleaseRequest extends FormRequest
{
return [
'title'=>'required',
// 'images'=>'required|array',
// 'video'=>'required',
'content'=>'required',
'share_id'=>'required',
'platforms'=>'required|array',
// 'schedule_date'=>'required',
];
}
... ...
<?php
namespace App\Models\CustomerVisit;
use App\Models\Base;
class CustomerVisit extends Base
{
protected $table = 'gl_customer_visit';
}
... ...
<?php
namespace App\Models\CustomerVisit;
use App\Models\Base;
class CustomerVisitItem extends Base
{
protected $table = 'gl_customer_visit_item';
}
... ...
<?php
namespace App\Models\HomeCount;
use App\Models\Base;
class YesterdayCount extends Base
{
protected $table = 'gl_yesterday_count';
}
... ...
<?php
namespace App\Models\Visit;
use App\Models\Base;
/**
* Class Visit
* @package App\Models
* @author zbj
* @date 2023/5/22
*/
class Visit extends Base
{
//设置关联表名
protected $table = 'gl_customer_visit';
protected $appends = ['device_text'];
public static function deviceMap(){
return [
1 => 'PC',
2 => '移动端'
];
}
/**
* @return string
* @author zbj
* @date 2023/5/22
*/
public function getDeviceTextAttribute(){
return self::deviceMap()[$this->device_port] ?? '';
}
}
... ...
<?php
namespace App\Models\Visit;
use App\Models\Base;
/**
* Class VisitItem
* @package App\Models
* @author zbj
* @date 2023/5/22
*/
class VisitItem extends Base
{
//设置关联表名
protected $table = 'gl_customer_visit_item';
}
... ...
... ... @@ -262,6 +262,11 @@ Route::middleware(['bloginauth','accesstoken'])->group(function () {
Route::any('/get_google_rank', [\App\Http\Controllers\Bside\RankDataController::class, 'get_google_rank'])->name('rank_data_get_google_rank');
});
//访问数据
Route::prefix('visit')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\VisitController::class, 'index'])->name('visit_list');
Route::any('/item', [\App\Http\Controllers\Bside\VisitController::class, 'item'])->name('visit_item');
});
});
//无需登录验证的路由组
... ...