65 lines
2.1 KiB
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]
|
|
);
|
|
}
|
|
}
|