InvestmentInfoDao.xml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  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="platform.modules.carrier.dao.InvestmentInfoDao">
  4. <update id="updateStatusBatch" parameterType="java.util.List">
  5. update ic_investment_info
  6. SET status = #{status}
  7. WHERE
  8. <if test="idList.size > 0 ">
  9. id in
  10. <foreach collection="idList" open="(" close=")" separator="," item="id">
  11. #{id}
  12. </foreach>
  13. </if>
  14. </update>
  15. <select id="findInvestmentList" resultType="platform.modules.carrier.entity.InvestmentInfo"
  16. parameterType="platform.modules.carrier.dto.CustomSearchCondition">
  17. SELECT
  18. info.id,
  19. info.title,
  20. park.`name` as park_name,
  21. building.carrier_attriute as type,
  22. info.total_area area,
  23. building.id building_id,
  24. info.`status`,
  25. info.publish_time
  26. FROM
  27. ic_investment_info info
  28. LEFT JOIN ic_building building ON info.building_id = building.id
  29. LEFT JOIN ic_park park ON building.park_id = park.id
  30. LEFT JOIN s_street street ON park.street_id = street.id
  31. WHERE
  32. info.del_flag != 1
  33. <if test="param.title != null and param.title != '' ">
  34. AND info.title LIKE CONCAT('%',#{param.title},'%')
  35. </if>
  36. <if test="param.park_id != null and param.park_id != '' ">
  37. AND info.invest_type = 1 AND info.department_id = #{param.park_id}
  38. <if test="param.is_parent != null and param.is_parent != ''">
  39. OR info.department_id IN (SELECT park_id FROM ic_sub_park WHERE parent_id = #{param.park_id})
  40. </if>
  41. </if>
  42. <if test="param.begin_date != null and param.begin_date != '' ">
  43. AND info.publish_time <![CDATA[>=]]> #{param.begin_date}
  44. </if>
  45. <if test="param.end_date != null and param.end_date != '' ">
  46. AND info.publish_time <![CDATA[<=]]> #{param.end_date}
  47. </if>
  48. <if test="param.build_use != null and param.build_use != '' ">
  49. AND building.build_use = #{param.build_use}
  50. </if>
  51. <if test="param.street_id != null and param.street_id != '' ">
  52. AND info.invest_type = 4 AND info.department_id = #{param.street_id}
  53. </if>
  54. ORDER BY
  55. info.publish_time DESC
  56. </select>
  57. <update id="updatePublishTimeById">
  58. UPDATE ic_investment_info SET publish_time = #{publish_time} WHERE id = #{id}
  59. </update>
  60. <select id="findInvestmentIndex" resultType="platform.modules.carrier.entity.InvestmentInfo"
  61. parameterType="platform.modules.carrier.dto.CustomSearchCondition">
  62. SELECT
  63. info.id,
  64. info.title,
  65. building.carrier_attriute as type,
  66. building.area,
  67. building.id as building_id,
  68. info.`status`,
  69. info.publish_time,
  70. info.main_picture,
  71. info.total_area,
  72. (SELECT MAX(area) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) max_area,
  73. (SELECT MIN(area) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) min_area,
  74. (SELECT MAX(refer_price) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) max_price,
  75. (SELECT MIN(refer_price) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) min_price,
  76. park.id park_id,
  77. park.name park_name,
  78. park.contact,
  79. park.phone,
  80. street.id street_id,
  81. street.name street_name
  82. FROM
  83. ic_investment_info info
  84. LEFT JOIN ic_investment_floor floor ON floor.investment_id = info.id
  85. LEFT JOIN ic_building building ON info.building_id = building.id
  86. LEFT JOIN ic_park park ON building.park_id = park.id
  87. LEFT JOIN s_street street ON street.id = park.street_id
  88. WHERE
  89. info.del_flag != 1
  90. AND info.status = 1
  91. <if test="param.title != null and param.title != '' ">
  92. AND info.title LIKE CONCAT('%',#{param.title},'%')
  93. </if>
  94. <if test="param.street_id != null and param.street_id != '' ">
  95. AND park.street_id = #{param.street_id}
  96. </if>
  97. <if test="param.streets != null and param.streets.size() > 0 ">
  98. AND (park.street_id IN
  99. <foreach collection="param.streets" open="(" close=")" separator="," item="id">
  100. #{id}
  101. </foreach>
  102. OR
  103. street.no IN
  104. <foreach collection="param.streets" open="(" close=")" separator="," item="id">
  105. #{id}
  106. </foreach>
  107. )
  108. </if>
  109. <if test="param.park_id != null and param.park_id != '' ">
  110. AND park.id = #{param.park_id}
  111. </if>
  112. <if test="param.parks != null and param.parks.size() > 0 ">
  113. AND (park.id IN
  114. <foreach collection="param.parks" open="(" close=")" separator="," item="id">
  115. #{id}
  116. </foreach>
  117. OR
  118. park.no IN
  119. <foreach collection="param.parks" open="(" close=")" separator="," item="id">
  120. #{id}
  121. </foreach>
  122. )
  123. </if>
  124. <if test="param.min_area != null and param.min_area != '' ">
  125. AND floor.area <![CDATA[>=]]> #{param.min_area}
  126. </if>
  127. <if test="param.max_area != null and param.max_area != '' ">
  128. AND floor.area <![CDATA[<=]]> #{param.max_area}
  129. </if>
  130. <if test="param.min_price != null and param.min_price != '' ">
  131. AND floor.refer_price <![CDATA[>=]]> #{param.min_price}
  132. </if>
  133. <if test="param.max_price != null and param.max_price != '' ">
  134. AND floor.refer_price <![CDATA[<=]]> #{param.max_price}
  135. </if>
  136. <if test="param.min_floor_height != null and param.min_floor_height != '' ">
  137. AND floor.floor_height <![CDATA[>=]]> #{param.min_floor_height}
  138. </if>
  139. <if test="param.checkin_time != null and param.checkin_time != '' ">
  140. AND floor.checkin_time = #{param.checkin_time}
  141. </if>
  142. <if test="param.floor_count != null and param.floor_count != '' ">
  143. <if test="param.floor_count == 1 ">
  144. AND (SELECT COUNT(id) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) = 1
  145. </if>
  146. <if test="param.floor_count == 2 ">
  147. AND (SELECT COUNT(id) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) <![CDATA[>]]>
  148. 1
  149. </if>
  150. </if>
  151. GROUP BY info.id
  152. <if test="param.order_by != null and param.order_by != '' ">
  153. <if test="param.order_by == 1 ">
  154. ORDER BY
  155. info.publish_time DESC
  156. </if>
  157. <if test="param.order_by == 2 ">
  158. ORDER BY
  159. info.read_count DESC
  160. </if>
  161. <if test="param.order_by == 3 ">
  162. ORDER BY
  163. info.total_area DESC
  164. </if>
  165. <if test="param.order_by == 4 ">
  166. ORDER BY
  167. MIN(floor.refer_price) ASC
  168. </if>
  169. <if test="param.order_by == null">
  170. ORDER BY
  171. ren.publish_time DESC
  172. </if>
  173. </if>
  174. </select>
  175. <select id="findByQuery" resultType="platform.modules.carrier.entity.InvestmentInfo"
  176. parameterType="platform.modules.carrier.dto.ApiQueryDto">
  177. SELECT
  178. invest.*,
  179. park.id park_id,
  180. park.name park_name,
  181. street.id street_id,
  182. street.name street_name,
  183. building.build_name building_name
  184. FROM
  185. ic_investment_info invest
  186. JOIN ic_building building ON building.id = invest.building_id
  187. JOIN ic_park park ON park.id = building.park_id
  188. JOIN s_street street ON street.id = park.street_id
  189. JOIN ic_investment_floor floor ON floor.investment_id = invest.id
  190. WHERE
  191. invest.del_flag != 1
  192. <if test="param.name != null and param.name != '' ">
  193. <if test="param.type != null and param.type != '' ">
  194. AND (park.name LIKE CONCAT('%',#{param.name},'%')
  195. OR build.build_name LIKE CONCAT('%',#{param.name},'%'))
  196. </if>
  197. </if>
  198. <if test="param.minArea != null and param.minArea != '' ">
  199. AND invest.total_area <![CDATA[>=]]> #{param.minArea}
  200. </if>
  201. <if test="param.maxArea != null and param.maxArea != '' ">
  202. AND invest.total_area <![CDATA[<=]]> #{param.maxArea}
  203. </if>
  204. <if test="param.rent != null and param.rent != '' ">
  205. </if>
  206. <if test="param.minPrice != null and param.minPrice != '' ">
  207. AND floor.price <![CDATA[>=]]> #{param.minPrice}
  208. </if>
  209. <if test="param.maxPrice != null and param.maxPrice != '' ">
  210. AND floor.price <![CDATA[<=]]> #{param.maxPrice}
  211. </if>
  212. <if test="param.streetId != null and param.streetId != '' ">
  213. </if>
  214. <if test="param.parkId != null and param.parkId != '' ">
  215. </if>
  216. GROUP BY
  217. invest.id
  218. </select>
  219. <select id="findParkSideByQuery" resultType="platform.modules.carrier.entity.InvestmentInfo"
  220. parameterType="platform.modules.carrier.dto.ApiQueryDto">
  221. SELECT
  222. invest.*,
  223. park.id park_id,
  224. park.name park_name,
  225. park.area,
  226. (
  227. select count(*) from ic_building building where building.park_id = park.id
  228. ) num
  229. FROM
  230. ic_park park
  231. JOIN ic_building building ON park.id = building.park_id
  232. JOIN ic_investment_info invest ON building.id = invest.building_id
  233. WHERE
  234. invest.del_flag != 1
  235. <if test="param.name != null and param.name != '' ">
  236. <if test="param.type != null and param.type != '' ">
  237. <if test="param.type == 1 ">
  238. AND park.name LIKE CONCAT('%',#{param.name},'%')
  239. </if>
  240. <if test="param.type == 2 ">
  241. AND build.build_name LIKE CONCAT('%',#{param.name},'%')
  242. </if>
  243. </if>
  244. </if>
  245. <if test="param.minArea != null and param.minArea != '' ">
  246. AND park.area <![CDATA[>=]]> #{param.minArea}
  247. </if>
  248. <if test="param.maxArea != null and param.maxArea != '' ">
  249. AND park.area <![CDATA[<=]]> #{param.maxArea}
  250. </if>
  251. <if test="param.rent != null and param.rent != '' ">
  252. </if>
  253. <if test="param.minPrice != null and param.minPrice != '' ">
  254. AND park.standard_rent <![CDATA[>=]]> #{param.minPrice}
  255. </if>
  256. <if test="param.maxPrice != null and param.maxPrice != '' ">
  257. AND park.standard_rent <![CDATA[<=]]> #{param.maxPrice}
  258. </if>
  259. <if test="param.streetId != null and param.streetId != '' ">
  260. AND park.street_id = #{param.streetId}
  261. </if>
  262. <if test="param.parkId != null and param.parkId != '' ">
  263. </if>
  264. </select>
  265. <select id="findBuildingSideByQuery" resultType="platform.modules.carrier.entity.InvestmentInfo"
  266. parameterType="platform.modules.carrier.dto.ApiQueryDto">
  267. SELECT
  268. invest.*,
  269. building.id building_id,
  270. building.build_name building_name,
  271. building.area,
  272. (
  273. select count(*) from ic_investment_floor floor
  274. join ic_investment_info info on info.id = floor.investment_id
  275. where info.building_id = building.id
  276. ) num
  277. FROM
  278. ic_building building
  279. JOIN ic_investment_info invest ON building.id = invest.building_id
  280. WHERE
  281. invest.del_flag != 1
  282. <if test="param.name != null and param.name != '' ">
  283. <if test="param.type != null and param.type != '' ">
  284. <if test="param.type == 1 ">
  285. AND park.name LIKE CONCAT('%',#{param.name},'%')
  286. </if>
  287. <if test="param.type == 2 ">
  288. AND build.build_name LIKE CONCAT('%',#{param.name},'%')
  289. </if>
  290. </if>
  291. </if>
  292. <if test="param.minArea != null and param.minArea != '' ">
  293. AND building.area <![CDATA[>=]]> #{param.minArea}
  294. </if>
  295. <if test="param.maxArea != null and param.maxArea != '' ">
  296. AND building.area <![CDATA[<=]]> #{param.maxArea}
  297. </if>
  298. <if test="param.rent != null and param.rent != '' ">
  299. </if>
  300. <if test="param.minPrice != null and param.minPrice != '' ">
  301. AND building.pay <![CDATA[>=]]> #{param.minPrice}
  302. </if>
  303. <if test="param.maxPrice != null and param.maxPrice != '' ">
  304. AND building.pay <![CDATA[<=]]> #{param.maxPrice}
  305. </if>
  306. <if test="param.streetId != null and param.streetId != '' ">
  307. </if>
  308. <if test="param.parkId != null and param.parkId != '' ">
  309. AND building.park_id = #{param.parkId}
  310. </if>
  311. </select>
  312. <select id="findInvestmentArea" resultType="java.lang.Double">
  313. SELECT
  314. SUM( total_area )
  315. FROM
  316. ic_investment_info
  317. WHERE
  318. del_flag = 0
  319. <if test="startTime != null and endTime != ''">
  320. AND create_time >= #{startTime}
  321. </if>
  322. <if test="startTime != null and endTime != ''">
  323. AND create_time <![CDATA[ <= ]]> #{endTime}
  324. </if>
  325. </select>
  326. <!--<select id="findEachParkInvestmentArea" resultType="platform.modules.carrier.entity.InvestmentDistribution">
  327. SELECT
  328. p.id,
  329. p.`name` AS parkName,
  330. IFNULL(SUM( ii.total_area ), 0) AS investmentArea,
  331. IFNULL((SELECT SUM(f.remain_area) FROM ic_building b LEFT JOIN y_floor f ON f.building_id = b.id WHERE b.park_id = p.id AND b.del_flag = 0 AND b.is_use = 1 AND f.del_flag = 0 AND f.is_use = 1),0) AS emptyBuildingArea
  332. FROM
  333. ic_investment_info ii
  334. LEFT JOIN ic_building b ON b.id = ii.building_id
  335. LEFT JOIN ic_park p ON p.id = b.park_id
  336. WHERE
  337. ii.del_flag = 0
  338. GROUP BY
  339. p.id
  340. </select>-->
  341. <select id="findEachParkInvestmentArea" resultType="platform.modules.carrier.entity.InvestmentDistribution">
  342. SELECT
  343. s.id,
  344. s.`name` AS parkName,
  345. IFNULL( SUM( ii.total_area ), 0 ) AS investmentArea,
  346. IFNULL(
  347. (
  348. SELECT
  349. SUM( f.remain_area )
  350. FROM
  351. ic_park p
  352. LEFT JOIN ic_building b ON b.park_id = p.id
  353. LEFT JOIN y_floor f ON f.building_id = b.id
  354. WHERE
  355. p.del_flag = FALSE
  356. AND p.is_start = TRUE
  357. AND b.del_flag = FALSE
  358. AND b.is_use = TRUE
  359. AND f.del_flag = FALSE
  360. AND f.is_use = TRUE
  361. AND p.street_id = s.id
  362. ),
  363. 0
  364. ) AS emptyBuildingArea
  365. FROM
  366. ic_investment_info ii
  367. LEFT JOIN ic_building b ON b.id = ii.building_id
  368. LEFT JOIN ic_park p ON p.id = b.park_id
  369. RIGHT JOIN s_street s ON s.id = p.street_id
  370. WHERE
  371. ii.del_flag = 0
  372. GROUP BY
  373. s.id
  374. </select>
  375. </mapper>