java 事务回滚

 @Override
    @Transactional(rollbackFor = Exception.class)
    public JsonResult getStartLookingTrures(Long userId, BigDecimal latitude, BigDecimal longitude, Integer cityId) {

//调用service里的方法需要用到
  TreasureLaunchService treasureLaunchService=(TreasureLaunchService) AopContext.currentProxy();//调用service方法用到事务回滚时需要用到

treasureLaunchService.setJinBiRecord(userId,jinBi,"寻到宝物:"+foundTreasure.get("treasureName"),orderNum);
}


 public void setJinBiRecord(Long userId,Long jinBi,String Remark,String orderNum){
        //3 修改金币余额(扣除所需金币)
        userMapper.reduceGoldCoins(userId, jinBi);

        User user = userMapper.selectById(userId);//获取user信息

        //4 添加金币明细
        GoldCoinsRecords goldCoinsRecords = new GoldCoinsRecords();
        goldCoinsRecords.setGoldCoinsBalance(user.getGoldCoins());
        goldCoinsRecords.setType(4);//类型(1:后台操作2:阅读奖励3:兑换金币4:寻宝扣除)
        goldCoinsRecords.setUserId(userId);
        goldCoinsRecords.setGoldCoins(jinBi);
        goldCoinsRecords.setState(2);//金币状态(1加2减)
        goldCoinsRecords.setRemark(Remark);
        goldCoinsRecords.setCreateTime(new Date());
        goldCoinsRecords.setOrderNum(orderNum);

        goldCoinsRecordsMapper.insert(goldCoinsRecords);//执行生成兑换明细记录
    }


版权声明:本文为qq_38188762原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。