diff --git a/pom.xml b/pom.xml index 857c732..c74fb6a 100644 --- a/pom.xml +++ b/pom.xml @@ -123,6 +123,11 @@ tigon-codegen ${project.version} + + org.projectlombok + lombok + 1.18.0 + org.springframework diff --git a/tigon-codegen/pom.xml b/tigon-codegen/pom.xml index 7976295..7584e96 100644 --- a/tigon-codegen/pom.xml +++ b/tigon-codegen/pom.xml @@ -46,7 +46,7 @@ commons-io commons-io - 2.4 + 2.6 diff --git a/tigon-model/pom.xml b/tigon-model/pom.xml index 5891547..ba7815e 100644 --- a/tigon-model/pom.xml +++ b/tigon-model/pom.xml @@ -21,12 +21,12 @@ org.apache.commons commons-lang3 - 3.1 + 3.7 com.alibaba fastjson - 1.2.31 + 1.2.47 org.springframework diff --git a/tigon-model/src/main/java/me/chyxion/tigon/form/BaseForm.java b/tigon-model/src/main/java/me/chyxion/tigon/form/BaseForm.java index c395292..8b3a896 100644 --- a/tigon-model/src/main/java/me/chyxion/tigon/form/BaseForm.java +++ b/tigon-model/src/main/java/me/chyxion/tigon/form/BaseForm.java @@ -33,14 +33,14 @@ public class BaseForm implements BaseFormApi { */ @Override public T copy(Class clazz, boolean convert) { - log.debug("Copy Form [{}] To Class [{}].", this, clazz); + log.debug("Copy form [{}] to class [{}].", this, clazz); T obj = null; try { obj = clazz.newInstance(); } catch (Exception e) { throw new IllegalStateException( - "Create [" + clazz + "] Object Error Caused", e); + "Create [" + clazz + "] object error caused", e); } return copy(obj, convert); } @@ -65,18 +65,18 @@ public class BaseForm implements BaseFormApi { public T copy(T obj, boolean convert) { try { if (convert) { - log.debug("Copy Form [{}] To [{}] With Type Converting.", this, obj); + log.debug("Copy form [{}] to [{}] with type converting.", this, obj); org.apache.commons.beanutils.BeanUtils.copyProperties(obj, this); } else { - log.debug("Copy Form [{}] To [{}].", this, obj); + log.debug("Copy form [{}] to [{}].", this, obj); BeanUtils.copyProperties(this, obj); } return obj; } catch (Exception e) { throw new IllegalStateException( - "Copy [" + this + "] Error Caused", e); + "Copy [" + this + "] error caused", e); } } diff --git a/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseCrudByFormService.java b/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseCrudByFormService.java index 8165761..bad2418 100644 --- a/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseCrudByFormService.java +++ b/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseCrudByFormService.java @@ -21,7 +21,7 @@ public interface BaseCrudByFormService FormForUpdate extends BaseFormForUpdateApi> extends BaseCrudService, BaseQueryService, - BaseDeleteService { + BaseDeleteService { /** * @param form form diff --git a/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseCrudService.java b/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseCrudService.java index d5b5a95..22e9af7 100644 --- a/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseCrudService.java +++ b/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseCrudService.java @@ -19,7 +19,7 @@ import me.chyxion.tigon.validation.annotation.NotNullOrBlank; public interface BaseCrudService > extends BaseQueryService, - BaseDeleteService { + BaseDeleteService { /** * @param model form diff --git a/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseDeleteService.java b/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseDeleteService.java index 3037e2d..345c0cb 100644 --- a/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseDeleteService.java +++ b/tigon-service-api/src/main/java/me/chyxion/tigon/service/BaseDeleteService.java @@ -1,5 +1,6 @@ package me.chyxion.tigon.service; +import java.util.List; import me.chyxion.tigon.mybatis.Search; import javax.validation.constraints.NotNull; import org.springframework.validation.annotation.Validated; @@ -13,17 +14,19 @@ import me.chyxion.tigon.validation.annotation.NotNullOrBlank; * Nov 7, 2016 4:20:42 PM */ @Validated -public interface BaseDeleteService { +public interface BaseDeleteService { /** * delete by search * @param search search + * @return models deleted */ - int delete(@NotNull Search search); + List delete(@NotNull Search search); /** * delete by primaryKey * @param primaryKey primaryKey + * @return model deleted */ - int delete(@NotNullOrBlank PrimaryKey primaryKey); + Model delete(@NotNullOrBlank PrimaryKey primaryKey); } diff --git a/tigon-service-support/src/main/java/me/chyxion/tigon/service/support/BaseCrudByFormServiceSupport.java b/tigon-service-support/src/main/java/me/chyxion/tigon/service/support/BaseCrudByFormServiceSupport.java index 9731b99..b092800 100644 --- a/tigon-service-support/src/main/java/me/chyxion/tigon/service/support/BaseCrudByFormServiceSupport.java +++ b/tigon-service-support/src/main/java/me/chyxion/tigon/service/support/BaseCrudByFormServiceSupport.java @@ -30,9 +30,11 @@ public class BaseCrudByFormServiceSupport */ @Override public ViewModel create(FormForCreate form) { - log.debug("Create Form [{}].", form); + log.debug("Create form [{}].", form); validate(form); - return create(form.copy(modelType)); + final Model model = form.copy(modelType); + beforeCreate(form, model); + return create(model); } /** @@ -40,13 +42,15 @@ public class BaseCrudByFormServiceSupport */ @Override public ViewModel update(FormForUpdate form) { + log.debug("Update form [{}].", form); validate(form); PrimaryKey primaryKey = form.getId(); Model model = find(primaryKey); - Assert.state(model != null, "No Model [" + primaryKey + "] Found"); - return update(form.copy(model)); + Assert.state(model != null, "No model [" + primaryKey + "] found"); + form.copy(model); + beforeUpdate(form, model); + return update(model); } - // -- // private methods @@ -66,4 +70,12 @@ public class BaseCrudByFormServiceSupport protected void validate(FormForUpdate form) { // For Override } + + protected void beforeCreate(FormForCreate form, Model model) { + + } + + protected void beforeUpdate(FormForUpdate form, Model model) { + + } } diff --git a/tigon-service-support/src/main/java/me/chyxion/tigon/service/support/BaseCrudServiceSupport.java b/tigon-service-support/src/main/java/me/chyxion/tigon/service/support/BaseCrudServiceSupport.java index 6c0ccbd..a0e7ba2 100644 --- a/tigon-service-support/src/main/java/me/chyxion/tigon/service/support/BaseCrudServiceSupport.java +++ b/tigon-service-support/src/main/java/me/chyxion/tigon/service/support/BaseCrudServiceSupport.java @@ -29,16 +29,41 @@ public class BaseCrudServiceSupport */ @Override @Transactional - public int delete(Search search) { - return mapper.delete(search); + public List delete(final Search search) { + log.info("Delete model by search [{}].", search); + final List models = mapper.list(search); + if (models != null && !models.isEmpty()) { + for (Model model : models) { + log.info("Delete model [{}].", model); + beforeDelete(model); + mapper.delete(model.primaryKeyValue()); + afterDelete(model); + } + } + else { + log.warn("No model found by search [{}] to delete.", search); + } + return models; } /** * {@inheritDoc} */ @Override - public int delete(PrimaryKey primaryKey) { - return mapper.delete(primaryKey); + @Transactional + public Model delete(final PrimaryKey primaryKey) { + log.info("Delete model by PK [{}].", primaryKey); + final Model model = mapper.find(primaryKey); + if (model != null) { + log.info("Delete model [{}].", model); + beforeDelete(model); + mapper.delete(primaryKey); + afterDelete(model); + } + else { + log.warn("No model found by PK [{}] to delete.", primaryKey); + } + return model; } /** @@ -131,4 +156,12 @@ public class BaseCrudServiceSupport protected void afterUpdate(Model model) { // Hook } + + protected void beforeDelete(Model model) { + // Hook + } + + protected void afterDelete(Model model) { + // Hook + } } diff --git a/tigon-shiro-cache/pom.xml b/tigon-shiro-cache/pom.xml index 6e12499..ecec895 100644 --- a/tigon-shiro-cache/pom.xml +++ b/tigon-shiro-cache/pom.xml @@ -35,10 +35,6 @@ shiro-core 1.3.2 - - - - org.projectlombok