Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 

347 строки
12 KiB

  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.iformall.mapper.WxBusinessMapper">
  4. <resultMap id="BaseResultMap" type="com.iformall.domain.po.WxBusiness">
  5. <id column="id" jdbcType="INTEGER" property="id" />
  6. <result column="title" jdbcType="VARCHAR" property="title" />
  7. <result column="type" jdbcType="INTEGER" property="type" />
  8. <result column="create_date" jdbcType="TIMESTAMP" property="createDate" />
  9. <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" />
  10. <result column="final_tenant_id" jdbcType="VARCHAR" property="finalTenantId" />
  11. <result column="is_system" jdbcType="INTEGER" property="isSystem" />
  12. <result column="parent_id" jdbcType="INTEGER" property="parentId" />
  13. <result column="is_del" jdbcType="INTEGER" property="isDel" />
  14. </resultMap>
  15. <sql id="allColumns">
  16. `id`,`title`,`type`,`create_date`,`update_date`,`final_tenant_id`,`is_system`,`parent_id`,`is_del`
  17. </sql>
  18. <sql id="dynamicWhereConditions">
  19. where 1 = 1
  20. <if test=" null != id ">
  21. and `id` = #{id}
  22. </if>
  23. <if test=" null != title ">
  24. and `title` like concat('%', #{title},'%')
  25. </if>
  26. <if test=" null != type ">
  27. and `type` = #{type}
  28. </if>
  29. <if test=" null != createDate ">
  30. and `create_date` = #{createDate}
  31. </if>
  32. <if test=" null != updateDate ">
  33. and `update_date` = #{updateDate}
  34. </if>
  35. <if test=" null != finalTenantId ">
  36. and `final_tenant_id` = #{finalTenantId}
  37. </if>
  38. <if test=" null != isSystem ">
  39. and `is_system` = #{isSystem}
  40. </if>
  41. <if test=" null != parentId ">
  42. and `parent_id` = #{parentId}
  43. </if>
  44. <if test=" null != isDel ">
  45. and `is_del` = #{isDel}
  46. </if>
  47. <if test=" null != ids ">
  48. and id in
  49. <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
  50. #{idItem}
  51. </foreach>
  52. </if>
  53. <if test=" null != sortColumns"> order by ${sortColumns} </if>
  54. </sql>
  55. <select id="selectById" parameterType="Map" resultMap="BaseResultMap">
  56. select
  57. <include refid="allColumns"/>
  58. from wx_business where id = #{id} and `final_tenant_id` = #{finalTenantId}
  59. </select>
  60. <select id="selectByIds" parameterType="Map" resultMap="BaseResultMap">
  61. select
  62. <include refid="allColumns"/>
  63. from wx_business where `final_tenant_id` = #{finalTenantId}
  64. and id in
  65. <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
  66. #{idItem}
  67. </foreach>
  68. </select>
  69. <select id="findList" parameterType="com.iformall.domain.po.WxBusiness" resultMap="BaseResultMap">
  70. select
  71. <include refid="allColumns"/>
  72. from wx_business
  73. <include refid="dynamicWhereConditions" />
  74. </select>
  75. <select id="findListAll" parameterType="com.iformall.domain.po.WxBusiness" resultMap="BaseResultMap">
  76. select
  77. <include refid="allColumns"/>
  78. from wx_business where `final_tenant_id` = #{finalTenantId}
  79. <if test=" 1 == isRoot">
  80. and `parent_id` is null
  81. </if>
  82. <if test=" null != isDel ">
  83. and `is_del` = #{isDel}
  84. </if>
  85. order by create_date asc
  86. </select>
  87. <select id="findListForMerchant" resultMap="BaseResultMap">
  88. select
  89. <include refid="allColumns"/>
  90. from wx_business b
  91. where b.`final_tenant_id` = #{finalTenantId}
  92. <if test=" 1 == isRoot">
  93. and b.`parent_id` is null
  94. </if>
  95. <if test=" null != isDel ">
  96. and b.`is_del` = #{isDel}
  97. </if>
  98. and
  99. (select count(*) from wx_merchant m
  100. where b.id = m.business_id
  101. <if test=" null != tenantId and '' != tenantId">
  102. and m.`tenant_id` = #{tenantId}
  103. </if>
  104. <if test=" null != parentTenantId and '' != parentTenantId">
  105. and m.`parent_tenant_id` = #{parentTenantId}
  106. </if>
  107. and m.status = 1
  108. and m.is_public = 1) > 0
  109. order by create_date asc
  110. </select>
  111. <select id="findListForCoupon" resultMap="BaseResultMap">
  112. select
  113. <include refid="allColumns"/>
  114. from wx_business b
  115. where b.`final_tenant_id` = #{finalTenantId}
  116. <if test=" 1 == isRoot">
  117. and b.`parent_id` is null
  118. </if>
  119. <if test=" null != isDel ">
  120. and b.`is_del` = #{isDel}
  121. </if>
  122. and
  123. (select count(*) from wx_coupon_channel cc
  124. where b.id = cc.business
  125. and cc.status = 0
  126. <if test=" null != tenantId and '' != tenantId">
  127. and cc.`tenant_id` = #{tenantId}
  128. </if>
  129. <if test=" null != parentTenantId and '' != parentTenantId">
  130. and cc.`parent_tenant_id` = #{parentTenantId}
  131. </if>
  132. <if test=" null != platCode and platCode == 1">
  133. and cc.target_ad = 1
  134. </if>
  135. <if test=" null != platCode and platCode == 3">
  136. and cc.target_ad = 101
  137. </if>
  138. ) > 0
  139. order by create_date asc
  140. </select>
  141. <select id="businessDataList" parameterType="com.iformall.domain.po.WxBusiness" resultType="hashmap">
  142. select b.id,b.title,
  143. round(
  144. (select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
  145. from wx_merchant m
  146. left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id where m.business_id = b.id
  147. <if test=" null != tenantId and '' != tenantId">
  148. and m.`tenant_id` = #{tenantId}
  149. </if>
  150. <if test=" null != parentTenantId and '' != parentTenantId">
  151. and m.`parent_tenant_id` = #{parentTenantId}
  152. </if>
  153. and STR_TO_DATE(mtd.report_date,'%Y-%m-%d') between #{startdate} and #{enddate} and m.status = 1 and m.is_del = 0 )
  154. /100,2) volume,
  155. round(
  156. (select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
  157. from wx_merchant m
  158. left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id where m.business_id = b.id
  159. <if test=" null != tenantId and '' != tenantId">
  160. and m.`tenant_id` = #{tenantId}
  161. </if>
  162. <if test=" null != parentTenantId and '' != parentTenantId">
  163. and m.`parent_tenant_id` = #{parentTenantId}
  164. </if>
  165. and STR_TO_DATE(mtd.report_date,'%Y-%m-%d') between #{startdate} and #{enddate} and m.status = 1 and m.is_del = 0 )
  166. /
  167. (select if(sum(ws.operation_area) is null,0,sum(ws.operation_area))
  168. from wx_merchant m
  169. left join wx_merchant_shop mtd on mtd.merchant_id = m.id
  170. left join wx_shop ws on(mtd.shop_id = ws.id)
  171. where m.business_id = b.id and m.status = 1 and m.is_del = 0
  172. <if test=" null != tenantId and '' != tenantId">
  173. and m.`tenant_id` = #{tenantId}
  174. </if>
  175. <if test=" null != parentTenantId and '' != parentTenantId">
  176. and m.`parent_tenant_id` = #{parentTenantId}
  177. </if>
  178. )
  179. /100,2) sale,
  180. (select ifnull(sum(rent_area),0) from wx_rent_contract where business_id=b.id
  181. <if test=" null != tenantId and '' != tenantId">
  182. and `tenant_id` = #{tenantId}
  183. </if>
  184. <if test=" null != parentTenantId and '' != parentTenantId">
  185. and `parent_tenant_id` = #{parentTenantId}
  186. </if>
  187. and status in (2,3,4)) area,
  188. round(
  189. (select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
  190. from wx_merchant m
  191. left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id where m.business_id = b.id
  192. <if test=" null != tenantId and '' != tenantId">
  193. and m.`tenant_id` = #{tenantId}
  194. </if>
  195. <if test=" null != parentTenantId and '' != parentTenantId">
  196. and m.`parent_tenant_id` = #{parentTenantId}
  197. </if>
  198. and STR_TO_DATE(mtd.report_date,'%Y-%m-%d') between #{startdate} and #{enddate} and m.status = 1 and m.is_del = 0 ) /
  199. (select sum(mtd.trade_count)
  200. from wx_merchant m
  201. left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id where m.business_id = b.id
  202. <if test=" null != tenantId and '' != tenantId">
  203. and m.`tenant_id` = #{tenantId}
  204. </if>
  205. <if test=" null != parentTenantId and '' != parentTenantId">
  206. and m.`parent_tenant_id` = #{parentTenantId}
  207. </if>
  208. and STR_TO_DATE(mtd.report_date,'%Y-%m-%d') between #{startdate} and #{enddate} and m.status = 1 and m.is_del = 0 )
  209. /100,2) comPrice
  210. from wx_business b
  211. </select>
  212. <select id="devoteList" parameterType="com.iformall.domain.po.WxBusiness" resultType="hashmap">
  213. select mm.name merchantName,
  214. round(
  215. (select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
  216. from wx_merchant m
  217. left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id
  218. where m.business_id = #{id}
  219. <if test=" null != tenantId and '' != tenantId">
  220. and m.`tenant_id` = #{tenantId}
  221. </if>
  222. <if test=" null != parentTenantId and '' != parentTenantId">
  223. and m.`parent_tenant_id` = #{parentTenantId}
  224. </if>
  225. and mtd.report_date between #{startdate} and #{enddate}
  226. and m.status = 1 and m.is_del = 0 and m.id = mm.id)
  227. /
  228. (select if(sum(ws.operation_area) is null,0,sum(ws.operation_area))
  229. from wx_merchant m
  230. left join wx_merchant_shop mtd on mtd.merchant_id = m.id
  231. left join wx_shop ws on(mtd.shop_id = ws.id)
  232. where m.status = 1 and m.is_del = 0 and m.business_id = #{id}
  233. <if test=" null != tenantId and '' != tenantId">
  234. and m.`tenant_id` = #{tenantId}
  235. </if>
  236. <if test=" null != parentTenantId and '' != parentTenantId">
  237. and m.`parent_tenant_id` = #{parentTenantId}
  238. </if>
  239. and m.id = mm.id)
  240. /100,2) sale,
  241. round(
  242. round(
  243. (select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
  244. from wx_merchant m
  245. left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id
  246. where m.business_id = #{id}
  247. <if test=" null != tenantId and '' != tenantId">
  248. and m.`tenant_id` = #{tenantId}
  249. </if>
  250. <if test=" null != parentTenantId and '' != parentTenantId">
  251. and m.`parent_tenant_id` = #{parentTenantId}
  252. </if>
  253. and mtd.report_date between #{startdate} and #{enddate}
  254. and m.status = 1 and m.is_del = 0 and m.id = mm.id)/
  255. (select if(sum(ws.operation_area) is null,0,sum(ws.operation_area))
  256. from wx_merchant m
  257. left join wx_merchant_shop mtd on mtd.merchant_id = m.id
  258. left join wx_shop ws on(mtd.shop_id = ws.id)
  259. where m.status = 1 and m.is_del = 0 and m.business_id = #{id}
  260. <if test=" null != tenantId and '' != tenantId">
  261. and m.`tenant_id` = #{tenantId}
  262. </if>
  263. <if test=" null != parentTenantId and '' != parentTenantId">
  264. and m.`parent_tenant_id` = #{parentTenantId}
  265. </if>
  266. and m.id = mm.id)/100,2)
  267. /
  268. round(
  269. (select if(sum(mtd.trade_amt) is null,0,sum(mtd.trade_amt))
  270. from wx_merchant m
  271. left join wx_merchant_trade_daily mtd on mtd.merchant_id = m.id
  272. where m.business_id = #{id}
  273. <if test=" null != tenantId and '' != tenantId">
  274. and m.`tenant_id` = #{tenantId}
  275. </if>
  276. <if test=" null != parentTenantId and '' != parentTenantId">
  277. and m.`parent_tenant_id` = #{parentTenantId}
  278. </if>
  279. and mtd.report_date between #{startdate} and #{enddate}
  280. and m.status = 1 and m.is_del = 0 )
  281. /
  282. (select if(sum(ws.operation_area) is null,0,sum(ws.operation_area))
  283. from wx_merchant m
  284. left join wx_merchant_shop mtd on mtd.merchant_id = m.id
  285. left join wx_shop ws on(mtd.shop_id = ws.id)
  286. where m.business_id = #{id}
  287. <if test=" null != tenantId and '' != tenantId">
  288. and m.`tenant_id` = #{tenantId}
  289. </if>
  290. <if test=" null != parentTenantId and '' != parentTenantId">
  291. and m.`parent_tenant_id` = #{parentTenantId}
  292. </if>
  293. and m.status = 1 and m.is_del = 0 )
  294. /100,2)
  295. *100,2) devoteRate
  296. from wx_merchant mm
  297. left join wx_merchant_trade_daily mtd on mtd.merchant_id = mm.id
  298. left join wx_merchant_shop wmt on wmt.merchant_id = mm.id
  299. left join wx_shop ws on(wmt.shop_id = ws.id)
  300. where mm.business_id=#{id}
  301. <if test=" null != tenantId and '' != tenantId">
  302. and mm.`tenant_id` = #{tenantId}
  303. </if>
  304. <if test=" null != parentTenantId and '' != parentTenantId">
  305. and mm.`parent_tenant_id` = #{parentTenantId}
  306. </if>
  307. and mm.status = 1 and mm.is_del = 0
  308. and mtd.report_date between #{startdate} and #{enddate}
  309. group by mm.id
  310. order by devoteRate desc
  311. <if test="null != limitStart and null != limitEnd">
  312. limit #{limitStart},#{limitEnd}
  313. </if>
  314. </select>
  315. </mapper>