作者 lyh

gx

... ... @@ -6,6 +6,7 @@ use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Projects\InquiryInfoLogic;
use App\Models\Projects\InquiryUser;
use PhpOffice\PhpSpreadsheet\IOFactory;
/**
* @remark :询盘中心
... ... @@ -29,20 +30,6 @@ class InquiryInfoController extends BaseController
}
/**
* @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 :validationParam
* @author :lyh
... ... @@ -72,11 +59,92 @@ class InquiryInfoController extends BaseController
'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');
}
public function ceshi(){
$inquiryUser = new InquiryUser();
for ($i = 0;$i <= 200;$i++){
$inquiryUser->edit(['xp_id'=>$i + 1],['id'=>$i + 1]);
/**
* @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);
}
}
... ...
... ... @@ -3,9 +3,10 @@
namespace App\Http\Logic\Aside\Projects;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\InquiryIP;
use App\Models\Projects\InquiryInfo;
use App\Models\Projects\InquiryUser;
use mysql_xdevapi\Exception;
use Illuminate\Support\Facades\DB;
/**
* @remark :询盘中心
... ... @@ -45,6 +46,9 @@ class InquiryInfoLogic extends BaseLogic
if(isset($map['type'])){
$query = $query->where('gl_inquiry_info.type',$map['type']);
}
if(isset($map['url'])){
$query = $query->where('gl_inquiry_info.url',$map['url']);
}
$lists = $query->paginate($row, $this->selectParam(), 'page', $page);
return $this->success($lists);
}
... ... @@ -79,12 +83,12 @@ class InquiryInfoLogic extends BaseLogic
* @time :2023/7/12 9:22
*/
public function inquirySave(){
// try {
try {
$xp_id = $this->inquiryInfoSave();
$this->inquiryUserSave($xp_id);
// }catch (Exception $e){
// $this->fail('error');
// }
}catch (\Exception $e){
$this->fail('error');
}
return $this->success();
}
... ... @@ -134,4 +138,77 @@ class InquiryInfoLogic extends BaseLogic
$inquiryUserModel = new InquiryUser();
return $inquiryUserModel->add($param);
}
/**
* @remark :逻辑删除
* @name :inquiryInfoDel
* @author :lyh
* @method :post
* @time :2023/7/12 14:15
*/
public function inquiryInfoDel(){
DB::beginTransaction();
try {
$this->model->del(['id'=>$this->param['id']]);
$inquiryUserModel = new InquiryUser();
$inquiryUserModel->del(['xp_id'=>$this->param['id']]);
DB::commit();
}catch (\Exception $e){
DB::rollBack();
$this->fail('error');
}
return $this->success();
}
/**
* @remark :转发详情
* @name :inquiryForwardInfo
* @author :lyh
* @method :post
* @time :2023/7/12 17:43
*/
public function inquiryForwardInfo(){
$inquiryUserModel = new InquiryUser();
$info = $inquiryUserModel->read(['xp_id'=>$this->param['id']]);
if($info === false){
$this->fail('error');
}
return $this->success($info);
}
/**
* @remark :导入保存数据
* @name :ImportInquiryInfoSave
* @author :lyh
* @method :post
* @time :2023/7/13 10:59
*/
public function ImportInquiryInfoSave($row){
$this->param = [
'name'=>$row[0],
'email'=>$row[1],
'phone'=>$row[2],
'ip'=>$row[3],
'ip_area'=>$row[4],
'message'=>$row[5],
'type'=>$row[6],
'forward_url'=>$row[7],
'delay'=>$row[8],
];
$this->inquirySave();
return $this->success();
}
/**
* @remark :根据国家获取随机ip
* @name :getSearchIp
* @author :lyh
* @method :post
* @time :2023/7/13 11:43
*/
public function getSearchIp(){
$inquiryIpModel = new InquiryIP();
$info = $inquiryIpModel->where($this->param)->inRandomOrder()->first();
return $this->success($info);
}
}
... ...
<?php
namespace App\Models;
/**
* @remark :
* @class :InquiryIP.php
* @author :lyh
* @time :2023/7/13 11:45
*/
class InquiryIP extends Base
{
protected $table = 'gl_xunpan_ipdata';
}
... ...
... ... @@ -259,6 +259,9 @@ Route::group([], function () {
Route::prefix('inquiry')->group(function () {
Route::any('/', [Aside\Projects\InquiryInfoController::class, 'lists'])->name('admin.inquiry_lists');
Route::any('/save', [Aside\Projects\InquiryInfoController::class, 'save'])->name('admin.inquiry_save');
Route::any('/forwardInfo', [Aside\Projects\InquiryInfoController::class, 'forwardInfo'])->name('admin.inquiry_forwardInfo');
Route::any('/importInquirySave', [Aside\Projects\InquiryInfoController::class, 'importInquirySave'])->name('admin.inquiry_importInquirySave');
Route::any('/getSearchIpInfo', [Aside\Projects\InquiryInfoController::class, 'getSearchIpInfo'])->name('admin.inquiry_getSearchIpInfo');
});
});
... ...