TsysUserRepository.cs 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. using Microsoft.EntityFrameworkCore;
  2. using Ropin.Inspection.Model;
  3. using Ropin.Inspection.Model.Entities;
  4. using Ropin.Inspection.Model.SearchModel;
  5. using Ropin.Inspection.Model.ViewModel;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace Ropin.Inspection.Repository
  12. {
  13. public class TsysUserRepository : RepositoryBase<TSYS_User, Guid>, ITsysUserRepository
  14. {
  15. public TsysUserRepository(InspectionDbContext dbContext) : base(dbContext)
  16. {
  17. }
  18. public void CheckUser(TsysUserCreateViewModel user)
  19. {
  20. if (DbContext.TSYS_User.Where(i => i.C_Mobile == user.C_Mobile).Any())
  21. throw new Exception("用户手机号已存在数据库中");
  22. if (DbContext.TSYS_User.Where(i => null != i.C_IDNum && i.C_IDNum == user.C_IDNum).Any())
  23. throw new Exception("用户身份证号已存在数据库中");
  24. }
  25. public TSYS_User GetUser(TsysUserSearchModel searchModel)
  26. {
  27. return DbContext.Set<TSYS_User>().SingleOrDefault(user => user.C_UserID == searchModel.C_UserID || user.C_WechatID == searchModel.WxOpenId);
  28. }
  29. public async Task<TSYS_User> LoginByAsync(LoginModel loginModel)
  30. {
  31. return await DbContext.Set<TSYS_User>().FirstOrDefaultAsync(user => user.C_Mobile == loginModel.Mobile && user.C_Password == loginModel.Password.ToLower());
  32. }
  33. //public async Task<TSYS_User> GetUserAsync(Guid userId)
  34. //{
  35. // return await DbContext.Set<TSYS_User>().SingleOrDefaultAsync(user => user.C_UserID == userId);
  36. //}
  37. public Task<IEnumerable<TSYS_User>> GetByStoreCodeAsync(string storeCode)
  38. {
  39. MySqlConnector.MySqlParameter[] parameters = new[] {
  40. new MySqlConnector.MySqlParameter("storeCode", storeCode) };
  41. string sql = @"SELECT B.* FROM TPNT_StoreOrg A
  42. INNER JOIN TSYS_User B
  43. ON A.C_OrgCode = B.C_OrgCode
  44. WHERE A.C_StoreCode = @storeCode ";
  45. var contentlist = EntityFrameworkCoreExtensions.GetList<TSYS_User>(DbContext.Database, sql, parameters);
  46. return Task.FromResult(contentlist);
  47. }
  48. public Task<IEnumerable<TSYS_User>> GetByRecordItemCodeAsync(string itemCode)
  49. {
  50. MySqlConnector.MySqlParameter[] parameters = new[] {
  51. new MySqlConnector.MySqlParameter("itemCode", itemCode) };
  52. string sql = @"SELECT E.* FROM TISP_RecordItem A
  53. INNER JOIN TISP_Record B ON B.C_ID = A.C_RecordCode
  54. INNER JOIN TISP_Spot C ON C.C_Code = B.C_SpotCode
  55. INNER JOIN TPNT_StoreOrg D ON D.C_StoreCode = C.C_StoreCode
  56. INNER JOIN TSYS_User E ON D.C_OrgCode = E.C_OrgCode
  57. WHERE A.C_ID = @itemCode ";
  58. var contentlist = EntityFrameworkCoreExtensions.GetList<TSYS_User>(DbContext.Database, sql, parameters);
  59. return Task.FromResult(contentlist);
  60. }
  61. public Task<PageData<TsysUserDetailWithOrgRoleViewModel>> GetByNameAsync(TsysUserSearchByNameModel searchModel)
  62. {
  63. //var v = EntityFrameworkCoreExtensions.GetList<V_PRD_Product_Info>(DbContext.Database, "Select * from V_PRD_Product_Info", null);
  64. MySqlConnector.MySqlParameter[] parameters = new[] {
  65. new MySqlConnector.MySqlParameter("Mobile", searchModel.C_Mobile),
  66. new MySqlConnector.MySqlParameter("Name", searchModel.C_Name),
  67. new MySqlConnector.MySqlParameter("OrganizeCode", searchModel.G_OrganizeCode.ToString()),
  68. new MySqlConnector.MySqlParameter("Status", searchModel.C_Status),
  69. new MySqlConnector.MySqlParameter("UserId", searchModel.G_UserId?.ToString()) };
  70. string sql = @"SELECT A.*,C.C_Code AS RoleId, C.C_Name AS RoleName,D.C_Name AS OrgName,D.C_SName AS OrgSName,D.C_LName AS OrgLName,D.C_Type
  71. From TSYS_User A
  72. LEFT JOIN TSYS_UserRole B ON A.C_UserID = B.C_UserCode
  73. LEFT JOIN TSYS_Role C ON C.C_Code = B.C_RoleCode
  74. INNER JOIN TSYS_Org D ON D.C_Code = A.C_OrgCode
  75. ";// WHERE A.C_Status = '1' AND C.C_Status = '1' AND D.C_Status = '1'
  76. if (!string.IsNullOrEmpty(searchModel.C_Status))
  77. {
  78. sql += " WHERE A.C_Status = @Status AND C.C_Status = '1' AND D.C_Status = '1' ";
  79. }
  80. if (!string.IsNullOrEmpty(searchModel.C_Mobile))
  81. {
  82. sql += " AND A.C_Mobile LIKE '%"+ searchModel.C_Mobile + "%' ";
  83. }
  84. if (!string.IsNullOrEmpty(searchModel.C_Name))
  85. {
  86. sql += " AND A.C_Name LIKE '%"+ searchModel.C_Name + "%' ";
  87. }
  88. if (Guid.Empty != searchModel.G_OrganizeCode)
  89. {
  90. sql += " AND D.C_Code =@OrganizeCode ";
  91. }
  92. if (Guid.Empty != searchModel.G_UserId && null != searchModel.G_UserId)
  93. {
  94. sql += " AND A.C_UserID =@UserId ";
  95. }
  96. //if (searchModel.Start != Convert.ToDateTime("0001-01-01 00:00:00") && searchModel.End != Convert.ToDateTime("0001-01-01 00:00:00"))
  97. //{
  98. // sql += " AND D.D_CreateOn between @start and @end";
  99. //}
  100. sql += " ORDER BY A.I_Sort ASC ";
  101. //IEnumerable<TsysUserDetailWithOrgRoleDto> recordItemlist = EntityFrameworkCoreExtensions.GetList2<TsysUserDetailWithOrgRoleDto>(DbContext.Database, sql, parameters);
  102. var contentlist = EntityFrameworkCoreExtensions.GetList<TsysUserDetailWithOrgRoleDto>(DbContext.Database, sql, parameters);
  103. if (null == contentlist || contentlist.First() == null)
  104. {
  105. PageData<TsysUserDetailWithOrgRoleViewModel> contentlistDetail = null;
  106. return Task.FromResult(contentlistDetail);
  107. }
  108. var q = from b in contentlist
  109. group b by b.C_UserID into g
  110. select new TsysUserDetailWithOrgRoleViewModel
  111. {
  112. C_UserID = g.First().C_UserID,
  113. C_LicenseCode = g.First().C_LicenseCode,
  114. C_Post = g.First().C_Post,
  115. C_UserName = g.First().C_UserName,
  116. C_WechatID = g.First().C_WechatID,
  117. C_ProgramID = g.First().C_ProgramID,
  118. C_Name = g.First().C_Name,
  119. I_Render = g.First().I_Render,
  120. C_IDNum = g.First().C_IDNum,
  121. C_OrgCode = g.First().C_OrgCode,
  122. C_ImagePath = g.First().C_ImagePath,
  123. D_BirthDay = g.First().D_BirthDay,
  124. C_Address = g.First().C_Address,
  125. I_Sort = g.First().I_Sort,
  126. C_Mobile = g.First().C_Mobile,
  127. C_Phone = g.First().C_Phone,
  128. C_Email = g.First().C_Email,
  129. C_Remark = g.First().C_Remark,
  130. C_Status = g.First().C_Status,
  131. OrgName = g.First().OrgName,
  132. OrgSName = g.First().OrgSName,
  133. OrgLName = g.First().OrgLName,
  134. C_Type = g.First().C_Type,
  135. Roles = from d in g
  136. group d by d.RoleId into f where !f.First().RoleId.Equals(Guid.Empty)
  137. select new RoleDto
  138. {
  139. RoleId = f.First().RoleId,
  140. RoleName = f.First().RoleName,
  141. }
  142. };
  143. PageData<TsysUserDetailWithOrgRoleViewModel> pageData = new PageData<TsysUserDetailWithOrgRoleViewModel>
  144. {
  145. Totals = q.ToList().Count,
  146. Rows = searchModel.IsPagination ? q.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize).ToList() : q.ToList()
  147. };
  148. return Task.FromResult(pageData);
  149. }
  150. public Task<TsysUserDetailViewModel> GetUserDetailByAsync(LoginModel loginModel)
  151. {
  152. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Mobile", loginModel.Mobile), new MySqlConnector.MySqlParameter("Password", loginModel.Password) };
  153. string sql = @"SELECT A.*,GROUP_CONCAT(C.C_Name SEPARATOR ',') as RoleNames,GROUP_CONCAT(C.C_Code SEPARATOR ',') as RoleIds ,cast(G.C_Code as char) AS LicenseTypeCode, G.C_Name AS LicenseTypeName
  154. From TSYS_User A LEFT JOIN TSYS_UserRole B ON A.C_UserID = B.C_UserCode
  155. LEFT JOIN TSYS_Role C ON C.C_Code = B.C_RoleCode
  156. LEFT JOIN TSYS_License F ON F.C_Code = A.C_LicenseCode
  157. LEFT JOIN TSYS_LicenseType G ON G.C_Code = F.C_TypeCode
  158. WHERE A.C_Mobile = @Mobile AND A.C_Password = @Password
  159. GROUP BY A.C_UserID
  160. ";
  161. sql = @"SELECT A.*,GROUP_CONCAT(C.C_Name SEPARATOR ',') as RoleNames,GROUP_CONCAT(C.C_Code SEPARATOR ',') as RoleIds ,cast(G.C_Code as char) AS LicenseTypeCode, G.C_Name AS LicenseTypeName ,H.C_Type AS OrgTypeCode,H.C_Name AS OrgTypeName
  162. From TSYS_User A
  163. LEFT JOIN TSYS_UserRole B ON A.C_UserID = B.C_UserCode
  164. LEFT JOIN TSYS_Role C ON C.C_Code = B.C_RoleCode
  165. LEFT JOIN TSYS_License F ON F.C_Code = A.C_LicenseCode
  166. LEFT JOIN TSYS_LicenseType G ON G.C_Code = F.C_TypeCode
  167. INNER JOIN TSYS_Org H ON H.C_Code = A.C_OrgCode
  168. WHERE A.C_Mobile = @Mobile AND A.C_Password = @Password
  169. GROUP BY A.C_UserID";
  170. // sql = @"SELECT A.C_UserID,A.C_LicenseCode,A.C_Post,A.C_UserName,A.C_WechatID,A.C_ProgramID,A.C_Name,A.I_Render,A.C_IDNum,A.C_OrgCode,A.C_ImagePath,A.D_Birthday,A.C_Address,A.C_Mobile,A.C_Phone,A.C_Email,A.C_Remark,
  171. //B.C_Name AS LicenseName,B.D_EndDate AS LicenseEndDate,
  172. //C.C_Name AS LicenseTypeName,
  173. //E.C_Code AS PrivCode,
  174. //E.C_ParentCode AS PrivParentCode,
  175. //E.C_Module AS PrivModule,
  176. //E.C_Type AS PrivType,
  177. //E.C_Name AS PrivName,
  178. //E.I_Sort AS Privort,
  179. //E.C_ImageUrl AS PrivImageUrl,
  180. //E.C_PageUrl AS PrivPageUrl,
  181. //E.C_Remark AS PrivRemark
  182. //FROM TSYS_User A
  183. //LEFT JOIN TSYS_License B ON B.C_Code = A.C_LicenseCode
  184. //LEFT JOIN TSYS_LicenseType C ON C.C_Code = B.C_TypeCode
  185. //LEFT JOIN TSYS_LicenseTypePriv D ON D.C_LicenseTypeCode = C.C_Code
  186. //LEFT JOIN TSYS_Priv E ON E.C_Code = D.C_PrivilegeCode
  187. //LEFT JOIN TSYS_Org F ON F.C_Code = A.C_OrgCode
  188. //WHERE A.C_Mobile = '13636678098' AND A.C_Password = 'e10adc3949ba59abbe56e057f20f883e'
  189. //AND A.C_Status = '1' AND B.C_Status = '1' AND C.C_Status = '1' AND E.C_Status = '1' AND F.C_Status = '1'";
  190. TsysUserDetailViewModel model = EntityFrameworkCoreExtensions.SqlQuery<TsysUserDetailViewModel>(DbContext.Database, sql, parameters).FirstOrDefault();
  191. if(model == null) return Task.FromResult(model);
  192. //var query = from p in DbContext.TBDM_Prov
  193. // join pp in DbContext.TSYS_LicenseTypePriv
  194. // on p.C_Code equals pp.C_PrivilegeCode
  195. // where p.NickName == ""
  196. // select new
  197. // {
  198. // pp.Id,
  199. // pp.PlayerId,
  200. // PetName = pp.NickName,
  201. // PlayerName = p.NickName
  202. // };
  203. // string userLicenseTypePrivSql = @"SELECT E.*
  204. //FROM TSYS_User A
  205. //JOIN TSYS_License B ON B.C_Code = A.C_LicenseCode
  206. // JOIN TSYS_LicenseType C ON C.C_Code = B.C_TypeCode
  207. // JOIN TSYS_LicenseTypePriv D ON D.C_LicenseTypeCode = C.C_Code
  208. // JOIN TSYS_Priv E ON E.C_Code = D.C_PrivilegeCode
  209. //WHERE A.C_Mobile = @Mobile AND A.C_Password = @Password
  210. //AND A.C_Status = '1' AND B.C_Status = '1' AND C.C_Status = '1' AND E.C_Status = '1'
  211. //";
  212. // model.LicenseTypePrivS = EntityFrameworkCoreExtensions.GetList<LicenseTypePriv>(DbContext.Database, userLicenseTypePrivSql, parameters);
  213. string userRoleTypePrivPrivSql = @"SELECT E.*
  214. From TSYS_User A
  215. LEFT JOIN TSYS_UserRole B ON A.C_UserID = B.C_UserCode
  216. LEFT JOIN TSYS_Role C ON C.C_Code = B.C_RoleCode
  217. LEFT JOIN TSYS_RolePriv D ON D.C_RoleCode = C.C_Code
  218. LEFT JOIN TSYS_Priv E ON E.C_Code = D.C_PrivilegeCode
  219. WHERE A.C_Mobile = @Mobile AND A.C_Password = @Password
  220. AND A.C_Status = '1' AND C.C_Status = '1' AND E.C_Status = '1'
  221. ORDER BY E.I_Sort ASC
  222. ";
  223. var roleTypePrivList = EntityFrameworkCoreExtensions.GetList<RoleTypePriv>(DbContext.Database, userRoleTypePrivPrivSql, parameters).ToList();
  224. if (roleTypePrivList[0] == null)
  225. {
  226. return Task.FromResult(model);
  227. }
  228. if (!string.IsNullOrEmpty(loginModel.PrivModule))
  229. {
  230. if (!roleTypePrivList.Any(t => t.C_Module == loginModel.PrivModule))
  231. {
  232. return Task.FromResult(model);
  233. }
  234. }
  235. var treeList = new List<RoleTypePrivTree>();
  236. var SysPriv = DbContext.TSYS_Priv.OrderBy(c => c.I_Sort).ToList();
  237. foreach (var item in SysPriv.Where(m => m.C_ParentCode == null))
  238. {
  239. List<RoleTypePrivTree> Part2Children = new List<RoleTypePrivTree>();
  240. foreach (var item2 in SysPriv.Where(m => m.C_ParentCode == item.C_Code))
  241. {
  242. List<RoleTypePrivTree> Part3Children = new List<RoleTypePrivTree>();
  243. foreach (var item3 in SysPriv.Where(m => m.C_ParentCode == item2.C_Code))
  244. {
  245. List<RoleTypePrivTree> Part4Children = new List<RoleTypePrivTree>();
  246. foreach (var item4 in SysPriv.Where(m => m.C_ParentCode == item3.C_Code))
  247. {
  248. var treeList4 = new List<RoleTypePrivTree>();
  249. List<RoleTypePrivTree> v3 = RecursionRoleTypePriv(roleTypePrivList.Where(m => m.C_ParentCode != null).ToList(), new List<RoleTypePrivTree>(), item4.C_Code);
  250. var query4 = from p in SysPriv
  251. join pp in roleTypePrivList
  252. on p.C_Code equals pp.C_Code
  253. where p.C_Code == item4.C_Code
  254. select new
  255. {
  256. pp.C_Code
  257. };
  258. if (v3.Count >0 || query4.Any())
  259. treeList4.Add(new RoleTypePrivTree()
  260. {
  261. C_Code = item4.C_Code,
  262. C_Name = item4.C_Name,
  263. C_ParentCode = item4.C_ParentCode,
  264. C_Type = item4.C_Type,
  265. I_Sort = item4.I_Sort,
  266. C_Remark = item4.C_Remark,
  267. C_ImageUrl = item4.C_ImageUrl,
  268. C_PageUrl = item4.C_PageUrl,
  269. C_Module = item4.C_Module,
  270. Open = v3.Count > 0,
  271. Children = v3.Count == 0 ? null : v3
  272. });
  273. Part4Children.AddRange(treeList4);
  274. }
  275. var treeList3 = new List<RoleTypePrivTree>();
  276. //List<RoleTypePrivTree> v2 = RecursionRoleTypePriv(roleTypePrivList.Where(m => m.C_ParentCode != null).ToList(), new List<RoleTypePrivTree>(), item3.C_Code);
  277. var query3 = from p in SysPriv
  278. join pp in roleTypePrivList
  279. on p.C_Code equals pp.C_Code
  280. where p.C_Code == item3.C_Code
  281. select new
  282. {
  283. pp.C_Code
  284. };
  285. if (Part4Children.Count>0 || query3.Any())
  286. treeList3.Add(new RoleTypePrivTree()
  287. {
  288. C_Code = item3.C_Code,
  289. C_Name = item3.C_Name,
  290. C_ParentCode = item3.C_ParentCode,
  291. C_Type = item3.C_Type,
  292. I_Sort = item3.I_Sort,
  293. C_Remark = item3.C_Remark,
  294. C_ImageUrl = item3.C_ImageUrl,
  295. C_PageUrl = item3.C_PageUrl,
  296. C_Module = item3.C_Module,
  297. Open = Part4Children.Count > 0,
  298. Children = Part4Children.Count == 0 ? null : Part4Children
  299. });
  300. Part3Children.AddRange(treeList3);
  301. }
  302. var treeList2 = new List<RoleTypePrivTree>();
  303. //List<RoleTypePrivTree> v = RecursionRoleTypePriv(roleTypePrivList.Where(m => m.C_ParentCode != null).ToList(), new List<RoleTypePrivTree>(), item2.C_Code);
  304. var query2 = from p in SysPriv
  305. join pp in roleTypePrivList
  306. on p.C_Code equals pp.C_Code
  307. where p.C_Code == item2.C_Code
  308. select new
  309. {
  310. pp.C_Code
  311. };
  312. if (Part3Children.Count>0 || query2.Any())
  313. treeList2.Add(new RoleTypePrivTree()
  314. {
  315. C_Code = item2.C_Code,
  316. C_Name = item2.C_Name,
  317. C_ParentCode = item2.C_ParentCode,
  318. C_Type = item2.C_Type,
  319. I_Sort = item2.I_Sort,
  320. C_Remark = item2.C_Remark,
  321. //LicenseTypeCode = item.LicenseTypeCode,
  322. //LicenseTypeName = item.LicenseTypeName,
  323. C_ImageUrl = item2.C_ImageUrl,
  324. C_PageUrl = item2.C_PageUrl,
  325. C_Module = item2.C_Module,
  326. Open = Part3Children.Count > 0,
  327. Children = Part3Children.Count == 0 ? null : Part3Children
  328. });
  329. Part2Children.AddRange(treeList2);
  330. }
  331. //获得子级
  332. //var children = RecursionRoleTypePriv(roleTypePrivList.Where(m => m.C_ParentCode != null).ToList(), new List<RoleTypePrivTree>(), item.C_Code);
  333. //if (children == null)
  334. //{
  335. // foreach (var childItem in SysPriv.Where(m => m.C_ParentCode == item.C_Code))
  336. // {
  337. // children = RecursionRoleTypePriv(roleTypePrivList.Where(m => m.C_ParentCode != null).ToList(), new List<RoleTypePrivTree>(), childItem.C_Code);
  338. // }
  339. //}
  340. var query = from p in SysPriv
  341. join pp in roleTypePrivList
  342. on p.C_Code equals pp.C_Code
  343. where p.C_Code == item.C_Code
  344. select new
  345. {
  346. pp.C_Code
  347. };
  348. if (Part2Children.Count>0 || query.Any())
  349. treeList.Add(new RoleTypePrivTree()
  350. {
  351. C_Code = item.C_Code,
  352. C_Name = item.C_Name,
  353. C_ParentCode = item.C_ParentCode,
  354. C_Type = item.C_Type,
  355. I_Sort = item.I_Sort,
  356. C_Remark = item.C_Remark,
  357. //LicenseTypeCode = item.LicenseTypeCode,
  358. //LicenseTypeName = item.LicenseTypeName,
  359. C_ImageUrl = item.C_ImageUrl,
  360. C_PageUrl = item.C_PageUrl,
  361. C_Module = item.C_Module,
  362. Open = Part2Children.Count > 0,
  363. Children = Part2Children.Count == 0 ? null : Part2Children
  364. });
  365. }
  366. model.RoleTypePrivS = treeList;
  367. return Task.FromResult(model);
  368. }
  369. List<RoleTypePrivTree> RecursionRoleTypePriv(List<RoleTypePriv> sourceList, List<RoleTypePrivTree> list, string guid)
  370. {
  371. foreach (var item in sourceList.Where(m => m.C_ParentCode.Equals(guid)))
  372. {
  373. var res = RecursionRoleTypePriv(sourceList, new List<RoleTypePrivTree>(), item.C_Code);
  374. list.Add(new RoleTypePrivTree()
  375. {
  376. C_Code = item.C_Code,
  377. C_Name = item.C_Name,
  378. C_ParentCode = item.C_ParentCode,
  379. C_Type = item.C_Type,
  380. I_Sort = item.I_Sort,
  381. C_Remark = item.C_Remark,
  382. //LicenseTypeCode = item.LicenseTypeCode,
  383. //LicenseTypeName = item.LicenseTypeName,
  384. C_ImageUrl = item.C_ImageUrl,
  385. C_PageUrl = item.C_PageUrl,
  386. C_Module = item.C_Module,
  387. Open = res.Count > 0,
  388. Children = res.Count > 0 ? res : null
  389. });
  390. }
  391. return list;
  392. }
  393. List<RoleTypePrivTree> SysRoleTypePriv(List<RoleTypePriv> sysList, List<RoleTypePriv> sourceList, List<RoleTypePrivTree> list, string guid)
  394. {
  395. foreach (var item in sourceList.Where(m => m.C_ParentCode.Equals(guid)))
  396. {
  397. var res = SysRoleTypePriv(sysList,sourceList, new List<RoleTypePrivTree>(), item.C_Code);
  398. list.Add(new RoleTypePrivTree()
  399. {
  400. C_Code = item.C_Code,
  401. C_Name = item.C_Name,
  402. C_ParentCode = item.C_ParentCode,
  403. C_Type = item.C_Type,
  404. I_Sort = item.I_Sort,
  405. C_Remark = item.C_Remark,
  406. C_ImageUrl = item.C_ImageUrl,
  407. C_PageUrl = item.C_PageUrl,
  408. C_Module = item.C_Module,
  409. Open = res.Count > 0,
  410. Children = res.Count > 0 ? res : null
  411. });
  412. }
  413. return list;
  414. }
  415. public TsysUserDetailViewModel GetUserDetail(LoginModel loginModel)
  416. {
  417. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Mobile", loginModel.Mobile), new MySqlConnector.MySqlParameter("Password", loginModel.Password) };
  418. string sql = "SELECT A.*,GROUP_CONCAT(C.C_Name SEPARATOR ',') as RoleNames,GROUP_CONCAT(C.C_Code SEPARATOR ',') as RoleIds From TSYS_User A LEFT JOIN TSYS_UserRole B ON A.C_UserID = B.C_UserCode LEFT JOIN TSYS_Role C ON C.C_Code = B.C_RoleCode WHERE A.C_Mobile = @Mobile AND A.C_Password = @Password GROUP BY A.C_UserID";
  419. TsysUserDetailViewModel model = EntityFrameworkCoreExtensions.SqlQuery<TsysUserDetailViewModel>(DbContext.Database, sql, parameters).FirstOrDefault();
  420. return model;
  421. }
  422. public Task<IEnumerable<TSYS_User>> GetUserDetailByRole(TsysUserByRoleSearchModel roleSearchModel)
  423. {
  424. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("Roles", "\'" + string.Join("\',\'", roleSearchModel.Roles.ToArray()) + "\'") };
  425. string sql = "SELECT B.* FROM TSYS_UserRole A LEFT JOIN TSYS_User B ON B.C_UserID = A.C_UserCode WHERE A.C_RoleCode IN (@Roles) AND B.C_Status = '1'";
  426. //string sql = "SELECT B.* FROM TSYS_UserRole A LEFT JOIN TSYS_User B ON B.C_UserID = A.C_UserCode WHERE A.C_RoleCode IN ('72d5b5f5-3008-49b7-b0d6-cc337f1a3333','72d5b5f5-3008-49b75b0d6-cc337f1a3333') AND B.C_Status = '1'";
  427. IEnumerable<TSYS_User> model = EntityFrameworkCoreExtensions.GetList<TSYS_User>(DbContext.Database, sql, parameters);
  428. return Task.FromResult(model);
  429. }
  430. }
  431. }