package com.ruoyi.study.config; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.api.model.LoginUserParent; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.util.StringUtils; import java.util.Date; /** * @author xiaochen * @ClassName DataUpdateInterceptor * @Description 数据更新操作处理 * @date 2021-12-15 *

* 注意,之前在此处注入了 JwtTokenUtils *

* 造成spring循环依赖,项目支棱不起来 */ @Slf4j @Configuration public class DataUpdateHandlerConfig implements MetaObjectHandler { @Autowired private TokenService tokenService; /** * 新增数据执行 */ @Override public void insertFill(MetaObject metaObject) { // 获取登录信息 LoginUser loginUser = tokenService.getLoginUser(); if (loginUser != null) { String userName = loginUser.getUsername(); if (StringUtils.hasLength(userName)) { this.setFieldValByName("createBy", userName, metaObject); this.setFieldValByName("createTime", new Date(), metaObject); this.setFieldValByName("updateBy", userName, metaObject); this.setFieldValByName("updateTime", new Date(), metaObject); } else { this.setFieldValByName("createBy", "", metaObject); this.setFieldValByName("updateBy", "", metaObject); this.setFieldValByName("createTime", "", metaObject); this.setFieldValByName("updateTime", "", metaObject); } } else { this.setFieldValByName("createBy", "", metaObject); this.setFieldValByName("updateBy", "", metaObject); this.setFieldValByName("createTime", new Date(), metaObject); this.setFieldValByName("updateTime", new Date(), metaObject); } } /** * 修改数据执行 */ @Override public void updateFill(MetaObject metaObject) { // // 获取登录信息 // LoginUserParent userStudy = tokenService.getLoginUserStudy(); // if (userStudy != null) { // String userName = userStudy.getName(); // if (StringUtils.hasLength(userName)) { // this.setFieldValByName("createBy", userName, metaObject); // this.setFieldValByName("createTime", new Date(), metaObject); // this.setFieldValByName("updateBy", userName, metaObject); // this.setFieldValByName("updateTime", new Date(), metaObject); // } else { // this.setFieldValByName("createBy", "", metaObject); // this.setFieldValByName("updateBy", "", metaObject); // this.setFieldValByName("createTime", "", metaObject); // this.setFieldValByName("updateTime", "", metaObject); // } // } else { // this.setFieldValByName("createBy", "", metaObject); // this.setFieldValByName("updateBy", "", metaObject); // this.setFieldValByName("createTime", new Date(), metaObject); // this.setFieldValByName("updateTime", new Date(), metaObject); // } } }