public async Task <ResultObj <int> > Save(DtoSave <SysRoleEntity> inEnt) { ResultObj <int> reObj = new ResultObj <int>(); try { dbHelper.TranscationBegin(); DapperHelper <SysModuleEntity> moduleDapper = new DapperHelper <SysModuleEntity>(dbHelper.GetConnection(), dbHelper.GetTransaction()); if (inEnt.data.id == 0) { inEnt.data.id = await SequenceRepository.GetNextID <SysRoleEntity>(); reObj.data = await dbHelper.Save(inEnt); } else { reObj.data = await dbHelper.Update(inEnt); } reObj.success = reObj.data > 0; if (!reObj.success) { reObj.msg = "保存角色失败"; dbHelper.TranscationRollback(); } else { var allModule = await moduleDapper.FindAll(string.Format("ID in ({0})", string.Join(",", inEnt.data.moduleIdStr))); var moduleIdList = allModule.Select(i => i.id).ToList(); var parent = allModule.GroupBy(i => i.parentId).Select(x => x.Key).Where(x => x != 0).Select(x => x).ToList(); moduleIdList = moduleIdList.Concat(parent).ToList(); moduleIdList = moduleIdList.GroupBy(i => i).Select(i => i.Key).ToList(); await dbHelper.Exec("delete from sys_role_module where role_id = " + inEnt.data.id); var opNum = await dbHelper.Exec(string.Format("insert into sys_role_module(role_id,module_id) select {0} role_id,id module_id from sys_module where id in ({1}) ", inEnt.data.id, string.Join(",", moduleIdList))); if (opNum != moduleIdList.Count()) { reObj.success = false; reObj.msg = "保存角色模块失败"; dbHelper.TranscationRollback(); } else { reObj.success = true; dbHelper.TranscationCommit(); } } } catch (Exception e) { reObj.success = false; reObj.msg = "保存角色失败"; LogHelper.WriteErrorLog(this.GetType(), reObj.msg, e); dbHelper.TranscationRollback(); } return(reObj); }
public async Task <ResultObj <int> > Save(DtoSave <SysUserEntity> inEnt) { ResultObj <int> reObj = new ResultObj <int>(); try { if (inEnt.data.roleIdList == null) { inEnt.data.roleIdList = new List <int>(); } dbHelper.TranscationBegin(); if (inEnt.data.id == 0) { DapperHelper <SysLoginEntity> dbHelperlog = new DapperHelper <SysLoginEntity>(dbHelper.GetConnection(), dbHelper.GetTransaction()); var addResult = await loginRepository.LoginReg(new LogingDto { loginName = inEnt.data.loginName, password = "******", userName = inEnt.data.name }, dbHelper, dbHelperlog); if (!addResult.success) { return(addResult); } inEnt.data.id = addResult.data; } else { reObj.data = await dbHelper.Update(inEnt); reObj.success = reObj.data > 0; if (!reObj.success) { reObj.msg = "保存角色失败"; dbHelper.TranscationRollback(); return(reObj); } } int v = await dbHelper.Exec("delete from sys_user_role where user_id = " + inEnt.data.id); foreach (var item in inEnt.data.roleIdList) { var opNum = await dbHelper.Exec(string.Format("insert into sys_user_role(role_id,user_id) values({0},{1}) ", item, inEnt.data.id)); if (opNum != 1) { reObj.success = false; reObj.msg = "保存用户模块失败"; dbHelper.TranscationRollback(); return(reObj); } } reObj.success = true; dbHelper.TranscationCommit(); } catch (Exception e) { reObj.success = false; reObj.msg = "保存用户失败"; LogHelper.WriteErrorLog(this.GetType(), reObj.msg, e); dbHelper.TranscationRollback(); } return(reObj); }