package cc.mrbird.febs.server.test.service.impl; import cc.mrbird.febs.common.core.entity.system.TradeLog; import cc.mrbird.febs.server.test.feign.IRemoteTradeLogService; import cc.mrbird.febs.server.test.mapper.TradeLogMapper; import cc.mrbird.febs.server.test.service.ITradeLogService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.codingapi.txlcn.tc.annotation.LcnTransaction; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.Date; /** * @author MrBird */ @Slf4j @Service("tradeLogService") @RequiredArgsConstructor public class TradeLogServiceImpl extends ServiceImpl implements ITradeLogService { private final IRemoteTradeLogService remoteTradeLogService; @Override @LcnTransaction public void orderAndPay(TradeLog tradeLog) { tradeLog.setCreateTime(new Date()); tradeLog.setStatus("下单并支付成功"); // 保存支付日志 this.save(tradeLog); log.info("用户已经下单并支付成功商品ID为{},名称为{}的商品", tradeLog.getGoodsId(), tradeLog.getGoodsName()); // 调用远程方法,打包并配送商品 remoteTradeLogService.packageAndSend(tradeLog); // throw new RuntimeException("抛个异常,测试全局回滚"); } }