using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using AirWheel.Cycling.Domain;
using AirWheel.Cycling.Common;
using AirWheel.Cycling.Service.IService;
using AirWheel.Cycling.Common.Enums;
using AirWheel.Cycling.WebPage.Controllers;
namespace AirWheel.Cycling.WebPage.Areas.ComManage.Controllers
{
public class DownloadController : BaseController
{
#region 声明容器
///
/// 下载管理
///
IDownloadManage DownloadManage { get; set; }
///
/// 上传的文件记录
///
IUploadManage UploadManage { get; set; }
#endregion
#region 公共变量
//文件ID
string fileid = string.Empty;
#endregion
#region 基本视图
///
/// 加载首页
///
[UserAuthorizeAttribute(ModuleAlias = "Download", OperaAction = "View")]
public ActionResult Index()
{
ViewBag.Search = base.keywords;
return View(BindList());
}
///
/// 查询列表方法
///
private PageInfo BindList()
{
var config = this.DownloadManage.Config;
var query = (from r in config.COM_DOWNLOAD
join u in config.COM_UPLOAD on r.FK_UPID equals u.ID
select new
{
r.ID,
r.DLDATE,
r.DLIP,
r.DLNUM,
r.DLOPERATOR,
r.FK_UPID,
r.FK_USERID,
FILENAME = u.UPOLDNAME,
u.UPFILEPATH
});
if (!string.IsNullOrEmpty(base.keywords))
{
query = query.Where(p => p.DLOPERATOR.Contains(keywords));
}
return this.DownloadManage.Query(query, base.page, base.pagesize);
}
///
/// 加载详情
///
[UserAuthorizeAttribute(ModuleAlias = "Download", OperaAction = "Detail")]
public ActionResult Detail(string id)
{
var entity = this.DownloadManage.Get(p => p.ID == id) ?? new COM_DOWNLOAD();
return View(entity);
}
#endregion
#region 其他调用
///
/// 用户下载功能
///
[UserAuthorizeAttribute(ModuleAlias = "Download", OperaAction = "Download")]
public ActionResult DownLoadFile()
{
fileid = Request.QueryString["file"];
//文件ID
if (string.IsNullOrEmpty(fileid))
{
Response.Write("");
Response.End();
}
//查找文件ID是否存在
var file = this.UploadManage.Get(p => p.ID == fileid);
if (file == null)
{
Response.Write("");
Response.End();
}
//根据文件路径判断文件是否存在
if (!System.IO.File.Exists(Server.MapPath(file.UPFILEPATH)))
{
Response.Write("");
//记录日志,文件缺失
WriteLog(enumOperator.Files, "文件丢失,文件原始名称:" + file.UPOLDNAME + "路径" + file.UPFILEPATH,enumLog4net.ERROR);
Response.End();
}
//记录下载数据
this.DownloadManage.Save(new COM_DOWNLOAD()
{
ID = Guid.NewGuid().ToString(),
FK_UPID = fileid,
FK_USERID = this.CurrentUser.Id,
DLDATE = DateTime.Now,
DLIP = Utils.GetIP(),
DLOPERATOR = this.CurrentUser.Name,
DLNUM = 1
});
//跳转文件路径,进行浏览器下载
Response.Redirect(file.UPFILEURL + file.UPFILEPATH, true);
return new EmptyResult();
}
#endregion
}
}