- 협상카드 성공률(사용 세션 대비 타결) 집계 추가, 견적 생성 카드선택 순위 정렬·통계 TOP5 - 상품 엑셀: 품목코드·모델명 라벨화, 리드타임 suffix 제거, 공급사 컬럼 신설(등록 후 supplier_items 매핑) - 설정 화면 JSON 불러오기/내보내기(빈 값은 미갱신), IMK 설정 JSON 보관 - 설정·회원 페이지 새로고침 forbidden 수정(자식 loader 가 initAuth 대기) - 협력사·견적 목록도 포털형 카드(툴바+테이블 결합)로 통일
37 lines
1.4 KiB
SQL
37 lines
1.4 KiB
SQL
-- 데모용 카드 사용 이력 시드 (#12 카드 성공률 순위)
|
|
-- 과거 채팅 302건은 카드 메타(card_id/card_type/card_used_yn) 저장 전에 쌓여 전부 NULL 이라
|
|
-- 성공률 표본이 0 → 카드 선택 UI 에 순위가 뜨지 않는다. 실제 세션 결과(status)는 그대로 두고
|
|
-- 봇 발화 행에만 카드를 결정적으로 배정해 표본을 만든다. 멱등(같은 chat_id → 같은 카드).
|
|
WITH bot AS (
|
|
SELECT c.chat_id,
|
|
c.session_id,
|
|
row_number() OVER (PARTITION BY c.session_id ORDER BY c.seq) AS rn
|
|
FROM negotiation.chats c
|
|
WHERE c.sender = 1 AND c.deleted = false
|
|
),
|
|
sess AS (
|
|
SELECT session_id, row_number() OVER (ORDER BY session_id) AS sn
|
|
FROM negotiation.sessions
|
|
),
|
|
cards AS (
|
|
SELECT nego_card_id,
|
|
row_number() OVER (ORDER BY (number)::int) AS cn,
|
|
count(*) OVER () AS total
|
|
FROM card.nego_cards
|
|
),
|
|
pick AS (
|
|
-- 세션당 앞쪽 봇 발화 4개까지 카드 사용으로 표시. 세션·발화 순번을 섞어 카드가 고르게 퍼지게.
|
|
SELECT b.chat_id,
|
|
((s.sn * 3 + b.rn) % (SELECT max(total) FROM cards)) + 1 AS cn
|
|
FROM bot b
|
|
JOIN sess s ON s.session_id = b.session_id
|
|
WHERE b.rn <= 4
|
|
)
|
|
UPDATE negotiation.chats t
|
|
SET card_id = c.nego_card_id,
|
|
card_type = 1,
|
|
card_used_yn = true
|
|
FROM pick p
|
|
JOIN cards c ON c.cn = p.cn
|
|
WHERE t.chat_id = p.chat_id;
|