|
@@ -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";
|