平台信息接口
1.创建平台信息接口
1.1平台接口dataservise部分
创建pojo包,service包,还有类,里面的方法(无参有参构造,set get)
public interface PlatBaseInfoService {
/** 计算利率,注册人数,累计成交金额*/
BaseInfo queryPlatBaseInfo();
}
然后我们的BaseInfo需要序列化
package com.bjpowernode.dataservice.service;
import com.bjpowernode.api.pojo.BaseInfo;
import com.bjpowernode.api.service.PlatBaseInfoService;
import com.bjpowernode.dataservice.mapper.BidInfoMapper;
import com.bjpowernode.dataservice.mapper.ProductMapper;
import com.bjpowernode.dataservice.mapper.SysUserMapper;
import org.apache.dubbo.config.annotation.DubboService;
import javax.annotation.Resource;
@DubboService(interfaceClass = PlatBaseInfoService.class,version = "1.0")
public class PlatBaseInfoServiceImpl implements PlatBaseInfoService {
//注入Mapper
@Resource
private SysUserMapper sysUserMapper;
@Resource
private ProductMapper productMapper;
@Resource
private BidInfoMapper bidInfoMapper;
/*平台基本信息*/
@Override
public BaseInfo queryPlatBaseInfo() {
//获取注册人数,收益平均值,累计成交金额
return null;
}
}
在SysUserMapper 中添加以下接口
//统计注册人数
int selectCountUser();
安装 MyBatis X插件
在SysUSerMapper.xml中添加以下SQL
<!--注册用户数量-->
<select id="selectCountUser" resultType="java.lang.Integer">
select count(id) as ct from u_user
</select>
PlaBaseInfoServiceImpl 中添加以下
//获取注册人数,收益平均值,累计成交金额
int registerUser =sysUserMapper.selectCountUser();
在ProductMapper 中添加以下接口
/*利率平均值*/
BigDecimal selectAvgRate();
在ProductMapper.xml中添加以下代码
<!--利率平均率-->
<select id="selectAvgRate" resultType="java.math.BigDecimal">
select round(avg(rate),2) as avgRate from b_product_info
</select>
PlaBaseInfoServiceImpl 中的 queryPlatBaseInfo()方法中 添加以下
//收益率平均率
BigDecimal avgRate = productMapper.selectAvgRate();
在BidInfoMapper.java中添加一下接口
/*累计成交金额*/
BigDecimal selectSumBidMoney();
BidInfoMapper.xml中添加以下
<!--累计成交金额-->
<select id="selectSumBidMoney" resultType="java.math.BigDecimal">
select sum(bid_money) as sumBidMoney from b_bid_info
</select>
整个PlaBaseInfoServiceImpl 中的 queryPlatBaseInfo()方法
public BaseInfo queryPlatBaseInfo() {
//获取注册人数,收益平均值,累计成交金额
int registerUser =sysUserMapper.selectCountUser();
//收益率平均率
BigDecimal avgRate = productMapper.selectAvgRate();
//累计成交金额
BigDecimal sumBidMoney = bidInfoMapper.selectSumBidMoney();
BaseInfo baseInfo = new BaseInfo(avgRate,sumBidMoney,registerUser);
return baseInfo;
}
1.2平台接口的web部分
我们肯定不只一个controller,所以把公共的资源放到一个父类。
统一的应答结果。controller方法的返回值都是他。
访问地址
http://localhost:8000/api/v1/plat/info
添加Swagger类
package com.bjpowernode.front.settings;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
public class SwaggerConfigruationSettinngs {
//创建Docket对象
@Bean
public Docket docket(){
//1创建Docket对象
Docket docket = new Docket(DocumentationType.SWAGGER_2);
//2创建Api信息, 接口文档的总体描述
ApiInfo apiInfo = new ApiInfoBuilder()
.title("动力节点金融项目")
.version("1.0")
.description("前后端分离的项目,前端Vue,后端Spring Boot + Dubbo分布式项目")
.build();
//3.设置使用ApiInfo
docket = docket.apiInfo(apiInfo);
//4.设置参与文档生成的包
docket = docket.select().apis(RequestHandlerSelectors.
basePackage("com.bjpowernode.front.controller")).build();
return docket;
}
}
在启动类上添加这两个注解
在相关类上添加API
在web的application.yml下添加
mvc:
pathmatch:
matching-strategy: ant_path_matcher