ProcessLogic.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/4/16 0016
  6. * Time: 9:58
  7. */
  8. namespace App\Http\Logics\Admin;
  9. use App\Http\Models\Process;
  10. use App\Http\Models\Site;
  11. use App\Http\Models\SiteProcess;
  12. use Illuminate\Database\Eloquent\Model;
  13. class ProcessLogic
  14. {
  15. public function knowCustomerInfo($siteId)
  16. {
  17. $process = Process::query()->where(['identifier' => 'knowCustomerInfo'])->first();
  18. if (!$process) return response()->json(['message' => '主流程数据丢失!'], 400);
  19. SiteProcess::query()->create([
  20. 'site_id' => $siteId,
  21. 'process_id' => $process->id,
  22. 'detail' => '已了解'
  23. ]);
  24. return response()->json(['message' => '操作成功']);
  25. }
  26. public function domainRegister($siteId)
  27. {
  28. $process = Process::query()->where(['identifier' => 'domainRegister'])->first();
  29. if (!$process) return response()->json(['message' => '主流程数据丢失!'], 400);
  30. SiteProcess::query()->create([
  31. 'site_id' => $siteId,
  32. 'process_id' => $process->id,
  33. 'detail' => '已注册'
  34. ]);
  35. return response()->json(['message' => '操作成功']);
  36. }
  37. /**
  38. * 初定网站架构
  39. * @param $siteId
  40. * @param $excel
  41. * @return \Illuminate\Http\JsonResponse
  42. */
  43. public function initSiteSchema($siteId, $excel)
  44. {
  45. $process = Process::query()->where(['identifier' => 'domainRegister'])->first();
  46. if (!$process) return response()->json(['message' => '主流程数据丢失!'], 400);
  47. SiteProcess::query()->create([
  48. 'site_id' => $siteId,
  49. 'process_id' => $process->id,
  50. 'detail' => $excel
  51. ]);
  52. return response()->json(['message' => '操作成功']);
  53. }
  54. /**
  55. * 网站架构反馈
  56. * @param $siteId
  57. * @return \Illuminate\Http\JsonResponse
  58. */
  59. public function siteSchemaFeedback($siteId, $file)
  60. {
  61. $process = Process::query()->where(['identifier' => 'domainRegister'])->first();
  62. if (!$process) return response()->json(['message' => '主流程数据丢失!'], 400);
  63. SiteProcess::query()->create([
  64. 'site_id' => $siteId,
  65. 'process_id' => $process->id,
  66. 'detail' => ['excel' => $file]
  67. ]);
  68. return response()->json(['message' => '操作成功']);
  69. }
  70. /**
  71. * 初始化流程
  72. * @param $siteId
  73. */
  74. public function initProcess($siteId)
  75. {
  76. $init = SiteProcess::query()->create([
  77. 'site_id' => $siteId,
  78. 'process_id' => 1,
  79. 'active' => 1 //已完成
  80. ]);
  81. $this->nextProcess($init);
  82. }
  83. /**
  84. * 流转下一流程
  85. * $siteProcess SiteProcess模型
  86. * @param $siteProcess
  87. */
  88. public function nextProcess($siteProcess)
  89. {
  90. $processMap = Process::query()->pluck('limit_days', 'id')->toArray();
  91. $nextProcessIds = $siteProcess->process->next_ids ?? [];
  92. $insertData = [];
  93. foreach ($nextProcessIds as $id) {
  94. $insertData[] = [
  95. 'site_id' => $siteProcess->site_id,
  96. 'process_id' => $id,
  97. 'active' => 2, //处理中
  98. 'should_end_at' => date('Y-m-d H:i:s', strtotime(sprintf('+%s days', $processMap[$id] ?? 0))),
  99. 'created_at' => date('Y-m-d H:i:s'),
  100. 'updated_at' => date('Y-m-d H:i:s'),
  101. ];
  102. }
  103. SiteProcess::query()->insert($insertData);
  104. }
  105. /**
  106. * 更改站点状态
  107. * @param $siteProcess
  108. */
  109. public function changeStatus($siteProcess)
  110. {
  111. if ($siteProcess->process_id == 15 && $siteProcess->active = 1) { //网站确认之后
  112. Site::query()->where(['id' => $siteProcess->site_id])->update(['status' => 2]); //实施期
  113. } elseif ($siteProcess->process_id == 17 && $siteProcess->active = 1) {//关键词达标确认之后
  114. Site::query()->where(['id' => $siteProcess->site_id])->update(['status' => 3]); //服务期
  115. }
  116. }
  117. public function renewForm($validated, $site)
  118. {
  119. // Site::
  120. }
  121. public function hasCheckItemsFor(array $for): bool
  122. {
  123. $user = auth()->user();
  124. if ($user->is_super)
  125. return true;
  126. return in_array($user->role_id, $for);
  127. }
  128. }