作者 lyh

Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6 into develop

@@ -5,6 +5,7 @@ namespace App\Console\Commands; @@ -5,6 +5,7 @@ namespace App\Console\Commands;
5 5
6 use App\Models\Devops\DevopsTaskLog; 6 use App\Models\Devops\DevopsTaskLog;
7 use App\Models\Project\Project; 7 use App\Models\Project\Project;
  8 +use App\Utils\EncryptUtils;
8 use Illuminate\Console\Command; 9 use Illuminate\Console\Command;
9 use App\Models\Devops\DevopsTask as DevopsTaskModel; 10 use App\Models\Devops\DevopsTask as DevopsTaskModel;
10 11
@@ -48,7 +49,7 @@ class DevopsTask extends Command @@ -48,7 +49,7 @@ class DevopsTask extends Command
48 while (true){ 49 while (true){
49 $tasks = DevopsTaskModel::where('status', DevopsTaskModel::STATUS_PENDING)->get(); 50 $tasks = DevopsTaskModel::where('status', DevopsTaskModel::STATUS_PENDING)->get();
50 foreach ($tasks as $task){ 51 foreach ($tasks as $task){
51 - echo "Start task " . $task->id . PHP_EOL; 52 + echo "Start task " . $task->id;
52 if($task->type == DevopsTaskModel::TYPE_MYSQL){ 53 if($task->type == DevopsTaskModel::TYPE_MYSQL){
53 $this->updateTable($task); 54 $this->updateTable($task);
54 } 55 }
@@ -61,9 +62,10 @@ class DevopsTask extends Command @@ -61,9 +62,10 @@ class DevopsTask extends Command
61 public function updateTable($task){ 62 public function updateTable($task){
62 $projects = Project::all(); 63 $projects = Project::all();
63 foreach ($projects as $project){ 64 foreach ($projects as $project){
64 - echo "project " . $project->id; 65 + echo "project " . $project->id . PHP_EOL;
65 $log = DevopsTaskLog::addLog($task->id, $project->id); 66 $log = DevopsTaskLog::addLog($task->id, $project->id);
66 if($log->status == DevopsTaskModel::STATUS_ACTIVE){ 67 if($log->status == DevopsTaskModel::STATUS_ACTIVE){
  68 + echo 'continue' . PHP_EOL;
67 continue; 69 continue;
68 } 70 }
69 if(!$project->mysqlConfig){ 71 if(!$project->mysqlConfig){
@@ -73,13 +75,22 @@ class DevopsTask extends Command @@ -73,13 +75,22 @@ class DevopsTask extends Command
73 continue; 75 continue;
74 } 76 }
75 //DB类是单例模式,生命周期内修改配置不会生效 77 //DB类是单例模式,生命周期内修改配置不会生效
76 - $conn = new \mysqli(  
77 - $project->mysqlConfig->host,  
78 - $project->mysqlConfig->user,  
79 - $project->mysqlConfig->password,  
80 - $project->databaseName(),  
81 - $project->mysqlConfig->port,  
82 - ); 78 + $encrypt = new EncryptUtils();
  79 + try {
  80 + $conn = new \mysqli(
  81 + $project->mysqlConfig->host,
  82 + $encrypt->unlock_url($project->mysqlConfig->user),
  83 + $encrypt->unlock_url($project->mysqlConfig->password),
  84 + $project->databaseName(),
  85 + $encrypt->unlock_url($project->mysqlConfig->port),
  86 + );
  87 + }catch (\Exception $e){
  88 + $log->remark = mb_substr('数据库连接失败:' . $e->getMessage(), 0, 500);
  89 + $log->status = DevopsTaskLog::STATUS_ERROR;
  90 + $log->save();
  91 + echo '-->' . $log->remark . PHP_EOL;
  92 + continue;
  93 + }
83 $res = $conn->query($task->sql); 94 $res = $conn->query($task->sql);
84 95
85 $log->status = $res ? DevopsTaskLog::STATUS_ACTIVE : DevopsTaskLog::STATUS_ERROR; 96 $log->status = $res ? DevopsTaskLog::STATUS_ACTIVE : DevopsTaskLog::STATUS_ERROR;
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 namespace App\Http\Logic\Aside\Project; 3 namespace App\Http\Logic\Aside\Project;
4 4
5 use App\Models\Devops\ServerConfig; 5 use App\Models\Devops\ServerConfig;
  6 +use App\Models\Project\ProjectRenew;
6 use App\Models\User\ProjectMenu; 7 use App\Models\User\ProjectMenu;
7 use App\Models\User\ProjectRole; 8 use App\Models\User\ProjectRole;
8 use Illuminate\Support\Arr as SupArr; 9 use Illuminate\Support\Arr as SupArr;
@@ -257,9 +258,30 @@ class ProjectLogic extends BaseLogic @@ -257,9 +258,30 @@ class ProjectLogic extends BaseLogic
257 * @time :2023/9/12 11:20 258 * @time :2023/9/12 11:20
258 */ 259 */
259 public function setTypeSevenEdit($param){ 260 public function setTypeSevenEdit($param){
260 - //TODO::删除项目并添加到续费单 261 + //删除原始项目
  262 + $this->edit(['delete_status' => 1], ['id' => $param['id']]);
261 263
262 - return true; 264 + //添加到续费单
  265 + $data = [
  266 + 'title' => '【续费单】' . $param['title'],
  267 + 'company' => $param['company'],
  268 + 'lead_name' => $param['lead_name'],
  269 + 'mobile' => $param['mobile'],
  270 + 'qq' => $param['qq'],
  271 + 'channel' => json_encode($param['channel']),
  272 + 'requirement' => $param['requirement'],
  273 + 'cooperate_date' => $param['cooperate_date'],
  274 + 'service_duration' => $param['deploy_build']['service_duration'],
  275 + 'plan' => $param['deploy_build']['plan'],
  276 +// 'api_no' => $param['id'], //改手动填
  277 + 'amount' => $param['payment']['amount'],
  278 + 'contract' => json_encode($param['payment']['files']),
  279 + 'bill' => json_encode($param['payment']['images']),
  280 + ];
  281 + $renewModel = new ProjectRenew();
  282 + $renewModel->add($data);
  283 +
  284 + return $this->success();
263 } 285 }
264 286
265 /** 287 /**
@@ -60,7 +60,8 @@ class Project extends Base @@ -60,7 +60,8 @@ class Project extends Base
60 3 => '已完成-建站用户', 60 3 => '已完成-建站用户',
61 4 => '推广续网站', 61 4 => '推广续网站',
62 5 => '未续费项目', 62 5 => '未续费项目',
63 - 6 => '特殊推广项目' 63 + 6 => '特殊推广项目',
  64 + 7 => '提单错误转续费'
64 ]; 65 ];
65 } 66 }
66 67