Files
minispringboot/src/main/resources/mapper/VisitApplicationMapper.xml
T
2026-04-22 18:32:34 +08:00

86 lines
3.2 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.example.mini_program.mapper.VisitApplicationMapper">
<resultMap id="BaseResultMap" type="com.example.mini_program.entity.VisitApplication">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="phone" property="phone"/>
<result column="company" property="company"/>
<result column="reason" property="reason"/>
<result column="visit_date" property="visitDate"/>
<result column="visit_time" property="visitTime"/>
<result column="host_name" property="hostName"/>
<result column="area" property="area"/>
<result column="status" property="status"/>
<result column="status_text" property="statusText"/>
<result column="openid" property="openid"/>
<result column="create_time" property="createTime"/>
<result column="sp_no" property="spNo"/>
</resultMap>
<sql id="Base_Column_List">
id, name, phone, company, reason,
DATE_FORMAT(visit_date, '%Y-%m-%d') AS visit_date,
DATE_FORMAT(visit_time, '%H:%i') AS visit_time,
host_name, area, status, status_text, openid,
DATE_FORMAT(create_time, '%Y-%m-%dT%H:%i:%s.000+00:00') AS create_time,
sp_no
</sql>
<select id="selectLatestByOpenid" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM visit_application
WHERE openid = #{openid}
ORDER BY create_time DESC
LIMIT 1
</select>
<select id="selectListByOpenid" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM visit_application
WHERE openid = #{openid}
ORDER BY create_time DESC
</select>
<select id="selectByIdAndOpenid" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM visit_application
WHERE id = #{id} AND openid = #{openid}
</select>
<insert id="insert">
INSERT INTO visit_application (id, name, phone, company, reason,
visit_date, visit_time, host_name, area,
status, status_text, openid, create_time, sp_no)
VALUES (#{id}, #{name}, #{phone}, #{company}, #{reason},
#{visitDate}, #{visitTime}, #{hostName}, #{area},
#{status}, #{statusText}, #{openid}, NOW(), #{spNo})
</insert>
<update id="updateStatusToCancelled">
UPDATE visit_application
SET status = 'cancelled', status_text = '已取消'
WHERE id = #{id} AND openid = #{openid} AND status = 'pending'
</update>
<select id="selectById" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/>
FROM visit_application
WHERE id = #{id}
</select>
<update id="updateStatus">
UPDATE visit_application
SET status = #{status}, status_text = #{statusText}
WHERE id = #{id} AND status = 'pending'
</update>
<update id="updateStatusBySpNo">
UPDATE visit_application
SET status = #{status}, status_text = #{statusText}
WHERE sp_no = #{spNo} AND status = 'pending'
</update>
</mapper>