package com.ylx.massage.mapper; import java.time.LocalDateTime; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ylx.massage.domain.vo.CouponReceiveVo; import org.apache.ibatis.annotations.Param; import com.ylx.massage.domain.CouponReceive; import org.apache.ibatis.annotations.Select; /** * 优惠券领取表(CouponReceive)表数据库访问层 * * @author makejava * @since 2024-05-14 11:25:44 */ public interface CouponReceiveMapper extends BaseMapper { /** * 批量新增数据(MyBatis原生foreach方法) * * @param entities List 实例对象列表 * @return 影响行数 */ int insertBatch(@Param("entities") List entities); /** * 批量新增或按主键更新数据(MyBatis原生foreach方法) * * @param entities List 实例对象列表 * @return 影响行数 * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 */ int insertOrUpdateBatch(@Param("entities") List entities); List getByOpenId(String openid); Map selectCouponDetailForCalc(@Param("couponId") String couponId, @Param("openId") String openId); // 乐观锁核销 int useCouponOptimisticLock(@Param("couponId") String couponId, @Param("openId") String openId, @Param("orderId") Long orderId, @Param("orderType") Integer orderType, @Param("useTime") LocalDateTime useTime); // 使用数量 +1 int incrementUsedNum(@Param("couponId") String couponId); // 乐观锁退还 int returnCouponOptimisticLock(@Param("couponId") String couponId, @Param("openId") String openId, @Param("orderId") Long orderId); // 使用数量 -1 int decrementUsedNum(@Param("couponId") String couponId); }