diff --git a/.gitignore b/.gitignore index b99d9e2..f6204c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -### Custom -*.db - ### Maven template target/ pom.xml.tag @@ -255,3 +252,7 @@ Network Trash Folder Temporary Items .apdisk +### Custom +*.db +gringotts-web/src/main/resources/static +!gringotts-web/bin \ No newline at end of file diff --git a/gringotts-web/bin/start.sh b/gringotts-web/bin/start.sh new file mode 100755 index 0000000..e4b4c4f --- /dev/null +++ b/gringotts-web/bin/start.sh @@ -0,0 +1,2 @@ +export JASYPT_ENCRYPTOR_PASSWORD='r#(R,P"Dp^A47>WSn:Wn].gs/+"v:q_Q*An~zF*g-@j@jtSTv5H/,S-3:R?r9R}.' +/home/iap/gringotts/jdk/jdk-11.0.25+9/bin/java -jar /home/iap/gringotts/gringotts-web-1.0.0-SNAPSHOT.jar --spring.profiles.active=build \ No newline at end of file diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/base/controller/LogicDeleteController.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/base/controller/LogicDeleteController.java deleted file mode 100644 index 868e2d9..0000000 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/base/controller/LogicDeleteController.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.eshore.gringotts.web.domain.base.controller; - -import cn.hutool.core.util.ObjectUtil; -import com.eshore.gringotts.web.configuration.amis.AmisResponse; -import com.eshore.gringotts.web.domain.base.controller.query.Query; -import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity; -import com.eshore.gringotts.web.domain.base.service.LogicDeleteService; -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.springframework.web.bind.annotation.PathVariable; - -/** - * @author wn - * @version 20241218 - */ -public abstract class LogicDeleteController extends SimpleControllerSupport { - public LogicDeleteController(LogicDeleteService service) { - super(service); - } - - @Override - public AmisResponse> list() throws Exception { - return AmisResponse.responseSuccess(((LogicDeleteService) service).listLogicDelete().collect(entity -> { - try { - return toListItem(entity); - } catch (Exception e) { - throw new RuntimeException(e); - } - })); - } - - @Override - public AmisResponse> list(Query query) throws Exception { - if (ObjectUtil.isNull(query)) { - return AmisResponse.responseSuccess(Lists.immutable.empty()); - } - return AmisResponse.responseSuccess(((LogicDeleteService) service).listLogicDelete(query).collect(entity -> { - try { - return toListItem(entity); - } catch (Exception e) { - throw new RuntimeException(e); - } - })); - } - - @Override - public AmisResponse detail(@PathVariable Long id) throws Exception { - return AmisResponse.responseSuccess(toDetailItem(((LogicDeleteService) service).detailLogicDeleteOrThrow(id))); - } -} diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/base/service/LogicDeleteService.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/base/service/LogicDeleteService.java index 8cc07a8..ef0501d 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/base/service/LogicDeleteService.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/base/service/LogicDeleteService.java @@ -1,27 +1,14 @@ package com.eshore.gringotts.web.domain.base.service; import cn.hutool.core.util.ClassUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import com.eshore.gringotts.web.domain.base.entity.IdOnlyEntity_; import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity; -import com.eshore.gringotts.web.domain.base.entity.SimpleEntity_; import com.eshore.gringotts.web.domain.base.repository.SimpleRepository; import com.eshore.gringotts.web.domain.service.UserService; -import java.util.Optional; import javax.persistence.EntityManager; import javax.persistence.Query; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; import javax.transaction.Transactional; import lombok.extern.slf4j.Slf4j; -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; -import org.eclipse.collections.api.set.ImmutableSet; -import org.springframework.data.domain.Sort; /** * @author lanyuanxiaoyao @@ -36,67 +23,6 @@ public abstract class LogicDeleteService exten this.manager = manager; } - protected ImmutableList logicDeletePredicate(Root root, CriteriaQuery query, CriteriaBuilder builder) { - return super.listPredicate(root, query, builder).newWith(builder.equal(root.get("deleted"), false)); - } - - public ImmutableList listLogicDelete() throws Exception { - return Lists.immutable.ofAll(repository.findAll( - (root, query, builder) -> - builder.and( - logicDeletePredicate(root, query, builder) - .reject(ObjectUtil::isNull) - .toArray(new Predicate[]{}) - ) - )); - } - - public ImmutableList listLogicDelete(ImmutableSet ids) throws Exception { - return Lists.immutable.ofAll(repository.findAll( - (root, query, builder) -> { - MutableList predicates = Lists.mutable.ofAll(logicDeletePredicate(root, query, builder)); - predicates.add(builder.in(root.get("id")).value(ids)); - return builder.and(predicates.reject(ObjectUtil::isNull).toArray(new Predicate[predicates.size()])); - } - )); - } - - public ImmutableList listLogicDelete(com.eshore.gringotts.web.domain.base.controller.query.Query listQuery) throws Exception { - return Lists.immutable.ofAll(repository.findAll( - (root, query, builder) -> { - MutableList predicates = Lists.mutable.ofAll(logicDeletePredicate(root, query, builder)); - predicates.addAllIterable(queryPredicates(listQuery.getQuery(), root, query, builder)); - return builder.and(predicates.reject(ObjectUtil::isNull).toArray(new Predicate[predicates.size()])); - }, - Sort.by(SimpleEntity_.CREATED_TIME).descending() - )); - } - - public Optional detailLogicDeleteOptional(Long id) { - if (ObjectUtil.isNull(id)) { - return Optional.empty(); - } - return repository.findOne( - (root, query, builder) -> { - MutableList predicates = Lists.mutable.ofAll(logicDeletePredicate(root, query, builder)); - predicates.add(builder.equal(root.get(IdOnlyEntity_.id), id)); - return builder.and(predicates.reject(ObjectUtil::isNull).toArray(new Predicate[predicates.size()])); - } - ); - } - - public ENTITY detailLogicDelete(Long id) { - return detailLogicDeleteOrNull(id); - } - - public ENTITY detailLogicDeleteOrThrow(Long id) { - return detailLogicDeleteOptional(id).orElseThrow(() -> new IdNotFoundException(id)); - } - - public ENTITY detailLogicDeleteOrNull(Long id) { - return detailLogicDeleteOptional(id).orElse(null); - } - @Transactional(rollbackOn = Throwable.class) @Override public void remove(Long id) { diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/AuthenticationController.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/AuthenticationController.java index 2ed9c61..a934829 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/AuthenticationController.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/AuthenticationController.java @@ -1,7 +1,7 @@ package com.eshore.gringotts.web.domain.controller; import com.eshore.gringotts.web.configuration.amis.AmisResponse; -import com.eshore.gringotts.web.domain.base.controller.LogicDeleteController; +import com.eshore.gringotts.web.domain.base.controller.SimpleControllerSupport; import com.eshore.gringotts.web.domain.base.entity.FileInfo; import com.eshore.gringotts.web.domain.base.entity.SimpleListItem; import com.eshore.gringotts.web.domain.base.entity.SimpleSaveItem; @@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController @RequestMapping("authentication") -public class AuthenticationController extends LogicDeleteController { +public class AuthenticationController extends SimpleControllerSupport { private final AuthenticationService authenticationService; private final DataResourceService dataResourceService; private final DataFileService dataFileService; diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/ConfirmationController.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/ConfirmationController.java index e6004d1..eae6ea0 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/ConfirmationController.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/ConfirmationController.java @@ -1,7 +1,7 @@ package com.eshore.gringotts.web.domain.controller; import com.eshore.gringotts.web.configuration.amis.AmisResponse; -import com.eshore.gringotts.web.domain.base.controller.LogicDeleteController; +import com.eshore.gringotts.web.domain.base.controller.SimpleControllerSupport; import com.eshore.gringotts.web.domain.base.entity.FileInfo; import com.eshore.gringotts.web.domain.base.entity.SimpleListItem; import com.eshore.gringotts.web.domain.base.entity.SimpleSaveItem; @@ -28,7 +28,7 @@ import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController @RequestMapping("confirmation") -public class ConfirmationController extends LogicDeleteController { +public class ConfirmationController extends SimpleControllerSupport { private final ConfirmationService confirmationService; private final DataResourceService dataResourceService; private final DataFileService dataFileService; diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/DataResourceController.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/DataResourceController.java index fced00b..08cf84d 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/DataResourceController.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/DataResourceController.java @@ -3,7 +3,7 @@ package com.eshore.gringotts.web.domain.controller; import cn.hutool.core.util.EnumUtil; import cn.hutool.core.util.ObjectUtil; import com.eshore.gringotts.web.configuration.amis.AmisResponse; -import com.eshore.gringotts.web.domain.base.controller.LogicDeleteController; +import com.eshore.gringotts.web.domain.base.controller.SimpleControllerSupport; import com.eshore.gringotts.web.domain.base.entity.FileInfo; import com.eshore.gringotts.web.domain.base.entity.SimpleListItem; import com.eshore.gringotts.web.domain.base.entity.SimpleSaveItem; @@ -46,7 +46,7 @@ import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController @RequestMapping("/data_resource") -public class DataResourceController extends LogicDeleteController { +public class DataResourceController extends SimpleControllerSupport { private final ObjectMapper mapper; private final DataResourceService dataResourceService; private final DataFileService dataFileService; diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/WareController.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/WareController.java index 9a58d4c..13732c4 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/WareController.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/controller/WareController.java @@ -3,7 +3,7 @@ package com.eshore.gringotts.web.domain.controller; import cn.hutool.core.util.StrUtil; import com.eshore.gringotts.web.configuration.HostConfiguration; import com.eshore.gringotts.web.configuration.amis.AmisResponse; -import com.eshore.gringotts.web.domain.base.controller.LogicDeleteController; +import com.eshore.gringotts.web.domain.base.controller.SimpleControllerSupport; import com.eshore.gringotts.web.domain.base.entity.SimpleListItem; import com.eshore.gringotts.web.domain.base.entity.SimpleSaveItem; import com.eshore.gringotts.web.domain.entity.Ware; @@ -28,7 +28,7 @@ import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController @RequestMapping("ware") -public class WareController extends LogicDeleteController { +public class WareController extends SimpleControllerSupport { private final HostConfiguration hostConfiguration; private final WareService wareService; private final DataResourceService dataResourceService; diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Authentication.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Authentication.java index f50a01c..5149c54 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Authentication.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Authentication.java @@ -2,6 +2,7 @@ package com.eshore.gringotts.web.domain.entity; import com.eshore.gringotts.core.Constants; import com.eshore.gringotts.web.domain.base.entity.CheckingNeededEntity; +import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity; import java.time.LocalDateTime; import java.util.Set; import javax.persistence.Column; @@ -21,6 +22,7 @@ import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.hibernate.annotations.DynamicUpdate; +import org.hibernate.annotations.Where; import org.springframework.data.jpa.domain.support.AuditingEntityListener; /** @@ -46,6 +48,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; @NamedAttributeNode(value = "createdUser"), @NamedAttributeNode(value = "modifiedUser"), }) +@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE) public class Authentication extends CheckingNeededEntity { @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Confirmation.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Confirmation.java index 8c35123..27d774e 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Confirmation.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Confirmation.java @@ -2,6 +2,7 @@ package com.eshore.gringotts.web.domain.entity; import com.eshore.gringotts.core.Constants; import com.eshore.gringotts.web.domain.base.entity.CheckingNeededEntity; +import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity; import java.util.Set; import javax.persistence.ConstraintMode; import javax.persistence.Entity; @@ -19,6 +20,7 @@ import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.hibernate.annotations.DynamicUpdate; +import org.hibernate.annotations.Where; import org.springframework.data.jpa.domain.support.AuditingEntityListener; /** @@ -44,6 +46,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; @NamedAttributeNode(value = "createdUser"), @NamedAttributeNode(value = "modifiedUser"), }) +@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE) public class Confirmation extends CheckingNeededEntity { @OneToOne(fetch = FetchType.EAGER) @JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/DataResource.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/DataResource.java index 032413d..05dee9d 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/DataResource.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/DataResource.java @@ -21,6 +21,7 @@ import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.hibernate.annotations.DynamicUpdate; +import org.hibernate.annotations.Where; import org.springframework.data.jpa.domain.support.AuditingEntityListener; @Getter @@ -44,6 +45,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; @NamedAttributeNode(value = "createdUser"), @NamedAttributeNode(value = "modifiedUser"), }) +@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE) public class DataResource extends LogicDeleteEntity { @Column(nullable = false) private String name; diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Ware.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Ware.java index cb3093e..2a082db 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Ware.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/entity/Ware.java @@ -2,6 +2,7 @@ package com.eshore.gringotts.web.domain.entity; import com.eshore.gringotts.core.Constants; import com.eshore.gringotts.web.domain.base.entity.CheckingNeededEntity; +import com.eshore.gringotts.web.domain.base.entity.LogicDeleteEntity; import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; @@ -20,6 +21,7 @@ import lombok.Getter; import lombok.Setter; import lombok.ToString; import org.hibernate.annotations.DynamicUpdate; +import org.hibernate.annotations.Where; import org.springframework.data.jpa.domain.support.AuditingEntityListener; /** @@ -45,6 +47,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; @NamedAttributeNode(value = "createdUser"), @NamedAttributeNode(value = "modifiedUser"), }) +@Where(clause = LogicDeleteEntity.LOGIC_DELETE_CLAUSE) public class Ware extends CheckingNeededEntity { @OneToOne(cascade = CascadeType.DETACH, fetch = FetchType.EAGER) @JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) diff --git a/gringotts-web/src/main/resources/application.yml b/gringotts-web/src/main/resources/application.yml index 29221de..3ed97fe 100644 --- a/gringotts-web/src/main/resources/application.yml +++ b/gringotts-web/src/main/resources/application.yml @@ -56,7 +56,9 @@ spring: username: iap password: SLvwP6@SM2J*SbUw_iap driver-class-name: com.mysql.cj.jdbc.Driver - +gringotts: + upload: + upload-path: /home/iap/gringotts/upload --- spring: config: