|
4 | 4 | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
5 | 5 | <mapper namespace="org.scoula.lh.danzi.mapper.PersonalSummaryMapper"> |
6 | 6 |
|
7 | | - <!-- 결과 매핑: 중첩 DTO + Map 키 매핑 --> |
8 | 7 | <resultMap id="PersonalizedCardMap" type="org.scoula.lh.danzi.dto.http.PersonalizedCardDTO"> |
9 | 8 | <result property="userId" column="user_id"/> |
10 | 9 | <result property="danziId" column="danzi_id"/> |
|
16 | 15 | <result property="overallStatus" column="overall_status"/> |
17 | 16 | <result property="homelessStatus" column="homeless_status"/> |
18 | 17 | <result property="incomeStatus" column="income_status"/> |
19 | | - <result property="assetStatus" column="asset_status"/> |
20 | | - <result property="carStatus" column="car_status"/> |
| 18 | + |
| 19 | + <!-- DTO 필드명은 그대로, 컬럼만 변경 매핑 --> |
| 20 | + <result property="assetStatus" column="total_assets_status"/> |
| 21 | + <result property="carStatus" column="car_value_status"/> |
| 22 | + |
| 23 | + <!-- JSON --> |
21 | 24 | <result property="types" column="types" |
22 | 25 | typeHandler="org.scoula.summary.parsing.JsonStringListTypeHandler"/> |
23 | | - <!-- notes(JSON) --> |
24 | 26 | <result property="notes" column="notes" |
25 | 27 | typeHandler="org.scoula.summary.parsing.JsonStringListTypeHandler"/> |
26 | 28 | </association> |
27 | 29 | </resultMap> |
28 | 30 |
|
29 | | - <!-- 공통 컬럼 --> |
| 31 | + <!-- 실제 존재하는 컬럼만 --> |
30 | 32 | <sql id="personalizedCardColumns"> |
31 | | - user_id, |
32 | | - danzi_id, |
33 | | - overall_status, |
34 | | - homeless_status, |
35 | | - income_status, |
36 | | - asset_status, |
37 | | - car_status, |
38 | | - notes, |
39 | | - types, |
40 | | - created_at, |
41 | | - updated_at |
| 33 | + user_id, |
| 34 | + danzi_id, |
| 35 | + types, |
| 36 | + overall_status, |
| 37 | + homeless_status, |
| 38 | + income_status, |
| 39 | + total_assets_status, |
| 40 | + car_value_status, |
| 41 | + notes, |
| 42 | + created_at, |
| 43 | + updated_at |
42 | 44 | </sql> |
43 | 45 |
|
| 46 | + <!-- UPSERT --> |
| 47 | + <insert id="upsert" parameterType="org.scoula.lh.danzi.dto.http.PersonalizedCardDTO"> |
| 48 | + INSERT INTO personalized_card |
| 49 | + (user_id, |
| 50 | + danzi_id, |
| 51 | + overall_status, |
| 52 | + homeless_status, |
| 53 | + income_status, |
| 54 | + total_assets_status, |
| 55 | + car_value_status, |
| 56 | + types, |
| 57 | + notes) |
| 58 | + VALUES |
| 59 | + (#{userId}, |
| 60 | + #{danziId}, |
| 61 | + #{eligibilityResultDTO.overallStatus}, |
| 62 | + #{eligibilityResultDTO.homelessStatus}, |
| 63 | + #{eligibilityResultDTO.incomeStatus}, |
| 64 | + #{eligibilityResultDTO.assetStatus}, |
| 65 | + #{eligibilityResultDTO.carStatus}, |
| 66 | + #{eligibilityResultDTO.types, typeHandler=org.scoula.summary.parsing.JsonStringListTypeHandler}, |
| 67 | + #{eligibilityResultDTO.notes, typeHandler=org.scoula.summary.parsing.JsonStringListTypeHandler}) |
| 68 | + ON DUPLICATE KEY UPDATE |
| 69 | + overall_status = VALUES(overall_status), |
| 70 | + homeless_status = VALUES(homeless_status), |
| 71 | + income_status = VALUES(income_status), |
| 72 | + total_assets_status = VALUES(total_assets_status), |
| 73 | + car_value_status = VALUES(car_value_status), |
| 74 | + types = VALUES(types), |
| 75 | + notes = VALUES(notes), |
| 76 | + updated_at = CURRENT_TIMESTAMP |
| 77 | + </insert> |
44 | 78 |
|
45 | | - |
46 | | -<insert id="upsert" parameterType="org.scoula.lh.danzi.dto.http.PersonalizedCardDTO"> |
47 | | - INSERT INTO personalized_card |
48 | | - (user_id, |
49 | | - danzi_id, |
50 | | - overall_status, |
51 | | - homeless_status, |
52 | | - income_status, |
53 | | - asset_status, |
54 | | - car_status, |
55 | | - types, |
56 | | - notes) |
57 | | - VALUES (#{userId}, |
58 | | - #{danziId}, |
59 | | - #{eligibilityResultDTO.overallStatus}, |
60 | | - #{eligibilityResultDTO.homelessStatus}, |
61 | | - #{eligibilityResultDTO.incomeStatus}, |
62 | | - #{eligibilityResultDTO.assetStatus}, |
63 | | - #{eligibilityResultDTO.carStatus}, |
64 | | - #{eligibilityResultDTO.types, typeHandler=org.scoula.summary.parsing.JsonStringListTypeHandler}, |
65 | | - #{eligibilityResultDTO.notes, typeHandler=org.scoula.summary.parsing.JsonStringListTypeHandler}) |
66 | | - ON DUPLICATE KEY UPDATE overall_status = VALUES(overall_status), |
67 | | - homeless_status = VALUES(homeless_status), |
68 | | - income_status = VALUES(income_status), |
69 | | - asset_status = VALUES(asset_status), |
70 | | - car_status = VALUES(car_status), |
71 | | - notes = VALUES(notes), |
72 | | - types = values(types), |
73 | | - updated_at = CURRENT_TIMESTAMP |
74 | | -</insert> |
75 | | - |
76 | | - |
77 | | - |
78 | | - <!-- 단건 조회: userId + danziId --> |
79 | 79 | <select id="get" resultMap="PersonalizedCardMap" parameterType="map"> |
80 | 80 | SELECT |
81 | 81 | <include refid="personalizedCardColumns"/> |
|
85 | 85 | LIMIT 1 |
86 | 86 | </select> |
87 | 87 |
|
88 | | - <!-- UserId 로 조회 --> |
89 | 88 | <select id="getAllByUserId" resultMap="PersonalizedCardMap" parameterType="int"> |
90 | 89 | SELECT |
91 | 90 | <include refid="personalizedCardColumns"/> |
92 | 91 | FROM personalized_card |
93 | | - WHERE user_id = #{userId} |
| 92 | + WHERE user_id = #{_parameter} |
94 | 93 | ORDER BY updated_at DESC |
95 | 94 | </select> |
96 | 95 |
|
|
0 commit comments