正在显示
6 个修改的文件
包含
194 行增加
和
0 行删除
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Controllers\Bside; | ||
| 4 | + | ||
| 5 | +use App\Helper\Arr; | ||
| 6 | +use App\Http\Logic\Bside\InquiryLogic; | ||
| 7 | +use App\Http\Requests\Bside\InquiryRequest; | ||
| 8 | +use App\Rules\Ids; | ||
| 9 | +use Illuminate\Http\Request; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 精准询盘 | ||
| 13 | + * Class InquiryController | ||
| 14 | + * @package App\Http\Controllers\Bside | ||
| 15 | + * @author zbj | ||
| 16 | + * @date 2023/5/4 | ||
| 17 | + */ | ||
| 18 | +class InquiryController extends BaseController | ||
| 19 | +{ | ||
| 20 | + | ||
| 21 | + public function index(InquiryLogic $logic) | ||
| 22 | + { | ||
| 23 | + $map = []; | ||
| 24 | + if(!empty($this->param['search'])){ | ||
| 25 | + $map[] = ['name|email|content', 'like', "%{$this->param['search']}%"]; | ||
| 26 | + } | ||
| 27 | + $sort = ['id' => 'desc']; | ||
| 28 | + $data = $logic->getList($map, $sort, ['id', 'name', 'email', 'phone', 'url', 'ip', 'ip_country', 'status', 'created_at']); | ||
| 29 | + return $this->success($data); | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + public function info(Request $request, InquiryLogic $logic){ | ||
| 33 | + $request->validate([ | ||
| 34 | + 'id'=>'required' | ||
| 35 | + ],[ | ||
| 36 | + 'id.required' => 'ID不能为空' | ||
| 37 | + ]); | ||
| 38 | + $data = $logic->getInfo($this->param['id']); | ||
| 39 | + return $this->success(Arr::twoKeepKeys($data, ['id', 'name', 'email', 'phone', 'url', 'ip', 'ip_country', 'status', 'content', 'trans_content', 'created_at'])); | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + public function save(InquiryRequest $request, InquiryLogic $logic) | ||
| 43 | + { | ||
| 44 | + $data = $logic->save($this->param); | ||
| 45 | + return $this->success($data); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + public function delete(Request $request, InquiryLogic $logic) | ||
| 49 | + { | ||
| 50 | + $request->validate([ | ||
| 51 | + 'ids'=>['required', new Ids()] | ||
| 52 | + ],[ | ||
| 53 | + 'ids.required' => 'ID不能为空' | ||
| 54 | + ]); | ||
| 55 | + | ||
| 56 | + $data = $logic->delete($this->param['ids']); | ||
| 57 | + return $this->success($data); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | +} |
| @@ -6,6 +6,7 @@ use App\Helper\Arr; | @@ -6,6 +6,7 @@ use App\Helper\Arr; | ||
| 6 | use App\Http\Controllers\Bside\BaseController; | 6 | use App\Http\Controllers\Bside\BaseController; |
| 7 | use App\Http\Logic\Bside\Product\KeywordLogic; | 7 | use App\Http\Logic\Bside\Product\KeywordLogic; |
| 8 | use App\Http\Requests\Bside\Product\KeywordRequest; | 8 | use App\Http\Requests\Bside\Product\KeywordRequest; |
| 9 | +use App\Models\Project\Project; | ||
| 9 | use App\Rules\Ids; | 10 | use App\Rules\Ids; |
| 10 | use Illuminate\Http\Request; | 11 | use Illuminate\Http\Request; |
| 11 | 12 | ||
| @@ -29,6 +30,8 @@ class KeywordController extends BaseController | @@ -29,6 +30,8 @@ class KeywordController extends BaseController | ||
| 29 | foreach ($data['list'] as &$v){ | 30 | foreach ($data['list'] as &$v){ |
| 30 | $v['product_num'] = $logic->getProductNum($v['title']); | 31 | $v['product_num'] = $logic->getProductNum($v['title']); |
| 31 | $v['tdk'] = boolval($v['seo_title']) * boolval($v['seo_keywords']) * boolval($v['seo_description']); | 32 | $v['tdk'] = boolval($v['seo_title']) * boolval($v['seo_keywords']) * boolval($v['seo_description']); |
| 33 | + //todo 获取域名 拼接链接 | ||
| 34 | + $v['url'] = $v['route']; | ||
| 32 | } | 35 | } |
| 33 | return $this->success($data); | 36 | return $this->success($data); |
| 34 | } | 37 | } |
app/Http/Logic/Bside/InquiryLogic.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Logic\Bside; | ||
| 4 | + | ||
| 5 | +use App\Helper\Arr; | ||
| 6 | +use App\Models\Inquiry; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * Class InquiryLogic | ||
| 10 | + * @package App\Http\Logic\Bside | ||
| 11 | + * @author zbj | ||
| 12 | + * @date 2023/5/4 | ||
| 13 | + */ | ||
| 14 | +class InquiryLogic extends BaseLogic | ||
| 15 | +{ | ||
| 16 | + public function __construct() | ||
| 17 | + { | ||
| 18 | + parent::__construct(); | ||
| 19 | + | ||
| 20 | + $this->model = new Inquiry(); | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + public function getInfo($id) | ||
| 24 | + { | ||
| 25 | + $info = $this->getCacheInfo($id); | ||
| 26 | + if(!$info){ | ||
| 27 | + $this->fail('数据不存在或者已经删除'); | ||
| 28 | + } | ||
| 29 | + //标记已读 | ||
| 30 | + if($info->status == Inquiry::STATUS_UNREAD){ | ||
| 31 | + parent::save(['id' => $info['id'], 'status' => Inquiry::STATUS_READ]); | ||
| 32 | + } | ||
| 33 | + return $this->success($info->toArray()); | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + | ||
| 37 | + public function save($param) | ||
| 38 | + { | ||
| 39 | + $param['ip_info'] = Arr::s2a($param['ip_info']); | ||
| 40 | + $param['ip'] = $param['ip_info']['ip'] ?? ''; | ||
| 41 | + $param['ip_country'] = $param['ip_info']['country'] ?? ''; | ||
| 42 | + return parent::save($param); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | +} |
app/Http/Requests/Bside/InquiryRequest.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Requests\Bside; | ||
| 4 | + | ||
| 5 | +use Illuminate\Foundation\Http\FormRequest; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * Class InquiryRequest | ||
| 9 | + * @package App\Http\Requests\Bside | ||
| 10 | + * @author zbj | ||
| 11 | + * @date 2023/5/4 | ||
| 12 | + */ | ||
| 13 | +class InquiryRequest extends FormRequest | ||
| 14 | +{ | ||
| 15 | + /** | ||
| 16 | + * Determine if the user is authorized to make this request. | ||
| 17 | + * | ||
| 18 | + * @return bool | ||
| 19 | + */ | ||
| 20 | + public function authorize() | ||
| 21 | + { | ||
| 22 | + return true; | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + /** | ||
| 26 | + * Get the validation rules that apply to the request. | ||
| 27 | + * | ||
| 28 | + * @return array | ||
| 29 | + */ | ||
| 30 | + public function rules() | ||
| 31 | + { | ||
| 32 | + return [ | ||
| 33 | + 'name' => 'required|max:200', | ||
| 34 | + 'email' => 'required|email|max:200', | ||
| 35 | + 'phone' => 'max:200', | ||
| 36 | + 'content' => 'required', | ||
| 37 | + ]; | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + public function messages() | ||
| 41 | + { | ||
| 42 | + return []; | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | +} |
app/Models/Inquiry.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Models; | ||
| 4 | + | ||
| 5 | +use App\Helper\Arr; | ||
| 6 | +use Illuminate\Database\Eloquent\SoftDeletes; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * Class Inquiry | ||
| 10 | + * @package App\Models | ||
| 11 | + * @author zbj | ||
| 12 | + * @date 2023/5/4 | ||
| 13 | + */ | ||
| 14 | +class Inquiry extends Base | ||
| 15 | +{ | ||
| 16 | + use SoftDeletes; | ||
| 17 | + | ||
| 18 | + //设置关联表名 | ||
| 19 | + protected $table = 'gl_inquiry'; | ||
| 20 | + | ||
| 21 | + const STATUS_UNREAD = 0; | ||
| 22 | + const STATUS_READ = 1; | ||
| 23 | + | ||
| 24 | + public function setIpInfoAttribute($value){ | ||
| 25 | + $this->attributes['ip_info'] = Arr::a2s($value); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + public function getIpInfoAttribute($value){ | ||
| 29 | + return Arr::s2a($value); | ||
| 30 | + } | ||
| 31 | +} |
| @@ -168,6 +168,13 @@ Route::middleware(['bloginauth'])->group(function () { | @@ -168,6 +168,13 @@ Route::middleware(['bloginauth'])->group(function () { | ||
| 168 | Route::prefix('images')->group(function () { | 168 | Route::prefix('images')->group(function () { |
| 169 | Route::post('/upload', [\App\Http\Controllers\ImageController::class, 'upload'])->name('image_upload'); | 169 | Route::post('/upload', [\App\Http\Controllers\ImageController::class, 'upload'])->name('image_upload'); |
| 170 | }); | 170 | }); |
| 171 | + | ||
| 172 | + //精准询盘 | ||
| 173 | + Route::prefix('inquiry')->group(function () { | ||
| 174 | + Route::get('/', [\App\Http\Controllers\Bside\InquiryController::class, 'index'])->name('inquiry'); | ||
| 175 | + Route::get('/info', [\App\Http\Controllers\Bside\InquiryController::class, 'info'])->name('inquiry_info'); | ||
| 176 | + Route::any('/delete', [\App\Http\Controllers\Bside\InquiryController::class, 'delete'])->name('inquiry_delete'); | ||
| 177 | + }); | ||
| 171 | }); | 178 | }); |
| 172 | 179 | ||
| 173 | //无需登录验证的路由组 | 180 | //无需登录验证的路由组 |
| @@ -175,4 +182,7 @@ Route::group([], function () { | @@ -175,4 +182,7 @@ Route::group([], function () { | ||
| 175 | Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login'); | 182 | Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login'); |
| 176 | Route::get('/file/download', [\App\Http\Controllers\Bside\FileController::class, 'download'])->name('file_download'); | 183 | Route::get('/file/download', [\App\Http\Controllers\Bside\FileController::class, 'download'])->name('file_download'); |
| 177 | Route::any('/image/{hash}/{w?}/{h?}', [\App\Http\Controllers\ImageController::class,'index'])->name('image_show'); | 184 | Route::any('/image/{hash}/{w?}/{h?}', [\App\Http\Controllers\ImageController::class,'index'])->name('image_show'); |
| 185 | + | ||
| 186 | + //添加询盘信息 | ||
| 187 | + Route::post('/inquiry/save', [\App\Http\Controllers\Bside\InquiryController::class, 'save'])->name('inquiry_save'); | ||
| 178 | }); | 188 | }); |
-
请 注册 或 登录 后发表评论