You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
315 lines
11 KiB
315 lines
11 KiB
4 years ago
|
using System;
|
||
|
using System.Configuration;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using System.Web;
|
||
|
using System.Web.Mvc;
|
||
|
using System.Xml;
|
||
|
using System.Text;
|
||
|
using QMFrameWork.WebUI.Attribute;
|
||
|
using QMAPP.Entity.Sys;
|
||
|
using QMAPP.Web.Models.Sys;
|
||
|
using QMAPP.Common.Web.Util;
|
||
|
using QMAPP.Common.Web.Controllers;
|
||
|
using QMFrameWork.WebUI.Menu;
|
||
|
|
||
|
namespace QMAPP.Web.Controllers
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// 登录及主页控制
|
||
|
/// </summary>
|
||
|
[HandleError]
|
||
|
public class HomeController : Controller
|
||
|
{
|
||
|
public ActionResult Index()
|
||
|
{
|
||
|
ViewData["Message"] = "Welcome to ASP.NET MVC!";
|
||
|
|
||
|
return View();
|
||
|
}
|
||
|
|
||
|
public ActionResult About()
|
||
|
{
|
||
|
return View();
|
||
|
}
|
||
|
|
||
|
#region 登录载入
|
||
|
|
||
|
/// <summary>
|
||
|
/// 登录载入
|
||
|
/// </summary>
|
||
|
/// <returns>结果</returns>
|
||
|
public ActionResult Login()
|
||
|
{
|
||
|
this.SetAreaMap();
|
||
|
return View("Login");
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region 提交登录
|
||
|
|
||
|
/// <summary>
|
||
|
/// 提交登录
|
||
|
/// </summary>
|
||
|
/// <param name="login">登录信息</param>
|
||
|
/// <returns></returns>
|
||
|
[HandleException]
|
||
|
[HttpPost]
|
||
|
public ActionResult Login(LoginInfo login)
|
||
|
{
|
||
|
if (string.IsNullOrEmpty(login.LoginUserID))
|
||
|
{
|
||
|
ViewData["Message"] = "用户名不能为空!";
|
||
|
return View("Login");
|
||
|
|
||
|
}
|
||
|
if (string.IsNullOrEmpty(login.PassWord))
|
||
|
{
|
||
|
ViewData["Message"] = "密码不能为空!";
|
||
|
return View("Login");
|
||
|
|
||
|
}
|
||
|
|
||
|
#region 调用登录服务
|
||
|
|
||
|
//QMAPP.ServicesAgent.LoginService.LoginServiceClient loginClient = new ServicesAgent.LoginService.LoginServiceClient();
|
||
|
|
||
|
QMAPP.ServicesAgent.LoginService.LoginInfo servicelogin = QMAPP.ServicesAgent.LoginService.LoginServiceClient._IsLogin(new QMAPP.ServicesAgent.LoginService.LoginInfo { LoginUserID = login.LoginUserID.ToUpper(), PassWord = login.PassWord }
|
||
|
, new QController().GetCredentialInfo());
|
||
|
|
||
|
#endregion
|
||
|
if (servicelogin == null)
|
||
|
{
|
||
|
this.SetAreaMap();
|
||
|
ViewData["Message"] = "用户名或密码错误!";
|
||
|
return View("Login");
|
||
|
}
|
||
|
|
||
|
|
||
|
List<string> powers = servicelogin.Powers.ToList();
|
||
|
|
||
|
login = new QController().CopyToModel<LoginInfo, QMAPP.ServicesAgent.LoginService.LoginInfo>(servicelogin);
|
||
|
login.Powers = powers;
|
||
|
|
||
|
System.Web.HttpContext.Current.Session["MULT_LANG"] = Request.Form["selLang"];
|
||
|
|
||
|
AccountController.SetLoginInfo(login);
|
||
|
|
||
|
//获取个性设置信息
|
||
|
QMAPP.ServicesAgent.ServiceAgent agent = new QController().GetServiceAgent();
|
||
|
PersnalSet pSet = agent.InvokeServiceFunction<PersnalSet>("PersnalSetBLL_Get");
|
||
|
|
||
|
//return Redirect("/Home/Default");
|
||
|
return Redirect("/Home/Default?SystemID=Main");
|
||
|
|
||
|
////获取未读通知
|
||
|
//string unReadNoticeStr = NoticeRemind();
|
||
|
//ViewData["unReadNoticeStr"] = unReadNoticeStr;
|
||
|
|
||
|
//return RedirectToAction("Index", "AppDesktop");
|
||
|
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region 主页载入
|
||
|
|
||
|
/// <summary>
|
||
|
/// 主页载入
|
||
|
/// </summary>
|
||
|
/// <returns></returns>
|
||
|
[HandleException]
|
||
|
public ActionResult Default()
|
||
|
{
|
||
|
ViewData["Message"] = "Welcome to ASP.NET MVC!";
|
||
|
LoginInfo login = null;
|
||
|
MenuHelper helper = new MenuHelper();
|
||
|
PowerUtil pu = new PowerUtil();
|
||
|
string systemID = Request.QueryString["SystemID"];
|
||
|
string menuID = Request.QueryString["menuID"];
|
||
|
try
|
||
|
{
|
||
|
//验证当前请求是否有登录信息
|
||
|
if (AccountController.IsLogin() == false)
|
||
|
{
|
||
|
//登录信息不正确
|
||
|
Response.Write("<script language=\"javascript\">top.window.location.href=\"/Home/Login/\";</script>");
|
||
|
Response.End();
|
||
|
return View(new Models.DefaultModel());
|
||
|
}
|
||
|
|
||
|
//获取登录信息
|
||
|
login = AccountController.GetLoginInfo();
|
||
|
if (AccountController.GetLoginInfo().LoginUserID.ToLower() != "admin")
|
||
|
{
|
||
|
//获取登录用户权限
|
||
|
helper.Powers = login.Powers;
|
||
|
//20180817闫永刚再次获取POWER信息
|
||
|
try
|
||
|
{
|
||
|
QMAPP.ServicesAgent.ServiceAgent agent = new QController().GetServiceAgent();
|
||
|
helper.Powers = agent.InvokeServiceFunction<List<string>>("LoginBLL_GetPower", login);
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
//取得所有权限菜单
|
||
|
List<MenuInfo> menus = helper.GetMenuInfos();
|
||
|
if (string.IsNullOrEmpty(systemID)==true)
|
||
|
{
|
||
|
systemID = "Main";
|
||
|
}
|
||
|
menus = menus.Where(p => p.SystemID == systemID).ToList();
|
||
|
|
||
|
//将权限放入到session中
|
||
|
Hashtable actions = helper.GetActionList();
|
||
|
|
||
|
AccountController.SetLimit(actions);
|
||
|
|
||
|
//构建主页面信息
|
||
|
Models.DefaultModel defaultModel = new Models.DefaultModel();
|
||
|
defaultModel.UserDes = login.UserName;
|
||
|
|
||
|
OutLookMenu menu = new OutLookMenu();
|
||
|
defaultModel.MenuHtml = menu.GetMenuHtml(menus);
|
||
|
defaultModel.SystemID = systemID;
|
||
|
defaultModel.DefaultMenuID = menuID==null?"":menuID;
|
||
|
defaultModel.UserID = login.UserID;
|
||
|
defaultModel.LoginSessionID = System.Web.HttpContext.Current.Session.SessionID;
|
||
|
|
||
|
#region 预登录
|
||
|
if (systemID != "ManageCenter"
|
||
|
&& ConfigurationManager.AppSettings[systemID + "Root"] != null)
|
||
|
{
|
||
|
defaultModel.AppLoginUrl = ConfigurationManager.AppSettings[systemID + "Root"] + "/Login/Login?sessionID=" + System.Web.HttpContext.Current.Session.SessionID+"&isLogin=login";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
defaultModel.AppLoginUrl = "";
|
||
|
}
|
||
|
#endregion
|
||
|
|
||
|
#region 获取未读通知
|
||
|
|
||
|
//获取未读通知
|
||
|
string unReadNoticeStr = NoticeRemind();
|
||
|
defaultModel.UnReadNoticeStr = unReadNoticeStr;
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
return View(defaultModel);
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
throw ex;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region 注销
|
||
|
|
||
|
/// <summary>
|
||
|
/// 注销
|
||
|
/// </summary>
|
||
|
/// <returns>结果</returns>
|
||
|
[HandleException]
|
||
|
public ActionResult Logout()
|
||
|
{
|
||
|
AccountController.Logout();
|
||
|
return RedirectToAction("Login");
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region 获取未读通知 王丹丹
|
||
|
/// <summary>
|
||
|
/// 获取未读通知
|
||
|
/// </summary>
|
||
|
/// <returns></returns>
|
||
|
public string NoticeRemind()
|
||
|
{
|
||
|
NoticeInfoModel model = new NoticeInfoModel();
|
||
|
NoticeInfo notice = new NoticeInfo();
|
||
|
string noticestr = "";
|
||
|
string noticeNoReadCount="";
|
||
|
try
|
||
|
{
|
||
|
notice.UserID = AccountController.GetLoginInfo().UserID;
|
||
|
//获取未读通知
|
||
|
QMAPP.ServicesAgent.ServiceAgent agent = new QController().GetServiceAgent();
|
||
|
model.listNoticeModel = agent.InvokeServiceFunction<List<NoticeInfo>>("NoticeManageBll_GetNotReadNotice", notice);
|
||
|
|
||
|
//获取未读通知的数量
|
||
|
noticeNoReadCount = model.listNoticeModel.Count(item => item.ISREAD == "0").ToString();
|
||
|
noticestr = "<li class=\"purple\"><a data-toggle=\"dropdown\" class=\"dropdown-toggle\" href=\"#\"> ";
|
||
|
noticestr += "<i class=\"ace-icon fa fa-bell icon-animated-bell\"></i><span class=\"badge badge-important\"> " + noticeNoReadCount + " </span> </a>";
|
||
|
noticestr += "<ul class=\"dropdown-menu-right dropdown-navbar navbar-pink dropdown-menu dropdown-caret dropdown-close\">";
|
||
|
noticestr += "<li class=\"dropdown-header\"><i class=\"ace-icon fa fa-exclamation-triangle\"></i>" + noticeNoReadCount + "条通知</li>";
|
||
|
|
||
|
foreach (var item in model.listNoticeModel)
|
||
|
{
|
||
|
string noticeTitle = "";
|
||
|
string noticeTime = "";
|
||
|
string noticeID = "";
|
||
|
if (item.NOTICETITLE.Length < 15)
|
||
|
{
|
||
|
noticeTitle = item.NOTICETITLE;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
noticeTitle = item.NOTICETITLE.Substring(0,15)+"...";
|
||
|
}
|
||
|
|
||
|
noticeTime = item.USETIME.ToString("yyyy-MM-dd");
|
||
|
noticeID = item.NOTICEID;
|
||
|
noticestr += "<li><a href=\"#\" onclick=\"ClickNotice('" + noticeID + "');\"><div class=\"clearfix\"><span class=\"pull-left\">";
|
||
|
noticestr += "<i class=\"btn btn-xs no-hover btn-success fa fa-bell\"></i> " + noticeTitle + "</span>";
|
||
|
noticestr += "<span class=\"pull-right badge badge-success\">" + noticeTime + "</span></div></a></li>";
|
||
|
}
|
||
|
|
||
|
noticestr += "<li class=\"dropdown-footer\"><a href=\"#\" onclick=\"MoreNotice();\">查看所有通告<i class=\"ace-icon fa fa-arrow-right\">";
|
||
|
noticestr += "</i></a></li></ul></li>";
|
||
|
|
||
|
return noticestr;
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
throw ex;
|
||
|
}
|
||
|
}
|
||
|
#endregion
|
||
|
|
||
|
#region 获取地区地图
|
||
|
|
||
|
private void SetAreaMap()
|
||
|
{
|
||
|
//设置地图图片
|
||
|
string areaName = "";
|
||
|
if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["AreaCode"]) == false)
|
||
|
areaName = ConfigurationManager.AppSettings["AreaCode"];
|
||
|
switch (areaName)
|
||
|
{
|
||
|
case "长春":
|
||
|
ViewData["loginmap"] = "changchunmap.png";
|
||
|
break;
|
||
|
case "成都":
|
||
|
ViewData["loginmap"] = "chengdumap.png";
|
||
|
break;
|
||
|
case "佛山":
|
||
|
ViewData["loginmap"] = "foshanmap.png";
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
}
|
||
|
}
|