/* @tier easy @module mm @transform master-online */ /* * mm_ol_0021.pgc - 가맹점 검색(단건) 서비스 (MM_OL_0021) [tier=easy] * * 사업자번호(biz_no)를 키로 mm_merchant 를 1건 조회하여 가맹점번호/상호/ * 상태/등록일을 응답한다. 조회 전용(읽기) 서비스. (마스터 참조) */ #include #include #include #include "txcore.h" #include "txcore_dbio.h" #include "acq_util.h" #include "mm_core.h" EXEC SQL INCLUDE sqlca; TX_SERVICE(MM_OL_0021, ctx) { EXEC SQL BEGIN DECLARE SECTION; char h_biz_no[16]; char h_merch_id[16]; char h_merch_nm[64]; char h_status[2]; char h_reg_date[9]; EXEC SQL END DECLARE SECTION; char biz_no[16]; char status_nm[16]; tx_log(TX_LOG_INFO, "[MM_OL_0021] 가맹점 검색(단건) 서비스 진입"); if (tx_buf_get(ctx->in, "BIZNO", biz_no, sizeof(biz_no)) != TX_OK) { tx_log(TX_LOG_ERROR, "[MM_OL_0021] BIZNO 누락"); tx_buf_sets(ctx->out, "ERRCODE", "MM2100"); tx_return(ctx, TX_EINVAL, ctx->out); return; } strncpy(h_biz_no, biz_no, sizeof(h_biz_no) - 1); h_biz_no[sizeof(h_biz_no) - 1] = '\0'; EXEC SQL SELECT merch_id, merch_nm, status, reg_date INTO :h_merch_id, :h_merch_nm, :h_status, :h_reg_date FROM mm_merchant WHERE biz_no = :h_biz_no; if (sqlca.sqlcode == TX_SQL_NOTFOUND) { tx_log(TX_LOG_WARN, "[MM_OL_0021] 사업자번호 미등록 biz_no=%s", biz_no); tx_buf_sets(ctx->out, "ERRCODE", RESP_NOMERCH); tx_return(ctx, TX_ENOENT, ctx->out); return; } if (sqlca.sqlcode != TX_SQL_OK) { TX_DBIO_LOG_ERR("SELECT mm_merchant by biz_no"); tx_buf_sets(ctx->out, "ERRCODE", "MM2109"); tx_return(ctx, TX_EDB, ctx->out); return; } /* 상태코드 → 한글 라벨 매핑 */ if (strcmp(h_status, MM_ST_RECV) == 0) strncpy(status_nm, "접수", sizeof(status_nm) - 1); else if (strcmp(h_status, MM_ST_DONE) == 0) strncpy(status_nm, "정상", sizeof(status_nm) - 1); else if (strcmp(h_status, MM_ST_FAIL) == 0) strncpy(status_nm, "해지", sizeof(status_nm) - 1); else strncpy(status_nm, "기타", sizeof(status_nm) - 1); tx_buf_reset(ctx->out); tx_buf_sets(ctx->out, "BIZNO", biz_no); tx_buf_sets(ctx->out, "MERCHID", h_merch_id); tx_buf_sets(ctx->out, "MERCHNM", h_merch_nm); tx_buf_sets(ctx->out, "STATUS", h_status); tx_buf_sets(ctx->out, "STATUSNM", status_nm); tx_buf_sets(ctx->out, "REGDATE", h_reg_date); tx_buf_sets(ctx->out, "ERRCODE", RESP_OK); tx_log(TX_LOG_INFO, "[MM_OL_0021] 검색완료 biz_no=%s merch=%s", biz_no, h_merch_id); tx_return(ctx, TX_OK, ctx->out); }