FactoryController.cs 3.93 KB
using Hh.Mes.Common.Redis;
using Hh.Mes.Common.Request;
using Hh.Mes.POJO.Entity;
using Hh.Mes.Service.Configure;
using Hh.Mes.Service.SystemAuth;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using System;
using System.Linq;
using WebMvc.Aop;

namespace WebMvc
{
    /// <summary>
	/// 工厂设置
	/// </summary>
    [Area("configure")]
    public class FactoryController : BaseController
    {
        private readonly FactoryService factoryService;
        private readonly BaseProjectService _baseProjectService;
        private readonly Lazy<RedisBase> cli;
        private readonly SysUser _user;

        public FactoryController(IAuth authUtil, FactoryService base_factory, BaseProjectService baseProjectService) : base(authUtil)
        {
            this.factoryService = base_factory;
            _baseProjectService = baseProjectService;
            _user = authUtil.GetCurrentUser().User;
            factoryService.sysWebUser = _user;
            cli = new Lazy<RedisBase>();
        }

        #region  view

        [ResponseCache(Duration = 5)]
        public ActionResult Index()
        {
            var data = _baseProjectService.GetProjectInfo(_user.Account);
            var selectItems = data.Select(x => new SelectListItem
            {
                Text = x.Value,
                Value = $"{x.Key}"
            }).ToList();
            return View(selectItems);
        }
        #endregion

        #region api
        #region 获取数据
        /// <summary>
        /// 加载及分页查询
        /// </summary>
        /// <param name="pageRequest">表单请求信息</param>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string Load(PageReq pageRequest, base_factory entity)
        {
            var response = factoryService.Load(pageRequest, entity);
            //var dataResult =  factoryService.Load(pageRequest, entity);
            //var dataTable = dataResult.Tables[0];
            //var response = new Response
            //{
            //    Result = dataTable,
            //    Count = entity.Exel ? dataTable.Rows.Count : (int)dataResult.Tables[1].Rows[0]["rowTotal"]
            //};
            return Serialize(response);
        }



        #endregion

        #region 提交数据
        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="entity">新增实例</param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Ins(base_factory entity)
        {
            var response = factoryService.Ins(entity);
            cli.Value.redisClient.Del("base_factory");
            return Serialize(response);
        }

        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="entity">修改实例</param>
        /// <returns></returns>
        [HttpPost]
        [XSSFilter]
        [ServiceFilter(typeof(OperLogFilter))]
        public string Upd(base_factory entity)
        {
            var response = factoryService.Upd(entity);
            cli.Value.redisClient.Del("base_factory");
            return Serialize(response);
        }

        [HttpPost]
        [ServiceFilter(typeof(OperLogFilter))]
        public string DelByIds(string[] ids)
        {
            var response = factoryService.DelByIds(ids);
            cli.Value.redisClient.Del("base_factory");
            return Serialize(response);
        }
        #endregion

        #region 导出数据
        /// <summary>
        /// 导出数据
        /// </summary>
        /// <param name="entity">请求条件实例</param>
        /// <returns></returns>
        [HttpPost]
        public string Export(base_factory entity)
        {
            return Serialize(factoryService.ExportData(entity));
        }
        #endregion


        #endregion

        #region 自定义方法
        #endregion
    }
}