diff --git a/pom.xml b/pom.xml index 31c2e74..cbebf6e 100644 --- a/pom.xml +++ b/pom.xml @@ -12,6 +12,7 @@ 8 8 UTF-8 + 1.0.0-SNAPSHOT @@ -21,118 +22,29 @@ + - org.springframework.boot - spring-boot-starter-test - test + com.z.common + z-common-redis + ${z.common.version} + - org.springframework.boot - spring-boot-starter-web + com.z.common + z-common-rabbitmq + ${z.common.version} - + - cn.hutool - hutool-all - 5.8.0 + com.z.common + z-common-swagger + ${z.common.version} - + - org.projectlombok - lombok - 1.18.22 - - - junit - junit - 4.13.2 - test - - - - io.springfox - springfox-swagger2 - 2.9.2 - - - com.github.xiaoymin - swagger-bootstrap-ui - 1.9.6 - - - - com.alibaba - fastjson - 1.2.83 - - - - org.springframework.boot - spring-boot-starter-data-redis - 2.6.6 - - - - mysql - mysql-connector-java - 8.0.27 - - - - com.baomidou - mybatis-plus-boot-starter - 3.5.1 - - - - com.alibaba - druid-spring-boot-starter - 1.1.22 - - - - org.springframework.boot - spring-boot-starter-aop - 2.6.6 - - - - org.apache.poi - poi-ooxml - 4.1.2 - - - org.apache.poi - poi-ooxml-schemas - 3.17 - - - - org.springframework.boot - spring-boot-starter-amqp - 2.6.6 - - - org.springframework.boot - spring-boot-autoconfigure - 2.6.6 - - - junit - junit - test - - - - org.apache.httpcomponents - httpclient - 4.5.9 - - - - org.apache.httpcomponents - httpasyncclient - 4.1.4 + com.z.common + z-common-core + ${z.common.version} diff --git a/readme.md b/readme.md index adcc9c9..ac21278 100644 --- a/readme.md +++ b/readme.md @@ -7,43 +7,6 @@ ils 订单服务 - ## 接口文档地址 - http://127.0.0.1:9097/doc.html ## 开发说明和约定 -- ## mybatis-plus 插件使用方法 -- 实现下面方法即可 - - @Mapper - public interface XXXMapper extends BaseMapper { - } - - 如果需要自定义,需要同时新增接口和xml方法 -- ## JwtUtil -- token工具类 -- ## TokenAnnotation 接口注解拦截 -- 在需要拦截的controller 加上注解@TokenAnnotation(description = "备注")即可 -- ## IdGeneratorUtil 插件说明 -- String batchId(String prefix) -- 生成递增批次号 prefix + 12位数字 -- long snowflakeId() -- 雪花算法唯一id -- ## RedisUtil -- redis工具类 -- ## hutool 工具类 -- 一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件: -- 模块 介绍 -- hutool-aop JDK动态代理封装,提供非IOC下的切面支持 -- hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤 -- hutool-cache 简单缓存实现 -- hutool-core 核心,包括Bean操作、日期、各种Util等 -- hutool-cron 定时任务模块,提供类Crontab表达式的定时任务 -- hutool-crypto 加密解密模块,提供对称、非对称和摘要算法封装 -- hutool-db JDBC封装后的数据操作,基于ActiveRecord思想 -- hutool-dfa 基于DFA模型的多关键字查找 -- hutool-extra 扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等) -- hutool-http 基于HttpUrlConnection的Http客户端封装 -- hutool-log 自动识别日志实现的日志门面 -- hutool-script 脚本执行封装,例如Javascript -- hutool-setting 功能更强大的Setting配置文件和Properties封装 -- hutool-system 系统参数调用封装(JVM信息等) -- hutool-json JSON实现 -- hutool-captcha 图片验证码实现 -- hutool-poi 针对POI中Excel和Word的封装 -- hutool-socket 基于Java的NIO和AIO的Socket封装 -- hutool-jwt JSON Web Token (JWT)封装实现 -可以根据需求对每个模块单独引入,也可以通过引入hutool-all方式引入所有模块。 + - ## 开发使用规范 - diff --git a/src/main/java/org/ils/order/IlsOrderServiceApplication.java b/src/main/java/org/ils/order/IlsOrderServiceApplication.java index 2515f92..3121328 100644 --- a/src/main/java/org/ils/order/IlsOrderServiceApplication.java +++ b/src/main/java/org/ils/order/IlsOrderServiceApplication.java @@ -1,13 +1,25 @@ package org.ils.order; +import com.z.common.configuration.exception.ZGlobalExceptionHandler; +import com.z.common.configuration.rabbit.ZRabbitAutoConfiguration; +import com.z.common.configuration.redis.ZRedisAutoConfiguration; +import com.z.common.swagger.ZSwagger2Configuration; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Import; + /** * 主程序 * @author chenjf */ @SpringBootApplication +@Import(value = { + ZSwagger2Configuration.class, + ZRedisAutoConfiguration.class, + ZRabbitAutoConfiguration.class, + ZGlobalExceptionHandler.class + }) public class IlsOrderServiceApplication { public static void main(String[] args) { SpringApplication.run(IlsOrderServiceApplication.class, args); diff --git a/src/main/java/org/ils/order/config/MyBatisPlusConfig.java b/src/main/java/org/ils/order/config/MyBatisPlusConfig.java deleted file mode 100644 index d2932f8..0000000 --- a/src/main/java/org/ils/order/config/MyBatisPlusConfig.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.ils.order.config; - - -import com.baomidou.mybatisplus.annotation.DbType; -import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; -import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.transaction.annotation.EnableTransactionManagement; - -import java.util.Collections; - -@EnableTransactionManagement -@Configuration -@MapperScan("org.ils.order.mapper") -public class MyBatisPlusConfig { - @Bean - public PaginationInnerInterceptor paginationInnerInterceptor() { - PaginationInnerInterceptor paginationInterceptor = new PaginationInnerInterceptor(); - // 设置最大单页限制数量,默认 500 条,-1 不受限制 - paginationInterceptor.setMaxLimit(-1L); - paginationInterceptor.setDbType(DbType.MYSQL); - // 开启 count 的 join 优化,只针对部分 left join - paginationInterceptor.setOptimizeJoin(true); - return paginationInterceptor; - } - @Bean - public MybatisPlusInterceptor mybatisPlusInterceptor(){ - MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); - mybatisPlusInterceptor.setInterceptors(Collections.singletonList(paginationInnerInterceptor())); - return mybatisPlusInterceptor; - } -} diff --git a/src/main/java/org/ils/order/config/RedisConfig.java b/src/main/java/org/ils/order/config/RedisConfig.java deleted file mode 100644 index 9db30bb..0000000 --- a/src/main/java/org/ils/order/config/RedisConfig.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.ils.order.config; - -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.PropertyAccessor; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; -import org.springframework.data.redis.serializer.StringRedisSerializer; - -import java.net.UnknownHostException; - -/** - * @author chenjf - */ -@Configuration -public class RedisConfig { - @Bean - public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) - throws UnknownHostException { - RedisTemplate template = new RedisTemplate<>(); - template.setConnectionFactory(redisConnectionFactory); - //Json序列化配置 - //注意:SpringBoot默认的redis序列化方式是jdk序列化有兴趣可以看默认RedisTemplate源码 - Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); - ObjectMapper om = new ObjectMapper(); - om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); - jackson2JsonRedisSerializer.setObjectMapper(om); - StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); - //key采用string的序列化方式 - template.setKeySerializer(stringRedisSerializer); - //hash的key也采用string的序列化方式 - template.setHashKeySerializer(stringRedisSerializer); - //value序列化方式采用jackson - template.setValueSerializer(stringRedisSerializer); - //hash的value序列化方式采用jackson - template.setHashValueSerializer(jackson2JsonRedisSerializer); - template.afterPropertiesSet(); - return template; - } -} diff --git a/src/main/java/org/ils/order/config/RestTemplateConfig.java b/src/main/java/org/ils/order/config/RestTemplateConfig.java deleted file mode 100644 index 6cd3de8..0000000 --- a/src/main/java/org/ils/order/config/RestTemplateConfig.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.ils.order.config; - -import org.apache.http.client.HttpClient; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.config.Registry; -import org.apache.http.config.RegistryBuilder; -import org.apache.http.conn.socket.ConnectionSocketFactory; -import org.apache.http.conn.socket.PlainConnectionSocketFactory; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.client.ClientHttpRequestFactory; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; - -import org.springframework.web.client.RestTemplate; - - -/** - * restTemplate 数据池配置类 - * @author chenjf - */ -@Configuration -public class RestTemplateConfig { - - @Bean - public RestTemplate restTemplate() { - return new RestTemplate(httpRequestFactory()); - } - - - @Bean - public ClientHttpRequestFactory httpRequestFactory() { - return new HttpComponentsClientHttpRequestFactory(httpClient()); - } - - - @Bean - public HttpClient httpClient() { - Registry registry = RegistryBuilder.create() - .register("http", PlainConnectionSocketFactory.getSocketFactory()) - .register("https", SSLConnectionSocketFactory.getSocketFactory()) - .build(); - PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry); - //设置整个连接池最大连接数 - connectionManager.setMaxTotal(400); - - //路由是对maxTotal的细分 - connectionManager.setDefaultMaxPerRoute(100); - RequestConfig requestConfig = RequestConfig.custom() - .setSocketTimeout(3000) //返回数据的超时时间 - .setConnectTimeout(2000) //连接上服务器的超时时间 - .setConnectionRequestTimeout(1000) //从连接池中获取连接的超时时间 - .build(); - return HttpClientBuilder.create() - .setDefaultRequestConfig(requestConfig) - .setConnectionManager(connectionManager) - .build(); - } -} diff --git a/src/main/java/org/ils/order/config/SwaggerConfig.java b/src/main/java/org/ils/order/config/SwaggerConfig.java deleted file mode 100644 index 50a30c7..0000000 --- a/src/main/java/org/ils/order/config/SwaggerConfig.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.ils.order.config; - - -import io.swagger.annotations.ApiOperation; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.bind.annotation.RestController; -import springfox.documentation.builders.ParameterBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.schema.ModelRef; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.Parameter; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * @author chenjf - */ - -@Configuration -@EnableSwagger2 -public class SwaggerConfig { - - //配置了 Swagger 的Docket的bean实例 - @Bean - public Docket docket(){ - - ParameterBuilder ticketPar = new ParameterBuilder(); - List pars = new ArrayList<>(); - ticketPar.name("Authorization").description("token") - .modelRef(new ModelRef("string")).parameterType("header") - .required(false).build(); - pars.add(ticketPar.build()); - - return new Docket(DocumentationType.SWAGGER_2) - .apiInfo(apiInfo()) - .select() - //RequestHandlerSelectors, 配置要扫描接口的方式 - //basePackage:指定要扫描的包 - //any():扫描全部 - //withClassAnnotation: 扫描类上的注解 - //withMethodAnnotation: 扫描方法上的注解 - .apis(RequestHandlerSelectors.basePackage("org.ils.order")) - .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) - .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - .paths(PathSelectors.any()) - .build() - .globalOperationParameters(pars); - } - - //配置Swagger 信息=apiInfo - private ApiInfo apiInfo(){ - return new ApiInfo( - "ils engine Api", - "ils 订单服务接口文档", - "v1.0", - "127.0.0.1:9097/", - null,//contact - "Apache 2.0", - "http://www.apache.org/licenses/LICENSE-2.0", - new ArrayList() - ); - } -} diff --git a/src/main/java/org/ils/order/config/WebMvcConfig.java b/src/main/java/org/ils/order/config/WebMvcConfig.java index 8b495ed..ace2397 100644 --- a/src/main/java/org/ils/order/config/WebMvcConfig.java +++ b/src/main/java/org/ils/order/config/WebMvcConfig.java @@ -10,7 +10,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration -public class WebMvcConfig implements WebMvcConfigurer { +public class WebMvcConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("classpath:/static/"); diff --git a/src/main/java/org/ils/order/controller/MainLineController.java b/src/main/java/org/ils/order/controller/MainLineController.java new file mode 100644 index 0000000..ea1a517 --- /dev/null +++ b/src/main/java/org/ils/order/controller/MainLineController.java @@ -0,0 +1,26 @@ +package org.ils.order.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.ils.order.dto.dto.MainLinePageDto; +import org.ils.order.result.Result; +import org.ils.order.service.impl.MainLineServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/v1/main/line/") +@Slf4j +@Api(value = "ils 测试接口", tags = {"测试接口"}) +public class MainLineController { + @Autowired + private MainLineServiceImpl mainLineService; + + + @ApiOperation("查询列表") + @RequestMapping(value = "list", method = RequestMethod.POST) + public Result list(@RequestBody MainLinePageDto record){ + return (Result) mainLineService.list(record); + } +} diff --git a/src/main/java/org/ils/order/listener/rabbitmq/RabbitQueue.java b/src/main/java/org/ils/order/listener/rabbitmq/RabbitQueueConfig.java similarity index 53% rename from src/main/java/org/ils/order/listener/rabbitmq/RabbitQueue.java rename to src/main/java/org/ils/order/listener/rabbitmq/RabbitQueueConfig.java index 7148c55..1ef31f6 100644 --- a/src/main/java/org/ils/order/listener/rabbitmq/RabbitQueue.java +++ b/src/main/java/org/ils/order/listener/rabbitmq/RabbitQueueConfig.java @@ -1,7 +1,7 @@ package org.ils.order.listener.rabbitmq; import org.ils.order.properties.BaseConfigProperties; -import org.springframework.amqp.core.Queue; +import org.springframework.amqp.core.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -12,17 +12,30 @@ import org.springframework.context.annotation.Configuration; * @datetime 2023/08/09 */ @Configuration -public class RabbitQueue { +public class RabbitQueueConfig { @Autowired private BaseConfigProperties baseConfig; + private final static String EVENT = "events."; + + @Bean + public FanoutExchange OrderExchange() { + return new FanoutExchange ( EVENT + baseConfig.getOrderQueue(), true, false); + } + + /** * 订单队列 */ @Bean public Queue IlsOrderQueue() { - return new Queue(baseConfig.getIlsOrderQueue()); + return new Queue(baseConfig.getOrderQueue()); } + + @Bean + public Binding OrderBinding() { + return BindingBuilder.bind(IlsOrderQueue()).to(OrderExchange()); + } } diff --git a/src/main/java/org/ils/order/listener/rabbitmq/RabbitReceiver.java b/src/main/java/org/ils/order/listener/rabbitmq/RabbitReceiver.java index c0da797..cede1d6 100644 --- a/src/main/java/org/ils/order/listener/rabbitmq/RabbitReceiver.java +++ b/src/main/java/org/ils/order/listener/rabbitmq/RabbitReceiver.java @@ -1,6 +1,7 @@ package org.ils.order.listener.rabbitmq; +import com.z.common.mq.EventMessage; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; @@ -13,10 +14,10 @@ import org.springframework.stereotype.Component; */ @Slf4j @Component -@RabbitListener(queues = "${spring.rabbitmq.queue.orderQueue}") +@RabbitListener(queues = "${spring.rabbitmq.queues.orderQueue}") public class RabbitReceiver { @RabbitHandler - public void process(String json) { - log.info("Receiver: {}", json); + public void process(EventMessage message) { + log.info("Receiver: {}", message.getPayload()); } } diff --git a/src/main/java/org/ils/order/listener/rabbitmq/RabbitSender.java b/src/main/java/org/ils/order/listener/rabbitmq/RabbitSender.java index bcf3334..66fb09d 100644 --- a/src/main/java/org/ils/order/listener/rabbitmq/RabbitSender.java +++ b/src/main/java/org/ils/order/listener/rabbitmq/RabbitSender.java @@ -1,5 +1,6 @@ package org.ils.order.listener.rabbitmq; +import com.z.common.mq.EventPublisher; import org.ils.order.properties.BaseConfigProperties; import org.springframework.amqp.core.AmqpTemplate; import org.springframework.beans.factory.annotation.Autowired; @@ -14,16 +15,15 @@ import org.springframework.stereotype.Component; @Component public class RabbitSender { @Autowired - private AmqpTemplate rabbitTemplate; + private EventPublisher eventPublisher; @Autowired private BaseConfigProperties baseConfig ; - /** * 队列发送消息 - * @param queueName 队列名称 + * @param exChangeName 交换机名称 * @param json json字符串 */ - public void sendOrderQueue(String queueName,String json) { - this.rabbitTemplate.convertAndSend(queueName, json); + public void sendOrderQueue(String exChangeName,String json) { + this.eventPublisher.publish( exChangeName, json); } } diff --git a/src/main/java/org/ils/order/properties/BaseConfigProperties.java b/src/main/java/org/ils/order/properties/BaseConfigProperties.java index d3df856..98d9ed5 100644 --- a/src/main/java/org/ils/order/properties/BaseConfigProperties.java +++ b/src/main/java/org/ils/order/properties/BaseConfigProperties.java @@ -12,8 +12,9 @@ import org.springframework.stereotype.Component; @Component @Data public class BaseConfigProperties { - @Value("${spring.rabbitmq.queue.orderQueue}") - private String ilsOrderQueue; + + @Value("${spring.rabbitmq.queues.orderQueue}") + private String orderQueue; @Value("${ils.other.host.baiduUrl}") private String baiduUrl; diff --git a/src/main/java/org/ils/order/service/MainLineService.java b/src/main/java/org/ils/order/service/MainLineService.java index b32a6c0..82219c7 100644 --- a/src/main/java/org/ils/order/service/MainLineService.java +++ b/src/main/java/org/ils/order/service/MainLineService.java @@ -39,4 +39,6 @@ public interface MainLineService { * @return */ public T list(MainLinePageDto model); + + void test(); } diff --git a/src/main/java/org/ils/order/service/impl/MainLineServiceImpl.java b/src/main/java/org/ils/order/service/impl/MainLineServiceImpl.java index 771d68b..fe48c33 100644 --- a/src/main/java/org/ils/order/service/impl/MainLineServiceImpl.java +++ b/src/main/java/org/ils/order/service/impl/MainLineServiceImpl.java @@ -3,6 +3,7 @@ package org.ils.order.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.z.common.util.RedisUtils; import lombok.extern.slf4j.Slf4j; @@ -27,7 +28,8 @@ public class MainLineServiceImpl implements org.ils.order.service.impl.MainLineS @Autowired private IlsMainLineMapper ilsMainLineMapper; - + @Autowired + private RedisUtils redisUtils; @Override public Result add(Object model) { @@ -55,4 +57,9 @@ public class MainLineServiceImpl implements org.ils.order.service.impl.MainLineS IPage pageList = ilsMainLineMapper.selectPage(page, queryWrapper); return Result.OK("success", pageList); } + + @Override + public void test(){ + log.info("redis: {}", redisUtils.get("CUS_MODEL_CUS202308031001_CHA202308031001")); + } } diff --git a/src/main/java/org/ils/order/utils/RedisUtil.java b/src/main/java/org/ils/order/utils/RedisUtil.java deleted file mode 100644 index a613c29..0000000 --- a/src/main/java/org/ils/order/utils/RedisUtil.java +++ /dev/null @@ -1,431 +0,0 @@ -package org.ils.order.utils; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; - -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.TimeUnit; - -/** - * @author chenjf - * @datetime 2023/07/27 - */ -@Component -public class RedisUtil { - - @Autowired - private RedisTemplate redisTemplate; - - - /** - * 指定缓存失效时间 @param key 键 @param time 时间(秒) @return - */ - public boolean expire(String key, long time) { - try { - if (time > 0) { - redisTemplate.expire(key, time, TimeUnit.SECONDS); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 根据key 获取过期时间 @param key 键 不能为null @return 时间(秒) 返回0代表为永久有效 - */ - public long getExpire(String key) { - return redisTemplate.getExpire(key, TimeUnit.SECONDS); - } - - /** - * 判断key是否存在 @param key 键 @return true 存在 false不存在 - */ - public boolean hasKey(String key) { - try { - return redisTemplate.hasKey(key); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 删除缓存 @param key 可以传一个值 或多个 - */ - @SuppressWarnings("unchecked") - public void del(String... key) { - if (key != null && key.length > 0) { - if (key.length ==0) { - redisTemplate.delete(key[0]); - } else { - redisTemplate.delete((Collection) CollectionUtils.arrayToList(key)); - } - } - } - - - /** - * 普通缓存获取 @param key 键 @return 值 - */ - public Object get(String key) { - return key == null ? null : redisTemplate.opsForValue().get(key); - } - - /** - * 普通缓存放入 @param key 键 @param value 值 @return true成功 false失败 - */ - public boolean set(String key, Object value) { - try { - redisTemplate.opsForValue().set(key, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 普通缓存放入并设置时间 @param key 键 @param value 值 @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 @return true成功 false 失败 - */ - public boolean set(String key, Object value, long time) { - try { - if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); - } else { - set(key, value); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 递增 @param key 键 @param delta 要增加几(大于0) @return - */ - public long incr(String key, long delta) { - if (delta < 0) { - throw new RuntimeException("递增因子必须大于0"); - } - return redisTemplate.opsForValue().increment(key, delta); - } - - /** - * 递减 @param key 键 @param delta 要减少几(小于0) @return - */ - public long decr(String key, long delta) { - if (delta < 0) { - throw new RuntimeException("递减因子必须大于0"); - } - return redisTemplate.opsForValue().increment(key, -delta); - } - - /* ================================Map=================================*/ - - /** - * HashGet @param key 键 不能为null @param item 项 不能为null @return 值 - */ - public Object hget(String key, String item) { - return redisTemplate.opsForHash().get(key, item); - } - - /** - * 获取hashKey对应的所有键值 @param key 键 @return 对应的多个键值 - */ - public Map hmget(String key) { - return redisTemplate.opsForHash().entries(key); - } - - /** - * HashSet @param key 键 @param map 对应多个键值 @return true 成功 false 失败 - */ - public boolean hmset(String key, Map map) { - try { - redisTemplate.opsForHash().putAll(key, map); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * HashSet 并设置时间 @param key 键 @param map 对应多个键值 @param time 时间(秒) @return true成功 false失败 - */ - public boolean hmset(String key, Map map, long time) { - try { - redisTemplate.opsForHash().putAll(key, map); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 向一张hash表中放入数据,如果不存在将创建 @param key 键 @param item 项 @param value 值 @return true 成功 false失败 - */ - public boolean hset(String key, String item, Object value) { - try { - redisTemplate.opsForHash().put(key, item, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 向一张hash表中放入数据,如果不存在将创建 @param key 键 @param item 项 @param value 值 @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 @return true 成功 false失败 - */ - public boolean hset(String key, String item, Object value, long time) { - try { - redisTemplate.opsForHash().put(key, item, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 删除hash表中的值 @param key 键 不能为null @param item 项 可以使多个 不能为null - */ - public void hdel(String key, Object... item) { - redisTemplate.opsForHash().delete(key, item); - } - - /** - * 判断hash表中是否有该项的值 @param key 键 不能为null @param item 项 不能为null @return true 存在 false不存在 - */ - public boolean hHasKey(String key, String item) { - return redisTemplate.opsForHash().hasKey(key, item); - } - - /** - * hash递增 如果不存在,就会创建一个 并把新增后的值返回 @param key 键 @param item 项 @param by 要增加几(大于0) @return - */ - public double hincr(String key, String item, double by) { - return redisTemplate.opsForHash().increment(key, item, by); - } - - /** - * hash递减 @param key 键 @param item 项 @param by 要减少记(小于0) @return - */ - public double hdecr(String key, String item, double by) { - return redisTemplate.opsForHash().increment(key, item, -by); - } - - - /** - * 根据key获取Set中的所有值 @param key 键 @return - */ - public Set sGet(String key) { - try { - return redisTemplate.opsForSet().members(key); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 根据value从一个set中查询,是否存在 @param key 键 @param value 值 @return true 存在 false不存在 - */ - public boolean sHasKey(String key, Object value) { - try { - return redisTemplate.opsForSet().isMember(key, value); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将数据放入set缓存 @param key 键 @param values 值 可以是多个 @return 成功个数 - */ - public long sSet(String key, Object... values) { - try { - return redisTemplate.opsForSet().add(key, values); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 将set数据放入缓存 @param key 键 @param time 时间(秒) @param values 值 可以是多个 @return 成功个数 - */ - public long sSetAndTime(String key, long time, Object... values) { - try { - Long count = redisTemplate.opsForSet().add(key, values); - if (time > 0) { - expire(key, time); - } - return count; - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 获取set缓存的长度 @param key 键 @return - */ - public long sGetSetSize(String key) { - try { - return redisTemplate.opsForSet().size(key); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 移除值为value的 @param key 键 @param values 值 可以是多个 @return 移除的个数 - */ - public long setRemove(String key, Object... values) { - try { - return redisTemplate.opsForSet().remove(key, values); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /* ===============================list=================================*/ - - /** - * 获取list缓存的内容 @param key 键 @param start 开始 @param end 结束 0 到 -代表所有值 @return - */ - public List lGet(String key, long start, long end) { - try { - return redisTemplate.opsForList().range(key, start, end); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 获取list缓存的长度 @param key 键 @return - */ - public long lGetListSize(String key) { - try { - return redisTemplate.opsForList().size(key); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 通过索引 获取list中的值 @param key 键 @param index 索引 index>=0时, 0 表头, 第二个元素,依次类推;index<0时,-,表尾,-倒数第二个元素,依次类推 @return - */ - public Object lGetIndex(String key, long index) { - try { - return redisTemplate.opsForList().index(key, index); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 将list放入缓存 @param key 键 @param value 值 @param time 时间(秒) @return - */ - public boolean lSet(String key, Object value) { - try { - redisTemplate.opsForList().rightPush(key, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将list放入缓存 @param key 键 @param value 值 @param time 时间(秒) @return - */ - public boolean lSet(String key, Object value, long time) { - try { - redisTemplate.opsForList().rightPush(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将list放入缓存 @param key 键 @param value 值 @param time 时间(秒) @return - */ - public boolean lSet(String key, List value) { - try { - redisTemplate.opsForList().rightPushAll(key, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将list放入缓存 @param key 键 @param value 值 @param time 时间(秒) @return - */ - public boolean lSet(String key, List value, long time) { - try { - redisTemplate.opsForList().rightPushAll(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 根据索引修改list中的某条数据 @param key 键 @param index 索引 @param value 值 @return - */ - public boolean lUpdateIndex(String key, long index, Object value) { - try { - redisTemplate.opsForList().set(key, index, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 移除N个值为value @param key 键 @param count 移除多少个 @param value 值 @return 移除的个数 - */ - public long lRemove(String key, long count, Object value) { - try { - Long remove = redisTemplate.opsForList().remove(key, count, value); - return remove; - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } -} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index c3d4912..516157a 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -3,13 +3,13 @@ server: spring: mvc: pathmatch: - matching-strategy: ant_path_matcher + matching-strategy: ANT_PATH_MATCHER servlet: multipart: max-file-size: 10MB max-request-size: 10MB datasource: - url: jdbc:mysql://127.0.0.1:3306/ils_order?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&AllowPublicKeyRetrieval=True&useSSL=false + url: jdbc:mysql://127.0.0.1:3306/ils_engine?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&AllowPublicKeyRetrieval=True&useSSL=false username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver @@ -49,7 +49,6 @@ spring: max-wait: 10000 #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 min-idle: 0 #最小等待连接中的数量,设 0 为没有限制 shutdown-timeout: 100ms - password: '' port: 6379 # rabbitmq 配置 rabbitmq: @@ -73,7 +72,7 @@ spring: simple: acknowledge-mode: auto # 配置rabbitmq队列 - queue: + queues: orderQueue: ilsOrderQueue #订单队列 # mybatis-plus 配置 mybatis-plus: @@ -94,6 +93,16 @@ ils: other: host: baiduUrl: https://www.baidu.com +# swagger 配置 +swagger: + enabled: true + title: ils 订单接口api + description: ils订单接口文档 + name: ils订单接口文档 + url: 127.0.0.1:9097/ + version: v1.0 + pkg: org.ils + email: 123qq.com diff --git a/src/test/java/org/ils/order/RabbitMqHelloTest.java b/src/test/java/org/ils/order/RabbitMqHelloTest.java index 6c6bcbc..4ad9c89 100644 --- a/src/test/java/org/ils/order/RabbitMqHelloTest.java +++ b/src/test/java/org/ils/order/RabbitMqHelloTest.java @@ -25,7 +25,7 @@ public class RabbitMqHelloTest{ JSONObject json = new JSONObject(); json.put("userName","test123"); json.put("passWord","123456"); - rabbitSender.sendOrderQueue(baseConfig.getIlsOrderQueue(), JSON.toJSONString(json)); + rabbitSender.sendOrderQueue( baseConfig.getOrderQueue(), JSON.toJSONString(json)); log.info( "send: {}", true); } } \ No newline at end of file diff --git a/src/test/java/org/ils/order/RestTemplateTest.java b/src/test/java/org/ils/order/RestTemplateTest.java index fd5f745..e163676 100644 --- a/src/test/java/org/ils/order/RestTemplateTest.java +++ b/src/test/java/org/ils/order/RestTemplateTest.java @@ -1,45 +1,42 @@ package org.ils.order; -import com.alibaba.fastjson.JSONObject; +import com.z.common.util.RedisUtils; import lombok.extern.slf4j.Slf4j; +import org.ils.order.dto.dto.MainLinePageDto; import org.ils.order.properties.BaseConfigProperties; +import org.ils.order.result.Result; +import org.ils.order.service.impl.MainLineServiceImpl; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.client.RestTemplate; + +import javax.annotation.Resource; + @Slf4j @RunWith(SpringRunner.class) @SpringBootTest public class RestTemplateTest { - @Autowired - private RestTemplate restTemplate; @Autowired private BaseConfigProperties baseConfig; - @Test - public void test(){ - log.info("url :{}", baseConfig.getBaiduUrl()); - String content = restTemplate.getForObject( baseConfig.getBaiduUrl(), String.class); - log.info("get content :{}", content); - - JSONObject param = new JSONObject(); - param.put("alarmType", 2); - param.put("optType", 2); - param.put("optDesc", "自动处理"); - HttpHeaders headers = new HttpHeaders(); - headers.add("Content-Type","application/json;charset=UTF-8"); - headers.add("Accept", MediaType.APPLICATION_JSON.toString()); - HttpEntity formEntity = new HttpEntity(param.toString(),headers); - ResponseEntity response2 = restTemplate.postForEntity( baseConfig.getBaiduUrl(), formEntity, JSONObject.class); - log.info("response2--->{}",response2.getBody()); + @Autowired + private MainLineServiceImpl mainLineServiceImpl; + public void test(){ + mainLineServiceImpl.test(); + } + + @Test + public void test2(){ + MainLinePageDto mainLinePageDto = new MainLinePageDto(); + mainLinePageDto.setPageNo(1); + mainLinePageDto.setPageSize(10); + mainLinePageDto.setMainLineName("MAI202308021001"); + Result list = mainLineServiceImpl.list(mainLinePageDto); + log.info(list.toString()); } } \ No newline at end of file