Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }