总结面试篇
整合微信支付
需求如下:
- 课程分为免费课程和付费课程,如果是免费课程可以直接观看,如果是付费观看的课程,用户需下单支付后才可以观看
- 如果是免费课程,在用户选择课程,进入到课程详情页面时候,直接显示 “立即观看”,用户点击立即观看,可以切换到播放列表进行视频播放
- 如果是付费课程,在用户选择课程,进入到课程详情页面时候,会显示 “立即购买”
- 点击“立即购买”,会生成课程的订单,跳转到订单页面
- 点击“去支付”,会跳转到支付页面,生成微信扫描的二维码
- 使用微信扫描支付后,会跳转回到课程详情页面,同时显示“立即观看”
后端开发
建模块,改pom,yml,启动类
业务类
开发创建订单接口
开发微信支付接口
支付订单号查询
前端开发
整合统计分析
建模块,改pom,yml,启动类
统计某一天的注册人数
具体实现如下:
<mapper namespace="com.caq.eduucenter.mapper.UcenterMemberMapper">
<!--查询某一天注册人数-->
<select id="countRegisterDay" resultType="java.lang.Integer">
SELECT COUNT(*) FROM ucenter_member uc
WHERE DATE(uc.gmt_create)=#{day}
</select>
</mapper>
下面这个sql的意思就是获取ucenter_member中创建日期等于2022-05-16的数量
SELECT
COUNT(*)
FROM
ucenter_member uc
WHERE
DATE( uc.gmt_create ) = '2022-05-16'
-- 获取日期时间格式里面日期部分
实现服务调用
显示数据
添加定时任务
日期工具类
@Component
public class ScheduledTask {
@Autowired
private StatisticsDailyService dailyService;
/**
* 测试
* 每天七点到二十三点每五秒执行一次
*/
@Scheduled(cron = "0/5 * * * * ?")
public void task1() {
System.out.println("*********++++++++++++*****执行了");
}
/**
* 每天凌晨1点执行定时,每天一点执行一次统计注册人数数量
*/
@Scheduled(cron = "0 0 1 * * ?")
public void task2() {
//获取上一天的日期
String day = DateUtil.formatDate(DateUtil.addDays(new Date(), -1));
dailyService.createStatisticsByDay(day);
}
}
cron表达式怎么写?
统计数据图表显示
生成注册人数页面
创建生成统计页面
<template>
<div class="app-container">
<!--表单-->
<el-form :inline="true" class="demo-form-inline">
<el-form-item label="日期">
<el-date-picker
v-model="day"
type="date"
placeholder="选择要统计的日期"
value-format="yyyy-MM-dd" />
</el-form-item>
<el-button
:disabled="btnDisabled"
type="primary"
@click="create()">生成</el-button>
</el-form>
</div>
</template>
<script>
import sta from '@/api/sta'
export default {
data() {
return {
day:'',
btnDisabled: false
}
},
created() {
},
methods:{
create() {
sta.createStaData(this.day)
.then(response => {
//提示信息
this.$message({
type: 'success',
message: '生成数据成功!'
})
//跳转到图表显示页面
this.$router.push({path:'/sta/show'})
})
}
}
}
</script>
生成图表页面
先来看下官方文档给出的实例