|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Created by PhpStorm.
|
|
|
|
* User: zhl
|
|
|
|
* Date: 2023/2/7
|
|
|
|
* Time: 17:58
|
|
|
|
*/
|
|
|
|
namespace App\Console\Commands\Test;
|
|
|
|
|
|
|
|
|
|
|
|
use App\Helper\Arr;
|
|
|
|
use App\Helper\Translate;
|
|
|
|
use App\Mail\TextMail;
|
|
|
|
use App\Models\Blog\Blog;
|
|
|
|
use App\Models\Blog\BlogCategory;
|
|
|
|
use App\Models\Com\KeywordVideoTask;
|
|
|
|
use App\Models\Com\KeywordVideoTaskLog;
|
|
|
|
use App\Models\CustomModule\CustomModuleCategory;
|
|
|
|
use App\Models\CustomModule\CustomModuleContent;
|
|
|
|
use App\Models\CustomModule\CustomModuleExtentContent;
|
|
|
|
use App\Models\Devops\ServerConfig;
|
|
|
|
use App\Models\Devops\Servers;
|
|
|
|
use App\Models\Devops\ServersIp;
|
|
|
|
use App\Models\ExtentModule\ExtensionModuleValue;
|
|
|
|
use App\Models\File\File;
|
|
|
|
use App\Models\File\File as FileModel;
|
|
|
|
use App\Models\File\Image;
|
|
|
|
use App\Models\File\Image as ImageModel;
|
|
|
|
use App\Models\News\News;
|
|
|
|
use App\Models\News\NewsCategory;
|
|
|
|
use App\Models\Product\Keyword;
|
|
|
|
use App\Models\Product\KeywordRelated;
|
|
|
|
use App\Models\Product\Product;
|
|
|
|
use App\Models\Project\AutoEmailLog;
|
|
|
|
use App\Models\Project\DeployOptimize;
|
|
|
|
use App\Models\Project\MinorLanguages;
|
|
|
|
use App\Models\Project\Project;
|
|
|
|
use App\Models\Purchaser\Purchaser;
|
|
|
|
use App\Models\Purchaser\PurchaserInfo;
|
|
|
|
use App\Models\RouteMap\RouteMap;
|
|
|
|
use App\Models\Template\BCustomTemplate;
|
|
|
|
use App\Models\Template\BTemplateCom;
|
|
|
|
use App\Models\Template\Setting;
|
|
|
|
use App\Models\Template\Template;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Illuminate\Support\Facades\Config;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
use Illuminate\Support\Facades\Mail;
|
|
|
|
use Illuminate\Support\Facades\Schema;
|
|
|
|
|
|
|
|
|
|
|
|
class Demo extends Command
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* The name and signature of the console command.
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $signature = 'demo';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The console command description.
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $description = 'demo';
|
|
|
|
|
|
|
|
public function handle(){
|
|
|
|
// echo date('Y-m-d H:i:s') . 'project_id:' . PHP_EOL;
|
|
|
|
// ProjectServer::useProject(3092);
|
|
|
|
// $this->delProduct();
|
|
|
|
// DB::disconnect('custom_mysql');
|
|
|
|
// echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
|
|
|
|
return $this->projectList();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function toQueue(){
|
|
|
|
$info = [
|
|
|
|
'email' => '1123736022@qq.com', // 收件人邮箱
|
|
|
|
'title' => '测试邮件', // 邮件标题
|
|
|
|
'content' => '这是来自163邮箱的测试邮件', // 邮件内容
|
|
|
|
];
|
|
|
|
Config::set('mail.mailers.smtp.host', 'smtp.163.com');
|
|
|
|
Config::set('mail.mailers.smtp.username', 'lyh103433@163.com');
|
|
|
|
Config::set('mail.mailers.smtp.password', 'BMf8B327Nhncunnb');
|
|
|
|
Config::set('mail.from.address', 'lyh103433@163.com');
|
|
|
|
Config::set('mail.from.name', 'lyh');
|
|
|
|
try {
|
|
|
|
$status = AutoEmailLog::STATUS_SUCCESS;
|
|
|
|
Mail::to([$info['email']])->send(new TextMail(['subject' => $info['title'], 'text' => $info['content']]));
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
$status = AutoEmailLog::STATUS_ERROR;
|
|
|
|
$this->output('任务:' . $info['id'] . ' 邮箱' . $info['email'] . '发送失败,' . $e->getMessage());
|
|
|
|
}
|
|
|
|
return $status;
|
|
|
|
}
|
|
|
|
public function projectList(){
|
|
|
|
$data = '深圳澄通睿视科技有限公司, 日照源洋包装材料有限公司, 河北途铂机电设备有限责任公司, 宁波市海曙玖鼎纸制品有限公司, 青岛众瑞智能仪器有限公司, 河北新秋国际贸易有限公司, 江西乔森电气有限公司, 沧州艾斯克粉业制造有限公司, 上海希然化工科技有限公司, 石家庄中创进出口有限公司, 东光县恒创利纸箱机械有限公司2021, 天津正能管业有限公司, 河北帷幄纺织有限公司, 广东顺德宝绅源环保科技有限公司, 石家庄艾文尔生物科技有限公司, 浙江福俄电气有限公司, 深圳市嘉盛数据科技有限公司, 江西米德实业有限公司, 苏州稼瑞机械有限公司, 青岛卓亚塑料机械有限公司, 宁波中力螺栓制造有限公司, 中山市万格电器有限公司, 廊坊禹神节水灌溉技术有限公司, 山东索玛特制帽有限公司, 蓝启生物技术(深圳)有限公司, 南宁奥展五金紧固件有限公司, 河北茉悠科技有限公司, 莱科阀门(天津)有限公司, 四川零点自动化系统有限公司, 厦门市戴尔乐新能源汽车有限公司, 宁波爱克利浦电器有限公司, 扬州天定成玩具礼品有限公司, 宁波市金典照明电器有限公司, 杭州法埃姆斯钢构有限公司, 北京迪文科技有限公司, 无锡动为储能科技有限公司, 河北唐蕴生物科技有限公司, 绍兴苏尔黛纺织品有限公司, 河北祈强金属制品有限公司, 上池诊断科技(深圳)有限公司, 泉州市三颖超硬工具有限公司, 宁波杰广电子有限公司, 石家庄德烨管业有限公司, 山东凯特钻具有限公司, 北京思普瑞特科技发展有限公司, 广州市印科标识科技有限公司, 优之科技(深圳)有限公司, 南通赫美特国际贸易有限公司, 天津誉瑞特品科技有限公司, 河北坤焰建材科技有限公司, 绍兴睿博机械有限公司, 西安法斯拓进出口有限公司, 深圳市德诺威电子有限公司, 百润(中国)有限公司, 达时科科技有限责任公司, 陈海英, 四川蓉腾自动化设备有限公司, 石家庄晋吉建材科技有限公司, 石家庄安瑞科气体机械有限公司, 深圳市扬帆纸制品有限公司, 舟山威尔曼机械科技有限公司, 佰纳通科技(北京)有限公司, 宁波嘉佑行科技有限公司, 东莞市凯信脚轮有限公司, 宝鸡轩泰颜料科技有限公司, 东莞市华腾五金制品有限公司, 深圳市思锐宇光电有限公司, 东莞市奥彩数码科技有限公司, 上海垂普国际贸易有限公司, 扬州爱拓户外用品有限公司, 余姚市立鑫电子有限公司, 晋州市金昌盛化工有限公司, 广东阿酷达箱包科技有限公司, 泉州市杰斯特仪器设备有限公司, 三和长兴科技有限公司, 佛山市精一家具有限公司谷腾分公司, 天津市洁雅妇女卫生保健制品有限公司, 江西海瑞天然植物有限公司, 九江贝海玻纤有限公司(客户做新站), 瑞安市齐笙科技有限公司, 石家庄华圣方洲国际贸易有限公司, 深圳市方成教学设备有限公司, 连云港索娜斯贸易有限公司, 睿華電子有限公司, 扬州市极盛照明有限公司, 天津市实丰国际贸易有限责任公司, 厦门亚迅工贸有限公司, 威海旺展旅游用品有限公司, 宁波首安纸业有限公司, 浙江乐马电气有限公司, 广东金莱特智能科技有限公司, 河北科星药业有限公司, 宁波迈可森汽配有限公司, 邯郸市常岚紧固件制造有限公司, 宁波市晶艳贸易有限公司, 苏州荃华生物材料有限公司, 青岛洛城通信息科技有限公司, 合肥领派克机械设备有限公司, 广西绿城工贸有限公司, 一元电气科技有限公司【主站】, 立圣丰(厦门)纺织科技有限公司, 深圳市汉瑞通科技有限公司, 扬州市润芳塑胶包装材料有限公司, 扬州浩邦新能源科技有限公司项目2, 深圳市锦昊安科技有限公司, 四川途乐乐科技有限公司, 天津广大纸业股份有限公司, 西安禾为生物科技有限公司, 西安奥谷生物科技有限公司, 佛山市三水歌谷电器有限公司, 西安麦克斯农用化学有限公司, 瑞安市富锐思进出口有限公司(黑格客户), 北京新科以仁科技发展有限公司, 镇江市惠灵顿膜业有限公司';
|
|
|
|
$arr = explode(',',$data);
|
|
|
|
$projectModel = new Project();
|
|
|
|
$opModel = new DeployOptimize();
|
|
|
|
foreach ($arr as $k => $v){
|
|
|
|
$v = trim($v);
|
|
|
|
$info = $projectModel->read(['title'=>['like','%'.$v.'%']],['id']);
|
|
|
|
if($info === false){
|
|
|
|
echo date('Y-m-d H:i:s') . '未查询到的项目--'.$v . PHP_EOL;
|
|
|
|
}else{
|
|
|
|
$opInfo = $opModel->read(['project_id'=>$info['id']]);
|
|
|
|
if (strpos($opInfo['special'], '15') !== false) {
|
|
|
|
echo date('Y-m-d H:i:s') . '已包含' . PHP_EOL;
|
|
|
|
} else {
|
|
|
|
if(!empty($opInfo['special'])){
|
|
|
|
$special = ','.trim($opInfo['special'],',').',15,';
|
|
|
|
}else{
|
|
|
|
$special = ',15,';
|
|
|
|
}
|
|
|
|
$opModel->edit(['special'=>$special],['id'=>$opInfo['id']]);
|
|
|
|
echo date('Y-m-d H:i:s') . '未包含AI案例的project_id:'.$opInfo['project_id'] . PHP_EOL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :删除product
|
|
|
|
* @name :delProduct
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2025/1/10 9:35
|
|
|
|
*/
|
|
|
|
public function delProduct(){
|
|
|
|
$productModel = new Product();
|
|
|
|
$list = $productModel->list(['status'=>2]);
|
|
|
|
foreach ($list as $k => $v){
|
|
|
|
$routeModel = new RouteMap();
|
|
|
|
$routeModel->del(['source'=>'product','source_id'=>$v['id']]);
|
|
|
|
}
|
|
|
|
$productModel->del(['status'=>2]);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :统计当前模版使用情况
|
|
|
|
* @name :countTemplate
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2025/1/9 10:59
|
|
|
|
*/
|
|
|
|
public function countTemplate(){
|
|
|
|
$bSettingModel = new Setting();
|
|
|
|
$lists = $bSettingModel->list();
|
|
|
|
$templateModel = new Template();
|
|
|
|
foreach ($lists as $v){
|
|
|
|
echo date('Y-m-d H:i:s') . '执行的模版id:' .$v['template_id'] . PHP_EOL;
|
|
|
|
$templateModel->where(['id'=>$v['template_id']])->increment('number',1);
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :更新产品
|
|
|
|
* @name :getProduct
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/11/27 15:40
|
|
|
|
*/
|
|
|
|
public function getProduct(){
|
|
|
|
$productModel = new Product();
|
|
|
|
$lists = $productModel->list(['status'=>['!=',3]]);
|
|
|
|
if(!empty($lists)){
|
|
|
|
foreach ($lists as $v){
|
|
|
|
if(!empty($v['keyword_video_id'])){
|
|
|
|
foreach ($v['keyword_video_id'] as $val){
|
|
|
|
$keywordRelaModel = new KeywordRelated();
|
|
|
|
echo date('Y-m-d H:i:s') . 'keyword_id :'.$val . 'product_id :'.$v['id'] . PHP_EOL;
|
|
|
|
$keywordRelaModel->edit(['type'=>2],['keyword_id'=>$val,'product_id'=>$v['id']]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :复制表及结构
|
|
|
|
* @name :copyProduct
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/11/27 16:09
|
|
|
|
*/
|
|
|
|
public function copyProduct(){
|
|
|
|
$tableName = 'gl_product';
|
|
|
|
$copyTableName = 'gl_product_c';
|
|
|
|
if (Schema::connection('custom_mysql')->hasTable($copyTableName)) {
|
|
|
|
DB::connection('custom_mysql')->statement("DROP TABLE {$copyTableName}");
|
|
|
|
}
|
|
|
|
// 创建新表并复制数据
|
|
|
|
DB::connection('custom_mysql')->statement("CREATE TABLE {$copyTableName} LIKE {$tableName}");
|
|
|
|
DB::connection('custom_mysql')->statement("INSERT INTO {$copyTableName} SELECT * FROM {$tableName}");
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :保存供应商详情
|
|
|
|
* @name :savePurchaserInfo
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/5/29 16:38
|
|
|
|
*/
|
|
|
|
public function savePurchaserInfo(){
|
|
|
|
$purchaserModel = new Purchaser();
|
|
|
|
$list = $purchaserModel->list();
|
|
|
|
foreach ($list as $val){
|
|
|
|
$project_id = $val['project_id'];
|
|
|
|
$keyword = $val['keyword'];
|
|
|
|
$data = json_decode($val['data'],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
$purchaserInfoModel = new PurchaserInfo();
|
|
|
|
if(!empty($data)){
|
|
|
|
foreach ($data as $k =>$v){
|
|
|
|
$v['project_id'] = $project_id;
|
|
|
|
$v['keyword'] = $keyword;
|
|
|
|
$v['email'] = json_encode($v['email'] ?? [],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
$v['mobile'] = json_encode($v['mobile'] ?? [],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
$v['social_media'] = json_encode($v['social_media'] ?? [],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
$v['image'] = str_replace('admin.hagro.cn','fob.ai.cc',$v['image'] ?? '');
|
|
|
|
$param = $v;
|
|
|
|
$info = $purchaserInfoModel->read(['keyword'=>$keyword,'buyer_id'=>$v['buyer_id'] ?? '','project_id'=>$project_id],['id']);
|
|
|
|
|
|
|
|
if($info === false){
|
|
|
|
echo date('Y-m-d H:i:s') . '执行新增 :' . PHP_EOL;
|
|
|
|
$purchaserInfoModel->add($param);
|
|
|
|
}else{
|
|
|
|
echo date('Y-m-d H:i:s') . '数据已存在 :'.$info['id'] . PHP_EOL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
} |