瀏覽代碼

QR設定周辺の整備

develop
sosuke.iwabuchi 1 年之前
父節點
當前提交
3013f93841
共有 17 個文件被更改,包括 354 次插入18 次删除
  1. +50
    -0
      app/Http/Controllers/Web/Parking/DiscountTicketListController.php
  2. +20
    -0
      app/Http/Controllers/Web/Parking/DiscountTicketListParam.php
  3. +2
    -3
      app/Http/Controllers/Web/Shop/Config/Certification/AddParam.php
  4. +51
    -0
      app/Http/Controllers/Web/Shop/Config/Certification/DeleteController.php
  5. +22
    -0
      app/Http/Controllers/Web/Shop/Config/Certification/DeleteParam.php
  6. +52
    -0
      app/Http/Controllers/Web/Shop/Config/Certification/RegisterController.php
  7. +24
    -0
      app/Http/Controllers/Web/Shop/Config/Certification/RegisterParam.php
  8. +2
    -2
      app/Http/Controllers/Web/Shop/Config/Certification/RemoveController.php
  9. +2
    -3
      app/Http/Controllers/Web/Shop/Config/Certification/RemoveParam.php
  10. +43
    -0
      app/Http/Controllers/Web/Shop/Config/Certification/UpdateController.php
  11. +24
    -0
      app/Http/Controllers/Web/Shop/Config/Certification/UpdateParam.php
  12. +37
    -0
      app/Models/HtpmsCustomer/Existing/DiscountTicket.php
  13. +1
    -1
      app/Models/HtpmsCustomer/Mst/ShopNoRelationHistory.php
  14. +17
    -6
      app/Repositories/CertificationAvailableSettingRepository.php
  15. +0
    -1
      app/Repositories/QRServiceParkingGroupRepository.php
  16. +1
    -0
      database/migrations/2024_03_14_160100_create_tbl3_mst_shop_no_relations.php
  17. +6
    -2
      routes/api.php

+ 50
- 0
app/Http/Controllers/Web/Parking/DiscountTicketListController.php 查看文件

@@ -0,0 +1,50 @@
<?php

namespace App\Http\Controllers\Web\Parking;

use App\Http\Controllers\Web\WebController;
use App\Models\ColumnName;
use App\Models\HtpmsCustomer\Existing\DiscountTicket;
use App\Models\HtpmsCustomer\Existing\Parking;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class DiscountTicketListController extends WebController
{

public function name(): string
{
return "駐車場一覧取得";
}

public function description(): string
{
return "駐車場一覧を取得する";
}


public function __construct(protected DiscountTicketListParam $param)
{
parent::__construct();
}

protected function run(Request $request): JsonResponse
{

$param = $this->param;

$parking = Parking::whereParkCode($param->parkingManagementCode)
->firstOrFail();

$res = [
"list" => DiscountTicket::getBuilder()
->where(DiscountTicket::COL_NAME_PARK_ID, $parking->id)
->select([
sprintf("%s as %s", DiscountTicket::COL_NAME_DISCOUNT_TICKET_CODE, ColumnName::DISCOUNT_TICKET_CODE),
sprintf("%s as %s", DiscountTicket::COL_NAME_TICKET_NAME, "ticket_name"),
])->get()
];

return $this->successResponse($res);
}
}

+ 20
- 0
app/Http/Controllers/Web/Parking/DiscountTicketListParam.php 查看文件

@@ -0,0 +1,20 @@
<?php

namespace App\Http\Controllers\Web\Parking;

use App\Http\Controllers\Web\BaseParam;
use App\Http\Controllers\Web\Rule;
use App\Models\ColumnName;

/**
* @property string parkingManagementCode
*/
class DiscountTicketListParam extends BaseParam
{
public function rules(): array
{
return [
ColumnName::PARKING_MANAGEMENT_CODE => $this->str([...Rule::parkingManagementCode()]),
];
}
}

+ 2
- 3
app/Http/Controllers/Web/Shop/Config/Certification/AddParam.php 查看文件

@@ -8,7 +8,7 @@ use App\Models\ColumnName;

/**
* @property string shopId
* @property int parkingManagementCode
* @property string parkingManagementCode
* @property int discountTicketCode
*/
class AddParam extends BaseParam
@@ -17,8 +17,7 @@ class AddParam extends BaseParam
{
return [
ColumnName::SHOP_ID => $this->str([...Rule::id()]),
ColumnName::QR_SERVICE_PARKING_GROUP_ID => $this->str([...Rule::id()]),
ColumnName::PARKING_MANAGEMENT_CODE => $this->string([...Rule::parkingManagementCode()]),
ColumnName::PARKING_MANAGEMENT_CODE => $this->str([...Rule::parkingManagementCode()]),
ColumnName::DISCOUNT_TICKET_CODE => $this->numeric([...Rule::discountTicketCode()]),
];
}


+ 51
- 0
app/Http/Controllers/Web/Shop/Config/Certification/DeleteController.php 查看文件

@@ -0,0 +1,51 @@
<?php

namespace App\Http\Controllers\Web\Shop\Config\Certification;

use App\Http\Controllers\Web\WebController;
use App\Models\HtpmsCustomer\Mst\ShopNoRelation;
use App\Models\HtpmsCustomer\QRService\CertificationAvailableSetting;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class DeleteController extends WebController
{

public function name(): string
{
return "QRサービス券認証設定全削除";
}

public function description(): string
{
return "QRサービス券認証設定を全削除する";
}


public function __construct(protected DeleteParam $param)
{
parent::__construct();
}

protected function run(Request $request): JsonResponse
{
$param = $this->param;


$settings = CertificationAvailableSetting::whereShopId($param->shopId)
->whereParkingManagementCode($param->parkingManagementCode)
->get();

$relation = ShopNoRelation::whereShopId($param->shopId)
->whereParkingManagementCode($param->parkingManagementCode)
->firstOrFail();


foreach ($settings as $setting) {
$setting->delete();
}
$relation->delete();

return $this->successResponse();
}
}

+ 22
- 0
app/Http/Controllers/Web/Shop/Config/Certification/DeleteParam.php 查看文件

@@ -0,0 +1,22 @@
<?php

namespace App\Http\Controllers\Web\Shop\Config\Certification;

use App\Http\Controllers\Web\BaseParam;
use App\Http\Controllers\Web\Rule;
use App\Models\ColumnName;

/**
* @property string shopId
* @property string parkingManagementCode
*/
class DeleteParam extends BaseParam
{
public function rules(): array
{
return [
ColumnName::SHOP_ID => $this->str([...Rule::id()]),
ColumnName::PARKING_MANAGEMENT_CODE => $this->str([...Rule::parkingManagementCode()]),
];
}
}

+ 52
- 0
app/Http/Controllers/Web/Shop/Config/Certification/RegisterController.php 查看文件

@@ -0,0 +1,52 @@
<?php

namespace App\Http\Controllers\Web\Shop\Config\Certification;

use App\Exceptions\ParamException;
use App\Http\Controllers\Web\WebController;
use App\Models\ColumnName;
use App\Models\HtpmsCustomer\Mst\ShopNoRelation;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class RegisterController extends WebController
{

public function name(): string
{
return "QRサービス券認証設定新規登録";
}

public function description(): string
{
return "QRサービス券認証設定を新規登録する";
}


public function __construct(protected RegisterParam $param)
{
parent::__construct();
}

protected function run(Request $request): JsonResponse
{
$param = $this->param;

// 重複チェック
if (ShopNoRelation::whereShopId($param->shopId)
->whereParkingManagementCode($param->parkingManagementCode)
->exists()
) {
ParamException::throw(ColumnName::PARKING_MANAGEMENT_CODE, trans("validation.exists"));
}

$relation = new ShopNoRelation();
$relation->shop_id = $param->shopId;
$relation->parking_management_code = $param->parkingManagementCode;
$relation->shop_no = $param->shopNo;
$relation->save();


return $this->successResponse();
}
}

+ 24
- 0
app/Http/Controllers/Web/Shop/Config/Certification/RegisterParam.php 查看文件

@@ -0,0 +1,24 @@
<?php

namespace App\Http\Controllers\Web\Shop\Config\Certification;

use App\Http\Controllers\Web\BaseParam;
use App\Http\Controllers\Web\Rule;
use App\Models\ColumnName;

/**
* @property string shopId
* @property string parkingManagementCode
* @property int shopNo
*/
class RegisterParam extends BaseParam
{
public function rules(): array
{
return [
ColumnName::SHOP_ID => $this->str([...Rule::id()]),
ColumnName::PARKING_MANAGEMENT_CODE => $this->str([...Rule::parkingManagementCode()]),
ColumnName::SHOP_NO => $this->numeric([...Rule::shopNo()]),
];
}
}

+ 2
- 2
app/Http/Controllers/Web/Shop/Config/Certification/RemoveController.php 查看文件

@@ -7,7 +7,7 @@ use App\Models\HtpmsCustomer\QRService\CertificationAvailableSetting;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class AddController extends WebController
class RemoveController extends WebController
{

public function name(): string
@@ -21,7 +21,7 @@ class AddController extends WebController
}


public function __construct(protected AddParam $param)
public function __construct(protected RemoveParam $param)
{
parent::__construct();
}


+ 2
- 3
app/Http/Controllers/Web/Shop/Config/Certification/RemoveParam.php 查看文件

@@ -8,7 +8,7 @@ use App\Models\ColumnName;

/**
* @property string shopId
* @property int parkingManagementCode
* @property string parkingManagementCode
* @property int discountTicketCode
*/
class RemoveParam extends BaseParam
@@ -17,8 +17,7 @@ class RemoveParam extends BaseParam
{
return [
ColumnName::SHOP_ID => $this->str([...Rule::id()]),
ColumnName::QR_SERVICE_PARKING_GROUP_ID => $this->str([...Rule::id()]),
ColumnName::PARKING_MANAGEMENT_CODE => $this->string([...Rule::parkingManagementCode()]),
ColumnName::PARKING_MANAGEMENT_CODE => $this->str([...Rule::parkingManagementCode()]),
ColumnName::DISCOUNT_TICKET_CODE => $this->numeric([...Rule::discountTicketCode()]),
];
}


+ 43
- 0
app/Http/Controllers/Web/Shop/Config/Certification/UpdateController.php 查看文件

@@ -0,0 +1,43 @@
<?php

namespace App\Http\Controllers\Web\Shop\Config\Certification;

use App\Http\Controllers\Web\WebController;
use App\Models\HtpmsCustomer\Mst\ShopNoRelation;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class UpdateController extends WebController
{

public function name(): string
{
return "QRサービス券認証設定更新";
}

public function description(): string
{
return "QRサービス券認証設定を更新する";
}


public function __construct(protected UpdateParam $param)
{
parent::__construct();
}

protected function run(Request $request): JsonResponse
{
$param = $this->param;

$relation = ShopNoRelation::whereShopId($param->shopId)
->whereParkingManagementCode($param->parkingManagementCode)
->firstOrFail();

$relation->shop_no = $param->shopNo;

$relation->save();

return $this->successResponse();
}
}

+ 24
- 0
app/Http/Controllers/Web/Shop/Config/Certification/UpdateParam.php 查看文件

@@ -0,0 +1,24 @@
<?php

namespace App\Http\Controllers\Web\Shop\Config\Certification;

use App\Http\Controllers\Web\BaseParam;
use App\Http\Controllers\Web\Rule;
use App\Models\ColumnName;

/**
* @property string shopId
* @property string parkingManagementCode
* @property int shopNo
*/
class UpdateParam extends BaseParam
{
public function rules(): array
{
return [
ColumnName::SHOP_ID => $this->str([...Rule::id()]),
ColumnName::PARKING_MANAGEMENT_CODE => $this->str([...Rule::parkingManagementCode()]),
ColumnName::SHOP_NO => $this->numeric([...Rule::shopNo()]),
];
}
}

+ 37
- 0
app/Models/HtpmsCustomer/Existing/DiscountTicket.php 查看文件

@@ -0,0 +1,37 @@
<?php

namespace App\Models\HtpmsCustomer\Existing;

use App\Util\DateUtil;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Query\Builder;
use Illuminate\Support\Facades\DB;

class DiscountTicket extends Model
{
const COL_NAME_PARK_ID = 'park_id';
const COL_NAME_TICKET_NAME = 'ticketname';
const COL_NAME_DISCOUNT_TICKET_CODE = 'lineno';

protected $connection = 'htpms_customer';
protected $table = 'tbl2_discountticket';
protected $fillable = []; // 参照専用

protected $visible = [
self::COL_NAME_TICKET_NAME,
self::COL_NAME_DISCOUNT_TICKET_CODE,
];


public static function getBuilder(string $name = 'main'): Builder
{
$now = DateUtil::now();
$instance = new static();
return DB::connection($instance->getConnectionName())->table(static::getTableName(), $name);
}

public static function getTableName(): string
{
return (new static)->getTable();
}
}

+ 1
- 1
app/Models/HtpmsCustomer/Mst/ShopNoRelationHistory.php 查看文件

@@ -13,6 +13,6 @@ class ShopNoRelationHistory extends HtpmsCustomerHistoryModel

public function getModelName(): string
{
return "店舗マスタ履歴";
return "店舗番号紐づけ履歴";
}
}

+ 17
- 6
app/Repositories/CertificationAvailableSettingRepository.php 查看文件

@@ -4,6 +4,7 @@ namespace App\Repositories;

use App\Models\ColumnName;
use App\Models\HtpmsCustomer\Existing\Parking;
use App\Models\HtpmsCustomer\Mst\ShopNoRelation;
use App\Models\HtpmsCustomer\QRService\CertificationAvailableSetting;
use App\Repositories\BaseRepository;
use Illuminate\Database\Query\JoinClause;
@@ -16,6 +17,7 @@ class CertificationAvailableSettingRepository extends BaseRepository
const CONDITION_SHOP_ID = ColumnName::SHOP_ID;

const TABLE_SETTING = "setting";
const TABLE_RELATION = "relation";
const TABLE_PARKING = "parking";


@@ -28,21 +30,29 @@ class CertificationAvailableSettingRepository extends BaseRepository
public function get(array $condition): Collection
{

$table = CertificationAvailableSetting::getBuilder(static::TABLE_SETTING);
$table = ShopNoRelation::getBuilder(static::TABLE_RELATION);

$table->leftJoinSub(CertificationAvailableSetting::getBuilder(), static::TABLE_SETTING, function (JoinClause $join) {
$join->on(
$this->makeColumnName([static::TABLE_RELATION, ShopNoRelation::COL_NAME_PARKING_MANAGEMENT_CODE]),
$this->makeColumnName([static::TABLE_SETTING, CertificationAvailableSetting::COL_NAME_PARKING_MANAGEMENT_CODE])
);
});
$table->leftJoinSub(Parking::getBuilder(), static::TABLE_PARKING, function (JoinClause $join) {
$join->on(
$this->makeColumnName([static::TABLE_SETTING, CertificationAvailableSetting::COL_NAME_PARKING_MANAGEMENT_CODE]),
$this->makeColumnName([static::TABLE_RELATION, ShopNoRelation::COL_NAME_PARKING_MANAGEMENT_CODE]),
$this->makeColumnName([static::TABLE_PARKING, Parking::COL_NAME_PARKING_MANAGEMENT_CODE])
);
});

// -----検索条件
// GROUP_ID
$this->where($table, $condition, static::CONDITION_SHOP_ID, $this->makeColumnName([static::TABLE_SETTING, CertificationAvailableSetting::COL_NAME_SHOP_ID]));
$this->where($table, $condition, static::CONDITION_SHOP_ID, $this->makeColumnName([static::TABLE_RELATION, ShopNoRelation::COL_NAME_SHOP_ID]));


$table->select($this->columns());
$table->orderBy($this->makeColumnName([self::TABLE_PARKING, Parking::COL_NAME_PARKING_MANAGEMENT_CODE]));
$table->orderBy($this->makeColumnName([self::TABLE_SETTING, CertificationAvailableSetting::COL_NAME_DISCOUNT_TICKET_CODE]));

$main = DB::connection("htpms_customer")->table($table, "main");

@@ -52,17 +62,18 @@ class CertificationAvailableSettingRepository extends BaseRepository
// リミット
$this->limit($main, $condition);


return CertificationAvailableSettingRepositoryData::makeList($main->get());
}

private function columns()
{
$setting = static::TABLE_SETTING;
$relation = static::TABLE_RELATION;
$parking = static::TABLE_PARKING;
$columns = [
$this->makeColumnNameForSelect([$setting, CertificationAvailableSetting::COL_NAME_SHOP_ID]),
$this->makeColumnNameForSelect([$setting, CertificationAvailableSetting::COL_NAME_PARKING_MANAGEMENT_CODE]),
$this->makeColumnNameForSelect([$relation, ShopNoRelation::COL_NAME_SHOP_ID]),
$this->makeColumnNameForSelect([$relation, ShopNoRelation::COL_NAME_PARKING_MANAGEMENT_CODE]),
$this->makeColumnNameForSelect([$relation, ShopNoRelation::COL_NAME_SHOP_NO]),
$this->makeColumnNameForSelect([$setting, CertificationAvailableSetting::COL_NAME_DISCOUNT_TICKET_CODE]),
$this->makeColumnNameForSelect([$parking, Parking::COL_NAME_PARKING_NAME], "parking_name"),
];


+ 0
- 1
app/Repositories/QRServiceParkingGroupRepository.php 查看文件

@@ -74,7 +74,6 @@ class QRServiceParkingGroupRepository extends BaseRepository
// リミット
$this->limit($main, $condition);


return QRServiceParkingGroupRepositoryData::makeList($main->get());
}



+ 1
- 0
database/migrations/2024_03_14_160100_create_tbl3_mst_shop_no_relations.php 查看文件

@@ -22,6 +22,7 @@ return new class extends Migration
->shopId()
->parkinManagementCode()
->shopNo();
$helper->index(1, [ColumnName::PARKING_MANAGEMENT_CODE]);
};

MigrationHelper::createTable("tbl3_mst_shop_no_relations", $schema, "HTD 店舗コード紐づけ");


+ 6
- 2
routes/api.php 查看文件

@@ -37,6 +37,7 @@ Route::middleware('auth:sanctum')->group(function () {
// 運営会社ルート
Route::middleware(RouteHelper::role([UserRole::CUSTOMER]))->group(function () {
RouteHelper::get('/parking/list', App\Http\Controllers\Web\Parking\ParkingListController::class);
RouteHelper::get('/parking/discount-ticket/list', App\Http\Controllers\Web\Parking\DiscountTicketListController::class);
RouteHelper::post('/role/switch/shop', App\Http\Controllers\Web\Auth\SwitchShopController::class);
RouteHelper::post('/login-user/shop/register', App\Http\Controllers\Web\LoginUser\ShopRegisterController::class);
RouteHelper::post('/shop/register', App\Http\Controllers\Web\Shop\ShopRegisterController::class);
@@ -44,10 +45,13 @@ Route::middleware('auth:sanctum')->group(function () {
RouteHelper::post('/shop/deposit/charge', App\Http\Controllers\Web\Shop\DepositChargeController::class);
RouteHelper::post('/shop/config', App\Http\Controllers\Web\Shop\Config\ShopConfigController::class);
RouteHelper::get('/shop/config/detail', App\Http\Controllers\Web\Shop\Config\ShopConfigDetailController::class);
RouteHelper::post('/shop/config/certification/register', App\Http\Controllers\Web\Shop\Config\Certification\RegisterController::class);
RouteHelper::post('/shop/config/certification/update', App\Http\Controllers\Web\Shop\Config\Certification\UpdateController::class);
RouteHelper::post('/shop/config/certification/add', App\Http\Controllers\Web\Shop\Config\Certification\AddController::class);
RouteHelper::post('/shop/config/certification/remove', App\Http\Controllers\Web\Shop\Config\Certification\RemoveController::class);
RouteHelper::post('/shop/config/certification/delete', App\Http\Controllers\Web\Shop\Config\Certification\DeleteController::class);
RouteHelper::post('/shop/config/acquisition/enable', App\Http\Controllers\Web\Shop\Config\Acquisition\EnableController::class);
RouteHelper::post('/shop/config/acquisition/disable', App\Http\Controllers\Web\Shop\Config\Acquisition\DisableController::class);
RouteHelper::post('/shop/config/certification/add', App\Http\Controllers\Web\Shop\Config\Certification\AddController::class);
RouteHelper::post('/shop/config/certification/remove', App\Http\Controllers\Web\Shop\Config\Certification\RemoveParam::class);
RouteHelper::get('/qr-service/parking-group/list', App\Http\Controllers\Web\QRService\Group\QRServiceGroupListController::class);
RouteHelper::post('/qr-service/parking-group/register', App\Http\Controllers\Web\QRService\Group\QRServiceGroupRegisterController::class);
RouteHelper::post('/qr-service/parking-group/parking/add', App\Http\Controllers\Web\QRService\Group\QRServiceGroupAddController::class);


Loading…
取消
儲存