Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 
 
 

253 řádky
11 KiB

  1. using Learun.Application.AppMagager;
  2. using Learun.Util;
  3. using Nancy;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using Learun.Application.Base.SystemModule;
  7. using Learun.Application.TwoDevelopment.LR_Desktop;
  8. using System.Text;
  9. using System.Data;
  10. using Learun.Application.WorkFlow;
  11. using Learun.Application.TwoDevelopment.EducationalAdministration;
  12. namespace Learun.Application.WebApi.Modules
  13. {
  14. public class DesktopApi : BaseApi
  15. {
  16. public DesktopApi()
  17. : base("/learun/adms/desktop")
  18. {
  19. Get["/setting"] = GetList;
  20. Get["/data"] = GetData;
  21. Get["/imgid"] = GetImgIds;
  22. Get["/img"] = GetImg;
  23. }
  24. private FunctionIBLL functionIBLL = new FunctionBLL();
  25. private DTTargetIBLL dTTargetIBLL = new DTTargetBLL();
  26. private DTListIBLL dTListIBLL = new DTListBLL();
  27. private DatabaseLinkIBLL databaseLinkIbll = new DatabaseLinkBLL();
  28. private DTChartIBLL dTChartIBLL = new DTChartBLL();
  29. private DTImgIBLL dTImgIBLL = new DTImgBLL();
  30. private NWFProcessIBLL nWFProcessIBLL = new NWFProcessBLL();
  31. private EmpInfoIBLL empInfoIBLL = new EmpInfoBLL();
  32. public Response GetList(dynamic _)
  33. {
  34. string ver = this.GetReqData();// 获取模板请求数据
  35. var targetData = functionIBLL.GetDesktopList("1").OrderBy(m => m.F_Sort);
  36. var listData = functionIBLL.GetDesktopList("2").OrderBy(m => m.F_Sort);
  37. var chartData = functionIBLL.GetDesktopList("3").OrderBy(m => m.F_Sort);
  38. var data = new { target = targetData, list = listData, chart = chartData };
  39. string md5 = Md5Helper.Encrypt(data.ToJson(), 32);
  40. if (md5 == ver)
  41. {
  42. return Success("");
  43. }
  44. if (userInfo.Description == "学生")
  45. {
  46. var result = new string[0];
  47. var data1 = new { data = new { target = targetData, list = result, chart = chartData }, ver = md5 };
  48. return Success(data1);
  49. }
  50. else
  51. {
  52. var data1 = new { data = new { target = targetData, list = listData, chart = chartData }, ver = md5 };
  53. return Success(data1);
  54. }
  55. }
  56. public Response GetData(dynamic _)
  57. {
  58. object jsonData = null;
  59. DesktopParam param = this.GetReqData<DesktopParam>();
  60. switch (param.type)
  61. {
  62. case "Target":
  63. double valueRet = dTTargetIBLL.GetSqlData(param.id);
  64. jsonData = new
  65. {
  66. Id = param.id,
  67. value = valueRet,
  68. };
  69. break;
  70. case "list":
  71. DataTable dtnew = null;
  72. var loginUserInfo = LoginUserInfo.Get();
  73. string userId = loginUserInfo.userId;
  74. string postIds = "'" + loginUserInfo.postIds.Replace(",", "','") + "'";
  75. string roleIds = "'" + loginUserInfo.roleIds.Replace(",", "','") + "'";
  76. string companyId = loginUserInfo.companyId;
  77. string departmentId = loginUserInfo.departmentId;
  78. var dtListEntity = dTListIBLL.GetLR_DT_ListEntity(param.id);
  79. if (dtListEntity.F_Id == "33d50f1a-a64d-4b86-a6d4-2d937226de95") //待办
  80. {
  81. //审核者判断
  82. var strSql = new StringBuilder();
  83. // 添加委托信息
  84. List<UserInfo> delegateList = nWFProcessIBLL.GetDelegateProcess(userId);
  85. strSql.Append(" AND 1=1");
  86. strSql.Append($" AND r1.F_UserId ='{userId}' ");
  87. foreach (var item in delegateList)
  88. {
  89. string processId = "'" + item.wfProcessId.Replace(",", "','") + "'";
  90. string userI2 = "'" + item.userId + "'";
  91. strSql.Append(" OR (r1.F_UserId =" + userI2 + " AND t1.F_ProcessId in (" + processId + ") AND t1.F_Type != 2 )");
  92. }
  93. //strSql.Append(" AND ( t.F_AuditorId = '1' OR ");
  94. //strSql.Append(" t.F_AuditorId = '" + userId + "' ");
  95. //if (!string.IsNullOrEmpty(loginUserInfo.postIds))
  96. //{
  97. // strSql.Append(" OR (t.F_AuditorId in (" + postIds + ") AND t.F_CompanyId = '1' AND t.F_DepartmentId = '1' ) ");
  98. // strSql.Append(" OR (t.F_AuditorId in (" + postIds + ") AND t.F_CompanyId = '" + companyId + "' ) ");
  99. // strSql.Append(" OR (t.F_AuditorId in (" + postIds + ") AND t.F_DepartmentId = '" + departmentId + "' ) ");
  100. //}
  101. //if (!string.IsNullOrEmpty(loginUserInfo.roleIds))
  102. //{
  103. // strSql.Append(" OR (t.F_AuditorId in (" + roleIds + ") AND t.F_CompanyId = '1' AND t.F_DepartmentId = '1' ) ");
  104. // strSql.Append(" OR (t.F_AuditorId in (" + roleIds + ") AND t.F_CompanyId = '" + companyId + "' ) ");
  105. // strSql.Append(" OR (t.F_AuditorId in (" + roleIds + ") AND t.F_DepartmentId = '" + departmentId + "') ");
  106. //}
  107. //strSql.Append(" ) order by t.F_CreateDate ");
  108. dtListEntity.F_Sql = dtListEntity.F_Sql.Replace("MMM", strSql.ToString());
  109. }
  110. if (dtListEntity.F_Id == "88f94781-acb8-47ca-864b-f96e3d9b5587")//通知公告
  111. {
  112. if (loginUserInfo.Description == "教师")
  113. {
  114. var empinfo = empInfoIBLL.GetEmpInfoEntityByEmpNo(loginUserInfo.account);
  115. if (empinfo != null && empinfo.IsInActiveStatus == "2")
  116. {
  117. dtListEntity.F_Sql = dtListEntity.F_Sql.Replace("F_NewsId is not null", "F_NewsId is null");
  118. }
  119. }
  120. }
  121. var reqDataTable = databaseLinkIbll.FindTable(dtListEntity.F_DataSourceId.Trim(), dtListEntity.F_Sql);
  122. if (dtListEntity.F_Id == "88f94781-acb8-47ca-864b-f96e3d9b5587")
  123. {
  124. dtnew = reqDataTable.Clone();
  125. for (int i = 0; i < reqDataTable.Rows.Count; i++)
  126. {
  127. if (reqDataTable.Rows[i]["F_SendPostId"] != null && reqDataTable.Rows[i]["F_SendPostId"].ToString() != "")
  128. {
  129. if (!string.IsNullOrEmpty(loginUserInfo.postIds))
  130. {
  131. if (loginUserInfo.postIds.Contains(","))
  132. {
  133. foreach (var postid in loginUserInfo.postIds.Split(','))
  134. {
  135. if (reqDataTable.Rows[i]["F_SendPostId"].ToString().Contains(postid))
  136. {
  137. dtnew.Rows.Add(reqDataTable.Rows[i].ItemArray);
  138. break;
  139. }
  140. }
  141. }
  142. else
  143. {
  144. if (reqDataTable.Rows[i]["F_SendPostId"].ToString().Contains(loginUserInfo.postIds))
  145. {
  146. dtnew.Rows.Add(reqDataTable.Rows[i].ItemArray);
  147. }
  148. }
  149. }
  150. }
  151. else
  152. {
  153. if (reqDataTable.Rows[i]["F_SendDeptId"] != null && reqDataTable.Rows[i]["F_SendDeptId"].ToString() != "")
  154. {
  155. if (reqDataTable.Rows[i]["F_SendDeptId"].ToString().Contains(loginUserInfo.departmentId))
  156. {
  157. dtnew.Rows.Add(reqDataTable.Rows[i].ItemArray);
  158. }
  159. }
  160. else
  161. {
  162. dtnew.Rows.Add(reqDataTable.Rows[i].ItemArray);
  163. }
  164. }
  165. }
  166. jsonData = new
  167. {
  168. Id = param.id,
  169. value = dtnew
  170. };
  171. }
  172. else
  173. {
  174. jsonData = new
  175. {
  176. Id = param.id,
  177. value = reqDataTable
  178. };
  179. }
  180. break;
  181. case "chart":
  182. var dtListEntity1 = dTChartIBLL.GetLR_DT_ChartEntity(param.id);
  183. var reqDataTable1 = databaseLinkIbll.FindTable(dtListEntity1.F_DataSourceId.Trim(), dtListEntity1.F_Sql);
  184. jsonData = new
  185. {
  186. Id = param.id,
  187. value = reqDataTable1,
  188. };
  189. break;
  190. }
  191. return Success(jsonData);
  192. }
  193. public Response GetImgIds(dynamic _)
  194. {
  195. //分布式部署
  196. if (string.IsNullOrEmpty(Request.Query["isDistributed"]))
  197. {
  198. var data = dTImgIBLL.GetList().Where(m => m.F_EnabledMark == 1).Select(m => m.F_Id);
  199. return Success(data);
  200. }
  201. else
  202. {
  203. var data = dTImgIBLL.GetList().Where(m => m.F_EnabledMark == 1);
  204. //分布式部署
  205. if (!string.IsNullOrEmpty(Request.Query["isDistributed"]))
  206. {
  207. //主站地址
  208. string webrootpath = Config.GetValue("webrootpath");
  209. string fileAppDTImg = Config.GetValue("fileAppDTImg");
  210. foreach (var imgitem in data)
  211. {
  212. if (fileAppDTImg.Contains("Resource"))
  213. {
  214. imgitem.DistributedUrl = string.Format("{0}/{1}/{2}{3}", webrootpath, fileAppDTImg.Substring(fileAppDTImg.LastIndexOf("Resource")), imgitem.F_Id, imgitem.F_FileName);
  215. }
  216. }
  217. }
  218. return Success(data.Select(m=>m.DistributedUrl));
  219. }
  220. }
  221. public Response GetImg(dynamic _)
  222. {
  223. string param = this.GetReqData();
  224. dTImgIBLL.GetImg(param);
  225. return Success("");
  226. }
  227. }
  228. public class DesktopParam
  229. {
  230. public string type { get; set; }
  231. public string id { get; set; }
  232. }
  233. }