| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | <?php/** * Created by PhpStorm. * User: Administrator * Date: 2019/4/16 0016 * Time: 9:58 */namespace App\Http\Logics\Admin;use App\Http\Models\Process;use App\Http\Models\Site;use App\Http\Models\SiteProcess;use Illuminate\Database\Eloquent\Model;class ProcessLogic{    public function knowCustomerInfo($siteId)    {        $process = Process::query()->where(['identifier' => 'knowCustomerInfo'])->first();        if (!$process) return response()->json(['message' => '主流程数据丢失!'], 400);        SiteProcess::query()->create([            'site_id' => $siteId,            'process_id' => $process->id,            'detail' => '已了解'        ]);        return response()->json(['message' => '操作成功']);    }    public function domainRegister($siteId)    {        $process = Process::query()->where(['identifier' => 'domainRegister'])->first();        if (!$process) return response()->json(['message' => '主流程数据丢失!'], 400);        SiteProcess::query()->create([            'site_id' => $siteId,            'process_id' => $process->id,            'detail' => '已注册'        ]);        return response()->json(['message' => '操作成功']);    }    /**     * 初定网站架构     * @param $siteId     * @param $excel     * @return \Illuminate\Http\JsonResponse     */    public function initSiteSchema($siteId, $excel)    {        $process = Process::query()->where(['identifier' => 'domainRegister'])->first();        if (!$process) return response()->json(['message' => '主流程数据丢失!'], 400);        SiteProcess::query()->create([            'site_id' => $siteId,            'process_id' => $process->id,            'detail' => $excel        ]);        return response()->json(['message' => '操作成功']);    }    /**     * 网站架构反馈     * @param $siteId     * @return \Illuminate\Http\JsonResponse     */    public function siteSchemaFeedback($siteId, $file)    {        $process = Process::query()->where(['identifier' => 'domainRegister'])->first();        if (!$process) return response()->json(['message' => '主流程数据丢失!'], 400);        SiteProcess::query()->create([            'site_id' => $siteId,            'process_id' => $process->id,            'detail' => ['excel' => $file]        ]);        return response()->json(['message' => '操作成功']);    }    /**     * 初始化流程     * @param $siteId     */    public function initProcess($siteId)    {        $init = SiteProcess::query()->create([            'site_id' => $siteId,            'process_id' => 1,            'active' => 1 //已完成        ]);        $this->nextProcess($init);    }    /**     * 流转下一流程     * $siteProcess SiteProcess模型     * @param $siteProcess     */    public function nextProcess($siteProcess)    {        $processMap = Process::query()->pluck('limit_days', 'id')->toArray();        $nextProcessIds = $siteProcess->process->next_ids ?? [];        $insertData = [];        foreach ($nextProcessIds as $id) {            $insertData[] = [                'site_id' => $siteProcess->site_id,                'process_id' => $id,                'active' => 2, //处理中                'should_end_at' => date('Y-m-d H:i:s', strtotime(sprintf('+%s days', $processMap[$id] ?? 0))),                'created_at' => date('Y-m-d H:i:s'),                'updated_at' => date('Y-m-d H:i:s'),            ];        }        SiteProcess::query()->insert($insertData);    }    /**     * 更改站点状态     * @param $siteProcess     */    public function changeStatus($siteProcess)    {        if ($siteProcess->process_id == 15 && $siteProcess->active = 1) { //网站确认之后            Site::query()->where(['id' => $siteProcess->site_id])->update(['status' => 2]); //实施期        } elseif ($siteProcess->process_id == 17 && $siteProcess->active = 1) {//关键词达标确认之后            Site::query()->where(['id' => $siteProcess->site_id])->update(['status' => 3]); //服务期        }    }    public function renewForm($validated, $site)    {//        Site::    }    public function hasCheckItemsFor(array $for): bool    {        $user = auth()->user();        if ($user->is_super)            return true;        return in_array($user->role_id, $for);    }}
 |