liujie
2026-08-21 77649c76ec1c3afcb93e9963243d637665b3a307
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")