package com.code2roc.fastface.db; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.springframework.stereotype.Component; import java.lang.reflect.Field; import java.util.Arrays; import java.util.List; @Component public class CommonWrapper { public CommonWrapper(){ } private UpdateWrapper getCommonWrapper(T entity){ return getCommonWrapper(entity,false); } private UpdateWrapper getCommonWrapper(T entity,boolean autoFillKeyCondition){ UpdateWrapper wrapper = new UpdateWrapper(); if(null!=entity && autoFillKeyCondition){ try{ Class clazz = entity.getClass(); List fs = Arrays.asList(clazz.getDeclaredFields()); for (Field field:fs) { field.setAccessible(true); //TableId修饰主键 if(null!=field.getAnnotation(TableId.class)){ wrapper.eq(field.getName(),field.get(entity)); } } }catch (Exception e){ e.printStackTrace(); } } return wrapper; } public UpdateWrapper getUpdateWrapper(T entity,boolean autoFillKeyCondition){ UpdateWrapper updateWrapper = getCommonWrapper(entity,autoFillKeyCondition); return updateWrapper; } public UpdateWrapper getUpdateWrapperFillKey(T entity){ return getUpdateWrapper(entity,true); } public UpdateWrapper getUpdateWrapperCustomKey(T entity, String fieldName, Object fieldValue){ UpdateWrapper wrapper = getUpdateWrapper(entity,false); wrapper.eq(fieldName,fieldValue); return wrapper; } public UpdateWrapper getDeleteWrapper(){ return getCommonWrapper(null,false); } public UpdateWrapper getDeleteWrapperFillKey(Class clazz, String unitguid){ UpdateWrapper wrapper = getCommonWrapper(null,false); try{ List fs = Arrays.asList(clazz.getDeclaredFields()); for (Field field:fs) { field.setAccessible(true); //TableId修饰主键 TableId tableId = field.getAnnotation(TableId.class); if(null!=tableId){ wrapper.eq(tableId.value(),unitguid); } } }catch (Exception e){ e.printStackTrace(); } return wrapper; } public UpdateWrapper getDeleteWrapperCustomKey(String fieldName, Object fieldValue){ UpdateWrapper wrapper = getCommonWrapper(null,false); wrapper.eq(fieldName,fieldValue); return wrapper; } }