/* @tier medium @module py @transform payment-online */ /* * py_ol_0012.pgc - 지급 통계조회(상태별 건수 집계) (PY_OL_0012) [tier=medium] * * TxCore TX_SERVICE 엔트리. 요청 TXBUF 를 검증하고 임베디드 SQL / 표준 * DBIO / tx_call 로 처리한 뒤 응답 TXBUF 를 구성한다. */ #include #include #include "txcore.h" #include "txcore_dbio.h" #include "acq_util.h" #include "py_core.h" EXEC SQL INCLUDE sqlca; TX_SERVICE(PY_OL_0012, ctx) { EXEC SQL BEGIN DECLARE SECTION; char h_bdate[9], h_st[2]; int h_cnt; EXEC SQL END DECLARE SECTION; char bdate[16]; const char *codes = "RMUS"; int i, total = 0; tx_log(TX_LOG_INFO, "[PY_OL_0012] 지급 통계조회 진입"); if (tx_buf_get(ctx->in, "BIZDATE", bdate, sizeof(bdate)) != TX_OK) date_today(bdate); strncpy(h_bdate, bdate, 8); h_bdate[8] = '\0'; tx_buf_reset(ctx->out); for (i = 0; codes[i]; i++) { char field[8] = "CNT_"; h_st[0] = codes[i]; h_st[1] = '\0'; EXEC SQL SELECT count(*) INTO :h_cnt FROM py_ledger WHERE biz_date = :h_bdate AND status = :h_st; if (sqlca.sqlcode != TX_SQL_OK) { TX_DBIO_LOG_ERR("py_ol_0012"); tx_return(ctx, TX_EDB, ctx->out); return; } field[4] = codes[i]; field[5] = '\0'; tx_buf_setlong(ctx->out, field, h_cnt); total += h_cnt; } tx_buf_sets(ctx->out, "BIZDATE", bdate); tx_buf_setlong(ctx->out, "TOTAL", total); tx_log(TX_LOG_INFO, "[PY_OL_0012] 지급통계 date=%s total=%d", bdate, total); tx_return(ctx, TX_OK, ctx->out); }