分布式架构项目(下)

2020-11-01  本文已影响0人  极速魔法

课程模块

登录和登出

// 当刷新页面,组件创建成功之后,立刻检测本地储存中是否存在用户对象 
this.userDTO=JSON.parse(localStorage.getItem("user")); if(this.userDTO != null) { 
    this.isLogin = true; // 已登录 
}
...
this.isLogin = true; // 更新登录状态 
// 将登录成功 的对象信息保存到本地储存中
localStorage.setItem("user", JSON.stringify(this.userDTO));

课程详情

// 将课程对象传递到课程详情组件 
this.$router.push({ name: "Course", params: { course: item } });

// 路由获得参数
this.$route.params.course

章节状态

  1. 用户是否登录 isLogin
    1. 没有登录,第一张前两节,显示试看;
    2. 第三节开始 显示加锁;
    3. 其余章加锁
  2. 已登录,查询当前用户所有购买的课程,当前课程是否在用户购买的课程中
    1. 已登录,没有购买,第一张前两节显示 试看;
    2. 第三节开始 显示加锁;
    3. 其余章加锁
  3. 已登录,已购买,显示播放;其余章显示播放

点击播放视频

  1. 课程信息中查找即将播放课时视频的地址
for (let i = 0; i < this.course.courseSections.length; i++) {
  let section = this.course.courseSections[i];

  for (let j = 0; j < section.courseLessons.length; j++) {
    let lesson = section.courseLessons[j]; // 每节课

    if (lesson.courseMedia != null) {
      if (this.lessonid == lesson.courseMedia.lessonId) {
        console.log("视频地址:" + lesson.courseMedia.fileEdk);
        //2.将小节视频的地址 赋值 给播放器,进行播放
        this.myvideo.src = lesson.courseMedia.fileEdk;
        return;
      }
    }
  }
}

留言模块

点赞后的样式

// 用字符串查找 取代 遍历数组,判断当前用户是否在 点赞的用户列表中
JSON.stringify(comment.favoriteRecords).indexOf( user.content.id ) >= 0"

保存留言中文乱码

web层乱码

username = new String( username.getBytes("ISO-8859-1"),"UTF-8" );

保存数据库乱码

jdbc:mysql://193.112.27.27:3306/edu?serverTimezone=GMT&amp;useUnicode=true&amp;characterEncoding=UTF-8"

用户模块

微信登录

OAuth协议

OAuth与密码区别

token字符串转为对象

Token token = JSON.parseObject(tokenString,Token.class);

二维码在谷歌浏览器bug

iframe 未添加sandbox 属性

d.sandbox = "allow-scripts allow-top-navigation allow-same-origin"), // 允许多种请求

订单模块

微信支付

// 待dom更新之后再用二维码渲染其内容 
this.$nextTick(function(){ this.createCode(); // 直接调用会报错:TypeError: Cannot read property 'appendChild' of null });

// 生成二维码 
createCode(){ // QRCode(存放二维码的dom元素id,二维码的属性参数) 
let qrcode = new QRCode('qrcode',{ 
    width:200, // 二维码的宽度
    height:200, // 二维码的高度 
    text:"我爱你中国" // 二维码中包含的信息 
    }); 
}

支付流程

  1. 编写商户信息,写入map中
  2. 生成数字签名,商户信息转成xml格式
  3. xml数据post请求发送给微信支付平台,生成订单
  4. 微信支付平台返回xml格式数据,将响应转换成map返回给前端,生成支付二维码
  5. 检查支付状态
    1. 编写商户信息
    2. 生成数字签名
上一篇下一篇

猜你喜欢

热点阅读