giftcon_dev/app/Repositories/Member/MemStRingRepository.php

65 lines
2.1 KiB
PHP

<?php
namespace App\Repositories\Member;
use App\Support\LegacyCrypto\CiPassword;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
final class MemStRingRepository
{
/**
* CI3 기본(1차+2차) 저장과 동일한 upsert
*/
public function upsertBoth(int $memNo, string $plainPassword, string $pin2, ?string $dtNow = null): void
{
$dt = $dtNow ?: Carbon::now()->toDateTimeString();
[$str0, $str1, $str2] = CiPassword::makeAll($plainPassword);
$pass2 = CiPassword::makePass2($pin2);
DB::statement(
"INSERT INTO mem_st_ring (mem_no, str_0, str_1, str_2, dt_reg, passwd2, passwd2_reg)
VALUES (?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
str_0 = ?, str_1 = ?, str_2 = ?, dt_reg = ?, passwd2 = ?, passwd2_reg = ?",
[
$memNo, $str0, $str1, $str2, $dt, $pass2, $dt,
$str0, $str1, $str2, $dt, $pass2, $dt,
]
);
}
/**
* CI3 modify_type == "1_passwd" 대응 (1차만)
*/
public function upsertPassword1(int $memNo, string $plainPassword, ?string $dtNow = null): void
{
$dt = $dtNow ?: Carbon::now()->toDateTimeString();
[$str0, $str1, $str2] = CiPassword::makeAll($plainPassword);
DB::statement(
"INSERT INTO mem_st_ring (mem_no, str_0, str_1, str_2, dt_reg)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE str_0=?, str_1=?, str_2=?, dt_reg=?",
[$memNo, $str0, $str1, $str2, $dt, $str0, $str1, $str2, $dt]
);
}
/**
* CI3 modify_type == "2_passwd" 대응 (2차만)
*/
public function upsertPassword2(int $memNo, string $pin2, ?string $dtNow = null): void
{
$dt = $dtNow ?: Carbon::now()->toDateTimeString();
$pass2 = CiPassword::makePass2($pin2);
DB::statement(
"INSERT INTO mem_st_ring (mem_no, passwd2, passwd2_reg)
VALUES (?, ?, ?)
ON DUPLICATE KEY UPDATE passwd2=?, passwd2_reg=?",
[$memNo, $pass2, $dt, $pass2, $dt]
);
}
}