颐和api

WorkUserController.cs 8.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Mvc;
  6. using MadRunFabric.Common;
  7. using Microsoft.AspNetCore.Authorization;
  8. using Microsoft.Extensions.Logging;
  9. using SignTokenApi.IRepositories;
  10. using System.Security.Claims;
  11. using Microsoft.Extensions.Configuration;
  12. using SignTokenApi.Model;
  13. using MadRunFabric.Model;
  14. namespace SignTokenApi.Controllers
  15. {
  16. /// <summary>
  17. /// 用户管理 - 普通排班(保洁,保安) - 公示系统展示
  18. /// </summary>
  19. [Authorize]
  20. [ApiVersion("6.0")]
  21. [Produces("application/json")]
  22. [Route("api/[controller]")]
  23. public class WorkUserController : BaseController
  24. {
  25. private readonly ILogger<WorkUserController> _logger;
  26. private readonly IConfiguration _configuration;
  27. private readonly ISys_Work_UserRepository _sys_work_userRepository;
  28. private readonly ISys_User_AccountRepository _sys_user_accountRepository;
  29. public WorkUserController(
  30. ILogger<WorkUserController> logger,
  31. IConfiguration configuration,
  32. ISys_Work_UserRepository sys_work_userRepository,
  33. ISys_User_AccountRepository sys_user_accountRepository
  34. )
  35. {
  36. _logger = logger;
  37. _configuration = configuration;
  38. _sys_work_userRepository = sys_work_userRepository;
  39. _sys_user_accountRepository = sys_user_accountRepository;
  40. }
  41. /// <summary>
  42. /// 获取用户列表 by page
  43. /// </summary>
  44. /// <param name="keyword"></param>
  45. /// <param name="stime"></param>
  46. /// <param name="etime"></param>
  47. /// <param name="pageindex"></param>
  48. /// <param name="pagesize"></param>
  49. /// <returns></returns>
  50. [HttpGet("getlistbypage")]
  51. public IActionResult GetListByPageAsync(string keyword, string projectid, int pageindex = 1, int pagesize = 10)
  52. {
  53. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  54. string allprojectrole = _configuration["allprojectrole"];
  55. var userinfo = _sys_user_accountRepository.GetUserInfo(usercode, allprojectrole).ToJson().ToObject<UserInfoModel>();
  56. //获取数据
  57. int recordCount = 0;
  58. var result = _sys_work_userRepository.GetListsByPage(keyword, projectid, userinfo, pageindex, pagesize, out recordCount);
  59. var obj = new
  60. {
  61. rows = result.ToList(),
  62. total = recordCount
  63. };
  64. return Success("获取成功", obj);
  65. }
  66. /// <summary>
  67. /// 获取所有用户列表 - 下拉
  68. /// </summary>
  69. /// <returns></returns>
  70. [HttpGet("getlistdrop")]
  71. public async Task<IActionResult> GetListdrop(string projectid, string usertype)
  72. {
  73. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  74. string allprojectrole = _configuration["allprojectrole"];
  75. var userinfo = _sys_user_accountRepository.GetUserInfo(usercode, allprojectrole).ToJson().ToObject<UserInfoModel>();
  76. var list = await _sys_work_userRepository.Get(p => p.isdelete == 0);
  77. if (userinfo.isallproject == 0)
  78. list = list.Where(it => userinfo.projectlist.Contains(it.projectid));
  79. if (!string.IsNullOrEmpty(projectid))
  80. list = list.Where(it => it.projectid == projectid);
  81. if (!string.IsNullOrEmpty(usertype))
  82. list = list.Where(it => it.usertype == usertype);
  83. return Success("获取成功", list);
  84. }
  85. /// <summary>
  86. /// 获取用户详情 by id
  87. /// </summary>
  88. /// <param name="id"></param>
  89. /// <returns></returns>
  90. [HttpGet("getdetailes")]
  91. public async Task<IActionResult> GetDetailsAsync(string id)
  92. {
  93. if (string.IsNullOrEmpty(id))
  94. return Error("参数错误");
  95. var model = await _sys_work_userRepository.GetSingle(id);
  96. if (model != null)
  97. {
  98. return Success("获取成功!", model);
  99. }
  100. return Error("获取失败");
  101. }
  102. /// <summary>
  103. /// 添加用户
  104. /// </summary>
  105. /// <returns></returns>
  106. [HttpPost("add")]
  107. public async Task<IActionResult> AddAsync(WorkUserInput input)
  108. {
  109. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  110. string username = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
  111. if (string.IsNullOrEmpty(input.username))
  112. return Error("名称不能为空");
  113. var model = new Sys_Work_User();
  114. model.projectid = input.projectid;
  115. model.usertype = input.usertype;
  116. model.username = input.username;
  117. model.sex = input.sex;
  118. model.mobile = input.mobile;
  119. model.remark = input.remark;
  120. model.createby = usercode;
  121. model.createname = username;
  122. model.createtime = DateTime.Now.ToLocalTime();
  123. bool b = await _sys_work_userRepository.Add(model);
  124. if (b)
  125. return Success("添加成功");
  126. return Error("添加失败");
  127. }
  128. /// <summary>
  129. /// 修改用户信息
  130. /// </summary>
  131. /// <param name="id"></param>
  132. /// <param name="provincecode"></param>
  133. /// <param name="provincename"></param>
  134. /// <returns></returns>
  135. [HttpPost("update")]
  136. public async Task<IActionResult> UpdateAsync(WorkUserInput input)
  137. {
  138. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  139. string username = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
  140. if (string.IsNullOrEmpty(input.username))
  141. return Error("名称不能为空");
  142. var model = await _sys_work_userRepository.GetSingle(input.id);
  143. if (model == null)
  144. return Error("参数错误");
  145. model.id = input.id;
  146. model.projectid = input.projectid;
  147. model.usertype = input.usertype;
  148. model.username = input.username;
  149. model.sex = input.sex;
  150. model.mobile = input.mobile;
  151. model.remark = input.remark;
  152. model.createby = usercode;
  153. model.createname = username;
  154. model.createtime = DateTime.Now.ToLocalTime();
  155. bool b = await _sys_work_userRepository.Update(model);
  156. if (b)
  157. return Success("保存成功");
  158. return Error("保存失败");
  159. }
  160. /// <summary>
  161. /// 删除用户信息 by ids
  162. /// </summary>
  163. /// <param name="ids">string[] id</param>
  164. /// <returns></returns>
  165. [HttpPost("delete")]
  166. public async Task<IActionResult> DeleteAsync(string[] ids)
  167. {
  168. string usercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  169. var res = 0;
  170. if (ids != null && ids.Length > 0)
  171. {
  172. foreach (var item in ids)
  173. {
  174. var ml = await _sys_work_userRepository.GetSingle(item);
  175. ml.isdelete = 1;
  176. ml.deleteby = usercode;
  177. ml.deletetime = DateTime.Now.ToLocalTime();
  178. if (_sys_work_userRepository.Update(ml).Result)
  179. res += 1;
  180. }
  181. if (res == ids.Length)
  182. return Success("删除成功");
  183. else if (res > 0 && res < ids.Length)
  184. return Error("部分删除失败,请查看后重新操作");
  185. else
  186. return Error("删除失败,请查看后重新操作");
  187. }
  188. else
  189. return Error("请选择要删除的记录");
  190. }
  191. }
  192. }