Files
smart_venue/service/src/main/resources/mybatis/mapper/sv/VenueMapper.xml
2023-12-06 10:00:43 +08:00

681 lines
21 KiB
XML

<?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.sv.mapper.VenueMapper">
<resultMap id="VenueMap" type="com.sv.entity.Venue">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="name" property="name"/>
<result column="address" property="address"/>
<result column="longitude" property="longitude"/>
<result column="latitude" property="latitude"/>
<result column="type" property="type"/>
<result column="list_image" property="listImage"/>
<result column="business_time" property="businessTime"/>
<result column="business_start_time" property="businessStartTime"></result>
<result column="business_end_time" property="businessEndTime"></result>
<result column="business_start_date" property="businessStartDate"></result>
<result column="business_end_date" property="businessEndDate"></result>
<result column="price" property="price"/>
<result column="contact" property="contact"/>
<result column="phone" property="phone"/>
<result column="status" property="status"></result>
<result column="description" property="description"/>
<result column="platform_id" property="platformId"/>
<result column="card_content" property="cardContent"/>
<result column="created_id" property="createdId"/>
<result column="modified_id" property="modifiedId"/>
<result column="created_time" property="createdTime"/>
<result column="modified_time" property="modifiedTime"/>
<result column="code_url" property="codeUrl"></result>
<result column="deleted" property="deleted"/>
<result column="limit_day" property="limitDay"/>
<result column="limit_week" property="limitWeek"/>
<result column="limit_no_day" property="limitNoDay"/>
<result column="limit_no_week" property="limitNoWeek"/>
<result column="copy_week" property="copyWeek"/>
<result column="copy_time" property="copyTime"/>
<result column="copy_target" property="copyTarget"/>
<result column="copy_control" property="copyControl"/>
<result column="pay_style" property="payStyle"/>
<result column="time_pay_hour" property="timePayHour"/>
</resultMap>
<resultMap id="VenueDtoMap" type="com.sv.dto.api.VenueDTO">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="name" property="name"/>
<result column="address" property="address"/>
<result column="longitude" property="longitude"/>
<result column="latitude" property="latitude"/>
<result column="type" property="type"/>
<result column="list_image" property="listImage"/>
<result column="business_time" property="businessTime"/>
<result column="price" property="price"/>
<result column="contact" property="contact"/>
<result column="phone" property="phone"/>
<result column="description" property="description"/>
<result column="platform_id" property="platformId"/>
<result column="card_content" property="cardContent"/>
<result column="created_id" property="createdId"/>
<result column="modified_id" property="modifiedId"/>
<result column="created_time" property="createdTime"/>
<result column="modified_time" property="modifiedTime"/>
<result column="deleted" property="deleted"/>
<result column="status" property="status"/>
<result column="limit_day" property="limitDay"/>
<result column="limit_week" property="limitWeek"/>
<result column="limit_no_day" property="limitNoDay"/>
<result column="limit_no_week" property="limitNoWeek"/>
<result column="copy_week" property="copyWeek"/>
<result column="copy_time" property="copyTime"/>
<result column="copy_target" property="copyTarget"/>
<result column="copy_control" property="copyControl"/>
<result column="pay_style" property="payStyle"/>
<result column="time_pay_hour" property="timePayHour"/>
<result column="code_url" property="codeUrl"></result>
<association property="cards" select="com.sv.mapper.VenueCardMapper.findByVenueId"
column="{venueId = id,venueType=type}"></association>
<association property="images" select="com.sv.mapper.VenueImageMapper.findByVenueId"
column="{venueId = id,venueType=type}"></association>
<association property="venuePriceList" select="com.sv.mapper.VenuePriceMapper.findByVenueId"
column="{venueId = id,venueType=type}"></association>
</resultMap>
<resultMap id="MemberCardVenueDtoMap" type="com.sv.dto.api.MemberCardVenuesDTO" extends="VenueMap">
<result column="memberId" property="memberId" jdbcType="INTEGER"></result>
<association property="memberCards" select="com.sv.mapper.MemberCardMapper.findAllCards"
column="{memberId=memberId,venueId = id}"></association>
</resultMap>
<resultMap id="VenuesDTOMap" type="com.sv.dto.api.VenueDTO" extends="VenueMap">
</resultMap>
<!--表名 -->
<resultMap id="VenueOMSDTOMap" type="com.sv.dto.oms.VenueOmsDTO" extends="VenueMap">
<collection property="images" select="findImagesById" column="id"></collection>
</resultMap>
<!--表名 -->
<sql id="tableName">
sv_venue
</sql>
<!-- 字段 -->
<sql id="Field">
id,
number,
name,
address,
longitude,
latitude,
type,
status,
list_image,
business_time,
business_start_time,
business_end_time,
business_start_date,
business_end_date,
price,
contact,
phone,
description,
platform_id,
card_content,
created_id,
modified_id,
created_time,
modified_time,
code_url,
deleted,
limit_day,
limit_week,
limit_no_day,
limit_no_week,
copy_week,
copy_time,
copy_target,
copy_control,
pay_style,
time_pay_hour
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{id, jdbcType=INTEGER},
#{name, jdbcType=VARCHAR},
#{address, jdbcType=VARCHAR},
#{longitude, jdbcType=VARCHAR},
#{latitude, jdbcType=VARCHAR},
#{type, jdbcType=TINYINT},
#{listImage, jdbcType=VARCHAR},
#{businessTime, jdbcType=VARCHAR},
#{price, jdbcType=DECIMAL},
#{contact, jdbcType=VARCHAR},
#{phone, jdbcType=VARCHAR},
#{description, jdbcType=LONGTEXT},
#{platformId, jdbcType=INTEGER},
#{cardContent, jdbcType=INTEGER},
#{createdId, jdbcType=INTEGER},
#{modifiedId, jdbcType=INTEGER},
#{createdTime, jdbcType=TIMESTAMP},
#{modifiedTime, jdbcType=TIMESTAMP},
#{deleted, jdbcType=TINYINT},
#{limit_day, jdbcType=TINYINT},
#{limit_week, jdbcType=TINYINT},
#{limit_no_day, jdbcType=TINYINT},
#{limit_no_week, jdbcType=TINYINT},
#{copy_week, jdbcType=TINYINT},
#{copy_time, jdbcType=TIMESTAMP},
#{copy_target, jdbcType=TINYINT},
#{copy_control, jdbcType=TINYINT}
#{pay_style, jdbcType=TINYINT}
#{time_pay_hour, jdbcType=TINYINT}
</sql>
<!-- 查询全部记录 -->
<select id="findAll" resultMap="VenueMap">
SELECT
<include refid="Field"></include>
FROM
<include refid="tableName"></include>
WHERE
deleted = 0
</select>
<!-- 查询全部记录 -->
<select id="findAlls" resultMap="VenueMap">
SELECT
<include refid="Field"></include>
FROM
<include refid="tableName"></include>
WHERE
deleted = 0
AND status = 0
</select>
<!-- api查询全部记录 -->
<select id="findAllVenues" resultMap="VenuesDTOMap">
SELECT
id,
list_image,
`name`,
address,
longitude,
latitude
FROM
sv_venue
WHERE
`type` = #{type}
<if test="geohash != null">
AND geo_hash LIKE CONCAT(#{geohash, jdbcType=VARCHAR}, '%')
</if>
AND deleted = 0
AND `status` = 0
</select>
<!-- 新增-->
<insert id="insert" parameterType="com.sv.entity.Venue" useGeneratedKeys="true" keyProperty="id">
INSERT INTO
<include refid="tableName"></include>
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="name != null">
name,
</if>
<if test="address != null">
address,
</if>
<if test="longitude != null">
longitude,
</if>
<if test="latitude != null">
latitude,
</if>
<if test="type != null">
type,
</if>
<if test="listImage != null">
list_image,
</if>
<if test="businessTime != null">
business_time,
</if>
<if test="price != null">
price,
</if>
<if test="contact != null">
contact,
</if>
<if test="phone != null">
phone,
</if>
<if test="description != null">
description,
</if>
<if test="geoHash != null">
geo_hash,
</if>
<if test="platformId != null">
platform_id,
</if>
<if test="cardContent != null">
card_content,
</if>
<if test="businessStartTime != null">
business_start_time ,
</if>
<if test="businessEndTime != null">
business_end_time,
</if>
<if test="businessStartDate != null">
business_start_date ,
</if>
<if test="businessEndDate != null">
business_end_date,
</if>
<if test="createdId != null">
created_id,
</if>
<if test="modifiedId != null">
modified_id,
</if>
<if test="createdTime != null">
created_time,
</if>
<if test="modifiedTime != null">
modified_time,
</if>
<if test="deleted != null">
deleted,
</if>
<if test="limitDay != null">
limit_day,
</if>
<if test="limitWeek != null">
limit_week,
</if>
<if test="limitNoDay != null">
limit_no_day,
</if>
<if test="limitNoWeek != null">
limit_no_week,
</if>
<if test="copyWeek != null">
copy_week,
</if>
<if test="copyTime != null">
copy_time,
</if>
<if test="copyTarget != null">
copy_target,
</if>
<if test="copyControl != null">
copy_control,
</if>
<if test="payStyle != null">
pay_style,
</if>
<if test="timePayHour != null">
time_pay_hour,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id},
</if>
<if test="name != null">
#{name},
</if>
<if test="address != null">
#{address},
</if>
<if test="longitude != null">
#{longitude},
</if>
<if test="latitude != null">
#{latitude},
</if>
<if test="type != null">
#{type},
</if>
<if test="listImage != null">
#{listImage},
</if>
<if test="businessTime != null">
#{businessTime},
</if>
<if test="price != null">
#{price},
</if>
<if test="contact != null">
#{contact},
</if>
<if test="phone != null">
#{phone},
</if>
<if test="description != null">
#{description},
</if>
<if test="geoHash != null">
#{geoHash},
</if>
<if test="platformId != null">
#{platformId},
</if>
<if test="cardContent != null">
#{cardContent},
</if>
<if test="businessStartTime != null">
#{businessStartTime} ,
</if>
<if test="businessEndTime != null">
#{businessEndTime},
</if>
<if test="businessStartDate != null">
#{businessStartDate} ,
</if>
<if test="businessEndDate != null">
#{businessEndDate},
</if>
<if test="createdId != null">
#{createdId},
</if>
<if test="modifiedId != null">
#{modifiedId},
</if>
<if test="createdTime != null">
#{createdTime},
</if>
<if test="modifiedTime != null">
#{modifiedTime},
</if>
<if test="deleted != null">
#{deleted},
</if>
<if test="limitDay != null">
#{limitDay},
</if>
<if test="limitWeek != null">
#{limitWeek},
</if>
<if test="limitNoDay != null">
#{limitNoDay},
</if>
<if test="limitNoWeek != null">
#{limitNoWeek},
</if>
<if test="copyWeek != null">
#{copyWeek},
</if>
<if test="copyTime != null">
#{copyTime},
</if>
<if test="copyTarget != null">
#{copyTarget},
</if>
<if test="copyControl != null">
#{copyControl},
</if>
<if test="payStyle != null">
#{payStyle},
</if>
<if test="timePayHour != null">
#{timePayHour},
</if>
</trim>
</insert>
<!-- 删除-->
<delete id="delete" parameterType="java.lang.Integer">
UPDATE
<include refid="tableName"></include>
SET
deleted = 1
WHERE
id = #{id}
</delete>
<!-- 批量删除 -->
<delete id="deleteByIds">
UPDATE
<include refid="tableName"></include>
SET
deleted = 1
WHERE
id IN
<foreach item="item" index="index" collection="array" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 更新记录 -->
<update id="update" parameterType="com.sv.entity.Venue">
UPDATE
<include refid="tableName"></include>
<set>
<if test="name != null">
name = #{name},
</if>
<if test="address != null">
address = #{address},
</if>
<if test="longitude != null">
longitude = #{longitude},
</if>
<if test="latitude != null">
latitude = #{latitude},
</if>
<if test="type != null">
type = #{type},
</if>
<if test="listImage != null">
list_image = #{listImage},
</if>
<if test="businessTime != null">
business_time = #{businessTime},
</if>
<if test="businessStartTime != null">
business_start_time = #{businessStartTime},
</if>
<if test="businessEndTime != null">
business_end_time = #{businessEndTime},
</if>
<if test="businessStartDate != null">
business_start_date = #{businessStartDate},
</if>
<if test="businessEndDate != null">
business_end_date = #{businessEndDate},
</if>
<if test="price != null">
price = #{price},
</if>
<if test="contact != null">
contact = #{contact},
</if>
<if test="phone != null">
phone = #{phone},
</if>
<if test="description != null">
description = #{description},
</if>
<if test="geoHash != null">
geo_hash = #{geoHash},
</if>
<if test="platformId != null">
platform_id = #{platformId},
</if>
<if test="cardContent != null">
card_content = #{cardContent},
</if>
<if test="createdId != null">
created_id = #{createdId},
</if>
<if test="modifiedId != null">
modified_id = #{modifiedId},
</if>
<if test="createdTime != null">
created_time = #{createdTime},
</if>
<if test="modifiedTime != null">
modified_time = #{modifiedTime},
</if>
<if test="deleted != null">
deleted = #{deleted},
</if>
<if test="codeUrl != null">
code_url = #{codeUrl},
</if>
<if test="limitDay != null">
limit_day = #{limitDay},
</if>
<if test="limitWeek != null">
limit_week = #{limitWeek},
</if>
<if test="limitNoDay != null">
limit_no_day = #{limitNoDay},
</if>
<if test="limitNoWeek != null">
limit_no_week = #{limitNoWeek},
</if>
<if test="copyWeek != null">
copy_week = #{copyWeek},
</if>
<if test="copyTime != null">
copy_time = #{copyTime},
</if>
<if test="copyTarget != null">
copy_target = #{copyTarget},
</if>
<if test="copyControl != null">
copy_control = #{copyControl},
</if>
<if test="payStyle != null">
pay_style = #{payStyle},
</if>
<if test="timePayHour != null">
time_pay_hour = #{timePayHour},
</if>
</set>
WHERE id = #{id}
</update>
<!-- 通过编号查询 -->
<select id="findById" parameterType="java.lang.Integer" resultMap="VenueMap">
SELECT
<include refid="Field"></include>
FROM
<include refid="tableName"></include>
WHERE id = #{id} and deleted = 0
</select>
<select id="findOmsDTOById" parameterType="java.lang.Integer" resultMap="VenueOMSDTOMap">
SELECT
<include refid="Field"></include>
FROM
<include refid="tableName"></include>
WHERE id = #{id}
</select>
<!-- api 通过编号查询 -->
<select id="findByVenueId" parameterType="java.lang.Integer" resultMap="VenueDtoMap">
SELECT
id,
`name`,
address,
`type`,
business_time,
price,
contact,
phone,
description,
longitude,
latitude,
card_content,
limit_day,
limit_week,
limit_no_day,
limit_no_week,
copy_week,
copy_time,
copy_target,
copy_control,
status,
pay_style,
time_pay_hour
FROM
sv_venue
WHERE
id = #{id}
AND deleted = 0
</select>
<select id="findImagesById" resultType="java.lang.String">
SELECT url from sv_venue_image
where venue_id = #{id} and deleted = 0
</select>
<!-- api 查询我的会员卡 -->
<select id="findByMemberCard" resultMap="MemberCardVenueDtoMap">
SELECT
ve.`name`,
ve.id,
ve.card_content,
sc.member_id AS memberId,
ve.card_content as cardContent
FROM
sv_member_card AS sc
JOIN sv_venue AS ve ON sc.venue_id = ve.id
AND ve.platform_id = #{platformId}
AND sc.member_id = #{memberId}
AND sc.deleted = 0
GROUP BY ve.id
</select>
<update id="updateStatus">
UPDATE sv_venue
SET status = #{status}
where id = #{id}
</update>
<!-- api 查询地址-->
<select id="findAddress" resultMap="VenueMap">
SELECT
address,
name,
longitude,
latitude
from sv_venue WHERE id = #{id}
</select>
<select id="findByType" resultMap="VenueMap">
SELECT * from sv_venue
WHERE type = #{venueType} and deleted = 0
</select>
<select id="countByMember" resultType="java.lang.Integer">
select count(0) from sv_venue_member where member_id = #{memberId} and venue_id = #{venueId}
</select>
<update id="addNumber">
update sv_venue set number = number + #{number} where id = #{venueId}
</update>
<update id="updateNumber">
update sv_venue set number = #{number} where id = #{venueId}
</update>
<insert id="addMember">
INSERT INTO sv_venue_member (`member_id`, `venue_id`) VALUES (#{memberId},#{venueId})
</insert>
<delete id="deleteMember">
delete from sv_venue_member where member_id = #{memberId} and venue_id = #{venueId}
</delete>
</mapper>