InquiryInfoController.php 6.4 KB
<?php

namespace App\Http\Controllers\Aside\Projects;

use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Projects\InquiryInfoLogic;
use App\Models\Projects\InquiryUser;
use Carbon\Carbon;
use PhpOffice\PhpSpreadsheet\IOFactory;

/**
 * @remark :询盘中心
 * @class  :InquiryInfoController.php
 * @author :lyh
 * @time   :2023/7/11 14:33
 */
class InquiryInfoController extends BaseController
{

    /**
     * @remark :获取询盘中心列表
     * @name   :lists
     * @author :lyh
     * @method :post
     * @time   :2023/7/11 15:23
     */
    public function lists(InquiryInfoLogic $inquiryInfoLogic){
        if(isset($this->param['url'])){
            $this->map['url'] = ['like',','.$this->map['url'].','];
        }
        if(isset($this->param['email'])){
            $this->map['email'] = ['like',','.$this->map['email'].','];
        }
        if(isset($this->param['title'])){
            $this->map['title'] = ['like',','.$this->map['title'].','];
        }
        $lists = $inquiryInfoLogic->getInquiryLists($this->map,$this->page,$this->row,$this->order);
        $this->response('success',Code::SUCCESS,$lists);
    }

    /**
     * @remark :参数验证
     * @name   :validationParam
     * @author :lyh
     * @method :post
     * @time   :2023/7/11 15:34
     */
    public function validationParam(){
        $this->request->validate([
            'name'=>'required',//名称
            'email'=>'required',//邮箱
            'phone'=>'required',//电话号码
            'ip'=>'required',//ip
            'ip_area'=>'required',//ip地址
            'forward_url'=>'required',//转发网址
            'message'=>'required',//发送内容
            'delay'=>'required',//延迟发送时间
            'type'=>'required',//询盘1类型
        ],[
            'name.required' => '名称不能为空',
            'email.required' => '邮箱不能为空',
            'phone.required' => '电话号码不能为空',
            'ip.required' => 'ip不能为空',
            'ip_area.required' => 'ip地址不能为空',
            'forward_url.required' => '转发网址不能为空',
            'message.required' => '发送内容不能为空',
            'delay.required' => '延迟发送时间不能为空',
            'type.required' => '类型不能为空',
        ]);
    }
    /**
     * @remark :保存询盘信息
     * @name   :save
     * @author :lyh
     * @method :post
     * @time   :2023/7/11 15:33
     */
    public function save(InquiryInfoLogic $inquiryInfoLogic){
        //参数验证
        $this->validationParam();
        $inquiryInfoLogic->inquirySave();
        $this->response('success');
    }

    /**
     * @remark :转发详情
     * @name   :info
     * @author :lyh
     * @method :post
     * @time   :2023/7/12 17:19
     */
    public function forwardInfo(InquiryInfoLogic $inquiryInfoLogic){
        $this->request->validate([
            'id'=>'required',//
        ],[
            'id.required' => 'ID不能为空',
        ]);
        $info = $inquiryInfoLogic->inquiryForwardInfo();
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @param InquiryInfoLogic $inquiryInfoLogic
     * @remark :删除
     * @name   :del
     * @author :lyh
     * @method :post
     * @time   :2023/7/12 14:10
     */
    public function del(InquiryInfoLogic $inquiryInfoLogic){
        $this->request->validate([
            'id'=>'required',//
        ],[
            'id.required' => '名称不能为空',
        ]);
        $inquiryInfoLogic->inquiryInfoDel();
        $this->response('success');
    }

    /**
     * @remark :导入询盘记录
     * @name   :ImportInquirySave
     * @author :lyh
     * @method :post
     * @time   :2023/7/13 10:39
     */
    public function importInquirySave(InquiryInfoLogic $inquiryInfoLogic){
        if ($this->request->hasFile('file')) {
            $path = $this->request->file('file')->getRealPath();
            $spreadsheet = IOFactory::load($path);
            $worksheet = $spreadsheet->getActiveSheet();
            $rows = $worksheet->toArray();
            foreach ($rows as $row) {
                // 创建模型实例并设置属性
                $inquiryInfoLogic->ImportInquiryInfoSave($row);
            }
        }
        $this->response('success');
    }

    /**
     * @remark :根据国家获取随机ip
     * @name   :getSearchIpInfo
     * @author :lyh
     * @method :post
     * @time   :2023/7/13 13:45
     */
    public function getSearchIpInfo(InquiryInfoLogic $inquiryInfoLogic){
        $this->request->validate([
            'ip_area'=>'required',//
        ],[
            'ip_area.required' => '国家不能为空',
        ]);
        $info = $inquiryInfoLogic->getSearchIp();
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @remark :手动询盘转发
     * @name   :forwardInquiry
     * @author :lyh
     * @method :post
     * @time   :2023/7/14 10:43
     */
    public function forwardInquiry(InquiryInfoLogic $inquiryInfoLogic){
        $this->request->validate([
            'id'=>'required',//
        ],[
            'id.required' => 'id不能为空',
        ]);
        $inquiryInfoLogic->forwardTime($this->param['id']);
        $this->response('success');
    }

    /**
     * @remark :修改状态
     * @name   :status
     * @author :lyh
     * @method :post
     * @time   :2023/7/14 15:20
     */
    public function status(InquiryInfoLogic $inquiryInfoLogic){
        $this->request->validate([
            'id'=>'required',
            'status'=>'required',
        ],[
            'id.required' => 'id不能为空',
            'status.required' => '状态不能为空',
        ]);
        $inquiryInfoLogic->inquiryEdit();
        $this->response('success');
    }

    /**
     * @remark :获取最新30天数据
     * @name   :getNewThirtyCount
     * @author :lyh
     * @method :post
     * @time   :2023/7/14 15:55
     */
    public function getCount(InquiryInfoLogic $inquiryInfoLogic){
        $yesterday = Carbon::yesterday()->toDateString();
        var_dump($yesterday);
        die();
        // 获取30天前的时间
//        $thirtyDaysAgo = date("Y-m-d", strtotime("-30 days"));
//        // 获取当前时间
//        $currentDateTime = date("Y-m-d");
//        $lists = $inquiryInfoLogic->getNewThirtyCount($thirtyDaysAgo,$currentDateTime);
//        $this->response('success',Code::SUCCESS,$lists);
    }
}