地铁二期项目正式开始

BaseController.cs 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. 
  2. using Newtonsoft.Json;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Web;
  8. using System.Web.Mvc;
  9. using YTSoft.BaseCallCenter.Model;
  10. using YTSoft.BaseCallCenter.MVCWeb.Models;
  11. using YTSoft.Common;
  12. namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
  13. {
  14. public class BaseController : Controller
  15. {
  16. //字典表
  17. BLL.T_Sys_DictionaryValue dicValueBll = new BLL.T_Sys_DictionaryValue();
  18. BLL.T_Sys_SystemConfig bll_T_Sys_SystemConfig = new BLL.T_Sys_SystemConfig();
  19. BLL.T_Com_LogAction busLog = new BLL.T_Com_LogAction();
  20. /// <summary>
  21. /// 时间转换
  22. /// </summary>
  23. private JsonSerializerSettings timeConvert = new JsonSerializerSettings() { DateFormatString = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" };
  24. #region 登录用户信息
  25. private int _f_UserID;
  26. private string _userName;
  27. private string _f_UserCode;
  28. private int _roleId;
  29. private int _f_DeptId;
  30. private string _f_Telephone;
  31. private bool _f_SeatFlag;
  32. /// <summary>
  33. /// 用户id
  34. /// </summary>
  35. public int F_UserID
  36. {
  37. get
  38. {
  39. //从cookie集合中读取用户信息
  40. HttpCookie loginInfoCookies = Request.Cookies["BaseCallCenter_T_User"];
  41. if (loginInfoCookies != null)
  42. {
  43. _f_UserID = int.Parse(loginInfoCookies.Values["F_UserID"]);
  44. }
  45. return _f_UserID;
  46. }
  47. set { _f_UserID = value; }
  48. }
  49. /// <summary>
  50. /// 用户账号
  51. /// </summary>
  52. public string F_UserCode
  53. {
  54. get
  55. {
  56. //从cookie集合中读取用户信息
  57. HttpCookie loginInfoCookies = Request.Cookies["BaseCallCenter_T_User"];
  58. if (loginInfoCookies != null)
  59. {
  60. _f_UserCode = loginInfoCookies.Values["F_UserCode"];
  61. }
  62. return _f_UserCode;
  63. }
  64. set { _f_UserCode = value; }
  65. }
  66. /// <summary>
  67. /// 部门Id
  68. /// </summary>
  69. public int F_DeptId
  70. {
  71. get
  72. {
  73. //从cookie集合中读取用户信息
  74. HttpCookie loginInfoCookies = Request.Cookies["BaseCallCenter_T_User"];
  75. if (loginInfoCookies != null)
  76. {
  77. _f_DeptId = int.Parse(loginInfoCookies.Values["F_DeptId"]);
  78. }
  79. return _f_DeptId;
  80. }
  81. set { _f_DeptId = value; }
  82. }
  83. /// <summary>
  84. /// 用户名
  85. /// </summary>
  86. public string F_UserName
  87. {
  88. get
  89. {
  90. //从cookie集合中读取用户信息
  91. HttpCookie loginInfoCookies = Request.Cookies["BaseCallCenter_T_User"];
  92. if (loginInfoCookies != null)
  93. {
  94. _userName = HttpUtility.UrlDecode(HttpUtility.UrlDecode(loginInfoCookies.Values["F_UserName"], Encoding.UTF8));
  95. }
  96. return _userName;
  97. }
  98. set { _userName = value; }
  99. }
  100. /// <summary>
  101. /// 电话
  102. /// </summary>
  103. public string F_Telephone
  104. {
  105. get
  106. {
  107. //从cookie集合中读取用户信息
  108. HttpCookie loginInfoCookies = Request.Cookies["BaseCallCenter_T_User"];
  109. if (loginInfoCookies != null)
  110. {
  111. _f_Telephone = loginInfoCookies.Values["F_Telephone"];
  112. }
  113. return _f_Telephone;
  114. }
  115. set { _f_Telephone = value; }
  116. }
  117. /// <summary>
  118. /// 角色Id
  119. /// </summary>
  120. public int F_RoleID
  121. {
  122. get
  123. {
  124. //从cookie集合中读取用户信息
  125. HttpCookie loginInfoCookies = Request.Cookies["BaseCallCenter_T_User"];
  126. if (loginInfoCookies != null)
  127. {
  128. _roleId = int.Parse(loginInfoCookies.Values["F_RoleID"]);
  129. }
  130. return _roleId;
  131. }
  132. set { _roleId = value; }
  133. }
  134. private int _f_Id;
  135. /// <summary>
  136. ///微信微博映射id
  137. /// </summary>
  138. public int F_PId
  139. {
  140. get
  141. {
  142. //从cookie集合中读取用户信息
  143. HttpCookie loginInfoCookies = Request.Cookies["BaseCallCenter_T_User"];
  144. if (loginInfoCookies != null)
  145. {
  146. _f_Id = loginInfoCookies.Values["F_PId"].ToInt32();
  147. }
  148. return _f_Id;
  149. }
  150. set { _f_Id = value; }
  151. }
  152. /// <summary>
  153. /// 坐席标志
  154. /// </summary>
  155. public bool F_SeatFlag
  156. {
  157. get
  158. {
  159. //从cookie集合中读取用户信息
  160. HttpCookie loginInfoCookies = Request.Cookies["BaseCallCenter_T_User"];
  161. if (loginInfoCookies != null)
  162. {
  163. _f_SeatFlag = bool.Parse(loginInfoCookies.Values["F_SeatFlag"]);
  164. }
  165. return _f_SeatFlag;
  166. }
  167. set { _f_SeatFlag = value; }
  168. }
  169. #endregion
  170. #region 验证用户是否已经登录
  171. /// <summary>
  172. /// Action执行前判断
  173. /// </summary>
  174. /// <param name="filterContext"></param>
  175. protected override void OnActionExecuting(ActionExecutingContext filterContext)
  176. {
  177. if (!this.checkLogin())// 判断是否登录
  178. {
  179. filterContext.Result = RedirectToRoute("Default", new { Controller = "Default", Action = "SSO" });
  180. }
  181. base.OnActionExecuting(filterContext);
  182. }
  183. /// <summary>
  184. /// 判断是否登录
  185. /// </summary>
  186. protected bool checkLogin()
  187. {
  188. HttpCookie loginInfoCookies = Request.Cookies["BaseCallCenter_T_User"];//用户信息
  189. if (loginInfoCookies != null)
  190. {
  191. return true;
  192. }
  193. else
  194. {
  195. return false;
  196. }
  197. }
  198. /// <summary>
  199. /// 退出登录
  200. /// </summary>
  201. /// <returns></returns>
  202. public void Exit()
  203. {
  204. HttpCookie loginInfoCookies = Request.Cookies["BaseCallCenter_T_User"];//用户信息
  205. if (loginInfoCookies != null)
  206. {
  207. loginInfoCookies.Expires = DateTime.Now.AddDays(-1);
  208. Response.Cookies.Add(loginInfoCookies);
  209. }
  210. }
  211. #endregion
  212. #region 公共方法
  213. #region 获取业务类型
  214. /// <summary>
  215. /// 获取业务类型
  216. /// </summary>
  217. public List<Model.T_Wo_WorkOrderType> GetWorkTypeModelList()
  218. {
  219. //最终需要返回的菜单
  220. List<Model.T_Wo_WorkOrderType> newModelList = new List<T_Wo_WorkOrderType>();
  221. Model.PageData<Model.T_Wo_WorkOrderType> pageModel = new Model.PageData<Model.T_Wo_WorkOrderType>();
  222. BLL.T_Wo_WorkOrderType bll = new BLL.T_Wo_WorkOrderType();
  223. //获取业务类型列表
  224. List<Model.T_Wo_WorkOrderType> WorkTypeModelList = bll.GetModelList("");
  225. if (WorkTypeModelList != null && WorkTypeModelList.Count > 0)
  226. {
  227. //获取默认根节点
  228. Model.T_Wo_WorkOrderType rootNode = WorkTypeModelList.FirstOrDefault(m => m.F_ParentId == 0);
  229. //获取一级节点
  230. List<Model.T_Wo_WorkOrderType> rootModelList = WorkTypeModelList.Where(t => t.F_ParentId == rootNode.F_WorkOrderTypeId).ToList();
  231. if (rootModelList != null && rootModelList.Count > 0)
  232. {
  233. foreach (T_Wo_WorkOrderType WorkOrderTypeModel in rootModelList)
  234. {
  235. List<Model.T_Wo_WorkOrderType> nullModelList = new List<T_Wo_WorkOrderType>();
  236. WorkOrderTypeModel.WorkTypeModelList = nullModelList;
  237. newModelList.Add(GetWorkTypeModelChild(WorkOrderTypeModel, WorkOrderTypeModel, WorkTypeModelList));
  238. }
  239. }
  240. }
  241. return newModelList;
  242. }
  243. //获取所有子集
  244. public Model.T_Wo_WorkOrderType GetWorkTypeModelChild(T_Wo_WorkOrderType rootNode, T_Wo_WorkOrderType WorkOrderTypeModel, List<Model.T_Wo_WorkOrderType> WorkTypeModelList)
  245. {
  246. //获取子集节点
  247. List<Model.T_Wo_WorkOrderType> sonModelList = WorkTypeModelList.Where(t => t.F_ParentId == WorkOrderTypeModel.F_WorkOrderTypeId).ToList();
  248. if (sonModelList != null && sonModelList.Count > 0)
  249. {
  250. foreach (T_Wo_WorkOrderType workOrderTypeModel in sonModelList)
  251. {
  252. //获取子子集
  253. List<Model.T_Wo_WorkOrderType> childModelList = WorkTypeModelList.Where(t => t.F_ParentId == workOrderTypeModel.F_WorkOrderTypeId).ToList();
  254. if (childModelList != null && childModelList.Count > 0)
  255. {
  256. GetWorkTypeModelChild(rootNode, workOrderTypeModel, WorkTypeModelList);
  257. }
  258. else
  259. {
  260. rootNode.WorkTypeModelList.Add(workOrderTypeModel);
  261. }
  262. }
  263. }
  264. return rootNode;
  265. }
  266. #endregion
  267. #region 获取处理类型字典
  268. /// <summary>
  269. /// 获取处理类型字典
  270. /// </summary>
  271. /// <returns></returns>
  272. public List<T_Sys_DictionaryValue> GetCodeType(string dicCodeType)
  273. {
  274. return dicValueBll.GetModelList("F_DictionaryFlag='" + dicCodeType + "'");
  275. }
  276. #endregion
  277. /// <summary>
  278. /// 根据key获取网站基础配置值
  279. /// </summary>
  280. /// <param name="key"></param>
  281. /// <returns></returns>
  282. public string GetSysconfig(string key)
  283. {
  284. return bll_T_Sys_SystemConfig.GetParamValueByParamCode(key);
  285. }
  286. /// <summary>
  287. /// 数据库日志
  288. /// </summary>
  289. /// <param name="TableName"></param>
  290. /// <param name="id"></param>
  291. /// <param name="ActionName"></param>
  292. /// <param name="oldobj"></param>
  293. /// <param name="newobj"></param>
  294. /// <returns></returns>
  295. public bool AddLog(string TableName, string id,string ActionName,string oldobj,object newobj)
  296. {
  297. Model.T_Com_LogAction modellog = new T_Com_LogAction();
  298. modellog.ActionName = ActionName;
  299. modellog.AddUser = HttpUtility.UrlDecode(F_UserName);
  300. modellog.AddUserId = F_UserID;
  301. modellog.Atime = DateTime.Now;
  302. modellog.ActionUrl = string.Format("/{0}/{1}", RouteData.Values["controller"], RouteData.Values["action"]);
  303. modellog.ContentNew = newobj == null ? "":JsonConvert.SerializeObject(newobj);
  304. modellog.ContentOld = oldobj == null ? "": oldobj;
  305. modellog.TableId = id;
  306. modellog.TableName = TableName.ToLower();
  307. return busLog.Add(modellog);
  308. }
  309. /// <summary>
  310. ///
  311. /// </summary>
  312. /// <param name="TableName"></param>
  313. /// <param name="id"></param>
  314. /// <param name="ActionName"></param>
  315. /// <param name="oldobj"></param>
  316. /// <param name="ContentNew">操作记录 敏感信息 主要设置</param>
  317. /// <returns></returns>
  318. public bool AddAction(string TableName, string id, string ActionName, string oldobj="",string ContentNew= "操作记录")
  319. {
  320. Model.T_Com_LogAction modellog = new T_Com_LogAction();
  321. modellog.ActionName = ActionName;
  322. modellog.AddUser = HttpUtility.UrlDecode(F_UserName);
  323. modellog.AddUserId = F_UserID;
  324. modellog.Atime = DateTime.Now;
  325. modellog.ActionUrl = string.Format("/{0}/{1}", RouteData.Values["controller"], RouteData.Values["action"]);
  326. modellog.ContentNew = ContentNew;
  327. modellog.ContentOld = oldobj.ToMyString();
  328. modellog.TableId = id.ToMyString();
  329. modellog.TableName = TableName.ToLower();
  330. return busLog.Add(modellog);
  331. }
  332. #endregion
  333. #region 公共返回参数
  334. /// <summary>
  335. /// 成功的消息格式化
  336. /// </summary>
  337. /// <param name="message"></param>
  338. /// <param name="data"></param>
  339. /// <returns></returns>
  340. protected virtual string Success(string message, object data=null,int count=0)
  341. {
  342. var jsonMsg = new ReturnData { code =0, msg = message, data = data ,count= count };
  343. // LogDefault.Info(jsonMsg);
  344. return JsonConvert.SerializeObject(jsonMsg, timeConvert);
  345. }
  346. /// <summary>
  347. /// 成功的消息格式化
  348. /// </summary>
  349. /// <param name="message"></param>
  350. /// <param name="data"></param>
  351. /// <returns></returns>
  352. protected virtual string Success(string message)
  353. {
  354. var jsonMsg = new ReturnData { code = 0, msg = message };
  355. // LogDefault.Info(jsonMsg);
  356. return JsonConvert.SerializeObject(jsonMsg, timeConvert);
  357. }
  358. /// <summary>
  359. /// 错误的消息格式化
  360. /// </summary>
  361. /// <param name="message"></param>
  362. /// <returns></returns>
  363. protected virtual string Error(string message)
  364. {
  365. var jsonMsg = new ReturnData { code = -1, msg = message };
  366. return JsonConvert.SerializeObject(jsonMsg);
  367. }
  368. #endregion
  369. }
  370. }