作者 lyh

变更数据

<?php
/**
* @remark :
* @name :GeoConfirmController.php
* @author :lyh
* @method :post
* @time :2025/10/25 11:35
*/
namespace App\Http\Controllers\Aside\Geo;
use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Geo\GeoConfirmLogic;
use Illuminate\Http\Request;
/**
* @remark :用户确认信息表
* @name :GeoConfirmController
* @author :lyh
* @method :post
* @time :2025/10/25 11:37
*/
class GeoConfirmController extends BaseController
{
public function __construct(){
parent::__construct();
$this->logic = new GeoConfirmLogic();
}
/**
* 保存确认数据, 并推送微信群
* @param Request $request
* @throws \App\Exceptions\AsideGlobalException
*/
public function saveConfirmContent()
{
$this->request->validate([
'project_id' => 'required',
'type' => 'required|integer',
'content' => 'required',
'max_num' => 'required',
], [
'project_id.required' => '项目ID不能为空',
'type.required' => '确定数据类型不能为空',
'type.integer' => '确定数据类型不正确',
'content.required' => '确定数据不能为空',
'max_num.required' => '最大确认数量不能为空',
]);
$data = $this->logic->saveConfirmContent($this->param);
$this->response('success', Code::SUCCESS, $data);
}
}
... ...
... ... @@ -70,37 +70,6 @@ class GeoController extends BaseController
}
/**
* 保存确认数据, 并推送微信群
* @param Request $request
* @throws \App\Exceptions\AsideGlobalException
*/
public function saveConfirmContent()
{
$this->request->validate([
'project_id' => 'required',
'type' => 'required|integer',
'content' => 'required',
'max_num' => 'required',
], [
'project_id.required' => '项目ID不能为空',
'type.required' => '确定数据类型不能为空',
'type.integer' => '确定数据类型不正确',
'content.required' => '确定数据不能为空',
'max_num.required' => '最大确认数量不能为空',
]);
try {
$data = GeoConfirm::saveContent($this->param['project_id'], $this->param['type'], $this->param['content'], $this->param['max_num']);
$friend = ProjectAssociation::where(['project_id' => $this->param['project_id']])->first();
if (empty($friend)){
$this->fail('项目未绑定微信群, 推送消息失败!');
}
$data = GeoConfirm::sendConfirmMessage($data->id, $friend->friend_id);
$this->response('success', Code::SUCCESS, $data);
} catch (\Exception $e) {
$this->fail('操作失败, error:' . $e->getMessage());
}
}
/**
* OA后台管理员,保存确认数据
... ...
<?php
/**
* @remark :
* @name :GeoConfirmLogic.php
* @author :lyh
* @method :post
* @time :2025/10/25 11:36
*/
namespace App\Http\Logic\Aside\Geo;
use App\Enums\Common\Code;
use App\Http\Logic\Aside\BaseLogic;
use App\Models\Geo\GeoConfirm;
use App\Models\ProjectAssociation\ProjectAssociation;
/**
* @remark :用户确认信息
* @name :GeoConfirmLogic
* @author :lyh
* @method :post
* @time :2025/10/25 11:37
*/
class GeoConfirmLogic extends BaseLogic
{
public function __construct()
{
parent::__construct();
$this->param = $this->requestAll;
$this->model = new GeoConfirm();
}
/**
* @remark :保存数据->并推送微信群客户确认
* @name :saveConfirmContent
* @author :lyh
* @method :post
* @time :2025/10/25 11:41
*/
public function saveConfirmContent($param)
{
try {
$info = $this->model->read(['project_id' => $param['project_id']]);
if($info === false){
$id = $this->model->addReturnId($param);
}else{
$id = $param['id'];
$this->model->edit($param,['id'=>$info['id']]);
}
$friend = ProjectAssociation::where(['project_id' => $param['project_id']])->first();
if (empty($friend)){
$this->fail('项目未绑定微信群, 推送消息失败!');
}
GeoConfirm::sendConfirmMessage($id, $friend->friend_id);
} catch (\Exception $e) {
$this->fail('操作失败, error:' . $e->getMessage());
}
return $this->success(['id'=>$id]);
}
}
... ...
... ... @@ -98,4 +98,5 @@ class GeoLogic extends BaseLogic
}
return $this->success(['id'=>$id]);
}
}
... ...
... ... @@ -60,26 +60,6 @@ class GeoConfirm extends Base
];
}
/**
* @param $project_id
* @param $type
* @param $content
* @param $max_num
* @return GeoConfirm
*/
public static function saveContent($project_id, $type, $content, $max_num)
{
$data = self::where(compact('project_id', 'type'))->first();
if (empty($data)) {
$data = new self();
$data->project_id = $project_id;
$data->type = $type;
}
$data->content = $content;
$data->max_num = $max_num;
$data->save();
return $data;
}
/**
* 保存确认数据
... ...
... ... @@ -586,11 +586,14 @@ Route::middleware(['aloginauth'])->group(function () {
Route::any('/downloadGeoLink', [Aside\Geo\GeoLinkController::class, 'downloadGeoLink'])->name('admin.geo_link_downloadGeoLink');
Route::any('/daResultData', [Aside\Geo\GeoLinkController::class, 'daResultData'])->name('admin.geo_link_daResultData');
});
//geo设置
//geo信息详情设置
Route::prefix('conf')->group(function () {
Route::any('/getConfig', [Aside\Geo\GeoController::class, 'getConfig'])->name('admin.geo_conf_getConfig');
Route::any('/saveConfig', [Aside\Geo\GeoController::class, 'saveConfig'])->name('admin.geo_conf_saveConfig');
Route::any('/saveConfirmContent', [Aside\Geo\GeoController::class, 'saveConfirmContent'])->name('admin.geo_conf_saveConfirmContent');
});
//geo客户确认信息
Route::prefix('confirm')->group(function () {
Route::any('/saveConfirmContent', [Aside\Geo\GeoConfirmController::class, 'saveConfirmContent'])->name('admin.geo_confirm_saveConfirmContent');
});
});
// 任务相关
... ...