Browse Source

submit code

zhouxianguang 5 years ago
parent
commit
261bee7640
10 changed files with 77 additions and 9269 deletions
  1. 5 1
      common/LjConst.js
  2. 1 0
      common/LjRetState.js
  3. 2 2
      helper/LjApiHelper.js
  4. 1 1
      helper/LjFileHelper.js
  5. 1 1
      helper/LjLogHelper.js
  6. 0 0
      helper/logs/info.log
  7. 0 9243
      logs/info.log
  8. 0 1
      node_start.bat
  9. 65 19
      router/lesson.js
  10. 2 1
      start.bat

+ 5 - 1
common/LjConst.js

@@ -4,7 +4,11 @@ const constBase = {
     VIDEO_TYPE_MP4 : 'mp4',
     RES_TYPE_AUDIO : 4,
     RES_TYPE_IMAGE : 3,
-    RES_TYPE_VIDEO : 0
+    RES_TYPE_VIDEO : 0,
+    FILE_DOWNLOAD_NO : 0,
+    FILE_DOWNLOADED : 1,
+    FILE_DOWNLOADING : 2,
+    FILE_DOWNLOAD_FAILED : 3,
 }
 
 module.exports = constBase;

+ 1 - 0
common/LjRetState.js

@@ -2,6 +2,7 @@ var ljRetState =
     {
         code: 200,
         msg: "",
+        success : false,
         data: {}
     }
 

+ 2 - 2
helper/LjApiHelper.js

@@ -29,9 +29,9 @@ class LjApiHelper
      * @param data the data
      * @returns {string}
      */
-    static getApiForAddDownload(lessonId,courseId,data)
+    static getApiForAddDownload(lessonId,courseId,downloadStatus,data)
     {
-        return "http://tt-web.api.ai160.com/callback/download/add?lessonId=" + lessonId+"&courseId="+courseId+"&data="+data;
+        return "http://tt-web.api.ai160.com/callback/download/add?lessonId=" + lessonId+"&courseId="+courseId+"&downloadStatus="+downloadStatus+"&data="+data;
     }
 
     /**

+ 1 - 1
helper/LjFileHelper.js

@@ -23,7 +23,7 @@ class LjFileHelper
         {
             return false;
         }
-        console.info(filePropObj);
+
         //视频处理
         if (filePropObj.fileType == ljConst.VIDEO_TYPE_M3U8)
         {

+ 1 - 1
helper/LjLogHelper.js

@@ -3,7 +3,7 @@ var log4js=require('log4js');
 log4js.configure({
     appenders: {
         out: { type: 'stdout' },//设置是否在控制台打印日志
-        info: { type: 'file', filename: './logs/info.log' }
+        info: { type: 'file', filename: 'c:/efunbox/logs/lingjiao.log' }
     },
     categories: {
         default: { appenders: [ 'out', 'info' ], level: 'info' }//去掉'out'。控制台不打印日志

+ 0 - 0
helper/logs/info.log


File diff suppressed because it is too large
+ 0 - 9243
logs/info.log


+ 0 - 1
node_start.bat

@@ -1 +0,0 @@
-node C:\John\WorkSpace\WebStorm\WinBoxNode\app.js

+ 65 - 19
router/lesson.js

@@ -89,6 +89,11 @@ router.get("/downloadFile",function(req,res,next)
 
     httpHelper.request(opt, function (error, res, body)
     {
+        //开始下载
+        opt.downloadStatus = ljConst.FILE_DOWNLOADING
+        addDownload(opt);
+        logHelper.info("Begin to download file with lessonId【"+opt.lessonId+"】");
+
         let obj = JSON.parse(body);
 
         var lessonJsonObj = JSON.parse(body);
@@ -112,14 +117,18 @@ router.get("/downloadFile",function(req,res,next)
                 {
                     logHelper.debug(resourceList[j].url);
                     var url = resourceList[j].url;
-                    fileHelper.downloadFile(url)
+                    fileHelper.downloadFile(url);
+                    if(resourceSize - 1 == j)
+                    {
+                        //下载完成
+                        opt.downloadStatus = ljConst.FILE_DOWNLOADED
+                        addDownload(opt);
+                        logHelper.info("End to download file with lessonId【"+opt.lessonId+"】");
+                    }
                 }
             }
             /*课件-End*/
 
-            //保存记录
-            //addDownload(opt)
-
             return "ok";
         }
         else
@@ -127,12 +136,15 @@ router.get("/downloadFile",function(req,res,next)
             logHelper.error("failed to query lesson with lessonId[" + opt.lessonId + "],caused by error:" + lessonJsonObj);
             return "error";
         }
-    }).on("end",function()
-    {
-        test();
-    });
+    })
 
+    ljRetState.code = 2;
+    ljRetState.msg ="null object of uid"
+    ljRetState.success = true;
+    res.setHeader("Access-Control-Allow-Origin","*");
+    res.json(ljRetState);
 
+    return;
 });
 
 /**
@@ -147,8 +159,10 @@ router.get("/readFile",function(req,res)
     var fileDir =  fileHelper.getFileDir(fileDirNew)
     var fileProp =  fileHelper.getFileProperty(fileDir);
 
-    if(fileProp.fileType == ljConst.VIDEO_TYPE_M3U8)
+    logHelper.info(fileProp.fileType);
+    if(fileProp.fileType == ljConst.VIDEO_TYPE_MP4)
     {
+        logHelper.info(fileDir);
         fileHelper.readDecryptedStream(res,fileDir,"video/mp4")
     }
     else
@@ -178,27 +192,52 @@ router.get("/delFile",function(req,res)
     if (ljStringHelper.isNull(courseId))
     {
         logHelper.info("null object of courseId");
-        return "null object of courseId";
+
+        ljRetState.code = 2;
+        ljRetState.msg ="null object of courseId"
+        res.json(ljRetState);
+
+        return;
     }
     if (ljStringHelper.isNull(lessonId))
     {
         logHelper.info("null object of lessonId");
-        return "null object of courseId";
+
+        ljRetState.code = 2;
+        ljRetState.msg ="null object of lessonId"
+        res.json(ljRetState);
+
+        return;
     }
     if (ljStringHelper.isNull(eid))
     {
         logHelper.info("null object of eid");
-        return "null object of eid";
+
+        ljRetState.code = 2;
+        ljRetState.msg ="null object of eid"
+        res.json(ljRetState);
+
+        return;
     }
     if (ljStringHelper.isNull(uid))
     {
         logHelper.info("null object of uid");
-        return "null object of uid";
+
+        ljRetState.code = 2;
+        ljRetState.msg ="null object of uid"
+        res.json(ljRetState);
+
+        return;
     }
     if (ljStringHelper.isNull(token))
     {
         logHelper.info("null object of token");
-        return "null object of token";
+
+        ljRetState.code = 2;
+        ljRetState.msg ="null object of token"
+        res.json(ljRetState);
+
+        return;
     }
 
     var opt = {};
@@ -208,7 +247,7 @@ router.get("/delFile",function(req,res)
     opt.lessonId = lessonId;
     opt.courseId = courseId;
     opt.path = "/lesson/" + opt.lessonId;
-    opt.url = apiHelper.getApiForCourse(opt.lessonId, opt.courseId, opt.eid);
+    opt.url = apiHelper.getApiForQueryCourse(opt.lessonId, opt.courseId, opt.eid);
     opt.method = "get";
 
     httpHelper.request(opt, function (error, res, body)
@@ -241,8 +280,8 @@ router.get("/delFile",function(req,res)
             }
             /*课件-End*/
 
-            //保存记录
-            process.nextTick(addDownload);
+            //删除记录
+            delDownload(opt);
             return "ok";
         }
         else
@@ -252,11 +291,18 @@ router.get("/delFile",function(req,res)
         }
     });
 
+    ljRetState.code = 2;
+    ljRetState.msg ="null object of uid"
+    ljRetState.success = true;
+    res.setHeader("Access-Control-Allow-Origin","*");
+    res.json(ljRetState);
+
+    return "";
 });
 
 var addDownload = function(opt)
 {
-    opt.url = apiHelper.getApiForAddDownload(opt.lessonId,opt.courseId, null);
+    opt.url = apiHelper.getApiForAddDownload(opt.lessonId,opt.courseId,opt.downloadStatus, null);
     opt.method = "post";
     opt.path = "/callback/download/add";
 
@@ -281,7 +327,7 @@ var addDownload = function(opt)
 var delDownload = function(opt)
 {
     opt.url = apiHelper.getApiForDelDownload(opt.lessonId, null);
-    opt.method = "post";
+    opt.method = "delete";
     opt.path = "/callback/download/delete";
 
     httpHelper.request(opt, function (error, res, body)

+ 2 - 1
start.bat

@@ -1 +1,2 @@
-node C:\John\WorkSpace\WebStorm\winBoxNode\app.js
+cd C:\Program Files (x86)\Common Files\winBoxNode
+node app.js