1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?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.chelvc.cloud.vehicle.server.dao.FavoriteMapper">
- <resultMap id="FAVORITE_RESULT_MAP" type="com.chelvc.cloud.vehicle.server.entity.Favorite">
- <id column="id" property="id" jdbcType="BIGINT"/>
- <result column="user_id" property="userId" jdbcType="BIGINT"/>
- <result column="type" property="type" jdbcType="VARCHAR"/>
- <result column="content_id" property="contentId" jdbcType="BIGINT"/>
- <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
- <association property="merchant" javaType="com.chelvc.cloud.vehicle.api.dto.MerchantDTO">
- <id column="merchant_id" property="id" jdbcType="BIGINT"/>
- <result column="name" property="name" jdbcType="VARCHAR"/>
- <result column="logo" property="logo" jdbcType="VARCHAR"/>
- <result column="score" property="score" jdbcType="DOUBLE"/>
- <result column="sale" property="sale" jdbcType="INTEGER"/>
- <result column="address" property="address" jdbcType="VARCHAR"/>
- <result column="distance" property="distance" jdbcType="DOUBLE"/>
- </association>
- </resultMap>
- <insert id="saveFavorite" useGeneratedKeys="true" keyProperty="id">
- insert into `favorite`(user_id, type, content_id, create_time)
- values(#{userId}, #{type}, #{contentId}, #{createTime})
- </insert>
- <select id="listFavoriteMerchants" resultMap="FAVORITE_RESULT_MAP">
- select fe.id,fe.content_id,mt.id as merchant_id, mt.name, mt.logo, mt.score, mt.sale, mt.address,
- round(st_distance_sphere(
- point(mt.longitude, mt.latitude), point(#{param.longitude}, #{param.latitude})
- ),1) distance from favorite fe
- inner join merchant mt on fe.content_id = mt.id and mt.status = 'ONLINE'
- and mt.region = #{param.region}
- where fe.user_id = #{userId} and fe.type = 'MERCHANT'
- <if test="param.offset != null">
- and fe.id > #{param.offset}
- </if>
- order by fe.create_time desc
- limit #{param.size}
- </select>
- </mapper>
|