颐和api

PostController.cs 7.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Security.Claims;
  5. using System.Threading.Tasks;
  6. using ConfigurationApi.IRepositories;
  7. using ConfigurationApi.Models.Input;
  8. using MadRunFabric.Common;
  9. using MadRunFabric.Model;
  10. using Microsoft.AspNetCore.Authorization;
  11. using Microsoft.AspNetCore.Mvc;
  12. using Microsoft.Extensions.Logging;
  13. using MongoDB.Driver;
  14. namespace ConfigurationApi.Controllers
  15. {
  16. /// <summary>
  17. /// 岗位
  18. /// </summary>
  19. [Authorize]
  20. [ApiVersion("6.0")]
  21. [Produces("application/json")]
  22. [Route("api/[controller]")]
  23. public class PostController : BaseController
  24. {
  25. private readonly ILogger<PostController> _logger;
  26. private readonly ISys_Post_InfoRepository _sys_post_inforepository;
  27. public PostController(ILogger<PostController> logger, ISys_Post_InfoRepository sys_post_inforepository)
  28. {
  29. _logger = logger;
  30. _sys_post_inforepository = sys_post_inforepository;
  31. }
  32. /// <summary>
  33. /// 获取字典下拉列表
  34. /// </summary>
  35. /// <returns></returns>
  36. [HttpGet("getlistdrop")]
  37. public async Task<IActionResult> GetListDropAsync()
  38. {
  39. var list = await _sys_post_inforepository.Get(x => x.isdelete == 0);
  40. return Success("获取全部数据成功", list);
  41. }
  42. /// <summary>
  43. /// 获取岗位分页
  44. /// </summary>
  45. /// <param name="keyword"></param>
  46. /// <param name="stime"></param>
  47. /// <param name="etime"></param>
  48. /// <param name="pageindex"></param>
  49. /// <param name="pagesize"></param>
  50. /// <returns></returns>
  51. [HttpGet("getlistbypage")]
  52. public async Task<IActionResult> GetListsByPageAsync(string keyword, int pageindex = 1, int pagesize = 10)
  53. {
  54. #region 条件信息
  55. ////排序字段
  56. var sort = Builders<Sys_Post_Info>.Sort.Ascending("sort");
  57. //根据条件查询集合
  58. var listApp = new List<FilterDefinition<Sys_Post_Info>>();
  59. listApp.Add(Builders<Sys_Post_Info>.Filter.Eq("isdelete", 0));
  60. //模糊查询
  61. if (!string.IsNullOrEmpty(keyword))
  62. listApp.Add(Builders<Sys_Post_Info>.Filter.Where(s => s.postcode.Contains(keyword) || s.postname.Contains(keyword)));
  63. #endregion
  64. int recordCount = 0;
  65. var filter = Builders<Sys_Post_Info>.Filter.And(listApp);
  66. var list = await _sys_post_inforepository.GetByPage(filter, pageindex, pagesize, sort);
  67. var redCount = await _sys_post_inforepository.CountAsync(filter); //获取总数
  68. recordCount = int.Parse(redCount.ToString());
  69. var obj = new
  70. {
  71. rows = list,
  72. total = recordCount,
  73. };
  74. return Success("成功", obj);
  75. }
  76. /// <summary>
  77. /// 获取岗位
  78. /// </summary>
  79. /// <param name="id">岗位id</param>
  80. /// <returns></returns>
  81. [HttpGet("getdetailes")]
  82. public async Task<IActionResult> GetDetailsAsync(string id)
  83. {
  84. if (string.IsNullOrEmpty(id))
  85. return Error("参数错误");
  86. var model = await _sys_post_inforepository.GetSingle(id);
  87. if (model == null)
  88. {
  89. return Error("获取失败");
  90. }
  91. return Success("获取成功!", model);
  92. }
  93. /// <summary>
  94. /// 添加岗位
  95. /// </summary>
  96. /// <param name="input"></param>
  97. /// <returns></returns>
  98. [HttpPost("add")]
  99. public async Task<IActionResult> AddAsync(PostInfoInput input)
  100. {
  101. #region 验证判断
  102. if (string.IsNullOrEmpty(input.postname))
  103. return Error("请输入岗位名称");
  104. if (string.IsNullOrEmpty(input.postcode))
  105. return Error("请输岗位入代码");
  106. var modelold = await _sys_post_inforepository.GetSingle(p => p.postname == input.postname && p.isdelete==0);
  107. if (modelold != null)
  108. {
  109. return Error("名称已经存在");
  110. }
  111. #endregion
  112. var model = new Sys_Post_Info();
  113. model.parentid = input.parentid;
  114. model.postname = input.postname;
  115. model.postcode = input.postcode;
  116. model.remark = input.remark;
  117. model.sort = input.sort;
  118. model.createby = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  119. if (await _sys_post_inforepository.Add(model))
  120. {
  121. return Success("添加成功");
  122. }
  123. else
  124. {
  125. return Error("添加失败");
  126. }
  127. }
  128. /// <summary>
  129. /// 修改岗位信息
  130. /// </summary>
  131. [HttpPost("update")]
  132. public async Task<IActionResult> UpdateAsync(PostInfoInput input)
  133. {
  134. #region 验证判断
  135. if (string.IsNullOrEmpty(input.postname))
  136. return Error("请输入岗位名称");
  137. if (string.IsNullOrEmpty(input.postcode))
  138. return Error("请输岗位入代码");
  139. var modelold = await _sys_post_inforepository.GetSingle(p => p.postname == input.postname && p.isdelete == 0 && p.id != input.id);
  140. if (modelold != null)
  141. {
  142. return Error("名称已经存在");
  143. }
  144. #endregion
  145. var model = await _sys_post_inforepository.GetSingle(input.id);
  146. if (model == null)
  147. return Error("操作失败");
  148. model.parentid = input.parentid;
  149. model.postname = input.postname;
  150. model.postcode = input.postcode;
  151. model.remark = input.remark;
  152. model.sort = input.sort;
  153. bool b = await _sys_post_inforepository.Update(model);
  154. if (b)
  155. return Success("修改成功");
  156. return Error("修改失败");
  157. }
  158. /// <summary>
  159. /// 删除岗位信息 by ids
  160. /// </summary>
  161. /// <param name="ids"></param>
  162. /// <returns></returns>
  163. [HttpPost("delete")]
  164. public async Task<IActionResult> DeleteAsync(string[] ids)
  165. {
  166. var res = 0;
  167. if (ids != null && ids.Length > 0)
  168. {
  169. foreach (var item in ids)
  170. {
  171. var ml = await _sys_post_inforepository.GetSingle(item);
  172. ml.isdelete = 1;
  173. ml.deletetime = DateTime.Now.ToLocalTime();
  174. ml.deleteby = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  175. if (_sys_post_inforepository.Update(ml).Result)
  176. res += 1;
  177. }
  178. if (res == ids.Length)
  179. return Success("删除成功");
  180. else if (res > 0 && res < ids.Length)
  181. return Error("部分删除失败,请查看后重新操作");
  182. else
  183. return Error("删除失败,请查看后重新操作");
  184. }
  185. else
  186. return Error("请选择要删除的记录");
  187. }
  188. }
  189. }