SysFileController.cs 3.34 KB
using Hh.Mes.Common.Request;
using Hh.Mes.POJO.Entity;
using Hh.Mes.Service;
using Hh.Mes.Service.Base;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Hh.Mes.Service.SystemAuth;
using WebMvc.Aop;
using System;

namespace WebMvc.Areas.Base.Controllers
{
    [Area("Base")]
    public class SysFileController : BaseController
    {
        private readonly SysFileService _service;
        protected readonly IHostingEnvironment hostingEnvironment;

        public SysFileController(IAuth authUtil, SysFileService service) : base(authUtil)
        {
            _service = service;
            _service.sysWebUser = authUtil.GetCurrentUser().User;
        }
 
        #region 视图功能
        /// <summary>
        /// 默认视图Action
        /// </summary>
        /// <returns></returns>
        [Authenticate]
        [ServiceFilter(typeof(OperLogFilter))]
        public ActionResult Index()
        {
            return View();
        }
        #endregion
 
        #region 数据操作
 
        /// <summary>
        /// 加载及分页查询
        /// </summary>
        /// <param name="pageRequest">表单请求信息</param>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string Load(PageReq pageRequest, sys_File entity)
        {
            return Serialize(_service.Load(pageRequest, entity));
        }
 
        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="entity">新增实例</param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Ins(sys_File entity)
        {
            return Serialize(_service.Ins(entity));
        }
 
        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="entity">修改实例</param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Upd(sys_File entity)
        {
            return Serialize(_service.Upd(entity));
        }
 
        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string DelByIds(int[] ids)
        {
            return Serialize(_service.DelByIds(ids));
        }
        #endregion


        [HttpPost]
        public string Import(sys_File entity)
        {
            return _service.AddOrUpdate(entity);
        }

        /// <summary>
        /// 下载文件
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        [HttpGet, HttpPost]
        public IActionResult Download(string fileName)
        {
            try
            {
                var fileStream = _service.GetFileStreamByName(fileName, out string docName);
                return File(fileStream, "application/octet-stream", $"{docName}");
            }
            catch (Exception ex)
            {
                return NotFound(ex.Message);
            }
        }

        #region 自定义方法
        [HttpGet]
        [ResponseCache(Duration = 20)]
        public string GetTreeList()
        {
            var data = _service.GetTreeList();
            return Serialize(data);
        }
        #endregion
    }
}