Преглед изворни кода

印字設定関連を追加

develop
sosuke.iwabuchi пре 1 година
родитељ
комит
a0180f9338
8 измењених фајлова са 247 додато и 4 уклоњено
  1. +47
    -0
      app/Http/Controllers/Web/Shop/Config/Printing/DisableController.php
  2. +22
    -0
      app/Http/Controllers/Web/Shop/Config/Printing/DisableParam.php
  3. +52
    -0
      app/Http/Controllers/Web/Shop/Config/Printing/EnableController.php
  4. +24
    -0
      app/Http/Controllers/Web/Shop/Config/Printing/EnableParam.php
  5. +12
    -4
      app/Http/Controllers/Web/Shop/Config/ShopConfigDetailController.php
  6. +74
    -0
      app/Repositories/PrintingAvailableSettingRepository.php
  7. +14
    -0
      app/Repositories/PrintingAvailableSettingRepositoryData.php
  8. +2
    -0
      routes/api.php

+ 47
- 0
app/Http/Controllers/Web/Shop/Config/Printing/DisableController.php Прегледај датотеку

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

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

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

class DisableController extends WebController
{

public function name(): string
{
return "QRサービス券取得設定無効化";
}

public function description(): string
{
return "QRサービス券取得設定を無効にする";
}


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

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

$setting = ShopNoRelation::byKey(
$param->shopId,
$param->parkingManagementCode,
QRServiceUsage::印字方式
)
->firstOrFail();

$setting->delete();

$setting->save();

return $this->successResponse();
}
}

+ 22
- 0
app/Http/Controllers/Web/Shop/Config/Printing/DisableParam.php Прегледај датотеку

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

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

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

/**
* @property string shopId
* @property string parkingManagementCode
*/
class DisableParam 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/Printing/EnableController.php Прегледај датотеку

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

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

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

class EnableController extends WebController
{

public function name(): string
{
return "QRサービス券印字設定変更";
}

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


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

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

$setting = ShopNoRelation::byKey(
$param->shopId,
$param->parkingManagementCode,
QRServiceUsage::印字方式
)
->firstOrNew();

$setting->fill(
[
...$param->toArray(),
ShopNoRelation::COL_NAME_QR_SERVICE_USEAGE => QRServiceUsage::印字方式,
]
);

$setting->save();

return $this->successResponse();
}
}

+ 24
- 0
app/Http/Controllers/Web/Shop/Config/Printing/EnableParam.php Прегледај датотеку

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

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

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 EnableParam 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()]),
];
}
}

+ 12
- 4
app/Http/Controllers/Web/Shop/Config/ShopConfigDetailController.php Прегледај датотеку

@@ -3,11 +3,10 @@
namespace App\Http\Controllers\Web\Shop\Config;

use App\Http\Controllers\Web\WebController;
use App\Logics\QRService\ChargeLogic;
use App\Models\HtpmsCustomer\Mst\Shop;
use App\Models\HtpmsCustomer\QRService\AcquisitionAvailableSetting;
use App\Models\HtpmsCustomer\QRService\CertificationAvailableSetting;
use App\Repositories\CertificationAvailableSettingRepository;
use App\Repositories\PrintingAvailableSettingRepository;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

@@ -25,8 +24,11 @@ class ShopConfigDetailController extends WebController
}


public function __construct(protected ShopConfigDetailParam $param, private CertificationAvailableSettingRepository $certificationRepository)
{
public function __construct(
protected ShopConfigDetailParam $param,
private CertificationAvailableSettingRepository $certificationRepository,
private PrintingAvailableSettingRepository $printingRepository,
) {
parent::__construct();
}

@@ -43,12 +45,18 @@ class ShopConfigDetailController extends WebController
$acquisition = AcquisitionAvailableSetting::whereShopId($param->shopId)->first();


$printing = $this->printingRepository->get([
...$param->toArray(),
]);


$shop->save();

$res = [
"shop_id" => $param->shopId,
"certification" => $certification,
"acquisition" => $acquisition,
"printing" => $printing,
];

return $this->successResponse($res);


+ 74
- 0
app/Repositories/PrintingAvailableSettingRepository.php Прегледај датотеку

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

namespace App\Repositories;

use App\Codes\Model\QRServiceUsage;
use App\Models\ColumnName;
use App\Models\HtpmsCustomer\Existing\Parking;
use App\Models\HtpmsCustomer\Mst\ShopNoRelation;
use App\Repositories\BaseRepository;
use Illuminate\Database\Query\JoinClause;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;

class PrintingAvailableSettingRepository extends BaseRepository
{

const CONDITION_SHOP_ID = ColumnName::SHOP_ID;

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


/**
* コレクションを取得する
*
* @param array $condition
* @return Collection<int, PrintingAvailableSettingRepositoryData>
*/
public function get(array $condition): Collection
{

$table = ShopNoRelation::getBuilder(static::TABLE_RELATION)
->where(ShopNoRelation::COL_NAME_QR_SERVICE_USEAGE, QRServiceUsage::印字方式->value);

$table->leftJoinSub(Parking::getBuilder(), static::TABLE_PARKING, function (JoinClause $join) {
$join->on(
$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_RELATION, ShopNoRelation::COL_NAME_SHOP_ID]));


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

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

// ソート
$this->sort($main, $condition);

// リミット
$this->limit($main, $condition);

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

private function columns()
{
$relation = static::TABLE_RELATION;
$parking = static::TABLE_PARKING;
$columns = [
$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([$parking, Parking::COL_NAME_PARKING_NAME], "parking_name"),
];

return $columns;
}
}

+ 14
- 0
app/Repositories/PrintingAvailableSettingRepositoryData.php Прегледај датотеку

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

namespace App\Repositories;


/**
* @property string shop_id
* @property string parking_management_code
* @property string parking_name
* @property string shop_no
*/
class PrintingAvailableSettingRepositoryData extends BaseRepositoryData
{
}

+ 2
- 0
routes/api.php Прегледај датотеку

@@ -52,6 +52,8 @@ Route::middleware('auth:sanctum')->group(function () {
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/printing/enable', App\Http\Controllers\Web\Shop\Config\Printing\EnableController::class);
RouteHelper::post('/shop/config/printing/disable', App\Http\Controllers\Web\Shop\Config\Printing\DisableController::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::get('/qr-service/parking-group/list', App\Http\Controllers\Web\QRService\Group\QRServiceGroupListController::class);


Loading…
Откажи
Сачувај