BtnFuncController.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. using Cksoft.Data;
  2. using Cksoft.Data.Repository;
  3. using Cksoft.Unity;
  4. using Cksoft.Unity.Log4NetConfig;
  5. using DllUfpDal;
  6. using DllUfpEntity;
  7. using Microsoft.AspNetCore.Authorization;
  8. using Microsoft.AspNetCore.Mvc;
  9. using Newtonsoft.Json;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Text;
  13. namespace DllUfpBll
  14. {
  15. [Route("ufp/api/[controller]/[action]")]
  16. [Authorize]
  17. public class BtnFuncController : ControllerBase
  18. {
  19. [HttpGet]
  20. public LayuiModel<BtnFunc> Get(string filter, int pageIndex = 1, int pageSize = 10, string sortField = "FCode", string sortOrder = "ascend")
  21. {
  22. if (sortOrder == "descend")
  23. {
  24. sortOrder = "desc";
  25. }
  26. else
  27. {
  28. sortOrder = "asc";
  29. }
  30. int start, end;
  31. start = (pageIndex - 1) * pageSize + 1;
  32. end = start + pageSize;
  33. using (IDatabase db = DbFactory.Base("ufp"))
  34. {
  35. db.BeginTrans();
  36. var dal = new BtnFuncDal(db);
  37. var total = dal.GetCount(filter);
  38. string errorinfo = string.Empty;
  39. var roles = dal.Get(start, pageSize, sortOrder, sortField, filter, errorinfo);
  40. return new LayuiModel<BtnFunc>
  41. {
  42. code = 1,
  43. count = total,
  44. data = roles,
  45. msg = ""
  46. };
  47. }
  48. }
  49. [HttpGet]
  50. public BtnFunc GetSingle(string id)
  51. {
  52. using (IDatabase db = DbFactory.Base("ufp"))
  53. {
  54. var dal = new BtnFuncDal(db);
  55. return dal.Get(id);
  56. }
  57. }
  58. [HttpPost]
  59. public string Add([FromBody] BtnFunc func)
  60. {
  61. string usercode = Request.Headers["usercode"];
  62. using (IDatabase db = DbFactory.Base("ufp"))
  63. {
  64. var dal = new BtnFuncDal(db);
  65. if (func.ID == 0)
  66. {
  67. int count = dal.Add(func, usercode);
  68. if (count > 0)
  69. {
  70. LogHelper<BtnFunc>.LogFatal("新增BtnFunc-->" + Json.ToJson(func), "用户操作", usercode);
  71. }
  72. return count.ToString();
  73. }
  74. else
  75. {
  76. int count = dal.Update(func, usercode);
  77. if (count > 0)
  78. {
  79. LogHelper<BtnFunc>.LogFatal("修改BtnFunc-->" + Json.ToJson(func), "用户操作", usercode);
  80. }
  81. return count.ToString();
  82. }
  83. }
  84. }
  85. [HttpPost]
  86. public string Delete([FromBody] int id)
  87. {
  88. IDatabase db = null;
  89. string errormsg = string.Empty;
  90. try
  91. {
  92. db = DbFactory.Base("ufp");
  93. var dal = new BtnFuncDal(db);
  94. db.BeginTrans();
  95. var model = dal.Get(id.ToString());
  96. var modelsec = dal.getRoleFunc(id);
  97. var res = dal.Delete(id, ref errormsg);
  98. if (res < 0)
  99. {
  100. db.Rollback();
  101. return errormsg;
  102. }
  103. db.Commit();
  104. LogHelper<BtnFunc>.LogFatal("删除BtnFunc-->:" + Json.ToJson(model) + ";RoleFunc" + Json.ToJson(modelsec), "用户操作", Request.Headers["usercode"]);
  105. return "1";
  106. }
  107. catch (Exception e)
  108. {
  109. errormsg = e.Message;
  110. return errormsg;
  111. }
  112. finally
  113. {
  114. if (db != null)
  115. db.Close();
  116. }
  117. }
  118. [HttpGet]
  119. public IEnumerable<int> GetAuthedBtns(int roleId)
  120. {
  121. using (IDatabase db = DbFactory.Base("ufp"))
  122. {
  123. var dal = new FunctionDal(db);
  124. return dal.GetAuthedBtns(roleId);
  125. }
  126. }
  127. [HttpPost]
  128. public string SetBtns([FromBody] AuthorizeModel model)
  129. {
  130. string usercode = Request.Headers["usercode"];
  131. IDatabase db = null;
  132. try
  133. {
  134. db = DbFactory.Base("ufp");
  135. db.BeginTrans();
  136. var dal = new BtnFuncDal(db);
  137. var modelfir = dal.getRoleFuncByRoleId(model.Single);
  138. if (dal.DeleteRoleFuncs(model.Multity.Removes, model.Single) < 0)
  139. {
  140. db.Rollback();
  141. return JsonConvert.SerializeObject(new
  142. {
  143. code = -1,
  144. msg = "删除未授权按钮时出错"
  145. });
  146. }
  147. if (dal.SetBtnFunction(model.Multity.Adds, model.Single, usercode) < 0)
  148. {
  149. db.Rollback();
  150. return JsonConvert.SerializeObject(new
  151. {
  152. code = -1,
  153. msg = "新增菜单授权时出错"
  154. });
  155. }
  156. db.Commit();
  157. LogHelper<AuthorizeModel>.LogFatal("AuthorizeModel-->" + Json.ToJson(model), "用户操作", usercode);
  158. LogHelper<AuthorizeModel>.LogFatal("删除RoleFuncByRole-->" + Json.ToJson(modelfir), "用户操作", usercode);
  159. return JsonConvert.SerializeObject(new
  160. {
  161. code = 1,
  162. msg = ""
  163. });
  164. }
  165. catch (Exception e)
  166. {
  167. db.Rollback();
  168. return JsonConvert.SerializeObject(new
  169. {
  170. code = -1,
  171. msg = e.Message
  172. });
  173. }
  174. finally
  175. {
  176. db.Close();
  177. }
  178. }
  179. /// <summary>
  180. /// 判断是否有操作权限
  181. /// </summary>
  182. /// <returns></returns>
  183. public EapResponse GetIsPermitted(string btnCode)
  184. {
  185. string errorinfo = string.Empty;
  186. string userCode = Request.Headers["usercode"];
  187. using (IDatabase ufpDb = DbFactory.Base("ufp"))
  188. {
  189. var btnFuncDal = new BtnFuncDal(ufpDb);
  190. var res = btnFuncDal.IsPermitted(userCode, btnCode, ref errorinfo);
  191. return new EapResponse { Code = res ? 1 : 0 };
  192. }
  193. }
  194. }
  195. }