package cn.lili.modules.member.aop.interceptor; import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.MemberPointsHistory; import cn.lili.modules.member.entity.enums.PointTypeEnum; import cn.lili.modules.member.service.MemberPointsHistoryService; import cn.lili.modules.member.service.MemberService; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * 积分操作切面 * * @author Chopper * @since 2020/11/17 7:22 下午 */ @Slf4j @Aspect @Component public class PointLogInterceptor { @Autowired private MemberPointsHistoryService memberPointsHistoryService; @Autowired private MemberService memberService; @After("@annotation(cn.lili.modules.member.aop.annotation.PointLogPoint)") public void doAfter(JoinPoint pjp) { //参数 Object[] obj = pjp.getArgs(); try { //变动积分 Long point = 0L; if (obj[0] != null) { point = Long.valueOf(obj[0].toString()); } //变动类型 String type = PointTypeEnum.INCREASE.name(); if (obj[1] != null) { type = obj[1].toString(); } // 会员ID String memberId = ""; if (obj[2] != null) { memberId = obj[2].toString(); } // 变动积分为0,则直接返回 if (point == 0) { return; } //根据会员id查询会员信息 Member member = memberService.getById(memberId); if (member != null) { MemberPointsHistory memberPointsHistory = new MemberPointsHistory(); memberPointsHistory.setMemberId(member.getId()); memberPointsHistory.setMemberName(member.getUsername()); memberPointsHistory.setPointType(type); memberPointsHistory.setVariablePoint(point); if (type.equals(PointTypeEnum.INCREASE.name())) { memberPointsHistory.setBeforePoint(member.getPoint() - point); } else { memberPointsHistory.setBeforePoint(member.getPoint() + point); } memberPointsHistory.setPoint(member.getPoint()); memberPointsHistory.setContent(obj[3] == null ? "" : obj[3].toString()); memberPointsHistory.setCreateBy("系统"); memberPointsHistoryService.save(memberPointsHistory); } } catch (Exception e) { log.error("积分操作错误", e); } } }