提交 a5c772bd authored 作者: hzh's avatar hzh

api模块实现

上级 ba2c08c4
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-api</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-api-order</artifactId>
<description>
ruoyi-api-order 订单接口模块
</description>
<dependencies>
<!-- RuoYi Common Core-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-core</artifactId>
</dependency>
</dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-modules</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-order</artifactId>
<description>
ruoyi-order服务
</description>
<dependencies>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-nacos</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-sentinel</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-doc</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-dubbo</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-seata</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-web</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-log</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-ratelimiter</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-mybatis</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-tenant</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-security</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-translation</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-ys</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-api-server</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-idempotent</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-core</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
package org.dromara.order;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
/**
* 订单服务
*
* @author Lion Li
*/
@EnableDubbo
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class RuoYiOrderApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(RuoYiOrderApplication.class);
application.setApplicationStartup(new BufferingApplicationStartup(2048));
application.run(args);
System.out.println("(♥◠‿◠)ノ゙ 订单模块启动成功 ლ(´ڡ`ლ)゙ ");
}
}
package org.dromara.order.base;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.reflect.GenericsUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
* @author hzh
* @date 2024-11-18
**/
public abstract class AbstractBaseService<V, B, T> implements IBaseService<V, B, T> {
@Override
public abstract BaseMapperPlus<T, V> mapper();
@Override
public V queryById(Long id) {
return mapper().selectVoById(id);
}
@Override
public TableDataInfo<V> queryPageList(B bo, PageQuery pageQuery) {
LambdaQueryWrapper<T> lqw = buildQueryWrapper(bo);
Page<V> result = mapper().selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override
public List<V> queryList(B bo) {
LambdaQueryWrapper<T> lqw = buildQueryWrapper(bo);
return mapper().selectVoList(lqw);
}
@Override
public Boolean insertByBo(B bo) {
Class<T> clazz = (Class<T>) GenericsUtils.getSuperClassGenricType(this.getClass(), 2);
T add = MapstructUtils.convert(bo, clazz);
validEntityBeforeSave(add);
boolean flag = mapper().insert(add) > 0;
return flag;
}
@Override
public Boolean updateByBo(B bo) {
Class<T> clazz = (Class<T>) GenericsUtils.getSuperClassGenricType(this.getClass(), 2);
T update = MapstructUtils.convert(bo, clazz);
validEntityBeforeSave(update);
return mapper().updateById(update) > 0;
}
@Override
public LambdaQueryWrapper<T> buildQueryWrapper(B bo) {
LambdaQueryWrapper<T> lqw = Wrappers.lambdaQuery();
return lqw;
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
validIdsBeforeDelete(ids);
}
return mapper().deleteByIds(ids) > 0;
}
@Override
public void validIdsBeforeDelete(Collection<Long> ids) {
}
}
package org.dromara.order.base;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import java.util.Collection;
import java.util.List;
/**
* @author wenhe
*/
public interface IBaseService<V, B, T> {
/**
* 详情
*
* @param id 主键
* @return 详情
*/
V queryById(Long id);
/**
* 分页查询活动机票订单列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 活动机票订单分页列表
*/
TableDataInfo<V> queryPageList(B bo, PageQuery pageQuery);
/**
* 查询符合条件的列表
*
* @param bo 查询条件
* @return 雷彪
*/
List<V> queryList(B bo);
/**
* 新增
*
* @param bo bo
* @return 是否新增成功
*/
Boolean insertByBo(B bo);
/**
* 修改
*
* @param bo bo
* @return 是否修改成功
*/
Boolean updateByBo(B bo);
/**
* 校验并批量删除
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 删除之前校验id
*
* @param ids 待删除的主键集合
*/
default void validIdsBeforeDelete(Collection<Long> ids){
}
/**
* 构建查询条件
*
* @param bo bo
* @return 查询条件
*/
LambdaQueryWrapper<T> buildQueryWrapper(B bo);
/**
* 保存之前校验实体
*
* @param entity 实体
*/
default void validEntityBeforeSave(T entity){
}
default BaseMapperPlus mapper() {
return null;
}
}
# Tomcat
server:
port: 9211
# Spring
spring:
application:
# 应用名称
name: ruoyi-order
profiles:
# 环境配置
active: @profiles.active@
--- # nacos 配置
spring:
cloud:
nacos:
# nacos 服务地址
server-addr: @nacos.server@
username: @nacos.username@
password: @nacos.password@
discovery:
# 注册组
group: @nacos.discovery.group@
namespace: ${spring.profiles.active}
config:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
config:
import:
- optional:nacos:application-common.yml
- optional:nacos:datasource.yml
- optional:nacos:${spring.application.name}.yml
Spring Boot Version: ${spring-boot.version}
Spring Application Name: ${spring.application.name}
_
(_)
_ __ _ _ ___ _ _ _ ______ _ __ ___ ___ ___ _ _ _ __ ___ ___
| '__| | | |/ _ \| | | | |______| '__/ _ \/ __|/ _ \| | | | '__/ __/ _ \
| | | |_| | (_) | |_| | | | | | __/\__ \ (_) | |_| | | | (_| __/
|_| \__,_|\___/ \__, |_| |_| \___||___/\___/ \__,_|_| \___\___|
__/ |
|___/
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/${project.artifactId}"/>
<!-- 日志输出格式 -->
<property name="console.log.pattern"
value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${console.log.pattern}</pattern>
<charset>utf-8</charset>
</encoder>
</appender>
<include resource="logback-common.xml" />
<include resource="logback-logstash.xml" />
<!-- 开启 skywalking 日志收集 -->
<include resource="logback-skylog.xml" />
<!--系统操作日志-->
<root level="info">
<appender-ref ref="console"/>
</root>
</configuration>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论