From 77649c76ec1c3afcb93e9963243d637665b3a307 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 21 八月 2026 16:56:28 +0800
Subject: [PATCH] update
---
backend/src/main/java/com/tourguide/modules/user/mapper/GuideUserMapper.java | 15 ++++++++++++++-
1 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/backend/src/main/java/com/tourguide/modules/user/mapper/GuideUserMapper.java b/backend/src/main/java/com/tourguide/modules/user/mapper/GuideUserMapper.java
index cdcbeaa..3f18848 100644
--- a/backend/src/main/java/com/tourguide/modules/user/mapper/GuideUserMapper.java
+++ b/backend/src/main/java/com/tourguide/modules/user/mapper/GuideUserMapper.java
@@ -3,11 +3,23 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tourguide.modules.user.entity.GuideUser;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal;
public interface GuideUserMapper extends BaseMapper<GuideUser> {
+ @Select("SELECT COALESCE(balance, 0) FROM guide_user WHERE id = #{guideId} AND deleted = 0")
+ BigDecimal selectBalance(@Param("guideId") Long guideId);
+
+ @Update("UPDATE guide_user SET balance = balance + #{amount}, updated_at = NOW() " +
+ "WHERE id = #{guideId} AND deleted = 0")
+ int increaseBalance(@Param("guideId") Long guideId, @Param("amount") BigDecimal amount);
+
+ @Update("UPDATE guide_user SET balance = balance - #{amount}, updated_at = NOW() " +
+ "WHERE id = #{guideId} AND deleted = 0 AND balance >= #{amount}")
+ int decreaseBalance(@Param("guideId") Long guideId, @Param("amount") BigDecimal amount);
+
@Update("UPDATE guide_user SET accepted_order_count = accepted_order_count + 1, " +
"current_month_order_count = current_month_order_count + 1, updated_at = NOW() " +
"WHERE id = #{guideId} AND deleted = 0 AND status = 1")
@@ -15,7 +27,8 @@
@Update("UPDATE guide_user SET status = 0, updated_at = NOW() " +
"WHERE id = #{guideId} AND deleted = 0 AND status = 1 " +
- "AND auto_disable_whitelisted = 0 AND accepted_order_count >= #{orderThreshold} " +
+ "AND COALESCE(auto_disable_whitelisted, 0) = 0 " +
+ "AND accepted_order_count >= #{orderThreshold} " +
"AND rating > 0 AND rating <= #{ratingThreshold}")
int autoDisableIfEligible(@Param("guideId") Long guideId,
@Param("orderThreshold") Integer orderThreshold,
--
Gitblit v1.7.1