Skip to content
isdnetworks
Go back

์‹คํŒจ ๋ชฉ๋ก๋งŒ ์žˆ๊ณ  ์ด์œ ๋Š” ์—†์—ˆ๋‹ค

์ •์‚ฐ ํŒŒ์ผ์„ ์˜ฌ๋ ค์„œ ์ฃผ๋ฌธ๊ณผ ๋งž์ถ”๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. ๋งค์นญ์ด ์•ˆ ๋˜๋ฉด ์‹คํŒจ ๋ชฉ๋ก์— ๋‹ด๊ธฐ๋Š”๋ฐ ํ•œ ๋‹ฌ์น˜๋ฅผ ์˜ฌ๋ฆฌ๋‹ˆ ์‹คํŒจ๊ฐ€ 340๊ฑด์ด์—ˆ๋‹ค. ๋ชฉ๋ก์—๋Š” order_code ๋งŒ ์žˆ์—ˆ๋‹ค.

Table of contents

Open Table of contents

๋ฌด์—‡์„ ํ•ด์•ผ ํ• ์ง€ ์•Œ ์ˆ˜ ์—†์—ˆ๋‹ค

340๊ฑด์„ ํ•˜๋‚˜์”ฉ ๋ˆˆ์œผ๋กœ ๋ณด๋‹ˆ ๋ช‡ ๊ฐ€์ง€ ์œ ํ˜•์ด ์„ž์—ฌ ์žˆ์—ˆ๋‹ค. order_code ๊ฐ€ ์šฐ๋ฆฌ ์ชฝ์— ์•„์˜ˆ ์—†๋Š” ๊ฒƒ๊ณผ ์ฃผ๋ฌธ์€ ์žˆ๋Š”๋ฐ ๊ธˆ์•ก์ด ๋‹ค๋ฅธ ๊ฒƒ๊ณผ settle_yn ์ด ์ด๋ฏธ Y ์ธ ๊ฒƒ๊ณผ ํŒŒ์ผ ํ˜•์‹์ด ๋‹ฌ๋ผ ๋ชป ์ฝ์€ ๊ฒƒ๊ณผ ๊ทธ ์นธ์ด ๋นˆ ๊ฒƒ์ด๋‹ค.

์†๋ณผ ๊ณณ์ด ์œ ํ˜•๋งˆ๋‹ค ๋‹ฌ๋ž๋‹ค. F2 ๋Š” ์ƒ๋Œ€ ์ชฝ์— ๋ฌธ์˜ํ•  ์ผ์ด๊ณ  F4 ๋Š” ํ™•์ธ์ด ํ•„์š”ํ•˜๋‹ค. F3 ์€ ๋ฌด์‹œํ•ด๋„ ๋˜๊ณ  F5 ๋Š” ์šฐ๋ฆฌ ์ฝ”๋“œ ๋ฌธ์ œ๋‹ค. ํ•œ ๋ฉ์–ด๋ฆฌ๋กœ ๋‘๋ฉด 340๊ฑด ์ „๋ถ€๋ฅผ ์‚ฌ๋žŒ์ด ๋ด์•ผ ํ•œ๋‹ค.

๊ตฌ๋ถ„ ์ฝ”๋“œ๋ฅผ ๋ถ™์˜€๋‹ค

match_order ๊ฐ€ ์‹คํŒจํ•  ๋•Œ ์ด์œ ๋ฅผ ํ•จ๊ป˜ ๋Œ๋ ค์ฃผ๊ฒŒ ๋ฐ”๊ฟจ๋‹ค.

function match_order($row)
{
    if (empty($row['order_code'])) {
        return ['ok' => false, 'code' => 'F1', 'msg' => '์ฃผ๋ฌธ๋ฒˆํ˜ธ ์—†์Œ'];
    }

    $order = $this->order_model->get_by_code($row['order_code']);
    if (!$order) {
        return ['ok' => false, 'code' => 'F2', 'msg' => '์ฃผ๋ฌธ ์—†์Œ'];
    }

    if ($order->settle_yn === 'Y') {
        return ['ok' => false, 'code' => 'F3', 'msg' => '์ด๋ฏธ ์ •์‚ฐ๋จ'];
    }

    if (abs($order->amount - $row['amount']) > 1) {
        return ['ok' => false, 'code' => 'F4', 'msg' => '๊ธˆ์•ก ๋ถˆ์ผ์น˜',
                'detail' => "์šฐ๋ฆฌ {$order->amount} / ํŒŒ์ผ {$row['amount']}"];
    }

    return ['ok' => true];
}

code ์™€ msg ๋ฅผ ๊ฐ™์ด ๋Œ๋ ค์ค€๋‹ค. code ๋Š” GROUP BY ์— ์“ฐ๊ณ  msg ๋Š” ์‚ฌ๋žŒ์ด ์ฝ๋Š”๋‹ค.

์„ธ์–ด ๋ณด๋‹ˆ ๊ทธ๋ฆผ์ด ๋‹ฌ๋ผ์กŒ๋‹ค

GROUP BY code ๋กœ ์„ธ์–ด ๋ณด๋‹ˆ 295๊ฑด์ด F3 ์ด์—ˆ๋‹ค. ์ง€๋‚œ๋‹ฌ ํŒŒ์ผ์„ ๋‹ค์‹œ ์˜ฌ๋ฆฐ ๊ฒƒ์ด๋‹ค.

F1     3
F2    18
F3   295
F4    24

340๊ฑด ์ค‘ ์‹ค์ œ๋กœ ํ™•์ธ์ด ํ•„์š”ํ•œ ๊ฒƒ์€ F2 ์™€ F4 ๋ฅผ ํ•ฉ์นœ 42๊ฑด์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ •์ƒ ๋™์ž‘์ด์—ˆ๋‹ค. ์„ธ์–ด ๋ณด๊ธฐ ์ „์—๋Š” 340๊ฑด ์ „๋ถ€๊ฐ€ ๋ฌธ์ œ๋กœ ๋ณด์˜€๋‹ค.

ํ™”๋ฉด๋„ ์œ ํ˜•๋ณ„๋กœ ๋‚˜๋ˆด๋‹ค. ์ •์ƒ์ธ ๊ฒƒ๊ณผ ํ™•์ธ์ด ํ•„์š”ํ•œ ๊ฒƒ์„ ๊ฐˆ๋ผ ๋‘๋‹ˆ ๋‹ด๋‹น์ž๊ฐ€ ๋ณผ ๊ณณ์ด 42๊ฑด์œผ๋กœ ์ค„์—ˆ๋‹ค.

์„ฑ๊ณต        1,842
์ด๋ฏธ ์ •์‚ฐ     295  (์ •์ƒ)
์ฃผ๋ฌธ ์—†์Œ      18  โ† ํ™•์ธ ํ•„์š”
๊ธˆ์•ก ๋ถˆ์ผ์น˜     24  โ† ํ™•์ธ ํ•„์š”
์ฃผ๋ฌธ๋ฒˆํ˜ธ ์—†์Œ    3  โ† ํŒŒ์ผ ํ™•์ธ

์ˆซ์ž์™€ ์žฌ์—…๋กœ๋“œ

F4 ๋Š” ์–ผ๋งˆ๊ฐ€ ๋‹ค๋ฅธ์ง€๊ฐ€ ์ค‘์š”ํ•ด์„œ abs ๋กœ ์žฐ ์ฐจ์ด๋ฅผ detail ์— ํ•จ๊ป˜ ๋‚จ๊ฒผ๋‹ค. ํŒ์ • ์ž์ฒด๋Š” abs(...) > 1 ์ด๋ผ 1 ์›๊นŒ์ง€๋Š” ๊ฐ™์€ ๊ฒƒ์œผ๋กœ ๋ณธ๋‹ค.

F4  ์ฃผ๋ฌธ 20150112-0341  ์šฐ๋ฆฌ 128,000 / ํŒŒ์ผ 126,800  ์ฐจ์ด 1,200

์ฐจ์ด๊ฐ€ ์ผ์ •ํ•˜๋ฉด ๋ฌด์–ธ๊ฐ€ ํ•œ ํ•ญ๋ชฉ์ด ๋น ์ง„ ๊ฒƒ์ด๊ณ  ์ œ๊ฐ๊ฐ์ด๋ฉด ๋‹ค๋ฅธ ๋ฌธ์ œ๋‹ค. 24๊ฑด ์ค‘ 21๊ฑด์ด ์ •ํ™•ํžˆ ๊ฐ™์€ ์ฐจ์ด์˜€๊ณ  ์ฟ ํฐ ํ• ์ธ์„ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐฉ์‹์ด ์„œ๋กœ ๋‹ฌ๋ž๋‹ค. ์ˆซ์ž๋ฅผ ๊ฐ™์ด ๋‚จ๊ธฐ์ง€ ์•Š์•˜์œผ๋ฉด ๊ทœ์น™์ด ์•ˆ ๋ณด์˜€์„ ๊ฒƒ์ด๋‹ค.

๊ฐ™์€ ํŒŒ์ผ์„ ๋‘ ๋ฒˆ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ๋„ ๋ง‰์•„์•ผ ํ–ˆ๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€ ๋ฐ”๋€” ์ˆ˜ ์žˆ์œผ๋‹ˆ md5_file ๋กœ ๋‚ด์šฉ์„ ๋ดค๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ํŒŒ์ผ์„ ์ฝ์–ด ๊ฐ€๋ฉฐ ํ•ด์‹œํ•˜๋ฏ€๋กœ file_get_contents ๋กœ ํ†ต์งธ๋กœ ์˜ฌ๋ฆฐ ๋’ค md5 ํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ ํฐ ํŒŒ์ผ์—์„œ๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•ˆ ๋จน๋Š”๋‹ค.

$hash = md5_file($tmpPath);
$prev = $this->db->where('file_hash', $hash)->get('settle_upload')->row();

if ($prev) {
    return "์ด ํŒŒ์ผ์€ {$prev->reg_date}์— ์ด๋ฏธ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค. ๊ณ„์†ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?";
}

settle_upload ์˜ file_hash ์—๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ฑธ์—ˆ๋‹ค. ์˜ฌ๋ฆด ๋•Œ๋งˆ๋‹ค ๊ทธ ์ปฌ๋Ÿผ์œผ๋กœ ์กฐํšŒํ•˜๋‹ˆ ์•ˆ ๊ฑธ๋ฉด ํŒŒ์ผ์ด ์Œ“์ผ์ˆ˜๋ก ๋А๋ ค์ง„๋‹ค.

์“ฐ๋‹ค ๋ณด๋‹ˆ F5 ์™€ F6 ์ด ๋” ๋Š˜์–ด์„œ ๋ชฉ๋ก๋„ ๋งŒ๋“ค์—ˆ๋‹ค. ๊ฐ ์ฝ”๋“œ์— ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๊ฐ™์ด ์ ์—ˆ๋Š”๋ฐ ์ฝ”๋“œ๋งŒ ์žˆ์œผ๋ฉด ๋‹ด๋‹น์ž๊ฐ€ ๋‹ค์‹œ ๋ฌผ์–ด๋ณด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

F1  ์ฃผ๋ฌธ๋ฒˆํ˜ธ ์—†์Œ      ํŒŒ์ผ ํ™•์ธ
F2  ์ฃผ๋ฌธ ์—†์Œ         ์ƒ๋Œ€ ๋ฌธ์˜
F3  ์ด๋ฏธ ์ •์‚ฐ๋จ       ์ •์ƒ (์žฌ์—…๋กœ๋“œ)
F4  ๊ธˆ์•ก ๋ถˆ์ผ์น˜       ํ™•์ธ ํ•„์š”
F5  ๋‚ ์งœ ํ˜•์‹ ์˜ค๋ฅ˜     ํŒŒ์ผ ํ™•์ธ
F6  ์ค‘๋ณต ํ–‰           ํŒŒ์ผ ํ™•์ธ

์ •๋ฆฌ


Share this post on:

Previous Post
๋„˜๊ฒจ๋ฐ›์€ ์ฝ”๋“œ๋ฅผ ๋ˆ„๊ฐ€ ๋ณผ์ง€ ์ •ํ–ˆ๋‹ค
Next Post
๋ฐฑ์—…์„ ๋‘ ๊ณณ์— ๋’€๋‹ค