package com.platform.aop;

import com.platform.utils.RRException;
import com.platform.utils.ShiroUtils;
import com.platform.vos.CurrentUserLoginVo;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;

import java.util.Date;

/**
 * 系统日志，切面处理类
 *
 * @author lipengjun
 * @email 939961241@qq.com
 * @gitee https://gitee.com/fuyang_lipengjun/platform
 * @date 2017年3月8日 上午11:07:35
 */
@Aspect
@Component
public class CurrentUserAspect {

    /**
     * 切点
     */
    @Pointcut("@annotation(com.platform.annotation.CanUserUpdateRecord)")
    public void logPointCut() {

    }

    /**
     * 前置通知
     *
     */
    @Before("logPointCut()")
    public void saveSysLog() {
        //获取当前登录用户
        CurrentUserLoginVo currentUser = ShiroUtils.getUserEntity();
        // 判断企业是否过期
        if (!ObjectUtils.isEmpty(currentUser.getCompanyExpirationDate())
                && currentUser.getCompanyExpirationDate().before(new Date())) {
            throw new RRException("当前登录用户企业已过期,不允许操作");
        }
    }

}
