ExternalChannelMapperExt.xml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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.tzld.piaoquan.api.dao.mapper.contentplatform.ExternalChannelMapperExt">
  4. <resultMap id="BaseResultMap" type="com.tzld.piaoquan.api.model.po.contentplatform.ExternalChannel">
  5. <id column="id" jdbcType="BIGINT" property="id" />
  6. <result column="root_source_id" jdbcType="VARCHAR" property="rootSourceId" />
  7. <result column="channel" jdbcType="VARCHAR" property="channel" />
  8. <result column="partner_id" jdbcType="VARCHAR" property="partnerId" />
  9. <result column="account_id" jdbcType="VARCHAR" property="accountId" />
  10. <result column="creative_id" jdbcType="VARCHAR" property="creativeId" />
  11. <result column="article_id" jdbcType="VARCHAR" property="articleId" />
  12. <result column="card_id" jdbcType="VARCHAR" property="cardId" />
  13. <result column="package_id" jdbcType="VARCHAR" property="packageId" />
  14. <result column="status" jdbcType="INTEGER" property="status" />
  15. <result column="is_delete" jdbcType="INTEGER" property="isDelete" />
  16. <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
  17. <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
  18. </resultMap>
  19. <sql id="Base_Column_List">
  20. id, root_source_id, channel, partner_id, account_id, creative_id, article_id, card_id,
  21. package_id, `status`, is_delete, create_time, update_time
  22. </sql>
  23. <!-- 查询待处理的记录列表(status=0),仅查询创建时间在指定时间之后的记录 -->
  24. <select id="selectPendingList" resultMap="BaseResultMap">
  25. select
  26. <include refid="Base_Column_List" />
  27. from external_channel
  28. where `status` = 0
  29. and is_delete = 0
  30. and id > #{lastId}
  31. and create_time >= #{startTime}
  32. order by id asc
  33. limit #{limit}
  34. </select>
  35. <!-- 将创建时间早于指定时间的待处理记录标记为失败 -->
  36. <update id="markFailedForTimeoutRecords">
  37. update external_channel
  38. set `status` = 2,
  39. update_time = NOW()
  40. where `status` = 0
  41. and is_delete = 0
  42. and create_time &lt; #{timeoutTime}
  43. </update>
  44. <!-- 检查 rootSourceId 是否已存在 -->
  45. <select id="checkRootSourceIdExists" resultType="int">
  46. select count(1)
  47. from external_channel
  48. where root_source_id = #{rootSourceId}
  49. and is_delete = 0
  50. </select>
  51. <!-- 批量查询已存在的rootSourceId -->
  52. <select id="selectExistingRootSourceIds" resultType="java.lang.String">
  53. select root_source_id
  54. from external_channel
  55. where is_delete = 0
  56. and root_source_id in
  57. <foreach collection="rootSourceIds" item="item" open="(" separator="," close=")">
  58. #{item}
  59. </foreach>
  60. </select>
  61. <!-- 批量插入待处理记录(忽略重复) -->
  62. <insert id="batchInsertIgnore" parameterType="java.util.List">
  63. insert ignore into external_channel (
  64. root_source_id,
  65. `status`,
  66. is_delete,
  67. create_time,
  68. update_time
  69. ) values
  70. <foreach collection="list" item="item" separator=",">
  71. (
  72. #{item.rootSourceId,jdbcType=VARCHAR},
  73. 0,
  74. 0,
  75. #{item.createTime,jdbcType=TIMESTAMP},
  76. #{item.updateTime,jdbcType=TIMESTAMP}
  77. )
  78. </foreach>
  79. </insert>
  80. <!-- 查询 video_id 为空的记录列表 -->
  81. <select id="selectEmptyVideoIdList" resultMap="BaseResultMap">
  82. select
  83. <include refid="Base_Column_List" />
  84. from external_channel
  85. where is_delete = 0
  86. and (video_id is null or video_id = 0)
  87. and id > #{lastId}
  88. order by id asc
  89. limit #{limit}
  90. </select>
  91. <!-- 批量更新记录的 video_id -->
  92. <update id="batchUpdateVideoId" parameterType="java.util.List">
  93. <foreach collection="list" item="item" separator=";">
  94. update external_channel
  95. set video_id = #{item.videoId,jdbcType=BIGINT},
  96. update_time = NOW()
  97. where id = #{item.id,jdbcType=BIGINT}
  98. </foreach>
  99. </update>
  100. </mapper>