diff --git a/jnpf-java-boot/jnpf-admin/src/main/java/jnpf/database/config/MybatisPlusMetaObjectHandler.java b/jnpf-java-boot/jnpf-admin/src/main/java/jnpf/database/config/MybatisPlusMetaObjectHandler.java new file mode 100644 index 0000000..eb81ffd --- /dev/null +++ b/jnpf-java-boot/jnpf-admin/src/main/java/jnpf/database/config/MybatisPlusMetaObjectHandler.java @@ -0,0 +1,132 @@ +package jnpf.database.config; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import jnpf.base.UserInfo; +import jnpf.constant.PermissionConst; +import jnpf.permission.entity.OrganizeEntity; +import jnpf.permission.entity.UserEntity; +import jnpf.permission.service.OrganizeService; +import jnpf.util.DateUtil; +import jnpf.util.StringUtil; +import jnpf.util.UserProvider; +import jnpf.util.context.SpringContext; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + + +/** + * MybatisPlus配置类 + * + * @author Allen Pan + * @version V3.4.1 + * @copyright 长江云息 + * @date 2019年9月27日 上午9:18 + */ +@Component +@Slf4j +//@Configuration +//@Intercepts({@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class})}) +public class MybatisPlusMetaObjectHandler implements MetaObjectHandler { + + //@Autowired + private static ApplicationContext applicationContext; + private UserProvider userProvider; + + private OrganizeService organizeService; + + @Override + public void insertFill(MetaObject metaObject) { + String companyId = ""; +// userProvider= applicationContext.getBean(UserProvider.class); + UserProvider userProvider = SpringContext.getBean(UserProvider.class); + OrganizeService organizeService = SpringContext.getBean(OrganizeService.class); + UserInfo userInfo= userProvider.get(); + List organizeIdList = new ArrayList<>(); + if(userInfo != null && StringUtil.isNotEmpty(userInfo.getOrganizeId())){ + OrganizeEntity organizeEntity = organizeService.getInfo(userInfo.getOrganizeId()); + organizeIdList.add(organizeEntity.getId()); + if(PermissionConst.DEPARTMENT.equals(organizeEntity.getCategory())){ + userInfo.setDepartmentId(organizeEntity.getId()); + do { + //获取父组织 + organizeEntity = organizeService.getInfo(organizeEntity.getParentId()); + organizeIdList.add(organizeEntity.getId()); + }while (PermissionConst.DEPARTMENT.equals(organizeEntity.getCategory())); + companyId = organizeEntity.getId(); + + }else{ + companyId = organizeEntity.getId(); + } + } + organizeIdList.add("96240625-934F-490B-8AA6-0BC775B18468"); + Collections.reverse(organizeIdList); + String organizeId = JSON.toJSONString(organizeIdList); +// 可以在这里填充编码查询到编码规则自动填充 +// TableInfo tableInfo = this.findTableInfo(metaObject); +// String tableName = tableInfo.getTableName(); + log.info("start insert fill ...."); + System.out.println(userInfo); + this.setFieldValByName("creatorUserId", userInfo.getUserId(), metaObject); + + this.setFieldValByName("creatorTime", DateUtil.getNowDate(), metaObject); + + this.setFieldValByName("creatorUserName", userInfo.getUserName(), metaObject); + + this.setFieldValByName("creatoruserid", userInfo.getUserId(), metaObject); + + this.setFieldValByName("creatortime", DateUtil.getNowDate(), metaObject); + + this.setFieldValByName("creatorusername", userInfo.getUserName(), metaObject); + + this.setFieldValByName("lastModifyUserId", userInfo.getUserId(), metaObject); + + this.setFieldValByName("lastModifyTime", DateUtil.getNowDate(), metaObject); + + this.setFieldValByName("lastModifyUserName", userInfo.getUserName(), metaObject); + + this.setFieldValByName("organizeId", organizeId, metaObject); + this.setFieldValByName("companyId", companyId, metaObject); + this.setFieldValByName("departmentId", userInfo.getDepartmentId(), metaObject); +// System.out.println(userProvider.getDepartmentId(userInfo.getUserId())); + /*if (userInfo.getUserId()!=null){ + this.setFieldValByName("departmentId", userProvider.getDepartmentId(userInfo.getUserId()), metaObject); + }*/ + + } + + @Override + public void updateFill(MetaObject metaObject) { + log.info("start update fill ...."); + UserProvider userProvider = SpringContext.getBean(UserProvider.class); + System.out.println(userProvider.get()); +// userProvider= applicationContext.getBean(UserProvider.class); + UserInfo userInfo = userProvider.get(); + + + this.setFieldValByName("lastModifyTime", DateUtil.getNowDate(), metaObject); + + + this.setFieldValByName("lastModifyUserId", userInfo.getUserId(), metaObject); + + this.setFieldValByName("lastModifyUserName", userInfo.getUserName(), metaObject); + + + this.setFieldValByName("deleteTime", DateUtil.getNowDate(), metaObject); + + this.setFieldValByName("deleteUserId", userInfo.getUserId(), metaObject); + + this.setFieldValByName("deleteUserName", userInfo.getUserName(), metaObject); + + + } + + +}