Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6
正在显示
4 个修改的文件
包含
130 行增加
和
8 行删除
| @@ -6,6 +6,7 @@ use App\Http\Logic\Bside\Blog\BlogLogic; | @@ -6,6 +6,7 @@ use App\Http\Logic\Bside\Blog\BlogLogic; | ||
| 6 | use App\Http\Logic\Bside\News\NewsLogic; | 6 | use App\Http\Logic\Bside\News\NewsLogic; |
| 7 | use App\Http\Logic\Bside\Product\ProductLogic; | 7 | use App\Http\Logic\Bside\Product\ProductLogic; |
| 8 | use App\Models\Import\ImportTask; | 8 | use App\Models\Import\ImportTask; |
| 9 | +use App\Models\Mail\Mail; | ||
| 9 | use App\Services\ProjectServer; | 10 | use App\Services\ProjectServer; |
| 10 | use Illuminate\Console\Command; | 11 | use Illuminate\Console\Command; |
| 11 | use Illuminate\Support\Facades\DB; | 12 | use Illuminate\Support\Facades\DB; |
| @@ -56,6 +57,8 @@ class ProjectImport extends Command | @@ -56,6 +57,8 @@ class ProjectImport extends Command | ||
| 56 | echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import fail, error: 文件编码格式错误' . PHP_EOL; | 57 | echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import fail, error: 文件编码格式错误' . PHP_EOL; |
| 57 | $task->status = ImportTask::STATUS_COM;//导入完成 | 58 | $task->status = ImportTask::STATUS_COM;//导入完成 |
| 58 | $task->save(); | 59 | $task->save(); |
| 60 | + | ||
| 61 | + $this->send_mail($task->user_id, $task->created_at, $task->type, 0, 0, '文件编码格式错误,仅支持UTF-8和GBK编码格式'); | ||
| 59 | return true; | 62 | return true; |
| 60 | } elseif ($file_code_type === 'GBK') { | 63 | } elseif ($file_code_type === 'GBK') { |
| 61 | $is_gbk = 1; | 64 | $is_gbk = 1; |
| @@ -74,11 +77,14 @@ class ProjectImport extends Command | @@ -74,11 +77,14 @@ class ProjectImport extends Command | ||
| 74 | echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import fail, error: ' . $e->getMessage() . PHP_EOL; | 77 | echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import fail, error: ' . $e->getMessage() . PHP_EOL; |
| 75 | $task->status = ImportTask::STATUS_COM;//导入完成 | 78 | $task->status = ImportTask::STATUS_COM;//导入完成 |
| 76 | $task->save(); | 79 | $task->save(); |
| 80 | + | ||
| 81 | + $this->send_mail($task->user_id, $task->created_at, $task->type, 0, 0, '读取文件数据失败'); | ||
| 77 | return true; | 82 | return true; |
| 78 | } | 83 | } |
| 79 | 84 | ||
| 80 | $total_count = 0; //总条数 | 85 | $total_count = 0; //总条数 |
| 81 | - $success_count = 0; //成功导入条数 | 86 | + $success_count = 0; //成功导入条数 |
| 87 | + $repeat_count = 0; //过滤已存在条数 | ||
| 82 | if (count($line_of_text) > 1) { | 88 | if (count($line_of_text) > 1) { |
| 83 | $task->status = ImportTask::STATUS_ING;//导入中 | 89 | $task->status = ImportTask::STATUS_ING;//导入中 |
| 84 | $task->save(); | 90 | $task->save(); |
| @@ -100,14 +106,20 @@ class ProjectImport extends Command | @@ -100,14 +106,20 @@ class ProjectImport extends Command | ||
| 100 | if ($task->type == ImportTask::TYPE_NEWS) { | 106 | if ($task->type == ImportTask::TYPE_NEWS) { |
| 101 | if ((new NewsLogic())->importNews($task->project_id, $task->user_id, $v)) { | 107 | if ((new NewsLogic())->importNews($task->project_id, $task->user_id, $v)) { |
| 102 | $success_count += 1; | 108 | $success_count += 1; |
| 109 | + } else { | ||
| 110 | + $repeat_count += 1; | ||
| 103 | } | 111 | } |
| 104 | } elseif ($task->type == ImportTask::TYPE_BLOG) { | 112 | } elseif ($task->type == ImportTask::TYPE_BLOG) { |
| 105 | if ((new BlogLogic())->importBlog($task->project_id, $task->user_id, $v)) { | 113 | if ((new BlogLogic())->importBlog($task->project_id, $task->user_id, $v)) { |
| 106 | $success_count += 1; | 114 | $success_count += 1; |
| 115 | + } else { | ||
| 116 | + $repeat_count += 1; | ||
| 107 | } | 117 | } |
| 108 | } else { | 118 | } else { |
| 109 | if ((new ProductLogic())->importProduct($task->project_id, $task->user_id, $v)) { | 119 | if ((new ProductLogic())->importProduct($task->project_id, $task->user_id, $v)) { |
| 110 | $success_count += 1; | 120 | $success_count += 1; |
| 121 | + } else { | ||
| 122 | + $repeat_count += 1; | ||
| 111 | } | 123 | } |
| 112 | } | 124 | } |
| 113 | } catch (\Exception $e) { | 125 | } catch (\Exception $e) { |
| @@ -125,13 +137,15 @@ class ProjectImport extends Command | @@ -125,13 +137,15 @@ class ProjectImport extends Command | ||
| 125 | $task->success_count += $success_count; | 137 | $task->success_count += $success_count; |
| 126 | $task->save(); | 138 | $task->save(); |
| 127 | 139 | ||
| 140 | + $this->send_mail($task->user_id, $task->created_at, $task->type, $success_count, $repeat_count, ''); | ||
| 141 | + | ||
| 128 | echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import end, total count: ' . $total_count . ', success count: ' . $success_count . PHP_EOL; | 142 | echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import end, total count: ' . $total_count . ', success count: ' . $success_count . PHP_EOL; |
| 129 | 143 | ||
| 130 | sleep(2); | 144 | sleep(2); |
| 131 | } | 145 | } |
| 132 | 146 | ||
| 133 | //判断编码格式 | 147 | //判断编码格式 |
| 134 | - function get_code_type($file) | 148 | + protected function get_code_type($file) |
| 135 | { | 149 | { |
| 136 | $list = array('GBK', 'UTF-8'); | 150 | $list = array('GBK', 'UTF-8'); |
| 137 | $str = file_get_contents($file); | 151 | $str = file_get_contents($file); |
| @@ -143,4 +157,27 @@ class ProjectImport extends Command | @@ -143,4 +157,27 @@ class ProjectImport extends Command | ||
| 143 | } | 157 | } |
| 144 | return false; | 158 | return false; |
| 145 | } | 159 | } |
| 160 | + | ||
| 161 | + //发生站内通知 | ||
| 162 | + protected function send_mail($user_list, $time, $type, $success_count, $repeat_count, $reason) | ||
| 163 | + { | ||
| 164 | + if ($type == ImportTask::TYPE_NEWS) { | ||
| 165 | + $type_content = '新闻'; | ||
| 166 | + } elseif ($type == ImportTask::TYPE_BLOG) { | ||
| 167 | + $type_content = '博客'; | ||
| 168 | + } else { | ||
| 169 | + $type_content = '产品'; | ||
| 170 | + } | ||
| 171 | + $title = '导入结果通知'; | ||
| 172 | + $content = '您于 ' . $time . ' 添加的 ' . $type_content . ' 导入任务已执行完成, 成功导入数据:' . $success_count . ' 条'; | ||
| 173 | + $repeat_count && $content .= ',过滤已存在数据:' . $repeat_count . ' 条'; | ||
| 174 | + $reason && $content .= ',原因:' . $reason; | ||
| 175 | + | ||
| 176 | + $mail_model = new Mail(); | ||
| 177 | + $mail_model->add([ | ||
| 178 | + 'user_list' => $mail_model->setUserList($user_list), | ||
| 179 | + 'title' => $title, | ||
| 180 | + 'content' => $content | ||
| 181 | + ]); | ||
| 182 | + } | ||
| 146 | } | 183 | } |
app/Console/Commands/ImportChannel.php
0 → 100644
| 1 | +<?php | ||
| 2 | +/** | ||
| 3 | + * @remark : | ||
| 4 | + * @name :ImportChannel.php | ||
| 5 | + * @author :lyh | ||
| 6 | + * @method :post | ||
| 7 | + * @time :2023/9/25 15:31 | ||
| 8 | + */ | ||
| 9 | + | ||
| 10 | +namespace App\Console\Commands; | ||
| 11 | +use App\Helper\OaGlobalsoApi; | ||
| 12 | +use App\Models\Channel\Channel; | ||
| 13 | +use App\Models\Project\Project; | ||
| 14 | +use Illuminate\Console\Command; | ||
| 15 | +class ImportChannel extends Command | ||
| 16 | +{ | ||
| 17 | + /** | ||
| 18 | + * The name and signature of the console command. | ||
| 19 | + * | ||
| 20 | + * @var string | ||
| 21 | + */ | ||
| 22 | + protected $signature = 'import_channel'; | ||
| 23 | + | ||
| 24 | + /** | ||
| 25 | + * The console command description. | ||
| 26 | + * | ||
| 27 | + * @var string | ||
| 28 | + */ | ||
| 29 | + protected $description = '更新渠道信息'; | ||
| 30 | + | ||
| 31 | + /** | ||
| 32 | + * @remark :导入5.0管理员数据 | ||
| 33 | + * @name :handle | ||
| 34 | + * @author :lyh | ||
| 35 | + * @method :post | ||
| 36 | + * @time :2023/8/7 17:49 | ||
| 37 | + */ | ||
| 38 | + public function handle(){ | ||
| 39 | + $projectModel = new Project(); | ||
| 40 | + $map = [ | ||
| 41 | + 'channel'=>['like','%"user_id": "0"%'], | ||
| 42 | + ]; | ||
| 43 | + $lists = $projectModel->list($map); | ||
| 44 | +// var_dump($lists); | ||
| 45 | +// die(); | ||
| 46 | + foreach ($lists as $k => $v){ | ||
| 47 | + $order_id = $v['notice_order_id']; | ||
| 48 | + $api = new OaGlobalsoApi(); | ||
| 49 | + $data = $api->order_info($order_id); | ||
| 50 | + $data = $data['data']; | ||
| 51 | + $channel = Channel::getProjectChannel($data['company_id'], $data['username_sales']); | ||
| 52 | + $projectModel->edit(['channel'=>$channel],['id'=>$v['id']]); | ||
| 53 | + } | ||
| 54 | + return 1; | ||
| 55 | + } | ||
| 56 | +} |
| @@ -75,8 +75,6 @@ class OptimizeController extends BaseController | @@ -75,8 +75,6 @@ class OptimizeController extends BaseController | ||
| 75 | $item['keyword_num'] = $item['key'] ?? 0; | 75 | $item['keyword_num'] = $item['key'] ?? 0; |
| 76 | $item['autologin_code'] = getAutoLoginCode($item['id']); | 76 | $item['autologin_code'] = getAutoLoginCode($item['id']); |
| 77 | // $item['article_num'] = ($data['blog'] ?? 0) + ($data['news'] ?? 0); | 77 | // $item['article_num'] = ($data['blog'] ?? 0) + ($data['news'] ?? 0); |
| 78 | -// $item['task_finish_num'] = Task::getNumByProjectId($item['id'], Task::STATUS_DOWN); | ||
| 79 | -// $item['task_pending_num'] = Task::getNumByProjectId($item['id'], [Task::STATUS_DONGING, Task::STATUS_WAIT]); | ||
| 80 | return $item; | 78 | return $item; |
| 81 | } | 79 | } |
| 82 | /** | 80 | /** |
| @@ -122,6 +120,7 @@ class OptimizeController extends BaseController | @@ -122,6 +120,7 @@ class OptimizeController extends BaseController | ||
| 122 | 'gl_project_deploy_optimize.domain AS domain', | 120 | 'gl_project_deploy_optimize.domain AS domain', |
| 123 | 'gl_project_deploy_optimize.quality_mid AS quality_mid', | 121 | 'gl_project_deploy_optimize.quality_mid AS quality_mid', |
| 124 | 'gl_project_deploy_optimize.design_mid AS design_mid', | 122 | 'gl_project_deploy_optimize.design_mid AS design_mid', |
| 123 | + 'gl_project_deploy_optimize.special AS special', | ||
| 125 | ]; | 124 | ]; |
| 126 | return $select; | 125 | return $select; |
| 127 | } | 126 | } |
| @@ -135,9 +134,39 @@ class OptimizeController extends BaseController | @@ -135,9 +134,39 @@ class OptimizeController extends BaseController | ||
| 135 | */ | 134 | */ |
| 136 | public function searchParam(&$query){ | 135 | public function searchParam(&$query){ |
| 137 | //搜索条件处理 | 136 | //搜索条件处理 |
| 138 | - if(isset($this->map['title'])){ | 137 | + if(isset($this->map['title']) && !empty($this->map['title'])){ |
| 139 | $query = $query->where('gl_project.title','like','%'.$this->map['title'].'%'); | 138 | $query = $query->where('gl_project.title','like','%'.$this->map['title'].'%'); |
| 140 | } | 139 | } |
| 140 | + if(isset($this->map['special']) && !empty($this->map['special'])){ | ||
| 141 | + $query = $query->where('gl_project_deploy_optimize.special','like','%'.$this->map['special'].'%'); | ||
| 142 | + } | ||
| 143 | + if(isset($this->map['manager_mid']) && !empty($this->map['manager_mid'])){ | ||
| 144 | + $query = $query->where('gl_project_deploy_build.manager_mid','like','%'.$this->map['manager_mid'].'%'); | ||
| 145 | + } | ||
| 146 | + if(isset($this->map['optimize_manager_mid']) && !empty($this->map['optimize_manager_mid'])){ | ||
| 147 | + $query = $query->where('gl_project_deploy_optimize.manager_mid','like','%'.$this->map['optimize_manager_mid'].'%'); | ||
| 148 | + } | ||
| 149 | + if(isset($this->map['optimize_tech_mid']) && !empty($this->map['optimize_tech_mid'])){ | ||
| 150 | + $query = $query->where('gl_project_deploy_optimize.tech_mid','like','%'.$this->map['optimize_tech_mid'].'%'); | ||
| 151 | + } | ||
| 152 | + if(isset($this->map['optimize_optimist_mid']) && !empty($this->map['optimize_optimist_mid'])){ | ||
| 153 | + $query = $query->where('gl_project_deploy_optimize.optimist_mid','like','%'.$this->map['optimize_optimist_mid'].'%'); | ||
| 154 | + } | ||
| 155 | + if(isset($this->map['optimize_assist_mid']) && !empty($this->map['optimize_assist_mid'])){ | ||
| 156 | + $query = $query->where('gl_project_deploy_optimize.assist_mid','like','%'.$this->map['optimize_assist_mid'].'%'); | ||
| 157 | + } | ||
| 158 | + if(isset($this->map['user_id']) && !empty($this->map['user_id'])){ | ||
| 159 | + $query->where(function ($subQuery) { | ||
| 160 | + $subQuery->orWhere('gl_project.channel','like','%"user_id": "'.$this->map['user_id'].'"%') | ||
| 161 | + ->orWhere('gl_project.channel','like','%"user_id": '.$this->map['user_id'].'%'); | ||
| 162 | + }); | ||
| 163 | + } | ||
| 164 | + if(isset($this->map['domain']) && !empty($this->map['domain'])){ | ||
| 165 | + $query = $query->where('gl_project_deploy_optimize.domain','like','%'.$this->map['domain'].'%'); | ||
| 166 | + } | ||
| 167 | + if(isset($this->map['test_domain']) && !empty($this->map['test_domain'])){ | ||
| 168 | + $query = $query->where('gl_project_deploy_build.test_domain','like','%'.$this->map['test_domain'].'%'); | ||
| 169 | + } | ||
| 141 | $query = $query->whereIn('gl_project.type',[2,4]);//TODO::2,4代表优化项目 | 170 | $query = $query->whereIn('gl_project.type',[2,4]);//TODO::2,4代表优化项目 |
| 142 | return $query; | 171 | return $query; |
| 143 | } | 172 | } |
| @@ -48,9 +48,9 @@ class Channel extends Model | @@ -48,9 +48,9 @@ class Channel extends Model | ||
| 48 | $user['id'] = $userModel->addReturnId($data); | 48 | $user['id'] = $userModel->addReturnId($data); |
| 49 | } | 49 | } |
| 50 | return [ | 50 | return [ |
| 51 | - 'zone_id' => $channel['zone_id'] ?? 0, | ||
| 52 | - 'channel_id' => $channel['id'] ?? 0, | ||
| 53 | - 'user_id' => $user['id'] ?? 0, | 51 | + 'zone_id' => (string)$channel['zone_id'] ?? 0, |
| 52 | + 'channel_id' => (string)$channel['id'] ?? 0, | ||
| 53 | + 'user_id' => (string)$user['id'] ?? 0, | ||
| 54 | ]; | 54 | ]; |
| 55 | } | 55 | } |
| 56 | 56 |
-
请 注册 或 登录 后发表评论