平台信息接口
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@Resourceprivate SysUserMapper sysUserMapper;@Resourceprivate ProductMapper productMapper;@Resourceprivate BidInfoMapper bidInfoMapper;/*平台基本信息*/@Overridepublic 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;@Configurationpublic class SwaggerConfigruationSettinngs {//创建Docket对象@Beanpublic 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.设置使用ApiInfodocket = 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

