代码中怎么写注解?
1,第一步:看这篇文章介绍:
https://blog.youkuaiyun.com/wkl305268748/article/details/77619367
2,看完这篇文章,就知道只要添加一个注解@Transactional和catch后的回滚:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();就可以。
3,第三步:所以写在代码中就是如下:
/**
* 回返用户积分
* @param memberId 用户id
* @return
* @throws ServiceException
*/
**@Transactional**
RespReturnMemberPointsDTO returnMemberPoints(long memberId,String orderNo, int source);
@Override
public RespReturnMemberPointsDTO returnMemberPoints(long memberId, String orderNo, int source) {
log.info(“returnMemberPoints.memberId={}”,memberId);
RespReturnMemberPointsDTO respReturnMemberPointsDTO=new RespReturnMemberPointsDTO();
try {
//查询积分记录表是否有关于该用户的记录
PointRecordDO pointRecordDO = pointRecordDOMapper.queryPointRecordDOByOrderFlowNoAndSource(memberId, orderNo, source);
if (pointRecordDO != null) {
if ((System.currentTimeMillis() - pointRecordDO.getCreateTime().getTime()) / (1000 * 60 * 60 * 24) > 15) {
log.error(“距离积分扣减时间超过15天,orderNo:{}”, orderNo);
respReturnMemberPointsDTO.setIsReturnPoint(false);
throw new ServiceException(ResponseEnum.ERROR_500.getCode(), “距离积分扣减时间超过15天,orderNo:{}” + orderNo);
}
//将查出来的记录变更为已删除
PointRecordDO pointRecord = new PointRecordDO();
pointRecord.setId(pointRecordDO.getId());
pointRecord.setFlag((byte) 1);
int i = pointRecordDOMapper.updateByPrimaryKeySelective(pointRecord);
if (i != 1) {
log.error(“更新表失败,memberId:{}”, memberId);
respReturnMemberPointsDTO.setIsReturnPoint(false);
throw new ServiceException(ResponseEnum.ERROR_500.getCode(), “更新会员积分表失败,memberId:{}” + memberId);
}
//返回用户积分–更新用户积分
int j = memberPointDOMapper.updateByPointUpward(memberId, pointRecordDO.getPoints());
if (j != 1) {
log.error(“更新表失败,memberId:{}”, memberId);
respReturnMemberPointsDTO.setIsReturnPoint(false);
throw new ServiceException(ResponseEnum.ERROR_500.getCode(), “更新会员积分表失败,memberId:{}” + memberId);
}
respReturnMemberPointsDTO.setIsReturnPoint(true);
}else{
log.error(“积分记录表不存在该会员记录,memberId:{}”, memberId);
respReturnMemberPointsDTO.setIsReturnPoint(false);
}
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
e.printStackTrace();
}
return respReturnMemberPointsDTO;
}