소스 검색

全体的に整備

develop
sosuke.iwabuchi 2 년 전
부모
커밋
77b6217818
7개의 변경된 파일121개의 추가작업 그리고 48개의 파일을 삭제
  1. +17
    -3
      app/Http/Controllers/Web/Auth/Me.php
  2. +0
    -9
      app/Http/Controllers/Web/Auth/MeController.php
  3. +6
    -1
      app/Http/Controllers/Web/Custom/HelloTechno/ReceiptIssuingOrdersController.php
  4. +20
    -8
      app/Http/Controllers/Web/Custom/HelloTechno/ReceiptIssuingsOrdersParam.php
  5. +1
    -1
      app/Logic/ReceiptIssuingOrder/CreateManager.php
  6. +19
    -24
      app/Models/Ex/LoginUser.php
  7. +58
    -2
      app/Repositories/Custom/HelloTechno/ReceiptIssuingOrderRepository.php

+ 17
- 3
app/Http/Controllers/Web/Auth/Me.php 파일 보기

@@ -4,20 +4,34 @@ namespace App\Http\Controllers\Web\Auth;

use App\Models\User;
use App\Codes\UserRole;
use App\Features\LoginUser;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Auth;

trait Me
{

use LoginUser;

protected function me()
{
if (Auth::check()) {
$user = Auth::user()->toArray();
$user = Auth::user();

return array_intersect_key($user, array_flip([
$filteredUser = Arr::only($user->toArray(), [
User::COL_NAME_ID,
User::COL_NAME_CONTRACT_ID,
User::COL_NAME_ROLE,
]));
User::COL_NAME_NAME,
]);

$contract = $this->loginUser()->getCurrentContract();
if ($contract) {
$filteredUser[User::COL_NAME_CONTRACT_ID] = $contract->id;
$filteredUser['contract_name'] = $contract->name;
$filteredUser['custom'] = $contract->custom();
};
return $filteredUser;
}
return null;
}


+ 0
- 9
app/Http/Controllers/Web/Auth/MeController.php 파일 보기

@@ -37,14 +37,5 @@ class MeController extends WebController
return $this->successResponse($me);
}
return $this->failedResponse();
// if (Auth::check()) {
// $user = Auth::user();
// $ret = $user->get([
// User::COL_NAME_CONTRACT_ID,
// User::COL_NAME_ROLE,
// ]);

// } else {
// }
}
}

+ 6
- 1
app/Http/Controllers/Web/Custom/HelloTechno/ReceiptIssuingOrdersController.php 파일 보기

@@ -39,7 +39,12 @@ class ReceiptIssuingOrdersController extends HelloTechnoController
{
$param = $this->param;

$list = $this->repository->get($param->toArray());
$condition = [
...$param->toArray(),
ReceiptIssuingOrderRepository::CONDITION_CONTRACT_ID => Auth::user()->contract_id,
];

$list = $this->repository->get($condition);


return $this->successResponse([


+ 20
- 8
app/Http/Controllers/Web/Custom/HelloTechno/ReceiptIssuingsOrdersParam.php 파일 보기

@@ -3,8 +3,8 @@
namespace App\Http\Controllers\Web\Custom\HelloTechno;

use App\Http\Controllers\Web\BaseParam;
use App\Models\ReceiptIssuingHTParkingCustomOrder as HT;
use App\Models\ReceiptIssuingOrder;
use App\Repositories\Custom\HelloTechno\ReceiptIssuingOrderRepository as Repository;
use Illuminate\Support\Carbon;

/**
* @property ?string $id
@@ -13,6 +13,12 @@ use App\Models\ReceiptIssuingOrder;
* @property ?string $parkingManagementCode
* @property ?string $parkingName
* @property ?int $adjustSeqNo
* @property ?bool $done
* @property ?string $status
* @property ?Carbon $orderDateFrom
* @property ?Carbon $orderDateTo
* @property ?string $smsPhoneNumber
* @property ?string $handlerName
*/

class ReceiptIssuingsOrdersParam extends BaseParam
@@ -22,12 +28,18 @@ class ReceiptIssuingsOrdersParam extends BaseParam
return
array_merge(
[
ReceiptIssuingOrder::COL_NAME_ID => $this->str(true),
HT::COL_NAME_CUSTOMER_CODE => $this->str(true),
HT::COL_NAME_CUSTOMER_NAME => $this->str(true),
HT::COL_NAME_PARKING_MANAGEMENT_CODE => $this->str(true),
HT::COL_NAME_PARKING_NAME => $this->str(true),
HT::COL_NAME_ADJUST_SEQ_NO => $this->numeric(true),
Repository::CONDITION_ID => $this->str(true),
Repository::CONDITION_CUSTOMER_CODE => $this->str(true),
Repository::CONDITION_CUSTOMER_NAME => $this->str(true),
Repository::CONDITION_PARKING_MANAGEMENT_CODE => $this->str(true),
Repository::CONDITION_PARKING_NAME => $this->str(true),
Repository::CONDITION_ADJSUT_SEQ_NO => $this->numeric(true),
Repository::CONDITION_SMS_PHONE_NUMBER => $this->str(true),
Repository::CONDITION_DONE => $this->boolean(true),
Repository::CONDITION_STATUS => $this->str(true),
Repository::CONDITION_ORDER_DATE_FROM => $this->date(true),
Repository::CONDITION_ORDER_DATE_TO => $this->date(true),
Repository::CONDITION_HANDLER_NAME => $this->str(true),
],
$this->sortableRules(),
);


+ 1
- 1
app/Logic/ReceiptIssuingOrder/CreateManager.php 파일 보기

@@ -54,7 +54,7 @@ class CreateManager extends ReceiptIssuingOrderManager
$order->order_datetime = DateUtil::now();
$this->refreshToken();

$contractId = $this->loginUser()->getContractId();
$contractId = $this->loginUser()->getCurrentContractId();
if ($contractId === null) {
throw new LogicException("契約不良");
}


+ 19
- 24
app/Models/Ex/LoginUser.php 파일 보기

@@ -8,11 +8,12 @@ use App\Models\Contract;
use App\Models\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use LogicException;

class LoginUser
{
private const SESSION_KEY_SADMIN_CONTRACT_ID = 'SESSION_KEY_SADMIN_CONTRACT_ID';
private const SESSION_KEY_CURERNT_CONTRACT_ID = self::class . "/SESSION_KEY_CURERNT_CONTRACT_ID";


public function __construct(
@@ -26,20 +27,6 @@ class LoginUser
return Auth::user();
}

public function contract(): ?Contract
{

if (!Auth::check()) {
return null;
}

if ($this->contract->isNotSavedModel()) {
$this->contract = $this->user()->contract;
}

return $this->contract;
}

public function checkAuthorization(array|Model $target): bool
{
if (app()->runningInConsole()) {
@@ -62,18 +49,26 @@ class LoginUser
return $contractId === $this->user()->contract_id;
}

public function getContractId(): ?string
public function setCurrentContractId(string $contractId)
{
if ($this->user()->role === UserRole::SUPER_ADMIN) {

$session = request()->session();
$user = $this->user();
if ($user && Auth::user()->role !== UserRole::SUPER_ADMIN) {
throw new LogicException("スーパー管理者以外の成り代わりを検知");
}
Session::put(self::SESSION_KEY_CURERNT_CONTRACT_ID, $contractId);
}

if ($session->exists(self::SESSION_KEY_SADMIN_CONTRACT_ID)) {
return $session->get(self::SESSION_KEY_SADMIN_CONTRACT_ID);
}
return $this->contract()->id;
public function getCurrentContractId(): string
{
$user = $this->user();
if ($user && $user->role === UserRole::SUPER_ADMIN) {
return Session::get(self::SESSION_KEY_CURERNT_CONTRACT_ID, "");
}
return data_get($user, User::COL_NAME_CONTRACT_ID, "");
}

return data_get($this->contract(), Contract::COL_NAME_ID);
public function getCurrentContract(): ?Contract
{
return Contract::find($this->getCurrentContractId());
}
}

+ 58
- 2
app/Repositories/Custom/HelloTechno/ReceiptIssuingOrderRepository.php 파일 보기

@@ -7,6 +7,7 @@ use App\Models\ReceiptIssuingOrder;
use App\Models\User;
use App\Repositories\BaseRepository;
use Illuminate\Database\Query\JoinClause;
use Illuminate\Support\Carbon;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;

@@ -15,11 +16,24 @@ class ReceiptIssuingOrderRepository extends BaseRepository

const CONDITION_ID = 'id';

const CONDITION_CONTRACT_ID = 'contract_id';

const CONDITION_CUSTOMER_CODE = 'customer_code';
const CONDITION_PARKING_MANAGEMENT_CODE = 'parking_management_code';

const CONDITION_CUSTOMER_NAME = 'customer_name';
const CONDITION_PARKING_MANAGEMENT_NAME = 'parking_name';
const CONDITION_PARKING_NAME = 'parking_name';

const CONDITION_ADJSUT_SEQ_NO = 'adjust_seq_no';

const CONDITION_DONE = 'done';
const CONDITION_STATUS = 'status';
const CONDITION_SMS_PHONE_NUMBER = 'sms_phone_number';

const CONDITION_HANDLER_NAME = 'handler_name';

const CONDITION_ORDER_DATE_FROM = 'order_date_from';
const CONDITION_ORDER_DATE_TO = 'order_date_to';


const TABLE_ORDER = "order";
@@ -37,6 +51,7 @@ class ReceiptIssuingOrderRepository extends BaseRepository
{
$order = ReceiptIssuingOrder::getBuilder(static::TABLE_ORDER);


$table = $order
->joinSub(CustomOrder::getBuilder(), static::TABLE_CUSTOM_ORDER, function (JoinClause $join) {
$join->on(
@@ -55,6 +70,40 @@ class ReceiptIssuingOrderRepository extends BaseRepository
// ID
$this->where($table, $condition, static::CONDITION_ID, $this->makeColumnName([static::TABLE_ORDER, ReceiptIssuingOrder::COL_NAME_ID]));

// 契約ID
$this->where($table, $condition, static::CONDITION_CONTRACT_ID, $this->makeColumnName([static::TABLE_ORDER, ReceiptIssuingOrder::COL_NAME_CONTRACT_ID]));

// 電話番号
$phoneNumber = data_get($condition, static::CONDITION_SMS_PHONE_NUMBER);
if ($phoneNumber) {
$table->where($this->makeColumnName([static::TABLE_ORDER, ReceiptIssuingOrder::COL_NAME_SMS_PHONE_NUMBER]), 'like', "%{$phoneNumber}%");
}

// 完了確認
$done = data_get($condition, static::CONDITION_DONE);
if ($done !== null) {
$table->where($this->makeColumnName([static::TABLE_ORDER, ReceiptIssuingOrder::COL_NAME_STATUS_DONE]), $done);
}

// ステータス
$status = data_get($condition, static::CONDITION_STATUS);
if ($status) {
$table->where($this->makeColumnName([static::TABLE_ORDER, ReceiptIssuingOrder::COL_NAME_STATUS_NAME]), 'like', "%{$status}%");
}

// 受付日時
$orderDateFrom = data_get($condition, static::CONDITION_ORDER_DATE_FROM);
if ($orderDateFrom instanceof Carbon) {
$orderDateFrom->setTime(0, 0);
$table->where($this->makeColumnName([static::TABLE_ORDER, ReceiptIssuingOrder::COL_NAME_ORDER_DATETIME]), '>=', $orderDateFrom);
}
$orderDateTo = data_get($condition, static::CONDITION_ORDER_DATE_TO);
if ($orderDateTo instanceof Carbon) {
$orderDateTo->setTime(0, 0)->addDay();
$table->where($this->makeColumnName([static::TABLE_ORDER, ReceiptIssuingOrder::COL_NAME_ORDER_DATETIME]), '<=', $orderDateTo);
}


// 運営会社
$this->where($table, $condition, $this->makeColumnName([static::TABLE_CUSTOM_ORDER, CustomOrder::COL_NAME_CUSTOMER_CODE]));
$customerName = data_get($condition, static::CONDITION_CUSTOMER_NAME);
@@ -64,11 +113,18 @@ class ReceiptIssuingOrderRepository extends BaseRepository

// 駐車場
$this->where($table, $condition, $this->makeColumnName([static::TABLE_CUSTOM_ORDER, CustomOrder::COL_NAME_PARKING_MANAGEMENT_CODE]));
$parkihngName = data_get($condition, static::CONDITION_PARKING_MANAGEMENT_NAME);
$parkihngName = data_get($condition, static::CONDITION_PARKING_NAME);
if ($parkihngName) {
$table->where($this->makeColumnName([static::TABLE_CUSTOM_ORDER, CustomOrder::COL_NAME_PARKING_NAME]), 'like', "%{$parkihngName}%");
}


// 担当者
$handlerName = data_get($condition, static::CONDITION_HANDLER_NAME);
if ($handlerName) {
$table->where($this->makeColumnName([static::TABLE_HANDLER, User::COL_NAME_NAME]), 'like', "%{$handlerName}%");
}

$table->select($this->columns());

$main = DB::table($table, "main");


Loading…
취소
저장