shinnosuke
2026-08-21 bc2efbdb52190fe2e7be9920bbed6902d4ee28aa
talent-card-server/src/main/java/com/talentcard/server/mapper/DisplayServiceMapper.java
@@ -16,15 +16,7 @@
            <script>
            select m.id as merchantId,
                   m.merchant_name as merchantName,
                   case
                     when m.merchant_type = 'parking' then 'parking'
                     when m.merchant_type = 'medical' then 'medical'
                     when m.merchant_type = 'apartment' then 'apartment'
                     when exists (select 1 from shopping_topic_merchant s1 where s1.merchant_id = m.id and s1.deleted = 0 and s1.category_key = 'housing') then 'housing'
                     when exists (select 1 from shopping_topic_merchant s2 where s2.merchant_id = m.id and s2.deleted = 0 and s2.category_key = 'car') then 'car'
                     when exists (select 1 from shopping_topic_merchant s3 where s3.merchant_id = m.id and s3.deleted = 0 and s3.category_key = 'appliance') then 'appliance'
                     else m.merchant_type
                   end as category,
               m.merchant_type_code as category,
                   m.merchant_type as merchantType,
                   m.contact_name as contactName,
                   m.contact_mobile as contactMobile,
@@ -45,32 +37,9 @@
                   m.updated_at as updatedAt
            from merchant m
            where m.deleted = 0
              and (
                    m.merchant_type in ('parking', 'medical', 'apartment')
                    or exists (
                        select 1
                        from shopping_topic_merchant sm
                        where sm.merchant_id = m.id
                          and sm.deleted = 0
                          and sm.category_key in ('housing', 'car', 'appliance')
                    )
                  )
           and m.merchant_type_code in ('parking', 'medical', 'apartment', 'housing', 'car', 'appliance')
              <if test="category != null and category != ''">
                <choose>
                  <when test="category == 'housing' or category == 'car' or category == 'appliance'">
                    and m.merchant_type = 'shopping'
                    and exists (
                        select 1
                        from shopping_topic_merchant sm
                        where sm.merchant_id = m.id
                          and sm.deleted = 0
                          and sm.category_key = #{category}
                    )
                  </when>
                  <otherwise>
                    and m.merchant_type = #{category}
                  </otherwise>
                </choose>
            and m.merchant_type_code = #{category}
              </if>
              <if test="status != null">and m.status = #{status}</if>
              <if test="keyword != null and keyword != ''">
@@ -93,32 +62,9 @@
            select count(*)
            from merchant m
            where m.deleted = 0
              and (
                    m.merchant_type in ('parking', 'medical', 'apartment')
                    or exists (
                        select 1
                        from shopping_topic_merchant sm
                        where sm.merchant_id = m.id
                          and sm.deleted = 0
                          and sm.category_key in ('housing', 'car', 'appliance')
                    )
                  )
           and m.merchant_type_code in ('parking', 'medical', 'apartment', 'housing', 'car', 'appliance')
              <if test="category != null and category != ''">
                <choose>
                  <when test="category == 'housing' or category == 'car' or category == 'appliance'">
                    and m.merchant_type = 'shopping'
                    and exists (
                        select 1
                        from shopping_topic_merchant sm
                        where sm.merchant_id = m.id
                          and sm.deleted = 0
                          and sm.category_key = #{category}
                    )
                  </when>
                  <otherwise>
                    and m.merchant_type = #{category}
                  </otherwise>
                </choose>
            and m.merchant_type_code = #{category}
              </if>
              <if test="status != null">and m.status = #{status}</if>
              <if test="keyword != null and keyword != ''">
@@ -136,15 +82,7 @@
            <script>
            select m.id as merchantId,
                   m.merchant_name as merchantName,
                   case
                     when m.merchant_type = 'parking' then 'parking'
                     when m.merchant_type = 'medical' then 'medical'
                     when m.merchant_type = 'apartment' then 'apartment'
                     when exists (select 1 from shopping_topic_merchant s1 where s1.merchant_id = m.id and s1.deleted = 0 and s1.category_key = 'housing') then 'housing'
                     when exists (select 1 from shopping_topic_merchant s2 where s2.merchant_id = m.id and s2.deleted = 0 and s2.category_key = 'car') then 'car'
                     when exists (select 1 from shopping_topic_merchant s3 where s3.merchant_id = m.id and s3.deleted = 0 and s3.category_key = 'appliance') then 'appliance'
                     else m.merchant_type
                   end as category,
               m.merchant_type_code as category,
                   m.merchant_type as merchantType,
                   m.contact_name as contactName,
                   m.contact_mobile as contactMobile,
@@ -166,18 +104,9 @@
            from merchant m
            where m.deleted = 0
              and m.id = #{serviceId}
              and (
                    m.merchant_type in ('parking', 'medical', 'apartment')
                    or exists (
                        select 1
                        from shopping_topic_merchant sm
                        where sm.merchant_id = m.id
                          and sm.deleted = 0
                          and sm.category_key in ('housing', 'car', 'appliance')
                    )
                  )
           and m.merchant_type_code in ('parking', 'medical', 'apartment', 'housing', 'car', 'appliance')
            limit 1
            </script>
            """)
    Map<String, Object> selectAdminDetail(@Param("serviceId") Long serviceId);
}
}