選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 
 
 

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