SystemController.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569
  1. 
  2. using OASystem.Infrastructure.Repositories.System;
  3. using System.Collections;
  4. namespace OASystem.API.Controllers
  5. {
  6. /// <summary>
  7. /// 系统设置
  8. /// </summary>
  9. //[Authorize]
  10. [Route("api/[controller]/[action]")]
  11. public class SystemController : ControllerBase
  12. {
  13. private readonly CompanyRepository _syscomRep;
  14. private readonly DepartmentRepository _sysDepRep;
  15. private readonly UsersRepository _userRep;
  16. private readonly IMapper _mapper;
  17. private readonly SetDataRepository _setDataRepository;
  18. private readonly SystemMenuPermissionRepository _SystemMenuPermissionRepository;
  19. private readonly CompanyRepository _CompanyRepository;
  20. private readonly PageFunctionPermissionRepository _PageFunctionPermissionRepository;
  21. private readonly SystemMenuAndFunctionRepository _SystemMenuAndFunctionRepository;
  22. private readonly JobPostAuthorityRepository _JobPostAuthorityRepository;
  23. public SystemController( CompanyRepository syscom, DepartmentRepository sysDepRep, UsersRepository userRep,
  24. IMapper mapper, SetDataRepository setDataRepository, CompanyRepository companyRepository,
  25. SystemMenuPermissionRepository systemMenuPermissionRepository, PageFunctionPermissionRepository pageFunctionPermissionRepository,
  26. SystemMenuAndFunctionRepository systemMenuAndFunctionRepository, JobPostAuthorityRepository jobPostAuthorityRepository)
  27. {
  28. _syscomRep = syscom;
  29. _sysDepRep = sysDepRep;
  30. _userRep = userRep;
  31. _mapper = mapper;
  32. _setDataRepository = setDataRepository;
  33. _CompanyRepository = companyRepository;
  34. _SystemMenuPermissionRepository = systemMenuPermissionRepository;
  35. _PageFunctionPermissionRepository = pageFunctionPermissionRepository;
  36. _SystemMenuAndFunctionRepository = systemMenuAndFunctionRepository;
  37. _JobPostAuthorityRepository = jobPostAuthorityRepository;
  38. }
  39. #region user 操作
  40. /// <summary>
  41. /// 查询所有员工(web)
  42. /// </summary>
  43. /// <param name="dto"></param>
  44. /// <returns></returns>
  45. [HttpPost]
  46. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  47. public async Task<IActionResult> GetUserList(DtoBase dto)
  48. {
  49. try
  50. {
  51. var result = _userRep.GetUserList(dto.PortType,string.Empty);
  52. if (result.Result.Code != 0)
  53. {
  54. return Ok(JsonView(false, "暂无数据!"));
  55. }
  56. return Ok(JsonView(true,"查询成功!",result.Result.Data));
  57. }
  58. catch (Exception)
  59. {
  60. return Ok(JsonView(false, "程序错误!"));
  61. throw;
  62. }
  63. }
  64. #endregion
  65. #region 企业操作
  66. /// <summary>
  67. /// 查询企业数据
  68. /// </summary>
  69. /// <param name="dto"></param>
  70. /// <returns></returns>
  71. [HttpPost]
  72. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  73. public async Task<IActionResult> getCompanyList(DtoBase dto)
  74. {
  75. try
  76. {
  77. if (dto.PortType == 1)
  78. {
  79. return Ok(JsonView(false, "暂无数据!"));
  80. }
  81. else if (dto.PortType == 2)
  82. {
  83. var CompanyDataResult = _CompanyRepository.GetCompanyData();
  84. if (CompanyDataResult.Code != 0)
  85. {
  86. return Ok(JsonView(CompanyDataResult.Msg));
  87. }
  88. return Ok(JsonView(true,"查询成功!", CompanyDataResult.Data));
  89. }
  90. else if (dto.PortType == 3)
  91. {
  92. return Ok(JsonView(false, "暂无数据!"));
  93. }
  94. else
  95. {
  96. return Ok(JsonView(false, "暂无数据!"));
  97. }
  98. }
  99. catch (Exception ex)
  100. {
  101. return Ok(JsonView(false, "程序错误!"));
  102. throw;
  103. }
  104. }
  105. /// <summary>
  106. /// 添加企业数据
  107. /// </summary>
  108. /// <param name="dto"></param>
  109. /// <returns></returns>
  110. [HttpPost]
  111. [ProducesResponseType(typeof(JsonView),StatusCodes.Status200OK)]
  112. public async Task<IActionResult> AddCompany(AddCompanyDto dto)
  113. {
  114. try
  115. {
  116. if (string.IsNullOrWhiteSpace(dto.CompanyName) || dto.CreateUserId == 0 || string.IsNullOrWhiteSpace(dto.CompanyCode))
  117. {
  118. return Ok(JsonView(false, "请检查信息是否输入完整!"));
  119. }
  120. else if (string.IsNullOrWhiteSpace(dto.Tel))
  121. {
  122. return Ok(JsonView(false, "请检查联系方式是否输入正确!"));
  123. }
  124. else
  125. {
  126. Sys_Company _Company = _mapper.Map<Sys_Company>(dto);
  127. int id = await _syscomRep.AddAsyncReturnId(_Company);
  128. if (id == 0)
  129. {
  130. return Ok(JsonView(false, "添加失败!"));
  131. }
  132. return Ok(JsonView(true,"添加成功", new { Id = id }));
  133. }
  134. }
  135. catch (Exception)
  136. {
  137. return Ok(JsonView(false, "程序错误!"));
  138. throw;
  139. }
  140. }
  141. /// <summary>
  142. /// 企业修改
  143. /// </summary>
  144. /// <param name="dto"></param>
  145. /// <returns></returns>
  146. [HttpPost]
  147. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  148. public async Task<IActionResult>EditCompany(EditCompanyDto dto)
  149. {
  150. try
  151. {
  152. if (string.IsNullOrWhiteSpace(dto.CompanyName) || string.IsNullOrWhiteSpace(dto.CompanyCode) || string.IsNullOrWhiteSpace(dto.Address) || dto.ParentCompanyId == 0 || dto.ContactUserId == 0)
  153. {
  154. return Ok(JsonView(false, "请检查信息是否输入完整!"));
  155. }
  156. else if (string.IsNullOrWhiteSpace(dto.Tel))
  157. {
  158. return Ok(JsonView(false, "请检查联系方式是否输入正确!"));
  159. }
  160. else
  161. {
  162. bool res = await _syscomRep.UpdateAsync(a => a.Id == dto.Id, a => new Sys_Company
  163. {
  164. CompanyName = dto.CompanyName,
  165. CompanyCode = dto.CompanyCode,
  166. Address = dto.Address,
  167. ParentCompanyId = dto.ParentCompanyId,
  168. Tel = dto.Tel,
  169. ContactUserId = dto.ContactUserId,
  170. });
  171. if (!res) { return Ok(JsonView(false, "修改失败")); }
  172. return Ok(JsonView(true,"修改成功!"));
  173. }
  174. }
  175. catch (Exception)
  176. {
  177. return Ok(JsonView(false, "程序错误!"));
  178. throw;
  179. }
  180. }
  181. /// <summary>
  182. /// 企业删除
  183. /// </summary>
  184. /// <param name="dto"></param>
  185. /// <returns></returns>
  186. [HttpPost]
  187. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  188. public async Task<IActionResult> DelCompany(DelCompanyDto dto)
  189. {
  190. try
  191. {
  192. bool res = await _syscomRep.SoftDeleteAsync<Sys_Company>(dto.Id.ToString());
  193. if (!res) { return Ok(JsonView(false, "删除失败")); }
  194. return Ok(JsonView(true, "删除成功"));
  195. }
  196. catch (Exception)
  197. {
  198. return Ok(JsonView(false, "程序错误!"));
  199. throw;
  200. }
  201. }
  202. #endregion
  203. #region 部门操作
  204. /// <summary>
  205. /// 查询部门数据
  206. /// </summary>
  207. /// <param name="dto"></param>
  208. /// <returns></returns>
  209. //[Authorize]
  210. [HttpPost]
  211. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  212. public async Task<IActionResult> QueryDepartmentList(DepartmentDto dto)
  213. {
  214. try
  215. {
  216. if (dto.PortType==1)
  217. {
  218. var result = _sysDepRep.QueryDto<Sys_Department, DepartmentIView>(s => s.CompanyId == dto.CompanyId).ToList();
  219. if (result.Count == 0)
  220. {
  221. return Ok(JsonView(false, "暂无数据!"));
  222. }
  223. return Ok(JsonView(true, "查询成功!", result));
  224. }
  225. else if (dto.PortType==2)
  226. {
  227. var result = _sysDepRep.QueryDto<Sys_Department, DepartmentIView>(s => s.CompanyId == dto.CompanyId).ToList();
  228. if (result.Count == 0)
  229. {
  230. return Ok(JsonView(false, "暂无数据!"));
  231. }
  232. return Ok(JsonView(true,"查询成功!",result));
  233. }
  234. else if (dto.PortType == 3)
  235. {
  236. return Ok(JsonView(false, "暂无数据!"));
  237. }
  238. else
  239. {
  240. return Ok(JsonView(false, "暂无数据!"));
  241. }
  242. }
  243. catch (Exception ex)
  244. {
  245. return Ok(JsonView(false, "程序错误!"));
  246. throw;
  247. }
  248. }
  249. /// <summary>
  250. /// 部门添加
  251. /// </summary>
  252. /// <param name="dto"></param>
  253. /// <returns></returns>
  254. [HttpPost]
  255. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  256. public async Task<IActionResult> AddDepartment(AddDepartmentDto dto)
  257. {
  258. try
  259. {
  260. if (dto.CreateUserId == 0 || string.IsNullOrWhiteSpace(dto.DepName) || dto.CompanyId == 0 || string.IsNullOrWhiteSpace(dto.DepCode))
  261. {
  262. return Ok(JsonView(false, "请检查信息是否输入完整!"));
  263. }
  264. else
  265. {
  266. Sys_Department _Department = _mapper.Map<Sys_Department>(dto);
  267. int id = await _sysDepRep.AddAsyncReturnId(_Department);
  268. if (id == 0)
  269. {
  270. return Ok(JsonView(false, "添加失败!"));
  271. }
  272. return Ok(JsonView(true, "添加成功!", new { Id = id }));
  273. }
  274. }
  275. catch (Exception)
  276. {
  277. return Ok(JsonView(false, "程序错误!"));
  278. throw;
  279. }
  280. }
  281. /// <summary>
  282. /// 部门修改
  283. /// </summary>
  284. /// <param name="dto"></param>
  285. /// <returns></returns>
  286. [HttpPost]
  287. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  288. public async Task<IActionResult> EditDepartment(EditDepartmentDto dto)
  289. {
  290. try
  291. {
  292. if (dto.Id==0 || string.IsNullOrWhiteSpace(dto.DepName) || dto.CompanyId == 0 || string.IsNullOrWhiteSpace(dto.DepCode))
  293. {
  294. return Ok(JsonView(false, "请检查信息是否输入完整!"));
  295. }
  296. else
  297. {
  298. bool res = await _sysDepRep.UpdateAsync<Sys_Department>(a => a.Id == dto.Id, a => new Sys_Department
  299. {
  300. CompanyId=dto.CompanyId,
  301. DepCode=dto.DepCode,
  302. DepName=dto.DepName,
  303. ParentDepId=dto.ParentDepId,
  304. Remark=dto.Remark,
  305. });
  306. if (!res)
  307. {
  308. return Ok(JsonView(false, "修改失败!"));
  309. }
  310. return Ok(JsonView(true, "修改成功!"));
  311. }
  312. }
  313. catch (Exception)
  314. {
  315. return Ok(JsonView(false, "程序错误!"));
  316. throw;
  317. }
  318. }
  319. /// <summary>
  320. /// 部门删除
  321. /// </summary>
  322. /// <param name="dto"></param>
  323. /// <returns></returns>
  324. [HttpPost]
  325. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  326. public async Task<IActionResult> DelDepartment(DelDepartmentDto dto)
  327. {
  328. try
  329. {
  330. if (dto.Id == 0)
  331. {
  332. return Ok(JsonView(-1, "请检查信息是否输入完整!", null));
  333. }
  334. else
  335. {
  336. bool res =await _sysDepRep.SoftDeleteAsync<Sys_Department>(dto.Id.ToString());
  337. if (!res)
  338. {
  339. return Ok(JsonView(false, "删除失败!"));
  340. }
  341. return Ok(JsonView(true, "删除成功!"));
  342. }
  343. }
  344. catch (Exception)
  345. {
  346. return Ok(JsonView(false, "程序错误!"));
  347. throw;
  348. }
  349. }
  350. #endregion
  351. #region 岗位板块
  352. /// <summary>
  353. /// 岗位查询
  354. /// </summary>
  355. /// <param name="dto"></param>
  356. /// <returns></returns>
  357. [HttpPost]
  358. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  359. public async Task<IActionResult> QueryJobPost(QueryJobPostDto dto)
  360. {
  361. try
  362. {
  363. if (dto.PortType == 1)
  364. {
  365. var result = _sysDepRep.QueryDto<Sys_JobPost, JobPostView>(s => s.CompanyId == dto.CompanyId && s.DepId == dto.DepId).ToList();
  366. if (result.Count == 0)
  367. {
  368. return Ok(JsonView(false, "暂无数据!"));
  369. }
  370. return Ok(JsonView(true, "查询成功!", result));
  371. }
  372. else if (dto.PortType == 2)
  373. {
  374. var result = _sysDepRep.QueryDto<Sys_JobPost, JobPostView>(s => s.CompanyId == dto.CompanyId && s.DepId==dto.DepId).ToList();
  375. if (result.Count == 0)
  376. {
  377. return Ok(JsonView(false, "暂无数据!"));
  378. }
  379. return Ok(JsonView(true, "查询成功!", result));
  380. }
  381. else if (dto.PortType == 3)
  382. {
  383. return Ok(JsonView(false, "暂无数据!"));
  384. }
  385. else
  386. {
  387. return Ok(JsonView(false, "暂无数据!"));
  388. }
  389. }
  390. catch (Exception ex)
  391. {
  392. return Ok(JsonView(false, "程序错误!"));
  393. throw;
  394. }
  395. }
  396. #endregion
  397. #region 用户操作
  398. /// <summary>
  399. /// 查询用户数据
  400. /// </summary>
  401. /// <param name="dto"></param>
  402. /// <returns></returns>
  403. [HttpPost]
  404. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  405. public async Task<IActionResult> QueryUserList(UserDto dto)
  406. {
  407. try
  408. {
  409. string sqlWhere = string.Empty;
  410. if (dto.CompanyId!=0)
  411. {
  412. sqlWhere += string.Format(@" And su.CompanyId={0}", dto.CompanyId);
  413. }
  414. if (dto.DepId != 0)
  415. {
  416. sqlWhere += string.Format(@" And su.DepId={0}", dto.DepId);
  417. }
  418. if (!string.IsNullOrEmpty(sqlWhere.Trim()))
  419. {
  420. Regex r = new Regex("And");
  421. sqlWhere = r.Replace(sqlWhere, "Where", 1);
  422. }
  423. var result=_userRep.GetUserList(dto.PortType,sqlWhere);
  424. if (result.Result.Code!=0)
  425. {
  426. return Ok(JsonView(false, "暂无数据!"));
  427. }
  428. return Ok(JsonView(true,"查询成功!",result.Result.Data));
  429. }
  430. catch (Exception)
  431. {
  432. return Ok(JsonView(false, "程序错误!"));
  433. throw;
  434. }
  435. }
  436. [HttpPost]
  437. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  438. public async Task<IActionResult> AddUser(AddUserDto dto)
  439. {
  440. int id = 0;
  441. return Ok(JsonView(true, "添加成功!", new { Id = id }));
  442. }
  443. #endregion
  444. #region 权限模块
  445. /// <summary>
  446. /// 权限数据页面初始化
  447. /// </summary>
  448. /// <param name="dto"></param>
  449. /// <returns></returns>
  450. //[Authorize]
  451. [HttpPost]
  452. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  453. public async Task<IActionResult> GetAuth(AuthDto dto)
  454. {
  455. Result result = new Result();
  456. //模块数据
  457. var setDataResult = await _setDataRepository.GetSySDefultModule(_setDataRepository);
  458. if (setDataResult.Code != 0)
  459. {
  460. return Ok(JsonView(setDataResult.Msg));
  461. }
  462. //操作方式
  463. var PageOperation = _PageFunctionPermissionRepository.QueryDto<Sys_PageFunctionPermission, Sys_PageFunctionPermission>().ToList();
  464. //获取所有关联页面
  465. var Sys_SystemMenuAndFunction = _SystemMenuAndFunctionRepository.QueryDto<Sys_SystemMenuAndFunction, SystemMenuAndFunctionView>().ToList();
  466. //页面数据
  467. var SystemMenuPermissionData = _SystemMenuPermissionRepository.QueryDto<Sys_SystemMenuPermission, SystemMenuPermissionView>(x=>x.Mid == dto.moduleId).ToList();
  468. if (SystemMenuPermissionData == null || SystemMenuPermissionData.Count() == 0)
  469. {
  470. return Ok(JsonView("暂无数据"));
  471. }
  472. ArrayList viewData = new ArrayList();
  473. //组合页面数据
  474. foreach (var item in SystemMenuPermissionData)
  475. {
  476. ArrayList ids = new ArrayList();
  477. foreach (var viewop in PageOperation)
  478. {
  479. var op = Sys_SystemMenuAndFunction.FirstOrDefault(x => x.SmId == item.Id && x.FId == viewop.Id);
  480. if (op != null)
  481. {
  482. ids.Add(viewop.Id);
  483. }
  484. }
  485. viewData.Add(new
  486. {
  487. Id = item.Id,
  488. Mid = item.Mid,
  489. Name = item.Name,
  490. SystemMenuCode = item.SystemMenuCode,
  491. opList = ids
  492. });
  493. }
  494. //公司数据
  495. var CompanyDataResult = _CompanyRepository.GetCompanyData();
  496. if (CompanyDataResult.Code != 0)
  497. {
  498. return Ok(JsonView(CompanyDataResult.Msg));
  499. }
  500. result.Code = 0;
  501. result.Msg = "成功!";
  502. var Dyresult = new
  503. {
  504. setDataResult = setDataResult.Data,
  505. CompanyDataResult = CompanyDataResult.Data,
  506. SystemMenuPermissionData = viewData,
  507. PageOperation = PageOperation,
  508. };
  509. return Ok(JsonView(200, "成功!", Dyresult));
  510. }
  511. [HttpPost]
  512. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  513. public IActionResult QueryJobAuto(int jobid)
  514. {
  515. var DBdata = _JobPostAuthorityRepository.QueryDto<Sys_JobPostAuthority, JobPostAuthorityView>(x=>x.JpId == jobid).ToList();
  516. return Ok(JsonView(200, "成功!", DBdata));
  517. }
  518. #endregion
  519. }
  520. }