BannerDao.xml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.backendsys.modules.cms.banner.dao.BannerDao">
  4. <sql id="includeBanner">
  5. b.id id,
  6. b.id banner_id,
  7. b.type,
  8. bt.title title,
  9. COALESCE(bt.link, '') link,
  10. bt.image image,
  11. bt.image_thumb image_thumb,
  12. b.sort,
  13. b.status,
  14. b.create_time,
  15. b.update_time
  16. </sql>
  17. <sql id="includeBannerDetail">
  18. b.id id,
  19. b.id banner_id,
  20. b.type,
  21. b.sort,
  22. b.status,
  23. b.create_time,
  24. b.update_time
  25. </sql>
  26. <sql id="includeBannerTranslation">
  27. id,
  28. banner_id,
  29. language,
  30. title,
  31. COALESCE(link, '') link,
  32. image,
  33. image_thumb
  34. </sql>
  35. <sql id="leftJoinTranslations">
  36. LEFT JOIN cms_banner_i18n bt ON b.id = bt.banner_id
  37. </sql>
  38. <resultMap id="resultMapBanner" type="java.util.LinkedHashMap">
  39. <id property="id" column="id" jdbcType="BIGINT" />
  40. <result property="banner_id" column="banner_id" javaType="java.lang.Long" />
  41. <result property="type" column="type" javaType="java.lang.Integer" />
  42. <result property="title" column="title" />
  43. <result property="link" column="link" />
  44. <result property="image" column="image" />
  45. <result property="image_thumb" column="image_thumb" />
  46. <result property="sort" column="sort" javaType="java.lang.Integer" />
  47. <result property="status" column="status" javaType="java.lang.Integer" />
  48. <result property="create_time" column="create_time" />
  49. <result property="update_time" column="update_time" />
  50. </resultMap>
  51. <resultMap id="resultMapBannerDetail" type="java.util.LinkedHashMap">
  52. <id property="id" column="id" jdbcType="BIGINT" />
  53. <result property="banner_id" column="banner_id" javaType="java.lang.Long" />
  54. <result property="title" column="title" />
  55. <result property="link" column="link" />
  56. <result property="image" column="image" />
  57. <result property="image_thumb" column="image_thumb" />
  58. <result property="type" column="type" javaType="java.lang.Integer" />
  59. <result property="sort" column="sort" javaType="java.lang.Integer" />
  60. <result property="status" column="status" javaType="java.lang.Integer" />
  61. <result property="create_time" column="create_time" />
  62. <result property="update_time" column="update_time" />
  63. <collection property="translations" javaType="java.util.List"
  64. select="queryTranslationsById" column="id">
  65. <result property="title" column="title" />
  66. <result property="link" column="link" />
  67. <result property="image" column="image" />
  68. <result property="image_thumb" column="image_thumb" />
  69. </collection>
  70. </resultMap>
  71. <!-- 查 列表 -->
  72. <select id="selectBannerList" resultMap="resultMapBanner">
  73. SELECT <include refid="includeBanner" />
  74. FROM cms_banner b
  75. <include refid="leftJoinTranslations" />
  76. <where>
  77. bt.language = #{lang}
  78. <if test="title != null and title != ''">
  79. AND bt.title LIKE CONCAT('%', #{title}, '%')
  80. </if>
  81. <if test="status != null and status != ''">
  82. AND b.status = #{status}
  83. </if>
  84. </where>
  85. </select>
  86. <!-- 查 详情 -->
  87. <select id="selectBannerDetail" resultMap="resultMapBannerDetail">
  88. SELECT <include refid="includeBannerDetail" />
  89. FROM cms_banner b
  90. <where>
  91. <if test="banner_id != null and banner_id != ''">
  92. AND b.id = #{banner_id}
  93. </if>
  94. </where>
  95. </select>
  96. <!-- 查 翻译详情 (子查询) -->
  97. <select id="queryTranslationsById" resultType="java.util.LinkedHashMap">
  98. SELECT <include refid="includeBannerTranslation" />
  99. FROM cms_banner_i18n
  100. WHERE banner_id = #{id}
  101. </select>
  102. <!-- 查 详情 (公共) (带翻译 Object) (关联查询) -->
  103. <!-- <select id="queryBannerDetailPublic" resultMap="resultMapBanner">-->
  104. <!-- SELECT <include refid="includeBanner" />, content-->
  105. <!-- FROM cms_banner a-->
  106. <!-- <include refid="leftJoinCategory" />-->
  107. <!-- <include refid="leftJoinUser" />-->
  108. <!-- <include refid="leftJoinTranslations" />-->
  109. <!-- WHERE a.uid = #{uid} AND bt.language = #{lang}-->
  110. <!-- </select>-->
  111. </mapper>