package vvpkassistant.User.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.apache.ibatis.annotations.Mapper; import vvpkassistant.User.model.UserModel; @Mapper public interface UserDao extends BaseMapper { // 原子扣减积分:当 points >= cost 时扣减,返回受影响行数(1=成功,0=积分不足/用户不存在) default int decreasePointsIfEnough(Integer userId, int cost) { return update(null, Wrappers.lambdaUpdate() .eq(UserModel::getId, userId) .ge(UserModel::getPoints, cost) .setSql("points = points - " + cost)); } // 原子增加积分:返回受影响行数(1=成功,0=用户不存在) default int increasePoints(Integer userId, int amount) { return update(null, Wrappers.lambdaUpdate() .eq(UserModel::getId, userId) .setSql("points = points + " + amount)); } // 根据用户的手机号查询用户 default UserModel queryWithPhoneNumber(String phoneNumber) { return selectOne(Wrappers.lambdaQuery() .eq(UserModel::getMobile, phoneNumber)); } }