| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="platform.modules.carrier.dao.InvestmentInfoDao">
- <update id="updateStatusBatch" parameterType="java.util.List">
- update ic_investment_info
- SET status = #{status}
- WHERE
- <if test="idList.size > 0 ">
- id in
- <foreach collection="idList" open="(" close=")" separator="," item="id">
- #{id}
- </foreach>
- </if>
- </update>
- <select id="findInvestmentList" resultType="platform.modules.carrier.entity.InvestmentInfo"
- parameterType="platform.modules.carrier.dto.CustomSearchCondition">
- SELECT
- info.id,
- info.title,
- park.`name` as park_name,
- building.carrier_attriute as type,
- info.total_area area,
- building.id building_id,
- info.`status`,
- info.publish_time
- FROM
- ic_investment_info info
- LEFT JOIN ic_building building ON info.building_id = building.id
- LEFT JOIN ic_park park ON building.park_id = park.id
- LEFT JOIN s_street street ON park.street_id = street.id
- WHERE
- info.del_flag != 1
- <if test="param.title != null and param.title != '' ">
- AND info.title LIKE CONCAT('%',#{param.title},'%')
- </if>
- <if test="param.park_id != null and param.park_id != '' ">
- AND info.invest_type = 1 AND info.department_id = #{param.park_id}
- <if test="param.is_parent != null and param.is_parent != ''">
- OR info.department_id IN (SELECT park_id FROM ic_sub_park WHERE parent_id = #{param.park_id})
- </if>
- </if>
- <if test="param.begin_date != null and param.begin_date != '' ">
- AND info.publish_time <![CDATA[>=]]> #{param.begin_date}
- </if>
- <if test="param.end_date != null and param.end_date != '' ">
- AND info.publish_time <![CDATA[<=]]> #{param.end_date}
- </if>
- <if test="param.build_use != null and param.build_use != '' ">
- AND building.build_use = #{param.build_use}
- </if>
- <if test="param.street_id != null and param.street_id != '' ">
- AND info.invest_type = 4 AND info.department_id = #{param.street_id}
- </if>
- ORDER BY
- info.publish_time DESC
- </select>
- <update id="updatePublishTimeById">
- UPDATE ic_investment_info SET publish_time = #{publish_time} WHERE id = #{id}
- </update>
- <select id="findInvestmentIndex" resultType="platform.modules.carrier.entity.InvestmentInfo"
- parameterType="platform.modules.carrier.dto.CustomSearchCondition">
- SELECT
- info.id,
- info.title,
- building.carrier_attriute as type,
- building.area,
- building.id as building_id,
- info.`status`,
- info.publish_time,
- info.main_picture,
- info.total_area,
- (SELECT MAX(area) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) max_area,
- (SELECT MIN(area) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) min_area,
- (SELECT MAX(refer_price) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) max_price,
- (SELECT MIN(refer_price) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) min_price,
- park.id park_id,
- park.name park_name,
- park.contact,
- park.phone,
- street.id street_id,
- street.name street_name
- FROM
- ic_investment_info info
- LEFT JOIN ic_investment_floor floor ON floor.investment_id = info.id
- LEFT JOIN ic_building building ON info.building_id = building.id
- LEFT JOIN ic_park park ON building.park_id = park.id
- LEFT JOIN s_street street ON street.id = park.street_id
- WHERE
- info.del_flag != 1
- AND info.status = 1
- <if test="param.title != null and param.title != '' ">
- AND info.title LIKE CONCAT('%',#{param.title},'%')
- </if>
- <if test="param.street_id != null and param.street_id != '' ">
- AND park.street_id = #{param.street_id}
- </if>
- <if test="param.streets != null and param.streets.size() > 0 ">
- AND (park.street_id IN
- <foreach collection="param.streets" open="(" close=")" separator="," item="id">
- #{id}
- </foreach>
- OR
- street.no IN
- <foreach collection="param.streets" open="(" close=")" separator="," item="id">
- #{id}
- </foreach>
- )
- </if>
- <if test="param.park_id != null and param.park_id != '' ">
- AND park.id = #{param.park_id}
- </if>
- <if test="param.parks != null and param.parks.size() > 0 ">
- AND (park.id IN
- <foreach collection="param.parks" open="(" close=")" separator="," item="id">
- #{id}
- </foreach>
- OR
- park.no IN
- <foreach collection="param.parks" open="(" close=")" separator="," item="id">
- #{id}
- </foreach>
- )
- </if>
- <if test="param.min_area != null and param.min_area != '' ">
- AND floor.area <![CDATA[>=]]> #{param.min_area}
- </if>
- <if test="param.max_area != null and param.max_area != '' ">
- AND floor.area <![CDATA[<=]]> #{param.max_area}
- </if>
- <if test="param.min_price != null and param.min_price != '' ">
- AND floor.refer_price <![CDATA[>=]]> #{param.min_price}
- </if>
- <if test="param.max_price != null and param.max_price != '' ">
- AND floor.refer_price <![CDATA[<=]]> #{param.max_price}
- </if>
- <if test="param.min_floor_height != null and param.min_floor_height != '' ">
- AND floor.floor_height <![CDATA[>=]]> #{param.min_floor_height}
- </if>
- <if test="param.checkin_time != null and param.checkin_time != '' ">
- AND floor.checkin_time = #{param.checkin_time}
- </if>
- <if test="param.floor_count != null and param.floor_count != '' ">
- <if test="param.floor_count == 1 ">
- AND (SELECT COUNT(id) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) = 1
- </if>
- <if test="param.floor_count == 2 ">
- AND (SELECT COUNT(id) FROM ic_investment_floor floor WHERE floor.investment_id = info.id) <![CDATA[>]]>
- 1
- </if>
- </if>
- GROUP BY info.id
- <if test="param.order_by != null and param.order_by != '' ">
- <if test="param.order_by == 1 ">
- ORDER BY
- info.publish_time DESC
- </if>
- <if test="param.order_by == 2 ">
- ORDER BY
- info.read_count DESC
- </if>
- <if test="param.order_by == 3 ">
- ORDER BY
- info.total_area DESC
- </if>
- <if test="param.order_by == 4 ">
- ORDER BY
- MIN(floor.refer_price) ASC
- </if>
- <if test="param.order_by == null">
- ORDER BY
- ren.publish_time DESC
- </if>
- </if>
- </select>
- <select id="findByQuery" resultType="platform.modules.carrier.entity.InvestmentInfo"
- parameterType="platform.modules.carrier.dto.ApiQueryDto">
- SELECT
- invest.*,
- park.id park_id,
- park.name park_name,
- street.id street_id,
- street.name street_name,
- building.build_name building_name
- FROM
- ic_investment_info invest
- JOIN ic_building building ON building.id = invest.building_id
- JOIN ic_park park ON park.id = building.park_id
- JOIN s_street street ON street.id = park.street_id
- JOIN ic_investment_floor floor ON floor.investment_id = invest.id
- WHERE
- invest.del_flag != 1
- <if test="param.name != null and param.name != '' ">
- <if test="param.type != null and param.type != '' ">
- AND (park.name LIKE CONCAT('%',#{param.name},'%')
- OR build.build_name LIKE CONCAT('%',#{param.name},'%'))
- </if>
- </if>
- <if test="param.minArea != null and param.minArea != '' ">
- AND invest.total_area <![CDATA[>=]]> #{param.minArea}
- </if>
- <if test="param.maxArea != null and param.maxArea != '' ">
- AND invest.total_area <![CDATA[<=]]> #{param.maxArea}
- </if>
- <if test="param.rent != null and param.rent != '' ">
- </if>
- <if test="param.minPrice != null and param.minPrice != '' ">
- AND floor.price <![CDATA[>=]]> #{param.minPrice}
- </if>
- <if test="param.maxPrice != null and param.maxPrice != '' ">
- AND floor.price <![CDATA[<=]]> #{param.maxPrice}
- </if>
- <if test="param.streetId != null and param.streetId != '' ">
- </if>
- <if test="param.parkId != null and param.parkId != '' ">
- </if>
- GROUP BY
- invest.id
- </select>
- <select id="findParkSideByQuery" resultType="platform.modules.carrier.entity.InvestmentInfo"
- parameterType="platform.modules.carrier.dto.ApiQueryDto">
- SELECT
- invest.*,
- park.id park_id,
- park.name park_name,
- park.area,
- (
- select count(*) from ic_building building where building.park_id = park.id
- ) num
- FROM
- ic_park park
- JOIN ic_building building ON park.id = building.park_id
- JOIN ic_investment_info invest ON building.id = invest.building_id
- WHERE
- invest.del_flag != 1
- <if test="param.name != null and param.name != '' ">
- <if test="param.type != null and param.type != '' ">
- <if test="param.type == 1 ">
- AND park.name LIKE CONCAT('%',#{param.name},'%')
- </if>
- <if test="param.type == 2 ">
- AND build.build_name LIKE CONCAT('%',#{param.name},'%')
- </if>
- </if>
- </if>
- <if test="param.minArea != null and param.minArea != '' ">
- AND park.area <![CDATA[>=]]> #{param.minArea}
- </if>
- <if test="param.maxArea != null and param.maxArea != '' ">
- AND park.area <![CDATA[<=]]> #{param.maxArea}
- </if>
- <if test="param.rent != null and param.rent != '' ">
- </if>
- <if test="param.minPrice != null and param.minPrice != '' ">
- AND park.standard_rent <![CDATA[>=]]> #{param.minPrice}
- </if>
- <if test="param.maxPrice != null and param.maxPrice != '' ">
- AND park.standard_rent <![CDATA[<=]]> #{param.maxPrice}
- </if>
- <if test="param.streetId != null and param.streetId != '' ">
- AND park.street_id = #{param.streetId}
- </if>
- <if test="param.parkId != null and param.parkId != '' ">
- </if>
- </select>
- <select id="findBuildingSideByQuery" resultType="platform.modules.carrier.entity.InvestmentInfo"
- parameterType="platform.modules.carrier.dto.ApiQueryDto">
- SELECT
- invest.*,
- building.id building_id,
- building.build_name building_name,
- building.area,
- (
- select count(*) from ic_investment_floor floor
- join ic_investment_info info on info.id = floor.investment_id
- where info.building_id = building.id
- ) num
- FROM
- ic_building building
- JOIN ic_investment_info invest ON building.id = invest.building_id
- WHERE
- invest.del_flag != 1
- <if test="param.name != null and param.name != '' ">
- <if test="param.type != null and param.type != '' ">
- <if test="param.type == 1 ">
- AND park.name LIKE CONCAT('%',#{param.name},'%')
- </if>
- <if test="param.type == 2 ">
- AND build.build_name LIKE CONCAT('%',#{param.name},'%')
- </if>
- </if>
- </if>
- <if test="param.minArea != null and param.minArea != '' ">
- AND building.area <![CDATA[>=]]> #{param.minArea}
- </if>
- <if test="param.maxArea != null and param.maxArea != '' ">
- AND building.area <![CDATA[<=]]> #{param.maxArea}
- </if>
- <if test="param.rent != null and param.rent != '' ">
- </if>
- <if test="param.minPrice != null and param.minPrice != '' ">
- AND building.pay <![CDATA[>=]]> #{param.minPrice}
- </if>
- <if test="param.maxPrice != null and param.maxPrice != '' ">
- AND building.pay <![CDATA[<=]]> #{param.maxPrice}
- </if>
- <if test="param.streetId != null and param.streetId != '' ">
- </if>
- <if test="param.parkId != null and param.parkId != '' ">
- AND building.park_id = #{param.parkId}
- </if>
- </select>
- <select id="findInvestmentArea" resultType="java.lang.Double">
- SELECT
- SUM( total_area )
- FROM
- ic_investment_info
- WHERE
- del_flag = 0
- <if test="startTime != null and endTime != ''">
- AND create_time >= #{startTime}
- </if>
- <if test="startTime != null and endTime != ''">
- AND create_time <![CDATA[ <= ]]> #{endTime}
- </if>
- </select>
- <!--<select id="findEachParkInvestmentArea" resultType="platform.modules.carrier.entity.InvestmentDistribution">
- SELECT
- p.id,
- p.`name` AS parkName,
- IFNULL(SUM( ii.total_area ), 0) AS investmentArea,
- 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
- FROM
- ic_investment_info ii
- LEFT JOIN ic_building b ON b.id = ii.building_id
- LEFT JOIN ic_park p ON p.id = b.park_id
- WHERE
- ii.del_flag = 0
- GROUP BY
- p.id
- </select>-->
- <select id="findEachParkInvestmentArea" resultType="platform.modules.carrier.entity.InvestmentDistribution">
- SELECT
- s.id,
- s.`name` AS parkName,
- IFNULL( SUM( ii.total_area ), 0 ) AS investmentArea,
- IFNULL(
- (
- SELECT
- SUM( f.remain_area )
- FROM
- ic_park p
- LEFT JOIN ic_building b ON b.park_id = p.id
- LEFT JOIN y_floor f ON f.building_id = b.id
- WHERE
- p.del_flag = FALSE
- AND p.is_start = TRUE
- AND b.del_flag = FALSE
- AND b.is_use = TRUE
- AND f.del_flag = FALSE
- AND f.is_use = TRUE
- AND p.street_id = s.id
- ),
- 0
- ) AS emptyBuildingArea
- FROM
- ic_investment_info ii
- LEFT JOIN ic_building b ON b.id = ii.building_id
- LEFT JOIN ic_park p ON p.id = b.park_id
- RIGHT JOIN s_street s ON s.id = p.street_id
- WHERE
- ii.del_flag = 0
- GROUP BY
- s.id
- </select>
- </mapper>
|