统计分析模块调用用户模块获取数据

54 阅读1分钟

1、启动类添加注解

在这里插入图片描述

2、创建远程调用接口

在service_statistics模块中client/UcenterClient里添加远程调用方法。

@Component
@FeignClient("service-ucenter")
public interface UcenterClient {
    //统计某一天注册人数,统计分析远程调用
    @GetMapping("/ucenterservice/ucenter/countRegister/{day}")
    public R countRegister(@PathVariable("day") String day);
}

3、最终调用

(1)controller实现 在StatisticsDailyController中添加生成统计数据的方法。

@ApiOperation(value = "生成统计数据")
@PostMapping("createData/{day}")
public R createData(@PathVariable String day){
    staService.createData(day);
    return R.ok();
}

(2)在StatisticsDailyService中添加接口方法

package com.atguigu.staservice.service;
import com.atguigu.staservice.entity.StatisticsDaily;
import com.baomidou.mybatisplus.extension.service.IService;
public interface StatisticsDailyService extends IService<StatisticsDaily> {

    void createData(String day);
}

(3)在StatisticsDailyServiceImpl中实现接口方法

package com.atguigu.staservice.service.impl;
import com.atguigu.commonutils.R;
import com.atguigu.staservice.client.UcenterClient;
import com.atguigu.staservice.entity.StatisticsDaily;
import com.atguigu.staservice.mapper.StatisticsDailyMapper;
import com.atguigu.staservice.service.StatisticsDailyService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.RandomUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class StatisticsDailyServiceImpl extends ServiceImpl<StatisticsDailyMapper, StatisticsDaily> implements StatisticsDailyService {

    @Autowired
    private UcenterClient ucenterClient;

    //生成统计数据
    @Override
    public void createData(String day) {
        //1远程调用获得注册人数
        R r = ucenterClient.countRegister(day);
        Integer registerCount = (Integer) r.getData().get("registerCount");
        //2添加之前,根据统计日期删除表内相同日期数据
        QueryWrapper<StatisticsDaily> wrapper = new QueryWrapper<>();
        wrapper.eq("date_calculated",day);
        baseMapper.delete(wrapper);
        //3添加数据
        Integer loginNum = RandomUtils.nextInt(100, 200);//TODO
        Integer videoViewNum = RandomUtils.nextInt(100, 200);//TODO
        Integer courseNum = RandomUtils.nextInt(100, 200);//TODO

        StatisticsDaily daily = new StatisticsDaily();
        daily.setRegisterNum(registerCount);
        daily.setLoginNum(loginNum);
        daily.setVideoViewNum(videoViewNum);
        daily.setCourseNum(courseNum);
        daily.setDateCalculated(day);

        baseMapper.insert(daily);
    }
}