feat: 改为移动端用户一键签到

This commit is contained in:
2026-07-24 10:17:59 +08:00
parent 1758dd9cfa
commit a7e9d911db
14 changed files with 421 additions and 262 deletions

View File

@@ -0,0 +1,90 @@
<?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.ruoyi.cms.mapper.OutdoorFairAttendeeMapper">
<resultMap id="OutdoorFairAttendeeResult"
type="com.ruoyi.cms.domain.OutdoorFairAttendee">
<id property="id" column="id"/>
<result property="fairId" column="fair_id"/>
<result property="userId" column="user_id"/>
<result property="name" column="name"/>
<result property="phone" column="phone"/>
<result property="address" column="address"/>
<result property="checkInTime" column="check_in_time"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
<resultMap id="OutdoorFairAttendeeUserOptionResult"
type="com.ruoyi.cms.domain.vo.OutdoorFairAttendeeUserOption">
<result property="userId" column="user_id"/>
<result property="name" column="name"/>
<result property="phone" column="phone"/>
<result property="address" column="address"/>
</resultMap>
<select id="selectAttendeeList"
parameterType="com.ruoyi.cms.domain.OutdoorFairAttendee"
resultMap="OutdoorFairAttendeeResult">
SELECT a.id,
a.fair_id,
a.user_id,
COALESCE(NULLIF(u.name, ''), a.name) AS name,
COALESCE(NULLIF(u.phone, ''), a.phone) AS phone,
COALESCE(NULLIF(u.address, ''), NULLIF(u.domicile_address, ''), a.address) AS address,
a.check_in_time,
a.create_by,
a.create_time,
a.update_by,
a.update_time,
a.remark,
a.del_flag
FROM shz.cms_outdoor_fair_attendee a
LEFT JOIN app_user u ON u.user_id = a.user_id AND u.del_flag = '0'
<where>
a.del_flag = '0'
<if test="query != null and query.fairId != null">
AND a.fair_id = #{query.fairId}
</if>
<if test="query != null and query.name != null and query.name != ''">
AND COALESCE(NULLIF(u.name, ''), a.name) LIKE CONCAT('%', CAST(#{query.name} AS VARCHAR), '%')
</if>
<if test="query != null and query.phone != null and query.phone != ''">
AND COALESCE(NULLIF(u.phone, ''), a.phone) LIKE CONCAT('%', CAST(#{query.phone} AS VARCHAR), '%')
</if>
</where>
ORDER BY a.check_in_time DESC, a.id DESC
</select>
<select id="selectAvailableUserOptions"
resultMap="OutdoorFairAttendeeUserOptionResult">
SELECT u.user_id,
u.name,
u.phone,
COALESCE(u.address, u.domicile_address) AS address
FROM app_user u
WHERE u.del_flag = '0'
AND u.is_company_user = '1'
AND NULLIF(u.name, '') IS NOT NULL
AND NOT EXISTS (
SELECT 1
FROM shz.cms_outdoor_fair_attendee a
WHERE a.fair_id = #{fairId}
AND a.user_id = u.user_id
AND a.del_flag = '0'
)
<if test="keyword != null and keyword != ''">
AND (
u.name LIKE CONCAT('%', CAST(#{keyword} AS VARCHAR), '%')
OR u.phone LIKE CONCAT('%', CAST(#{keyword} AS VARCHAR), '%')
)
</if>
ORDER BY u.name ASC NULLS LAST, u.user_id ASC
</select>
</mapper>