Files
xin-procurement/app/Http/Controllers/Mini/StoreController.php
T

59 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers\Mini;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Modules\AnnoRoute\Attribute\GetRoute;
use Modules\AnnoRoute\Attribute\PutRoute;
use Modules\AnnoRoute\Attribute\RequestAttribute;
/**
* 小程序门店设置(门店信息查看与维护:联系人 / 联系电话 / 地址)
*/
#[RequestAttribute('/mini', 'mini', authGuard: 'users')]
class StoreController extends BaseMiniController
{
/** 门店详情(编辑回显;门店名称 / 编码 / 回款周期为只读,由后台维护) */
#[GetRoute('/store/info', authorize: true)]
public function info(Request $request): JsonResponse
{
$store = $this->currentStore($request);
return $this->success([
'id' => $store->id,
'name' => $store->name,
'code' => $store->code,
'contact' => $store->contact,
'phone' => $store->phone,
'address' => $store->address,
'payment_cycle_days' => $store->payment_cycle_days,
]);
}
/** 修改门店信息(仅联系人 / 联系电话 / 地址,白名单更新) */
#[PutRoute('/store/info', authorize: true)]
public function updateInfo(Request $request): JsonResponse
{
$data = $request->validate([
'contact' => 'nullable|string|max:50',
'phone' => 'nullable|string|max:20',
'address' => 'nullable|string|max:255',
], [
'contact.max' => '联系人最长 50 个字符',
'phone.max' => '联系电话最长 20 个字符',
'address.max' => '地址最长 255 个字符',
]);
$store = $this->currentStore($request);
$store->update($data);
return $this->success([
'contact' => $store->contact,
'phone' => $store->phone,
'address' => $store->address,
], '门店信息已更新');
}
}