diff --git a/dm_web/pom.xml b/dm_web/pom.xml new file mode 100644 index 0000000..c90b4f5 --- /dev/null +++ b/dm_web/pom.xml @@ -0,0 +1,285 @@ + + + + + + + + + + + + + demay + com.ssm + 1.0-SNAPSHOT + ../pom.xml + + 4.0.0 + dm_web + jar + dm_web + + + + + + + + + org.springframework.boot + spring-boot-starter-aop + + + org.aspectj + aspectjweaver + + + + org.springframework.boot + spring-boot-starter-web + + + com.github.xiaoymin + knife4j-spring-boot-starter + 2.0.5 + + + + org.springframework.boot + spring-boot-starter-aop + + + org.springframework.boot + spring-boot-starter-test + test + + + com.alibaba + fastjson + + + javax.servlet + servlet-api + + + io.springfox + springfox-swagger-ui + + + io.springfox + springfox-swagger2 + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.session + spring-session-data-redis + + + commons-fileupload + commons-fileupload + 1.2.1 + + + commons-io + commons-io + 2.2 + + + org.apache.commons + commons-lang3 + + + org.apache.poi + poi + + + org.apache.poi + poi-ooxml + + + net.oschina.zcx7878 + fastdfs-client-java + + + commons-net + commons-net + 3.6 + compile + + + org.apache.commons + commons-pool2 + 2.6.2 + compile + + + + com.ssm + redis + 1.0-SNAPSHOT + + + com.ssm + dm_api + 1.0-SNAPSHOT + + + tk.mybatis + mapper-spring-boot-starter + + + + + com.ssm + dm_service + 1.0-SNAPSHOT + + + tk.mybatis + mapper-spring + 1.1.5 + + + org.jetbrains + annotations + RELEASE + compile + + + + + + + + + org.quartz-scheduler + quartz + 2.2.3 + + + com.alibaba + easyexcel + 2.2.7 + + + + + + + + + com.github.ulisesbocchio + jasypt-spring-boot-starter + 2.0.0 + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + net.sourceforge.nekohtml + nekohtml + 1.9.22 + + + org.jetbrains + annotations + 24.1.0 + + + + + + + + + + + + + + dm_web + + compile + + + org.apache.maven.plugins + maven-jar-plugin + 2.6 + + + + com.ssm.DmWebApp + true + lib/ + + + ./ + + + + config/** + + F:/workPlace/target/dm_web + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy + package + + copy-dependencies + + + F:/workPlace/target/dm_web/lib + + + + + + maven-resources-plugin + 3.0.2 + + + copy-resources + package + + copy-resources + + + true + F:/workPlace/target/dm_web/config + + + src/main/resources/config + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + \ No newline at end of file diff --git a/dm_web/src/main/java/com/ssm/annotation/RedissonAspect.java b/dm_web/src/main/java/com/ssm/annotation/RedissonAspect.java new file mode 100644 index 0000000..563781f --- /dev/null +++ b/dm_web/src/main/java/com/ssm/annotation/RedissonAspect.java @@ -0,0 +1,39 @@ +//package com.ssm.annotation; +// +//import com.ssm.manage.utils.StringUtils; +//import org.aspectj.lang.ProceedingJoinPoint; +//import org.aspectj.lang.annotation.Around; +//import org.aspectj.lang.annotation.Aspect; +//import org.aspectj.lang.reflect.MethodSignature; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.boot.SpringApplication; +//import org.springframework.boot.context.event.SpringApplicationEvent; +//import org.springframework.context.ApplicationEventPublisher; +//import org.springframework.core.annotation.Order; +//import org.springframework.stereotype.Component; +// +//import java.lang.reflect.Method; +//import java.util.Optional; +// +//@Component +//@Aspect +//@Order(0) +//public class RedissonAspect { +// @Autowired +// private RedissonLockService redissonLockService; +// @Autowired +// private ApplicationEventPublisher applicationEventPublisher; +// +// +// @Around("@annotation(redissonLock)") +// public Object around(ProceedingJoinPoint joinPoint,RedissonLock redissonLock) throws Throwable { +// Method method = ((MethodSignature) joinPoint.getSignature()).getMethod(); +// //获取前缀 +// applicationEventPublisher.publishEvent(new SmsSendEvent(this,"15913619401")); +// String prefix = StringUtils.isBlank(redissonLock.prefix())?SpELUtils.getMethodKey(method):redissonLock.prefix(); +// String key = SpELUtils.parseSpEl(method,joinPoint.getArgs(),redissonLock.key()); +// Object lock = redissonLockService.lock(prefix + key, redissonLock.timeout(), redissonLock.timeUnit(), joinPoint::proceed); +// return lock; +// } +// +//} diff --git a/dm_web/src/main/java/com/ssm/annotation/RedissonLock.java b/dm_web/src/main/java/com/ssm/annotation/RedissonLock.java new file mode 100644 index 0000000..d3f0ffa --- /dev/null +++ b/dm_web/src/main/java/com/ssm/annotation/RedissonLock.java @@ -0,0 +1,16 @@ +//package com.ssm.annotation; +// +//import java.lang.annotation.ElementType; +//import java.lang.annotation.Retention; +//import java.lang.annotation.RetentionPolicy; +//import java.lang.annotation.Target; +//import java.util.concurrent.TimeUnit; +// +//@Target(ElementType.METHOD) +//@Retention(RetentionPolicy.RUNTIME) +//public @interface RedissonLock { +// String prefix() default ""; +// String key(); +// int timeout() default -1; +// TimeUnit timeUnit() default TimeUnit.MILLISECONDS; +//} diff --git a/dm_web/src/main/java/com/ssm/annotation/RedissonLockService.java b/dm_web/src/main/java/com/ssm/annotation/RedissonLockService.java new file mode 100644 index 0000000..208782c --- /dev/null +++ b/dm_web/src/main/java/com/ssm/annotation/RedissonLockService.java @@ -0,0 +1,44 @@ +//package com.ssm.annotation; +// +//import com.ssm.manage.entity.SmsException; +//import com.ssm.manage.response.ResponseCode; +//import lombok.SneakyThrows; +//import org.apache.poi.ss.formula.functions.T; +//import org.redisson.api.RLock; +//import org.redisson.api.RedissonClient; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Component; +// +//import java.util.concurrent.TimeUnit; +// +//@Component +//public class RedissonLockService { +// @Autowired +// private RedissonClient redissonClient; +// +// @SneakyThrows +// public T lock(String key, int timeout, TimeUnit timeUnit, Supplier supplier) throws SmsException { +// RLock lock = redissonClient.getLock(key); +// boolean tryLock = lock.tryLock(timeout,timeUnit); +// if (!tryLock) { +// throw new SmsException(ResponseCode.MSG,"请求太频繁了"); +// } +// try { +// return supplier.get(); +// }finally { +// lock.unlock(); +// } +// } +// +// +// @FunctionalInterface +// public interface Supplier { +// +// /** +// * Gets a result. +// * +// * @return a result +// */ +// T get() throws Throwable; +// } +//} diff --git a/dm_web/src/main/java/com/ssm/annotation/SmsSendEvent.java b/dm_web/src/main/java/com/ssm/annotation/SmsSendEvent.java new file mode 100644 index 0000000..7cea534 --- /dev/null +++ b/dm_web/src/main/java/com/ssm/annotation/SmsSendEvent.java @@ -0,0 +1,18 @@ +//package com.ssm.annotation; +// +//import lombok.Getter; +//import org.springframework.context.ApplicationEvent; +// +//@Getter +//public class SmsSendEvent extends ApplicationEvent { +// private String phone; +// /** +// * Create a new ApplicationEvent. +// * +// * @param source the object on which the event initially occurred (never {@code null}) +// */ +// public SmsSendEvent(Object source,String phone) { +// super(source); +// this.phone = phone; +// } +//} diff --git a/dm_web/src/main/java/com/ssm/annotation/SmsSendLister.java b/dm_web/src/main/java/com/ssm/annotation/SmsSendLister.java new file mode 100644 index 0000000..86952a5 --- /dev/null +++ b/dm_web/src/main/java/com/ssm/annotation/SmsSendLister.java @@ -0,0 +1,16 @@ +//package com.ssm.annotation; +// +//import org.springframework.context.event.EventListener; +//import org.springframework.stereotype.Component; +//import org.springframework.transaction.event.TransactionPhase; +//import org.springframework.transaction.event.TransactionalEventListener; +// +//@Component +//public class SmsSendLister { +// +// @EventListener(SmsSendEvent.class) +// @TransactionalEventListener(value = SmsSendEvent.class,phase = TransactionPhase.AFTER_COMMIT) +// public void SmsSendLister() { +// System.out.println("SmsSendLister"); +// } +//} diff --git a/dm_web/src/main/java/com/ssm/annotation/SpELUtils.java b/dm_web/src/main/java/com/ssm/annotation/SpELUtils.java new file mode 100644 index 0000000..6345adf --- /dev/null +++ b/dm_web/src/main/java/com/ssm/annotation/SpELUtils.java @@ -0,0 +1,30 @@ +//package com.ssm.annotation; +// +//import org.springframework.core.DefaultParameterNameDiscoverer; +//import org.springframework.expression.EvaluationContext; +//import org.springframework.expression.Expression; +//import org.springframework.expression.ExpressionParser; +//import org.springframework.expression.spel.standard.SpelExpressionParser; +//import org.springframework.expression.spel.support.StandardEvaluationContext; +// +//import java.lang.reflect.Method; +//import java.util.Optional; +// +//public class SpELUtils { +// private static final ExpressionParser PARSER = new SpelExpressionParser(); +// private static final DefaultParameterNameDiscoverer PARAMETER_NAME_DISCOVERER = new DefaultParameterNameDiscoverer(); +// public static String getMethodKey(Method method){ +// return method.getDeclaringClass() + "#" + method.getName(); +// } +// +// public static String parseSpEl(Method method,Object[] args,String spEL){ +// //获取方法的参数名,可能为空 +// String[] parameterNames = Optional.ofNullable(PARAMETER_NAME_DISCOVERER.getParameterNames(method)).orElse(new String[]{}); +// EvaluationContext context = new StandardEvaluationContext(); +// for (int i = 0; i < parameterNames.length; i++) { +// context.setVariable(parameterNames[i], args[i]); +// } +// Expression expression = PARSER.parseExpression(spEL); +// return expression.getValue(context,String.class); +// } +//} diff --git a/dm_web/src/main/resources/banner.txt b/dm_web/src/main/resources/banner.txt new file mode 100644 index 0000000..e0663c9 --- /dev/null +++ b/dm_web/src/main/resources/banner.txt @@ -0,0 +1,27 @@ +${AnsiColor.BRIGHT_YELLOW} + 鸡你太美 + 鸡你实在太美 + 鸡你是太美 + 鸡你太美 + 实在是太美鸡你 + 鸡你 实在是太美鸡你 美 + 鸡你 实在是太美鸡美 太美 + 鸡你 实在是太美鸡美 太美 + 鸡你 实在是太美鸡美 太美 + 鸡你 鸡你实在是美太美 美蓝球球 +鸡 鸡 鸡你实在是太美 篮球篮球球 + 鸡 鸡你太美裆鸡太啊 蓝篮球 + 鸡你太美裆裆鸡美 + 鸡你美裆 裆鸡美 + 鸡太美 鸡太美 + 鸡美 鸡美 + 鸡美 鸡美 + 鸡美 鸡美 + 鸡太 鸡太 + 金 猴 金猴 + 皮 鞋 皮鞋金猴 + 金光 金光 大道 + 大道 + 坤坤保佑 永不宕机 永无BUG +${AnsiColor.BRIGHT_BLUE} +${AnsiColor.BRIGHT_WHITE} diff --git a/dm_web/src/main/resources/templates/index.html b/dm_web/src/main/resources/templates/index.html new file mode 100644 index 0000000..b27f83a --- /dev/null +++ b/dm_web/src/main/resources/templates/index.html @@ -0,0 +1,279 @@ + + + + + +测试项目线上发布成功与否 + + + + + + + + + + + + + +