package com.tourguide.modules.user.mapper;
|
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.tourguide.modules.user.entity.GuideTeam;
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Update;
|
import java.math.BigDecimal;
|
|
public interface GuideTeamMapper extends BaseMapper<GuideTeam> {
|
@Update("UPDATE guide_team SET balance = balance + #{amount}, updated_at = NOW() " +
|
"WHERE id = #{teamId} AND deleted = 0")
|
int increaseBalance(@Param("teamId") Long teamId, @Param("amount") BigDecimal amount);
|
|
@Update("UPDATE guide_team SET balance = balance - #{amount}, updated_at = NOW() " +
|
"WHERE id = #{teamId} AND deleted = 0 AND balance >= #{amount}")
|
int decreaseBalance(@Param("teamId") Long teamId, @Param("amount") BigDecimal amount);
|
|
@Update("UPDATE guide_team SET balance = GREATEST(balance - #{amount}, 0), updated_at = NOW() " +
|
"WHERE id = #{teamId} AND deleted = 0")
|
int decreaseBalanceForRefund(@Param("teamId") Long teamId, @Param("amount") BigDecimal amount);
|
}
|