diff --git a/Infrastructure/OptionsSetting.cs b/Infrastructure/OptionsSetting.cs index 86726f98..e451fee8 100644 --- a/Infrastructure/OptionsSetting.cs +++ b/Infrastructure/OptionsSetting.cs @@ -82,6 +82,7 @@ namespace Infrastructure public class Gen { + public bool ShowApp { get; set; } public bool AutoPre { get; set; } public string VuePath { get; set; } public string Author { get; set; } diff --git a/ZR.Admin.WebApi/Controllers/System/SysUserController.cs b/ZR.Admin.WebApi/Controllers/System/SysUserController.cs index 78b8c81b..5a7bde3a 100644 --- a/ZR.Admin.WebApi/Controllers/System/SysUserController.cs +++ b/ZR.Admin.WebApi/Controllers/System/SysUserController.cs @@ -93,9 +93,10 @@ namespace ZR.Admin.WebApi.Controllers.System } user.Create_by = HttpContext.GetName(); + user.Create_time = DateTime.Now; user.Password = NETCore.Encrypt.EncryptProvider.Md5(user.Password); - return ToResponse(UserService.InsertUser(user)); + return SUCCESS(UserService.InsertUser(user)); } /// diff --git a/ZR.Admin.WebApi/Extensions/DbExtension.cs b/ZR.Admin.WebApi/Extensions/DbExtension.cs index 54910f98..4aacff9c 100644 --- a/ZR.Admin.WebApi/Extensions/DbExtension.cs +++ b/ZR.Admin.WebApi/Extensions/DbExtension.cs @@ -68,27 +68,30 @@ namespace ZR.Admin.WebApi.Extensions private static void SetSugarAop(SqlSugarClient db, IocConfig iocConfig, ICacheService cache) { var config = db.GetConnectionScope(iocConfig.ConfigId).CurrentConnectionConfig; - + var showDbLog = AppSettings.Get("ShowDbLog"); string configId = config.ConfigId; db.GetConnectionScope(configId).Aop.OnLogExecuting = (sql, pars) => { - string log = $"【db{configId} SQL语句】{UtilMethods.GetSqlString(config.DbType, sql, pars)}\n"; - if (sql.TrimStart().StartsWith("SELECT", StringComparison.OrdinalIgnoreCase)) + if (showDbLog) { - logger.Info(log); - } - else if (sql.StartsWith("UPDATE", StringComparison.OrdinalIgnoreCase) || sql.StartsWith("INSERT", StringComparison.OrdinalIgnoreCase)) - { - logger.Warn(log); - } - else if (sql.StartsWith("DELETE", StringComparison.OrdinalIgnoreCase) || sql.StartsWith("TRUNCATE", StringComparison.OrdinalIgnoreCase)) - { - logger.Error(log); - } - else - { - log = $"【db{configId} SQL语句】dbo.{sql} {string.Join(", ", pars.Select(x => x.ParameterName + " = " + GetParsValue(x)))};\n"; - logger.Info(log); + string log = $"【db{configId} SQL语句】{UtilMethods.GetSqlString(config.DbType, sql, pars)}\n"; + if (sql.TrimStart().StartsWith("SELECT", StringComparison.OrdinalIgnoreCase)) + { + logger.Info(log); + } + else if (sql.StartsWith("UPDATE", StringComparison.OrdinalIgnoreCase) || sql.StartsWith("INSERT", StringComparison.OrdinalIgnoreCase)) + { + logger.Warn(log); + } + else if (sql.StartsWith("DELETE", StringComparison.OrdinalIgnoreCase) || sql.StartsWith("TRUNCATE", StringComparison.OrdinalIgnoreCase)) + { + logger.Error(log); + } + else + { + log = $"【db{configId} SQL语句】dbo.{sql} {string.Join(", ", pars.Select(x => x.ParameterName + " = " + GetParsValue(x)))};\n"; + logger.Info(log); + } } }; db.GetConnectionScope(configId).Aop.OnError = (ex) => diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json index bd0f34c5..e2388d13 100644 --- a/ZR.Admin.WebApi/appsettings.json +++ b/ZR.Admin.WebApi/appsettings.json @@ -33,6 +33,7 @@ "Expire": 1440 //jwt登录过期时间(分) }, "InjectClass": [ "ZR.Repository", "ZR.Service", "ZR.Tasks" ], //自动注入类 + "ShowDbLog": true,//是否打印db日志 "InitDb": false, //是否初始化db "DemoMode": false, //是否演示模式 "Upload": { @@ -64,7 +65,10 @@ }, //代码生成配置 "gen": { - "autoPre": true, //自动去除表前缀 + //是否显示移动端代码生成 + "showApp": false, + //自动去除表前缀 + "autoPre": true, "author": "admin", "tablePrefix": "sys_", //"表前缀(生成类名不会包含表前缀,多个用逗号分隔)", "vuePath": "", //前端代码存储路径eg:D:\Work\ZRAdmin-Vue3 diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt index 66c559ef..f8d525eb 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/TplService.txt @@ -117,7 +117,7 @@ $end $if(null != genTable.SubTableName && "" != genTable.SubTableName) return Context.InsertNav(model).Include(s1 => s1.${genTable.SubTable.ClassName}Nav).ExecuteReturnEntity(); $else - return Insertable(model).IgnoreColumns(true).ExecuteReturnEntity(); + return Context.Insertable(model).ExecuteReturnEntity(); $end } diff --git a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt index 157d2e94..ff96ee99 100644 --- a/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt +++ b/ZR.Admin.WebApi/wwwroot/CodeGenTemplate/v3/Vue.txt @@ -778,7 +778,22 @@ function handlePreview(row) { open.value = true title.value = '查看' opertype.value = 3 - form.value = row + form.value = { ...row } +} +$end + +$if(replaceDto.ShowBtnImport) +// 导入数据成功处理 +const handleFileSuccess = (response) => { + const { item1, item2 } = response.data + var error = '' + item2.forEach((item) => { + error += item.storageMessage + ',' + }) + proxy.${alert}alert(item1 + '

' + error + '

', '导入结果', { + dangerouslyUseHTMLString: true + }) + getList() } $end diff --git a/ZR.CodeGenerator/CodeGeneratorTool.cs b/ZR.CodeGenerator/CodeGeneratorTool.cs index c4d1947e..2466e02d 100644 --- a/ZR.CodeGenerator/CodeGeneratorTool.cs +++ b/ZR.CodeGenerator/CodeGeneratorTool.cs @@ -26,11 +26,11 @@ namespace ZR.CodeGenerator /// public static void Generate(GenerateDto dto) { - var vuePath = AppSettings.GetConfig("gen:vuePath"); + var genOptions = AppSettings.Get("gen"); dto.VueParentPath = dto.VueVersion == 3 ? "ZRAdmin-vue" : "ZR.Vue"; - if (!vuePath.IsEmpty()) + if (!genOptions.VuePath.IsEmpty()) { - dto.VueParentPath = vuePath; + dto.VueParentPath = genOptions.VuePath; } dto.GenOptions = GenerateOption(dto.GenTable); if (dto.GenTable.SubTable != null) @@ -82,9 +82,12 @@ namespace ZR.CodeGenerator } GenerateVueJs(dto); GenerateSql(dto); - GenerateAppVueViews(replaceDto, dto); - GenerateAppVueFormViews(replaceDto, dto); - GenerateAppJs(dto); + if (genOptions.ShowApp) + { + GenerateAppVueViews(replaceDto, dto); + GenerateAppVueFormViews(replaceDto, dto); + GenerateAppJs(dto); + } dto.ReplaceDto = replaceDto; } diff --git a/ZR.Repository/BaseRepository.cs b/ZR.Repository/BaseRepository.cs index 577acd56..ad822567 100644 --- a/ZR.Repository/BaseRepository.cs +++ b/ZR.Repository/BaseRepository.cs @@ -61,11 +61,11 @@ namespace ZR.Repository #endregion add #region update - public IUpdateable Updateable(T entity) - { - return Context.Updateable(entity); - } - + //public IUpdateable Updateable(T entity) + //{ + // return Context.Updateable(entity); + //} + /// /// 实体根据主键更新 /// @@ -103,37 +103,6 @@ namespace ZR.Repository return Context.Updateable(entity).UpdateColumns(expression).Where(where).ExecuteCommand(); } - public int Update(SqlSugarClient client, T entity, Expression> expression, Expression> where) - { - return client.Updateable(entity).UpdateColumns(expression).Where(where).ExecuteCommand(); - } - - /// - /// - /// - /// - /// - /// 默认为true - /// - public int Update(T entity, List list = null, bool isNull = true) - { - list ??= new List() - { - "Create_By", - "Create_time" - }; - return Context.Updateable(entity).IgnoreColumns(isNull).IgnoreColumns(list.ToArray()).ExecuteCommand(); - } - - //public bool Update(List entity) - //{ - // var result = base.Context.Ado.UseTran(() => - // { - // base.Context.Updateable(entity).ExecuteCommand(); - // }); - // return result.IsSuccess; - //} - /// /// 更新指定列 eg:Update(w => w.NoticeId == model.NoticeId, it => new SysNotice(){ Update_time = DateTime.Now, Title = "通知标题" }); /// @@ -160,14 +129,6 @@ namespace ZR.Repository throw; } } - public IStorageable Storageable(T t) - { - return Context.Storageable(t); - } - public IStorageable Storageable(List t) - { - return Context.Storageable(t); - } /// /// diff --git a/ZR.Repository/IBaseRepository.cs b/ZR.Repository/IBaseRepository.cs index 697fa1f6..1e0f2049 100644 --- a/ZR.Repository/IBaseRepository.cs +++ b/ZR.Repository/IBaseRepository.cs @@ -19,7 +19,6 @@ namespace ZR.Repository #endregion add #region update - IUpdateable Updateable(T entity); int Update(T entity, bool ignoreNullColumns = false); /// @@ -32,13 +31,9 @@ namespace ZR.Repository int Update(T entity, Expression> expression, Expression> where); - int Update(SqlSugarClient client, T entity, Expression> expression, Expression> where); - int Update(Expression> where, Expression> columns); #endregion update - IStorageable Storageable(T t); - IStorageable Storageable(List t); DbResult UseTran(Action action); DbResult UseTran(SqlSugarClient client, Action action); diff --git a/ZR.Service/BaseService.cs b/ZR.Service/BaseService.cs index 40faca24..94a06b40 100644 --- a/ZR.Service/BaseService.cs +++ b/ZR.Service/BaseService.cs @@ -8,11 +8,5 @@ namespace ZR.Service /// public class BaseService : BaseRepository where T : class, new() { - //public IBaseRepository baseRepository; - - //public BaseService(IBaseRepository repository) - //{ - // this.baseRepository = repository ?? throw new ArgumentNullException(nameof(repository)); - //} } } diff --git a/ZR.Service/System/CommonLangService.cs b/ZR.Service/System/CommonLangService.cs index 21d8fec9..44a86fcc 100644 --- a/ZR.Service/System/CommonLangService.cs +++ b/ZR.Service/System/CommonLangService.cs @@ -82,7 +82,7 @@ namespace ZR.Service.System LangName = item.LangName, }); } - var storage = Storageable(langs) + var storage = Context.Storageable(langs) .WhereColumns(it => new { it.LangKey, it.LangCode }) .ToStorage(); @@ -110,7 +110,11 @@ namespace ZR.Service.System /// public (string, object, object) ImportCommonLang(List list) { +<<<<<<< HEAD var x = Storageable(list) +======= + var x = Context.Storageable(list) +>>>>>>> d1108700e0ad43b6bfea3f9a79bbb14799a2d29c .WhereColumns(it => new { it.LangKey, it.LangCode }) .ToStorage(); x.AsInsertable.ExecuteReturnSnowflakeIdList();//插入可插入部分; diff --git a/ZR.Service/System/IService/ISysUserService.cs b/ZR.Service/System/IService/ISysUserService.cs index eb463fb0..75feef10 100644 --- a/ZR.Service/System/IService/ISysUserService.cs +++ b/ZR.Service/System/IService/ISysUserService.cs @@ -28,7 +28,7 @@ namespace ZR.Service.System.IService /// /// /// - public long InsertUser(SysUser sysUser); + public SysUser InsertUser(SysUser sysUser); /// /// 修改用户信息 diff --git a/ZR.Service/System/SysMenuService.cs b/ZR.Service/System/SysMenuService.cs index fbf84c2d..ee7369cb 100644 --- a/ZR.Service/System/SysMenuService.cs +++ b/ZR.Service/System/SysMenuService.cs @@ -700,7 +700,7 @@ namespace ZR.Service } //Insert(menuList); - var x = Storageable(menuList) + var x = Context.Storageable(menuList) .SplitInsert(it => !it.Any()) .SplitUpdate(it => !it.Any()) .WhereColumns(it => new { it.MenuName, it.ParentId }) diff --git a/ZR.Service/System/SysUserPostService.cs b/ZR.Service/System/SysUserPostService.cs index 97859448..110328a4 100644 --- a/ZR.Service/System/SysUserPostService.cs +++ b/ZR.Service/System/SysUserPostService.cs @@ -1,6 +1,5 @@ using Infrastructure.Attribute; using SqlSugar; -using System.Collections.Generic; using System.Linq; using ZR.Model.System; using ZR.Service.System.IService; @@ -20,15 +19,14 @@ namespace ZR.Service.System public void InsertUserPost(SysUser user) { // 新增用户与岗位管理 - List list = new List(); + List list = new(); foreach (var item in user.PostIds) { list.Add(new SysUserPost() { PostId = item, UserId = user.UserId }); } - Insert(list); + InsertRange(list); } - /// /// 查询用户岗位集合 /// diff --git a/ZR.Service/System/SysUserService.cs b/ZR.Service/System/SysUserService.cs index ff31d263..940bef80 100644 --- a/ZR.Service/System/SysUserService.cs +++ b/ZR.Service/System/SysUserService.cs @@ -105,16 +105,14 @@ namespace ZR.Service /// /// /// - public long InsertUser(SysUser sysUser) + public SysUser InsertUser(SysUser sysUser) { - sysUser.Create_time = DateTime.Now; - long userId = Insertable(sysUser).ExecuteReturnIdentity(); - sysUser.UserId = userId; + sysUser.UserId = Insertable(sysUser).ExecuteReturnIdentity(); //新增用户角色信息 UserRoleService.InsertUserRole(sysUser); //新增用户岗位信息 UserPostService.InsertUserPost(sysUser); - return userId; + return sysUser; } /// diff --git a/ZR.Tasks/ZR.Tasks.csproj b/ZR.Tasks/ZR.Tasks.csproj index 12291302..92526344 100644 --- a/ZR.Tasks/ZR.Tasks.csproj +++ b/ZR.Tasks/ZR.Tasks.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/ZR.Vue/src/assets/image/qrcode.jpg b/ZR.Vue/src/assets/image/qrcode.jpg new file mode 100644 index 00000000..3261850d Binary files /dev/null and b/ZR.Vue/src/assets/image/qrcode.jpg differ diff --git a/ZR.Vue/src/assets/image/qrcodeH5.png b/ZR.Vue/src/assets/image/qrcodeH5.png new file mode 100644 index 00000000..2b4cb322 Binary files /dev/null and b/ZR.Vue/src/assets/image/qrcodeH5.png differ