在线教育业务笔记05- 统计分析模块
一、业务分析
二、创建微服务模块
三、实现远程服务调用
1、在service_ucenter模块创建接口,统计某一天的注册人数
controller
/**
* 提供远程调用的方法
* 查询某一天注册人数
* @param day
* @return
*/
@GetMapping("countRegister/{day}")
public R countRegister(@PathVariable String day) {
Integer count = memberService.countRegisterDay(day);
return R.ok().data("countRegister",count);
}
service接口
/**
* 查询某一天注册人数
* @param day
* @return
*/
Integer countRegisterDay(String day);
service实现
/**
* 查询某一天注册人数
* @param day
* @return
*/
@Override
public Integer countRegisterDay(String day) {
return baseMapper.countRegisterDay(day);
}
mapper接口
/**
* 询某一天注册人数
* @param day
* @return
*/
Integer countRegisterDay(String day);
mapper实现
<!--查询某一天注册人数-->
<select id="countRegisterDay" resultType="java.lang.Integer">
SELECT COUNT(*) FROM ucenter_member uc
WHERE DATE(uc.gmt_create)=#{
day}
</select>
2、在service_statistics模块创建远程调用接口
创建client包和UcenterClient接口
@Component
@FeignClient("service-ucenter")
public interface UcenterClient {
/**
* 远程调用查询某一天注册人数
* @param day
* @return
*/
@GetMapping("/educenter/member/countRegister/{day}")
public R countRegister(@PathVariable("day") String day);
}
3、在service_statistics模块调用微服务
controller
/**
* 网站统计日数据 前端控制器
* @author Tzc
*/
@RestController
@RequestMapping("/staservice/statistics-daily")
public class StatisticsDailyController {
@Autowired
private StatisticsDailyService staService;
/**
* 统计某一天注册人数,生成统计数据
* @param day
* @return
*/
@PostMapping("registerCount/{day}")
public R registerCount(@PathVariable String day) {
staService.registerCount(day);
return R.ok();
}
/**
* 图表显示,返回两部分数据,日期json数组,数量json数组
* @param type
* @param begin
* @param end
* @return
*/
@GetMapping("showData/{type}/{begin}/{end}")
public R showData(@PathVariable String type,@PathVariable String begin,
@PathVariable String end) {
Map<String,Object> map = staService.getShowData(type,begin