Browse Source

submit code

zhouxianguang 6 năm trước cách đây
mục cha
commit
18b747b0bb

+ 16 - 0
app.js

@@ -12,3 +12,19 @@ app.listen(8089, function ()
 {
 {
     logHelper.info("WinBoxNode starting success");
     logHelper.info("WinBoxNode starting success");
 });
 });
+
+process.on('uncaughtException', function (err)
+{
+    logHelper.error(err);
+});
+
+
+
+
+
+
+
+
+
+
+

+ 0 - 4
common/LjConst.js

@@ -6,10 +6,6 @@ const constBase = {
     RES_TYPE_AUDIO : 4,
     RES_TYPE_AUDIO : 4,
     RES_TYPE_IMAGE : 3,
     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;
 module.exports = constBase;

+ 23 - 2
helper/LjApiHelper.js

@@ -1,5 +1,14 @@
 var request = require('request');
 var request = require('request');
 var cryptoJS = require("crypto-js");
 var cryptoJS = require("crypto-js");
+var mac = require('getmac');//获取mac地址
+
+var macAddressStr = "";
+//获取机器mac地址
+mac.getMac(function(err,macAddress){
+    if (err)  throw err;
+    macAddressStr = macAddress; //获取mac地址
+});
+
 
 
 /**
 /**
  * The helper of api
  * The helper of api
@@ -29,9 +38,11 @@ class LjApiHelper
      * @param data the data
      * @param data the data
      * @returns {string}
      * @returns {string}
      */
      */
-    static getApiForAddDownload(lessonId,courseId,downloadStatus,data)
+    static getApiForAddDownload(lessonId,courseId,resTotal,data)
     {
     {
-        return "http://tt-web.api.ai160.com/callback/download/add?lessonId=" + lessonId+"&courseId="+courseId+"&downloadStatus="+downloadStatus+"&data="+data;
+//获取机器mac地址
+        console.info(macAddressStr);
+        return "http://tt-web.api.ai160.com/callback/download/add?lessonId=" + lessonId+"&courseId="+courseId+"&resTotal="+resTotal+"&resSize=0&mac="+macAddressStr;
     }
     }
 
 
     /**
     /**
@@ -44,6 +55,16 @@ class LjApiHelper
     {
     {
         return "http://tt-web.api.ai160.com/callback/download/delete?lessonId=" + lessonId+"&data="+data;
         return "http://tt-web.api.ai160.com/callback/download/delete?lessonId=" + lessonId+"&data="+data;
     }
     }
+
+    /**
+     * Gets the API for update resource size
+     * @param lessonId the lesson id
+     * @returns {string}
+     */
+    static getApiForUpdateResSize(lessonId)
+    {
+        return "http://tt-web.api.ai160.com/callback/download/update/resource/size?lessonId=" + lessonId;
+    }
 }
 }
 
 
 module.exports = LjApiHelper;
 module.exports = LjApiHelper;

+ 71 - 10
helper/LjFileHelper.js

@@ -4,6 +4,8 @@ var ffmpeg = require('fluent-ffmpeg');
 var ljConst = require("../common/LjConst.js");
 var ljConst = require("../common/LjConst.js");
 var path = require('path');
 var path = require('path');
 var logHelper = require("./LjLogHelper");
 var logHelper = require("./LjLogHelper");
+var apiHelper = require("../helper/LjApiHelper");
+var httpHelper = require("../helper/LjHttpHelper");
 
 
 /**
 /**
  * The helper of file
  * The helper of file
@@ -15,7 +17,7 @@ class LjFileHelper
      * @param fileUrl the file url
      * @param fileUrl the file url
      * @returns {boolean}
      * @returns {boolean}
      */
      */
-    static downloadFile(fileUrl)
+    static downloadFile(fileUrl,opt)
     {
     {
         //获取文件属性对象
         //获取文件属性对象
         var filePropObj = this.getFileProperty(fileUrl);
         var filePropObj = this.getFileProperty(fileUrl);
@@ -47,7 +49,9 @@ class LjFileHelper
                     logHelper.info("Succeeded to down video:" + localFileDirNew);
                     logHelper.info("Succeeded to down video:" + localFileDirNew);
 
 
                     //加密存储
                     //加密存储
-                    LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew);
+                    LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew,function(){
+                        //LjFileHelper.updateDownloadResSize(opt);
+                    });
                     logHelper.info("Succeeded to encrypt video:" + localFileDirNew);
                     logHelper.info("Succeeded to encrypt video:" + localFileDirNew);
 
 
                     //删除文件(加密存储完成后删除未加密文件)
                     //删除文件(加密存储完成后删除未加密文件)
@@ -61,6 +65,7 @@ class LjFileHelper
                         }
                         }
                         else
                         else
                         {
                         {
+                            LjFileHelper.updateDownloadResSize(opt);
                             logHelper.info('Succeeded to delete video:' + localFileDir)
                             logHelper.info('Succeeded to delete video:' + localFileDir)
                         }
                         }
                     })
                     })
@@ -80,8 +85,9 @@ class LjFileHelper
                 logHelper.info("Succeeded to down audio:" + localFileDirNew);
                 logHelper.info("Succeeded to down audio:" + localFileDirNew);
 
 
                 //加密有声读物
                 //加密有声读物
-                LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew);
+                LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew,function(){
 
 
+                });
                 logHelper.info("Succeeded to image audio:" + localFileDirNew);
                 logHelper.info("Succeeded to image audio:" + localFileDirNew);
 
 
                 //删除文件(加密存储完成后删除未加密文件)
                 //删除文件(加密存储完成后删除未加密文件)
@@ -95,6 +101,7 @@ class LjFileHelper
                     }
                     }
                     else
                     else
                     {
                     {
+                        LjFileHelper.updateDownloadResSize(opt);
                         logHelper.info('Succeeded to delete audio:' + localFileDir)
                         logHelper.info('Succeeded to delete audio:' + localFileDir)
                     }
                     }
                 })
                 })
@@ -113,8 +120,9 @@ class LjFileHelper
                 logHelper.info("Succeeded to down image:" + localFileDirNew);
                 logHelper.info("Succeeded to down image:" + localFileDirNew);
 
 
                 //加密图片
                 //加密图片
-                LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew);
+                LjFileHelper.writeEncryptedStream(localFileDir, localFileDirNew,function(){
 
 
+                });
                 logHelper.info("Succeeded to image image:" + localFileDirNew);
                 logHelper.info("Succeeded to image image:" + localFileDirNew);
 
 
                 //删除文件(加密存储完成后删除未加密文件)
                 //删除文件(加密存储完成后删除未加密文件)
@@ -128,6 +136,7 @@ class LjFileHelper
                     }
                     }
                     else
                     else
                     {
                     {
+                        LjFileHelper.updateDownloadResSize(opt);
                         logHelper.info('Succeeded to delete image:' + localFileDir)
                         logHelper.info('Succeeded to delete image:' + localFileDir)
                     }
                     }
                 })
                 })
@@ -266,6 +275,34 @@ class LjFileHelper
         /*--文件夹目录-Begin--*/
         /*--文件夹目录-Begin--*/
 
 
         return filePropObj;
         return filePropObj;
+    }
+
+    /**
+     * Gets the file property object
+     * @param fileUrl the file URL
+     * @returns {null}
+     */
+    static getFilePropertyNoMkdir(fileUrl)
+    {
+        /*--文件夹目录-Begin--*/
+        var folderDir = ljConst.BASE_DIR;
+
+        var splitArr = fileUrl.split('/')
+        var arrLen = splitArr.length;
+        for (var i = 3; i < arrLen - 1; i++)
+        {
+            folderDir += splitArr[i] + "\\";
+        }
+
+        var filePropObj = {};
+        filePropObj.folderDir = folderDir;
+        //获取文件名称
+        filePropObj.fileName = splitArr[arrLen - 1].split(".")[0];
+        //获取文件类型
+        filePropObj.fileType = splitArr[arrLen - 1].split(".")[1];
+        /*--文件夹目录-Begin--*/
+
+        return filePropObj;
 
 
     }
     }
 
 
@@ -289,7 +326,6 @@ class LjFileHelper
         return b;
         return b;
     }
     }
 
 
-
     static Decrypted(c)
     static Decrypted(c)
     {
     {
         var b = '';
         var b = '';
@@ -310,13 +346,12 @@ class LjFileHelper
         return b;
         return b;
     }
     }
 
 
-
     /**
     /**
      * Writes encrypted content, which is read from given source file, into given dest file
      * Writes encrypted content, which is read from given source file, into given dest file
      * @param fSrc the source file
      * @param fSrc the source file
      * @param fDest the dest file
      * @param fDest the dest file
      */
      */
-    static writeEncryptedStream(fSrc, fDest)
+    static writeEncryptedStream(fSrc, fDest,callback)
     {
     {
         var rs = fs.createReadStream(fSrc);
         var rs = fs.createReadStream(fSrc);
         var ws = fs.createWriteStream(fDest);
         var ws = fs.createWriteStream(fDest);
@@ -336,11 +371,12 @@ class LjFileHelper
         {
         {
             ws.end();
             ws.end();
             logHelper.info('Succeeded in writing into encrypted stream[' + fDest + '].');
             logHelper.info('Succeeded in writing into encrypted stream[' + fDest + '].');
+            callback();
         });
         });
 
 
         rs.on('error', function (err)
         rs.on('error', function (err)
         {
         {
-            console.log(err.stack);
+            logHelper.error(err.stack);
         });
         });
     }
     }
 
 
@@ -466,12 +502,37 @@ class LjFileHelper
         rs.on('end', function ()
         rs.on('end', function ()
         {
         {
             res.end();
             res.end();
-            console.log('Succeeded in reading from decrypted stream[' + fDest + '].');
+            logHelper.log('Succeeded in reading from decrypted stream[' + fDest + '].');
         });
         });
 
 
         rs.on('error', function (err)
         rs.on('error', function (err)
         {
         {
-            console.log(err.stack);
+            logHelper.log(err.stack);
+        });
+    }
+
+    static updateDownloadResSize(opt)
+    {
+        //return false;
+        opt.url = apiHelper.getApiForUpdateResSize(opt.lessonId);
+        opt.method = "PUT";
+        opt.path = "/callback/download/update/resource/size";
+
+        httpHelper.request(opt, function (error, res, body)
+        {
+            var retObj = JSON.parse(body);
+            logHelper.debug(retObj);
+
+            if (retObj.code == 200)
+            {
+                logHelper.info("Succeed to call api[" + opt.path + "]");
+                return true;
+            }
+            else
+            {
+                logHelper.error("Failed to call api[" + opt.path + "],caused by error[" + retObj + "]");
+                return false;
+            }
         });
         });
     }
     }
 
 

+ 5 - 0
helper/LjHttpHelper.js

@@ -3,6 +3,11 @@ var cryptoJS = require("crypto-js");
 var logHelper = require("./LjLogHelper");
 var logHelper = require("./LjLogHelper");
 var uuid = require('node-uuid');
 var uuid = require('node-uuid');
 
 
+
+
+//获取机器mac地址
+
+
 /**
 /**
  * The helper of http
  * The helper of http
  */
  */

+ 7 - 1
helper/LjLogHelper.js

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

+ 41 - 0
package-lock.json

@@ -182,6 +182,15 @@
       "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
       "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
       "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
       "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
     },
     },
+    "eachr": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/eachr/-/eachr-3.2.0.tgz",
+      "integrity": "sha1-LDXkPqCGUW95l8+At6pk1VpKRIQ=",
+      "requires": {
+        "editions": "^1.1.1",
+        "typechecker": "^4.3.0"
+      }
+    },
     "ecc-jsbn": {
     "ecc-jsbn": {
       "version": "0.1.2",
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
       "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -192,6 +201,11 @@
         "safer-buffer": "^2.1.0"
         "safer-buffer": "^2.1.0"
       }
       }
     },
     },
+    "editions": {
+      "version": "1.3.4",
+      "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz",
+      "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg=="
+    },
     "ee-first": {
     "ee-first": {
       "version": "1.1.1",
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -254,6 +268,16 @@
       "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
       "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
       "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
       "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
     },
     },
+    "extract-opts": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-3.3.1.tgz",
+      "integrity": "sha1-WrvtyYwNUgLjJ4cn+Rktfghsa+E=",
+      "requires": {
+        "eachr": "^3.2.0",
+        "editions": "^1.1.1",
+        "typechecker": "^4.3.0"
+      }
+    },
     "extsprintf": {
     "extsprintf": {
       "version": "1.3.0",
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
       "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
@@ -317,6 +341,15 @@
       "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
       "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
       "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
       "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
     },
     },
+    "getmac": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/getmac/-/getmac-1.4.3.tgz",
+      "integrity": "sha512-bOZafIX+19cCS5KUjHtlJPZW+4joMa5tISIk5CugjmlZE0zZtjwB59wm56JPXVy5ELivw7g4Z9TEI0EDa2CSwQ==",
+      "requires": {
+        "editions": "^1.3.4",
+        "extract-opts": "^3.2.0"
+      }
+    },
     "getpass": {
     "getpass": {
       "version": "0.1.7",
       "version": "0.1.7",
       "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
       "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
@@ -773,6 +806,14 @@
         "mime-types": "~2.1.18"
         "mime-types": "~2.1.18"
       }
       }
     },
     },
+    "typechecker": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.5.0.tgz",
+      "integrity": "sha512-bqPE/ck3bVIaXP7gMKTKSHrypT32lpYTpiqzPYeYzdSQnmaGvaGhy7TnN/M/+5R+2rs/kKcp9ZLPRp/Q9Yj+4w==",
+      "requires": {
+        "editions": "^1.3.4"
+      }
+    },
     "unpipe": {
     "unpipe": {
       "version": "1.0.0",
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
       "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",

+ 1 - 0
package.json

@@ -16,6 +16,7 @@
     "crypto-js": "^3.1.9-1",
     "crypto-js": "^3.1.9-1",
     "express": "^4.16.3",
     "express": "^4.16.3",
     "fluent-ffmpeg": "^2.1.2",
     "fluent-ffmpeg": "^2.1.2",
+    "getmac": "^1.4.3",
     "log4js": "^3.0.3",
     "log4js": "^3.0.3",
     "node-uuid": "^1.4.8",
     "node-uuid": "^1.4.8",
     "request": "^2.87.0"
     "request": "^2.87.0"

+ 85 - 47
router/lesson.js

@@ -1,9 +1,11 @@
 var express = require('express');
 var express = require('express');
+var mac = require('getmac');//获取mac地址
+var fs = require('fs');
 var url = require('url');
 var url = require('url');
 var router = express.Router();
 var router = express.Router();
 
 
-var ljConst =  require("../common/LjConst");
-var ljRetState =  require("../common/LjRetState");
+var ljConst = require("../common/LjConst");
+var ljRetState = require("../common/LjRetState");
 
 
 var logHelper = require("../helper/LjLogHelper.js");
 var logHelper = require("../helper/LjLogHelper.js");
 var httpHelper = require("../helper/LjHttpHelper");
 var httpHelper = require("../helper/LjHttpHelper");
@@ -14,7 +16,7 @@ var ljStringHelper = require("../helper/LjStringHelper");
 /**
 /**
  * 下载文件
  * 下载文件
  */
  */
-router.get("/downloadFile",function(req,res,next)
+router.get("/downloadFile", function (req, res, next)
 {
 {
     var arg = url.parse(req.url, true).query;
     var arg = url.parse(req.url, true).query;
     var courseId = arg.courseId;
     var courseId = arg.courseId;
@@ -31,7 +33,7 @@ router.get("/downloadFile",function(req,res,next)
         logHelper.info("null object of courseId");
         logHelper.info("null object of courseId");
 
 
         ljRetState.code = 2;
         ljRetState.code = 2;
-        ljRetState.msg ="null object of courseId"
+        ljRetState.msg = "null object of courseId"
         res.json(ljRetState);
         res.json(ljRetState);
 
 
         return;
         return;
@@ -41,7 +43,7 @@ router.get("/downloadFile",function(req,res,next)
         logHelper.info("null object of lessonId");
         logHelper.info("null object of lessonId");
 
 
         ljRetState.code = 2;
         ljRetState.code = 2;
-        ljRetState.msg ="null object of lessonId"
+        ljRetState.msg = "null object of lessonId"
         res.json(ljRetState);
         res.json(ljRetState);
 
 
         return;
         return;
@@ -51,7 +53,7 @@ router.get("/downloadFile",function(req,res,next)
         logHelper.info("null object of eid");
         logHelper.info("null object of eid");
 
 
         ljRetState.code = 2;
         ljRetState.code = 2;
-        ljRetState.msg ="null object of eid"
+        ljRetState.msg = "null object of eid"
         res.json(ljRetState);
         res.json(ljRetState);
 
 
         return;
         return;
@@ -61,7 +63,7 @@ router.get("/downloadFile",function(req,res,next)
         logHelper.info("null object of uid");
         logHelper.info("null object of uid");
 
 
         ljRetState.code = 2;
         ljRetState.code = 2;
-        ljRetState.msg ="null object of uid"
+        ljRetState.msg = "null object of uid"
         res.json(ljRetState);
         res.json(ljRetState);
 
 
         return;
         return;
@@ -71,7 +73,7 @@ router.get("/downloadFile",function(req,res,next)
         logHelper.info("null object of token");
         logHelper.info("null object of token");
 
 
         ljRetState.code = 2;
         ljRetState.code = 2;
-        ljRetState.msg ="null object of token"
+        ljRetState.msg = "null object of token"
         res.json(ljRetState);
         res.json(ljRetState);
 
 
         return;
         return;
@@ -89,10 +91,6 @@ router.get("/downloadFile",function(req,res,next)
 
 
     httpHelper.request(opt, function (error, res, body)
     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);
         let obj = JSON.parse(body);
 
 
@@ -104,6 +102,28 @@ router.get("/downloadFile",function(req,res,next)
             var courseList = lessonJsonObj.data.list;
             var courseList = lessonJsonObj.data.list;
             //课程数
             //课程数
             var courseListSize = courseList.length;
             var courseListSize = courseList.length;
+
+            //获取总共资源数
+            var res_total = 0;
+            for (var i = 0; i < courseListSize; i++)
+            {
+                //资源集合
+                var resourceList = courseList[i].list;
+
+                //资源数
+                var resourceSize = resourceList.length;
+                res_total += resourceSize
+            }
+            logHelper.info("res_total:"+res_total);
+            /*课件-End*/
+
+            //添加下载记录
+            opt.resTotal = res_total;
+            opt.resSize = 0;
+            addDownload(opt);
+            logHelper.info("Begin to download file with lessonId【" + opt.lessonId + "】");
+            //添加下载记录
+
             //遍历课件
             //遍历课件
             for (var i = 0; i < courseListSize; i++)
             for (var i = 0; i < courseListSize; i++)
             {
             {
@@ -117,14 +137,8 @@ router.get("/downloadFile",function(req,res,next)
                 {
                 {
                     logHelper.debug(resourceList[j].url);
                     logHelper.debug(resourceList[j].url);
                     var url = resourceList[j].url;
                     var url = resourceList[j].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+"】");
-                    }
+
+                    fileHelper.downloadFile(url,opt);
                 }
                 }
             }
             }
             /*课件-End*/
             /*课件-End*/
@@ -138,10 +152,10 @@ router.get("/downloadFile",function(req,res,next)
         }
         }
     })
     })
 
 
-    ljRetState.code = 2;
-    ljRetState.msg ="null object of uid"
+    ljRetState.code = 200;
+    ljRetState.msg = "null object of uid"
     ljRetState.success = true;
     ljRetState.success = true;
-    res.setHeader("Access-Control-Allow-Origin","*");
+    res.setHeader("Access-Control-Allow-Origin", "*");
     res.json(ljRetState);
     res.json(ljRetState);
 
 
     return;
     return;
@@ -150,34 +164,31 @@ router.get("/downloadFile",function(req,res,next)
 /**
 /**
  * 读取文件
  * 读取文件
  */
  */
-router.get("/readFile",function(req,res)
+router.get("/readFile", function (req, res)
 {
 {
     var arg = url.parse(req.url, true).query;
     var arg = url.parse(req.url, true).query;
     var fileDirStr = arg.n;
     var fileDirStr = arg.n;
-    var fileDirNew =  fileDirStr.replace(/\*/g,'\\');
-    
-    var fileDir =  fileHelper.getFileDir(fileDirNew)
-    var fileProp =  fileHelper.getFileProperty(fileDir);
+    var fileDirNew = fileDirStr.replace(/\*/g, '\\');
+
+    var fileDir = fileHelper.getFileDir(fileDirNew)
+    var fileProp = fileHelper.getFileProperty(fileDir);
 
 
     logHelper.info(fileProp.fileType);
     logHelper.info(fileProp.fileType);
-    if(fileProp.fileType == ljConst.VIDEO_TYPE_MP4)
+    if (fileProp.fileType == ljConst.VIDEO_TYPE_MP4)
     {
     {
         logHelper.info(fileDir);
         logHelper.info(fileDir);
-        fileHelper.readDecryptedStream(res,fileDir,"video/mp4")
+        fileHelper.readDecryptedStream(res, fileDir, "video/mp4")
     }
     }
     else
     else
     {
     {
-        fileHelper.readDecryptedStream(res,fileDir,"image/jpeg")
+        fileHelper.readDecryptedStream(res, fileDir, "image/jpeg")
     }
     }
 });
 });
-function test()
-{
-    console.log(11);
-}
+
 /**
 /**
  * 删除下载文件
  * 删除下载文件
  */
  */
-router.get("/delFile",function(req,res)
+router.get("/delFile", function (req, res)
 {
 {
     var arg = url.parse(req.url, true).query;
     var arg = url.parse(req.url, true).query;
     var courseId = arg.courseId;
     var courseId = arg.courseId;
@@ -194,7 +205,7 @@ router.get("/delFile",function(req,res)
         logHelper.info("null object of courseId");
         logHelper.info("null object of courseId");
 
 
         ljRetState.code = 2;
         ljRetState.code = 2;
-        ljRetState.msg ="null object of courseId"
+        ljRetState.msg = "null object of courseId"
         res.json(ljRetState);
         res.json(ljRetState);
 
 
         return;
         return;
@@ -204,7 +215,7 @@ router.get("/delFile",function(req,res)
         logHelper.info("null object of lessonId");
         logHelper.info("null object of lessonId");
 
 
         ljRetState.code = 2;
         ljRetState.code = 2;
-        ljRetState.msg ="null object of lessonId"
+        ljRetState.msg = "null object of lessonId"
         res.json(ljRetState);
         res.json(ljRetState);
 
 
         return;
         return;
@@ -214,7 +225,7 @@ router.get("/delFile",function(req,res)
         logHelper.info("null object of eid");
         logHelper.info("null object of eid");
 
 
         ljRetState.code = 2;
         ljRetState.code = 2;
-        ljRetState.msg ="null object of eid"
+        ljRetState.msg = "null object of eid"
         res.json(ljRetState);
         res.json(ljRetState);
 
 
         return;
         return;
@@ -224,7 +235,7 @@ router.get("/delFile",function(req,res)
         logHelper.info("null object of uid");
         logHelper.info("null object of uid");
 
 
         ljRetState.code = 2;
         ljRetState.code = 2;
-        ljRetState.msg ="null object of uid"
+        ljRetState.msg = "null object of uid"
         res.json(ljRetState);
         res.json(ljRetState);
 
 
         return;
         return;
@@ -234,7 +245,7 @@ router.get("/delFile",function(req,res)
         logHelper.info("null object of token");
         logHelper.info("null object of token");
 
 
         ljRetState.code = 2;
         ljRetState.code = 2;
-        ljRetState.msg ="null object of token"
+        ljRetState.msg = "null object of token"
         res.json(ljRetState);
         res.json(ljRetState);
 
 
         return;
         return;
@@ -275,7 +286,27 @@ router.get("/delFile",function(req,res)
                 {
                 {
                     logHelper.debug(resourceList[j].url);
                     logHelper.debug(resourceList[j].url);
                     var url = resourceList[j].url;
                     var url = resourceList[j].url;
-                    fileHelper.downloadFile(url)
+                    //fileHelper.downloadFile(url)
+
+                    var delFileProp = fileHelper.getFilePropertyNoMkdir(url);
+
+                    //未加密文件URL
+                    var file1 = null;
+                    if (delFileProp.fileType == ljConst.VIDEO_TYPE_M3U8)
+                    {
+                        file1 = delFileProp.folderDir + delFileProp.fileName + "_new.mp4";
+                    }
+                    else
+                    {
+                        file1 = delFileProp.folderDir + delFileProp.fileName + "_new." + delFileProp.fileType;
+                    }
+
+                    //判断文件是否存在
+                    if (fs.existsSync(file1))
+                    {
+                        //删除路径
+                        fs.unlinkSync(file1);
+                    }
                 }
                 }
             }
             }
             /*课件-End*/
             /*课件-End*/
@@ -292,17 +323,24 @@ router.get("/delFile",function(req,res)
     });
     });
 
 
     ljRetState.code = 2;
     ljRetState.code = 2;
-    ljRetState.msg ="null object of uid"
+    ljRetState.msg = "null object of uid"
     ljRetState.success = true;
     ljRetState.success = true;
-    res.setHeader("Access-Control-Allow-Origin","*");
+    res.setHeader("Access-Control-Allow-Origin", "*");
     res.json(ljRetState);
     res.json(ljRetState);
 
 
     return "";
     return "";
 });
 });
 
 
-var addDownload = function(opt)
+var addDownload = function (opt)
 {
 {
-    opt.url = apiHelper.getApiForAddDownload(opt.lessonId,opt.courseId,opt.downloadStatus, null);
+    var macAddressStr = "";
+    mac.getMac(function(err,macAddress){
+        if (err)  throw err;
+        macAddressStr =  macAddress; //获取mac地址
+    });
+    console.info("macAddressStr:"+macAddressStr);
+
+    opt.url = apiHelper.getApiForAddDownload(opt.lessonId, opt.courseId, opt.resTotal, opt.resSize);
     opt.method = "post";
     opt.method = "post";
     opt.path = "/callback/download/add";
     opt.path = "/callback/download/add";
 
 
@@ -324,7 +362,7 @@ var addDownload = function(opt)
     });
     });
 }
 }
 
 
-var delDownload = function(opt)
+var delDownload = function (opt)
 {
 {
     opt.url = apiHelper.getApiForDelDownload(opt.lessonId, null);
     opt.url = apiHelper.getApiForDelDownload(opt.lessonId, null);
     opt.method = "delete";
     opt.method = "delete";

+ 10 - 0
test/mac.js

@@ -0,0 +1,10 @@
+var npm = require('getmac');//获取mac地址
+
+var macAddressStr = "";
+//获取机器mac地址
+npm.getMac(function(err,macAddress){
+    if (err)  throw err;
+    macAddressStr = macAddress; //获取mac地址
+    console.log(macAddressStr);
+});
+console.info(macAddressStr);