refactor: 清理代码、优化结构

- 移除订阅消息相关代码(WxSubscribeMessageService、subscribeTemplateId配置)
- 提取Result类为独立公共类(common.Result)
- 拆分Controller: WxLoginController(登录) + AppointmentController(预约)
- 引入Lombok(@Data/@Slf4j/@RequiredArgsConstructor)消除样板代码
- 修正WxLoginResult字段命名(session_key->sessionKey+@JsonProperty)
- MySQL驱动升级mysql-connector-java->mysql-connector-j
- updateStatus SQL增加status='pending'校验防并发重复审批
- pom.xml配置spring-boot-maven-plugin排除lombok
This commit is contained in:
ws
2026-04-21 18:12:30 +08:00
parent ea1b13f054
commit d7da7d46a1
11 changed files with 353 additions and 272 deletions
@@ -18,16 +18,60 @@
<result column="create_time" property="createTime"/>
</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
</sql>
<select id="selectLatestByOpenid" resultMap="BaseResultMap">
SELECT 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
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)
VALUES (#{id}, #{name}, #{phone}, #{company}, #{reason},
#{visitDate}, #{visitTime}, #{hostName}, #{area},
#{status}, #{statusText}, #{openid}, NOW())
</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>
</mapper>