SysDictDataController.cs 4.62 KB
using Hh.Mes.Common.Request;
using Hh.Mes.POJO.Entity;
using Hh.Mes.POJO.Response;
using Hh.Mes.Service.SystemAuth;
using Hh.Mes.Service.WebService.Base;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Linq.Expressions;
using WebMvc.Aop;

namespace WebMvc
{
    /// <summary>
	/// 字典数据表
	/// </summary>
    [Area("base")]
    public class SysDictDataController : BaseController
    {
        private readonly SysDictDataService service;

        public SysDictDataController(IAuth authUtil, SysDictDataService service) : base(authUtil)
        {
            this.service = service;
            this.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, SysDictData entity)
        {
            return Serialize(service.Load(pageRequest, entity));
        }
        #endregion

        #region 提交数据
        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="entity">新增实例</param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Ins(SysDictData entity)
        {
            return Serialize(service.Ins(entity));
        }

        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="entity">修改实例</param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Upd(SysDictData entity)
        {
            return Serialize(service.Upd(entity));
        }

        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string DelByIds(int[] ids)
        {
            return Serialize(service.DelByIds(ids));
        }
        #endregion


        #region 导入导出
        /// <summary>
        /// 导出模板
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public string GetTemplate()
        {
            Expression<Func<SysDictData, bool>> linqWhere = x => true ;
            Expression<Func<SysDictData, object>> linqOrder = x => x.Id;
            var response = service.GetDictDataList(linqWhere, linqOrder, takeCount:1);
            if (response.Count == 0)
            {
                response.Result.Add(new SysDictData());
                response.Count = response.Result.Count;
            }
            return Serialize(response);
        }

        /// <summary>
        /// 导出数据
        /// </summary>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string Export(SysDictData entity)
        {
            return Serialize(service.Load(null, entity));
        }

        /// <summary>
        /// 导入数据
        /// </summary>
        /// <param name="excelfile">表单提交的文件信息</param>
        /// <returns></returns>
        [HttpPost]
        public string Import(IFormFile excelfile)
        {
            var response = new Response();
            return Serialize(response);
        }

        #endregion

        #region 自定义方法

        /// <summary>
        /// 查询字典数据
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        [HttpPost]
        public string FindSysDictData(SysDictData entity)
        {
            Expression<Func<SysDictData, bool>> linqWhere = x => x.DictType == entity.DictType;
            Expression<Func<SysDictData, object>> linqOrder = x => x.DictSort;
            return Serialize(service.GetDictDataList(linqWhere, linqOrder));
        }


        /// <summary>
        /// 字典数据
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public string GetSysDictList()
        {
            Expression<Func<SysDictData, bool>> linqWhere = x => true;
            Expression<Func<SysDictData, object>> linqOrder = x => x.Id;
            return Serialize(service.GetDictDataList(linqWhere, linqOrder));
        }

        #endregion
    }
}