红包的mapper类
@Select("select * from send_rea_package where id=#{id}")
public Send getRedPackage(Integer id);
/**
* stock>0这个条件是为了解决最后一个红包被多次
* @param send
*/
//@Update("update send_rea_package set total_money=#{totalMoney},total=#{total},stock=#{stock},stock_money=#{stockMoney} where id=#{id}")
@Update("update send_rea_package set stock=stock-1,stock_money=stock_money-2 where id=#{id} and stock>0")
public int update(Send send);
用户mapper类
public interface ReceiveRedPackageMapper {
@Insert("insert into receive_red_package(user_id,red_package_id,money,create_time,remark) values(#{userId},#{redPackageId},#{money},now(),#{remark})")
public int add(Receive receive);
@Select("select * from receive_red_package where user_id=#{userId} and red_package_id=#{redPackageId}")
public Receive getRedPackage(@Param("userId") Integer userId,@Param("redPackageId") Integer redPackageId);
}
业务类一
@Autowired(required = false)
ReceiveMapper receiveMapper;
@Autowired(required = false)
SendMapper sendMapper;
@Override
public void knock(Integer id) {
Send redPackage = sendMapper.queryById(id);
if (redPackage.getStock()==0){
return;
}else {
Send send = new Send();
//红包钱数
int money = redPackage.getTotalMoney() / redPackage.getTotal();
//剩余红包钱
int totalMoney = redPackage.getTotalMoney() - money;
//剩余红包数
int total= redPackage.getTotal()