diff --git a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java
index 1162664..b996f54 100644
--- a/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java
+++ b/leaveschool/basics-data/src/main/java/com/supwisdom/leaveschool/basicsdata/api/Api1DictionaryTypeController.java
@@ -21,6 +21,8 @@
 import com.supwisdom.leaveschool.common.model.PageModel;
 import com.supwisdom.leaveschool.common.model.PagerRequestModel;
 import com.supwisdom.leaveschool.common.model.SuccessResponseModel;
+import com.supwisdom.leaveschool.common.util.ABaseDomainUtils;
+import com.supwisdom.leaveschool.common.util.ABaseDomainUtils.OptTypeEnum;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -75,8 +77,8 @@
 	  public SuccessResponseModel create(String username,@RequestBody DictionaryTypeModel dictionaryTypeModel) {
 		  DictionaryType dictionaryType = new DictionaryType();
 		  BeanUtils.copyProperties(dictionaryTypeModel, dictionaryType);
-		  dictionaryType.setAddAccount(username);
-		  dictionaryType.setAddTime(new Date());
+//		  dictionaryType.setAddAccount(username);
+//		  dictionaryType.setAddTime(new Date());
 		  dictionaryTypeRepository.save(dictionaryType);
 	      SuccessResponseModel res = new SuccessResponseModel();
 	      res.setSuccess("info.create.success");
diff --git a/leaveschool/common/pom.xml b/leaveschool/common/pom.xml
index 2be58d3..51766c4 100644
--- a/leaveschool/common/pom.xml
+++ b/leaveschool/common/pom.xml
@@ -28,6 +28,11 @@
       <groupId>com.supwisdom.infras</groupId>
       <artifactId>infras-data-jpa</artifactId>
     </dependency>
+    
+    <dependency>
+      <groupId>com.supwisdom.infras</groupId>
+      <artifactId>infras-beans</artifactId>
+    </dependency>
 
     <dependency>
       <groupId>commons-collections</groupId>
diff --git a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
index 1a1d15d..c00d4ce 100644
--- a/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
+++ b/leaveschool/common/src/main/java/com/supwisdom/leaveschool/common/repository/SimpleBaseDao.java
@@ -13,6 +13,7 @@
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.supwisdom.leaveschool.common.domain.ABaseDomain;
 import com.supwisdom.leaveschool.common.model.PageModel;
 import com.supwisdom.leaveschool.common.util.ReflectFieldUtil;
 
@@ -88,13 +89,29 @@
 	
 	 @Transactional
 	  public void save(Object entity){
-		 entity = ReflectFieldUtil.setValue(entity, "addTime", new Date());// FIXME  缺少操作人
 		 entityManager.persist(entity);
 	  }
 	 
 	 @Transactional
+	 public <T extends ABaseDomain> void save(T entity , String username){
+		 if(username!=null&&username.trim().length()>0){
+			 entity.setAddAccount(username);
+			}
+		 entity.setAddTime(new Date());
+		 entityManager.persist(entity);
+	 }
+	 
+	 @Transactional
 	 public void update(Object entity){
-		 entity = ReflectFieldUtil.setValue(entity, "editTime", new Date());  // FIXME  缺少操作人
+		 entityManager.merge(entity);
+	 }
+	 
+	 @Transactional
+	 public  <T extends ABaseDomain> void update(T entity , String username){
+		 if(username!=null&&username.trim().length()>0){
+			 entity.setEditAccount(username);
+		 }
+		 entity.setEditTime(new Date());
 		 entityManager.merge(entity);
 	 }
 	 /**
@@ -103,12 +120,23 @@
 	  */
 	 @Transactional
 	 public void delete(Object entity){
-		 entity = ReflectFieldUtil.setValue(entity, "deleted", true);
-		 entity = ReflectFieldUtil.setValue(entity, "deleteTime", new Date());// FIXME  缺少操作人
 		 //entityManager.remove(entity);
 		 entityManager.merge(entity);
 	 }
 	 /**
+	  * 逻辑删除
+	  * @param entity
+	  */
+	 @Transactional
+	 public  <T extends ABaseDomain>  void delete(T entity , String username){
+		 if(username!=null&&username.trim().length()>0){
+			 entity.setDeleteAccount(username);
+			}
+		 entity.setDeleteTime(new Date());
+		 entity.setDeleted(true);
+		 entityManager.merge(entity);
+	 }
+	 /**
 	  * 根据id逻辑删除
 	  * @param entityType
 	  * @param id
