平台信息接口image.png

1.创建平台信息接口

1.1平台接口dataservise部分

创建pojo包,service包,还有类,里面的方法(无参有参构造,set get)
image.png

  1. public interface PlatBaseInfoService {
  2. /** 计算利率,注册人数,累计成交金额*/
  3. BaseInfo queryPlatBaseInfo();
  4. }

然后我们的BaseInfo需要序列化
3110b992b09323403493c31a5a60692e.png

image.png

  1. package com.bjpowernode.dataservice.service;
  2. import com.bjpowernode.api.pojo.BaseInfo;
  3. import com.bjpowernode.api.service.PlatBaseInfoService;
  4. import com.bjpowernode.dataservice.mapper.BidInfoMapper;
  5. import com.bjpowernode.dataservice.mapper.ProductMapper;
  6. import com.bjpowernode.dataservice.mapper.SysUserMapper;
  7. import org.apache.dubbo.config.annotation.DubboService;
  8. import javax.annotation.Resource;
  9. @DubboService(interfaceClass = PlatBaseInfoService.class,version = "1.0")
  10. public class PlatBaseInfoServiceImpl implements PlatBaseInfoService {
  11. //注入Mapper
  12. @Resource
  13. private SysUserMapper sysUserMapper;
  14. @Resource
  15. private ProductMapper productMapper;
  16. @Resource
  17. private BidInfoMapper bidInfoMapper;
  18. /*平台基本信息*/
  19. @Override
  20. public BaseInfo queryPlatBaseInfo() {
  21. //获取注册人数,收益平均值,累计成交金额
  22. return null;
  23. }
  24. }

SysUserMapper 中添加以下接口

  1. //统计注册人数
  2. int selectCountUser();

安装 MyBatis X插件
image.png

在SysUSerMapper.xml中添加以下SQL

  1. <!--注册用户数量-->
  2. <select id="selectCountUser" resultType="java.lang.Integer">
  3. select count(id) as ct from u_user
  4. </select>

PlaBaseInfoServiceImpl 中添加以下
image.png

  1. //获取注册人数,收益平均值,累计成交金额
  2. int registerUser =sysUserMapper.selectCountUser();

在ProductMapper 中添加以下接口

  1. /*利率平均值*/
  2. BigDecimal selectAvgRate();

在ProductMapper.xml中添加以下代码

  1. <!--利率平均率-->
  2. <select id="selectAvgRate" resultType="java.math.BigDecimal">
  3. select round(avg(rate),2) as avgRate from b_product_info
  4. </select>

PlaBaseInfoServiceImpl 中的 queryPlatBaseInfo()方法中 添加以下

  1. //收益率平均率
  2. BigDecimal avgRate = productMapper.selectAvgRate();

在BidInfoMapper.java中添加一下接口

  1. /*累计成交金额*/
  2. BigDecimal selectSumBidMoney();

BidInfoMapper.xml中添加以下

  1. <!--累计成交金额-->
  2. <select id="selectSumBidMoney" resultType="java.math.BigDecimal">
  3. select sum(bid_money) as sumBidMoney from b_bid_info
  4. </select>

整个PlaBaseInfoServiceImpl 中的 queryPlatBaseInfo()方法

  1. public BaseInfo queryPlatBaseInfo() {
  2. //获取注册人数,收益平均值,累计成交金额
  3. int registerUser =sysUserMapper.selectCountUser();
  4. //收益率平均率
  5. BigDecimal avgRate = productMapper.selectAvgRate();
  6. //累计成交金额
  7. BigDecimal sumBidMoney = bidInfoMapper.selectSumBidMoney();
  8. BaseInfo baseInfo = new BaseInfo(avgRate,sumBidMoney,registerUser);
  9. return baseInfo;
  10. }

1.2平台接口的web部分

image.png
我们肯定不只一个controller,所以把公共的资源放到一个父类。
image.png
image.png
统一的应答结果。controller方法的返回值都是他。
image.png

image.png
访问地址
http://localhost:8000/api/v1/plat/info
image.png

添加Swagger类

image.png

  1. package com.bjpowernode.front.settings;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.Configuration;
  4. import springfox.documentation.builders.ApiInfoBuilder;
  5. import springfox.documentation.builders.RequestHandlerSelectors;
  6. import springfox.documentation.service.ApiInfo;
  7. import springfox.documentation.spi.DocumentationType;
  8. import springfox.documentation.spring.web.plugins.Docket;
  9. @Configuration
  10. public class SwaggerConfigruationSettinngs {
  11. //创建Docket对象
  12. @Bean
  13. public Docket docket(){
  14. //1创建Docket对象
  15. Docket docket = new Docket(DocumentationType.SWAGGER_2);
  16. //2创建Api信息, 接口文档的总体描述
  17. ApiInfo apiInfo = new ApiInfoBuilder()
  18. .title("动力节点金融项目")
  19. .version("1.0")
  20. .description("前后端分离的项目,前端Vue,后端Spring Boot + Dubbo分布式项目")
  21. .build();
  22. //3.设置使用ApiInfo
  23. docket = docket.apiInfo(apiInfo);
  24. //4.设置参与文档生成的包
  25. docket = docket.select().apis(RequestHandlerSelectors.
  26. basePackage("com.bjpowernode.front.controller")).build();
  27. return docket;
  28. }
  29. }

在启动类上添加这两个注解
image.png
在相关类上添加API
image.png
在web的application.yml下添加
image.png

  1. mvc:
  2. pathmatch:
  3. matching-strategy: ant_path_matcher

访问 :http://localhost:8000/api/doc.html
image.png