feat: 移植工程

This commit is contained in:
2025-06-10 09:54:52 +08:00
commit a2de21b092
277 changed files with 11116 additions and 0 deletions

View File

@@ -0,0 +1,138 @@
<?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="com.cxx.home.dao.TravelDao">
<resultMap id="travelSpotResultMap" type="com.cxx.home.dto.travel.TravelSpotDto">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="area" column="area"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
<result property="price" column="price"/>
<result property="address" column="address"/>
<result property="recommendRate" column="recommendRate"/>
<result property="traffic" column="traffic"/>
<result property="router" column="router"/>
<result property="foods" column="foods"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
<result property="projects" column="projects"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
<result property="remark" column="remark"/>
<collection property="recordList" ofType="com.cxx.home.dto.travel.TravelRecordDto"
column="id" select="queryTravelRecordById">
</collection>
</resultMap>
<resultMap id="travelSummaryResultMap" type="com.cxx.home.dto.travel.TravelSummaryDto">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="area" column="area"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
<result property="recommendRate" column="recommendRate"/>
<collection property="recordList" ofType="com.cxx.home.dto.travel.TravelRecordDto"
column="id" select="queryTravelRecordById">
</collection>
</resultMap>
<resultMap id="travelRecordResultMap" type="com.cxx.home.dto.travel.TravelRecordDto">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="area" column="area"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
<result property="date" column="date"/>
<result property="persons" column="persons"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
<collection property="imageList" ofType="java.lang.String"
column="id" select="queryRecordImage"/>
<collection property="videoList" ofType="java.lang.String"
column="id" select="queryRecordVideo"/>
</resultMap>
<select id="queryRecordImage" resultType="java.lang.String">
SELECT image_url AS imageUrl
FROM travel_image
WHERE record_id = #{id}
</select>
<select id="queryRecordVideo" resultType="java.lang.String">
SELECT video_url AS videoUrl
FROM travel_video
WHERE record_id = #{id}
</select>
<select id="queryTravelRecordById" resultMap="travelRecordResultMap">
SELECT id AS id,
date AS date,
persons AS persons
FROM travel_record
WHERE travel_id = #{id}
ORDER BY date DESC
</select>
<select id="queryTravelRecord" resultMap="travelRecordResultMap">
SELECT a.id AS id,
b.name AS name,
b.area AS area,
a.date AS date,
a.persons AS persons
FROM travel_record AS a
LEFT JOIN travel_spot AS b ON a.travel_id = b.id
WHERE a.date <![CDATA[ >=]]> STR_TO_DATE(#{startDate}, '%Y-%m-%d')
AND a.date <![CDATA[ <=]]> STR_TO_DATE(#{endDate}, '%Y-%m-%d')
ORDER BY date DESC
</select>
<select id="queryTravelSpot" resultMap="travelSpotResultMap">
SELECT a.id AS id,
a.name AS name,
a.area AS area,
a.address AS address,
a.price AS price,
a.recommend_rate AS recommendRate,
a.traffic AS traffic,
a.router AS router,
a.foods AS foods,
a.projects AS projects,
a.remark AS remake
FROM travel_spot a
WHERE a.id = #{id}
</select>
<select id="queryTravelSummary" resultMap="travelSummaryResultMap">
SELECT a.id AS id,
a.name AS name,
a.area AS area,
a.recommend_rate AS recommendRate
FROM travel_spot a
<where>
<if test="query.category != null and query.category != ''">
a.city = #{query.category}
</if>
</where>
</select>
<select id="queryTravelStats" resultType="com.cxx.home.dto.travel.TravelStatsDto">
SELECT COUNT(DISTINCT a.name) AS spotCount,
COUNT(DISTINCT a.area) AS cityCount,
COUNT(b.id) AS recordCount
FROM travel_spot a
LEFT JOIN travel_record b ON a.id = b.travel_id
</select>
<select id="queryTravelCategory" resultType="string">
SELECT DISTINCT a.city AS city
FROM travel_spot a
</select>
<insert id="insertTravelImage">
INSERT INTO travel_image (record_id, image_url) VALUES
<foreach collection="list" item="item" separator=",">
(#{recordId}, #{item})
</foreach>
</insert>
<insert id="insertTravelVideo">
INSERT INTO travel_video (record_id, video_url) VALUES
<foreach collection="list" item="item" separator=",">
(#{recordId}, #{item})
</foreach>
</insert>
</mapper>