From 1066e54369f7818605bfb32b7393126f82f2c296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Sat, 6 Nov 2021 17:10:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=8A=9F=E8=83=BD=E3=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E8=A1=A8=E5=85=B3=E7=B3=BB=E5=A4=A7?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/AccountController.cs | 54 ++++- .../Controllers/SettingController.cs | 2 +- .../Yi.Framework.ApiMicroservice/Startup.cs | 1 + .../SwaggerDoc.xml | 11 +- .../Yi.Framework.ApiMicroservice/YIDB.db | Bin 69632 -> 0 bytes .../Yi.Framework.ApiMicroservice/YIDB.db-wal | 0 .../Yi.Framework.Common/Const/RedisConst.cs | 1 + .../Yi.Framework.DTOModel/SettingDto.cs | 8 +- .../Yi.Framework.Interface/IUserService.cs | 7 + .../20211029124310_yi-2.Designer.cs | 199 ---------------- .../Migrations/20211029124310_yi-2.cs | 141 ----------- .../20211030074708_yi-3.Designer.cs | 199 ---------------- .../Migrations/20211030074708_yi-3.cs | 17 -- .../20211030074922_yi-5.Designer.cs | 219 ------------------ .../Migrations/20211030074922_yi-5.cs | 34 --- ...ner.cs => 20211106082100_yi-1.Designer.cs} | 26 ++- ...2181627_yi-1.cs => 20211106082100_yi-1.cs} | 25 +- .../Migrations/DataContextModelSnapshot.cs | 87 ++++--- .../Yi.Framework.Model/Models/menu.cs | 3 + .../Yi.Framework.Model/Models/role.cs | 1 + .../Yi.Framework.Model/Models/user.cs | 2 +- .../Yi.Framework.SMSProcessor/Worker.cs | 2 +- .../Yi.Framework.Service/RoleService.cs | 4 +- .../Yi.Framework.Service/UserService.cs | 37 +-- .../Yi.Framework.WebCore/Init/DataSeed.cs | 74 ++++-- .../Yi.Framework.WebCore/Init/RedisInit.cs | 8 +- Yi.Vue/src/api/accountApi.js | 10 +- Yi.Vue/src/views/register.vue | 136 +++++++---- 28 files changed, 361 insertions(+), 947 deletions(-) delete mode 100644 Yi.Framework/Yi.Framework.ApiMicroservice/YIDB.db delete mode 100644 Yi.Framework/Yi.Framework.ApiMicroservice/YIDB.db-wal delete mode 100644 Yi.Framework/Yi.Framework.Model/Migrations/20211029124310_yi-2.Designer.cs delete mode 100644 Yi.Framework/Yi.Framework.Model/Migrations/20211029124310_yi-2.cs delete mode 100644 Yi.Framework/Yi.Framework.Model/Migrations/20211030074708_yi-3.Designer.cs delete mode 100644 Yi.Framework/Yi.Framework.Model/Migrations/20211030074708_yi-3.cs delete mode 100644 Yi.Framework/Yi.Framework.Model/Migrations/20211030074922_yi-5.Designer.cs delete mode 100644 Yi.Framework/Yi.Framework.Model/Migrations/20211030074922_yi-5.cs rename Yi.Framework/Yi.Framework.Model/Migrations/{20211022181627_yi-1.Designer.cs => 20211106082100_yi-1.Designer.cs} (91%) rename Yi.Framework/Yi.Framework.Model/Migrations/{20211022181627_yi-1.cs => 20211106082100_yi-1.cs} (89%) diff --git a/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/AccountController.cs b/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/AccountController.cs index be00833b..be7c7a07 100644 --- a/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/AccountController.cs +++ b/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/AccountController.cs @@ -28,12 +28,16 @@ namespace Yi.Framework.ApiMicroservice.Controllers private IUserService _userService; private IMenuService _menuService; private RabbitMQInvoker _rabbitMQInvoker; - public AccountController(ILogger logger, IUserService userService, IMenuService menuService,RabbitMQInvoker rabbitMQInvoker) + private CacheClientDB _cacheClientDB; + private IRoleService _roleService; + public AccountController(ILogger logger, IUserService userService, IMenuService menuService,RabbitMQInvoker rabbitMQInvoker,CacheClientDB cacheClientDB, IRoleService roleService) { _logger = logger; _userService = userService; _menuService = menuService; _rabbitMQInvoker = rabbitMQInvoker; + _cacheClientDB = cacheClientDB; + _roleService = roleService; } @@ -72,7 +76,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers } /// - /// code为验证码,判断一下,假装验证码都是对的 + /// code为验证码,从redis中判断一下code是否正确 /// /// /// @@ -80,23 +84,57 @@ namespace Yi.Framework.ApiMicroservice.Controllers [HttpPost] public async Task Register(user _user, string code) { - if (code != null) + _user.username=_user.username.Trim(); + if(string.IsNullOrEmpty(_user.username)) + code = code.Trim(); + + string trueCode= _cacheClientDB.Get(RedisConst.keyCode + _user.phone); + if (code == trueCode) { + //设置默认头像 + var setting = JsonHelper.StrToObj(_cacheClientDB.Get(RedisConst.key)); + _user.icon = setting.InitIcon; + //设置默认角色 + if (string.IsNullOrEmpty(setting.InitRole)) + { + return Result.Error("无默认角色,请初始化数据库"); + } + _user.roles = new List(); + _user.roles.Add(await _roleService.GetEntity(u => u.role_name == setting.InitRole)); await _userService.Register(_user); + + return Result.Success("恭喜,你已加入我们!"); } - return Result.Error(); + return Result.Error("验证码有误,请重新输入!"); } + /// + /// 发送短信,需要将生成的sms+code存入redis + /// + /// + /// [HttpPost] - public Result SendSMS(SMSQueueModel test) + public async Task SendSMS(string SMSAddress) { - _rabbitMQInvoker.Send(new Common.IOCOptions.RabbitMQConsumerModel() { ExchangeName=RabbitConst.SMS_Exchange,QueueName=RabbitConst.SMS_Queue_Send} ,JsonHelper.ObjToStr(test)); - return Result.Success(); + SMSAddress = SMSAddress.Trim(); + if (!await _userService.PhoneIsExsit(SMSAddress)) + { + SMSQueueModel sMSQueueModel = new SMSQueueModel(); + sMSQueueModel.phone = SMSAddress; + sMSQueueModel.code =RandomHelper.GenerateCheckCodeNum(6); + + //10分钟过期 + _cacheClientDB.Set(RedisConst.keyCode+sMSQueueModel.phone, sMSQueueModel.code, TimeSpan.FromMinutes(10)); + + _rabbitMQInvoker.Send(new Common.IOCOptions.RabbitMQConsumerModel() { ExchangeName = RabbitConst.SMS_Exchange, QueueName = RabbitConst.SMS_Queue_Send }, JsonHelper.ObjToStr(sMSQueueModel)); + return Result.Success("发送短信成功,10分钟后过期,请留意短信接收"); + } + return Result.Error("该号码已被注册"); } /// - /// 传入邮箱,需要先到数据库判断该邮箱是否被人注册过,到userservice写mail_exist方法,还有接口别忘了。这个接口不需要洞,只需要完成userservice写mail_exist与接口即可 + /// 发送邮箱,需要先到数据库判断该邮箱是否被人注册过,到userservice写mail_exist方法,还有接口别忘了。 /// /// /// diff --git a/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/SettingController.cs b/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/SettingController.cs index c801a075..d101bc9d 100644 --- a/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/SettingController.cs +++ b/Yi.Framework/Yi.Framework.ApiMicroservice/Controllers/SettingController.cs @@ -50,7 +50,7 @@ namespace Yi.Framework.ApiMicroservice.Controllers [HttpPut] public Result UpdateSetting(SettingDto settingDto) { - var setDto = Common.Helper.JsonHelper.ObjToStr(settingDto); + var setDto = Common.Helper.JsonHelper.ObjToStr(settingDto); _cacheClientDB.Set(RedisConst.key, setDto); return Result.Success(); diff --git a/Yi.Framework/Yi.Framework.ApiMicroservice/Startup.cs b/Yi.Framework/Yi.Framework.ApiMicroservice/Startup.cs index 59cd1472..d1b9fd1c 100644 --- a/Yi.Framework/Yi.Framework.ApiMicroservice/Startup.cs +++ b/Yi.Framework/Yi.Framework.ApiMicroservice/Startup.cs @@ -155,6 +155,7 @@ namespace Yi.Framework.ApiMicroservice //redisע #endregion app.UseRedisSeedInitService(_cacheClientDB); + #region //Endpointsע #endregion diff --git a/Yi.Framework/Yi.Framework.ApiMicroservice/SwaggerDoc.xml b/Yi.Framework/Yi.Framework.ApiMicroservice/SwaggerDoc.xml index 4f149f51..3173de6a 100644 --- a/Yi.Framework/Yi.Framework.ApiMicroservice/SwaggerDoc.xml +++ b/Yi.Framework/Yi.Framework.ApiMicroservice/SwaggerDoc.xml @@ -19,15 +19,22 @@ - code为验证码,判断一下,假装验证码都是对的 + code为验证码,从redis中判断一下code是否正确 + + + 发送短信,需要将生成的sms+code存入redis + + + + - 传入邮箱,需要先到数据库判断该邮箱是否被人注册过,到userservice写mail_exist方法,还有接口别忘了。这个接口不需要洞,只需要完成userservice写mail_exist与接口即可 + 发送邮箱,需要先到数据库判断该邮箱是否被人注册过,到userservice写mail_exist方法,还有接口别忘了。 diff --git a/Yi.Framework/Yi.Framework.ApiMicroservice/YIDB.db b/Yi.Framework/Yi.Framework.ApiMicroservice/YIDB.db deleted file mode 100644 index a032b95c837f2ccc686c6fe3789c67f9baa7214d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69632 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 v3vE&=7>PYdLKr2Q>=lgS public const string key = "YiFramework:data"; + public const string keyCode = "YiFramework:code"; ///// ///// 初始化角色名 ///// diff --git a/Yi.Framework/Yi.Framework.DTOModel/SettingDto.cs b/Yi.Framework/Yi.Framework.DTOModel/SettingDto.cs index 0b8df4b4..3e3dca70 100644 --- a/Yi.Framework/Yi.Framework.DTOModel/SettingDto.cs +++ b/Yi.Framework/Yi.Framework.DTOModel/SettingDto.cs @@ -8,9 +8,9 @@ namespace Yi.Framework.DTOModel { public class SettingDto { - public string InitIcon_key { get; set; } - public string InitRole_key { get; set; } - public string Title_key { get; set; } - public List ImageList_key { get; set; } + public string InitIcon { get; set; } + public string InitRole { get; set; } + public string Title { get; set; } + public List ImageList { get; set; } } } diff --git a/Yi.Framework/Yi.Framework.Interface/IUserService.cs b/Yi.Framework/Yi.Framework.Interface/IUserService.cs index 312a3f96..86f11bce 100644 --- a/Yi.Framework/Yi.Framework.Interface/IUserService.cs +++ b/Yi.Framework/Yi.Framework.Interface/IUserService.cs @@ -41,6 +41,13 @@ namespace Yi.Framework.Interface /// Task EmailIsExsit(string emailAddress); + /// + /// sms验证 + /// + /// + /// + Task PhoneIsExsit(string smsAddress); + /// /// 通过用户id,得到该用户的所有信息,关联角色 /// diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/20211029124310_yi-2.Designer.cs b/Yi.Framework/Yi.Framework.Model/Migrations/20211029124310_yi-2.Designer.cs deleted file mode 100644 index dc624af6..00000000 --- a/Yi.Framework/Yi.Framework.Model/Migrations/20211029124310_yi-2.Designer.cs +++ /dev/null @@ -1,199 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Yi.Framework.Model; - -namespace Yi.Framework.Model.Migrations -{ - [DbContext(typeof(DataContext))] - [Migration("20211029124310_yi-2")] - partial class yi2 - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("Relational:MaxIdentifierLength", 64) - .HasAnnotation("ProductVersion", "5.0.11"); - - modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("icon") - .HasColumnType("longtext"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("is_show") - .HasColumnType("int"); - - b.Property("is_top") - .HasColumnType("int"); - - b.Property("menu_name") - .HasColumnType("longtext"); - - b.Property("menuid") - .HasColumnType("int"); - - b.Property("mouldid") - .HasColumnType("int"); - - b.Property("roleid") - .HasColumnType("int"); - - b.Property("router") - .HasColumnType("longtext"); - - b.Property("sort") - .HasColumnType("int"); - - b.HasKey("id"); - - b.HasIndex("menuid"); - - b.HasIndex("mouldid"); - - b.HasIndex("roleid"); - - b.ToTable("menu"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.mould", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("mould_name") - .HasColumnType("longtext"); - - b.Property("url") - .HasColumnType("longtext"); - - b.HasKey("id"); - - b.ToTable("mould"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("introduce") - .HasColumnType("longtext"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("role_name") - .HasColumnType("longtext"); - - b.Property("userid") - .HasColumnType("int"); - - b.HasKey("id"); - - b.HasIndex("userid"); - - b.ToTable("role"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.user", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("address") - .HasColumnType("longtext"); - - b.Property("age") - .HasColumnType("int"); - - b.Property("email") - .HasColumnType("longtext"); - - b.Property("icon") - .HasColumnType("longtext"); - - b.Property("introduction") - .HasColumnType("longtext"); - - b.Property("ip") - .HasColumnType("longtext"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("nick") - .HasColumnType("longtext"); - - b.Property("password") - .HasColumnType("longtext"); - - b.Property("phone") - .HasColumnType("int"); - - b.Property("username") - .HasColumnType("longtext"); - - b.HasKey("id"); - - b.ToTable("user"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => - { - b.HasOne("Yi.Framework.Model.Models.menu", null) - .WithMany("children") - .HasForeignKey("menuid"); - - b.HasOne("Yi.Framework.Model.Models.mould", "mould") - .WithMany() - .HasForeignKey("mouldid"); - - b.HasOne("Yi.Framework.Model.Models.role", null) - .WithMany("menus") - .HasForeignKey("roleid"); - - b.Navigation("mould"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => - { - b.HasOne("Yi.Framework.Model.Models.user", null) - .WithMany("roles") - .HasForeignKey("userid"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => - { - b.Navigation("children"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => - { - b.Navigation("menus"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.user", b => - { - b.Navigation("roles"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/20211029124310_yi-2.cs b/Yi.Framework/Yi.Framework.Model/Migrations/20211029124310_yi-2.cs deleted file mode 100644 index 40b079f1..00000000 --- a/Yi.Framework/Yi.Framework.Model/Migrations/20211029124310_yi-2.cs +++ /dev/null @@ -1,141 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace Yi.Framework.Model.Migrations -{ - public partial class yi2 : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "menurole"); - - migrationBuilder.DropTable( - name: "roleuser"); - - migrationBuilder.AddColumn( - name: "userid", - table: "role", - type: "int", - nullable: true); - - migrationBuilder.AddColumn( - name: "roleid", - table: "menu", - type: "int", - nullable: true); - - migrationBuilder.CreateIndex( - name: "IX_role_userid", - table: "role", - column: "userid"); - - migrationBuilder.CreateIndex( - name: "IX_menu_roleid", - table: "menu", - column: "roleid"); - - migrationBuilder.AddForeignKey( - name: "FK_menu_role_roleid", - table: "menu", - column: "roleid", - principalTable: "role", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - - migrationBuilder.AddForeignKey( - name: "FK_role_user_userid", - table: "role", - column: "userid", - principalTable: "user", - principalColumn: "id", - onDelete: ReferentialAction.Restrict); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_menu_role_roleid", - table: "menu"); - - migrationBuilder.DropForeignKey( - name: "FK_role_user_userid", - table: "role"); - - migrationBuilder.DropIndex( - name: "IX_role_userid", - table: "role"); - - migrationBuilder.DropIndex( - name: "IX_menu_roleid", - table: "menu"); - - migrationBuilder.DropColumn( - name: "userid", - table: "role"); - - migrationBuilder.DropColumn( - name: "roleid", - table: "menu"); - - migrationBuilder.CreateTable( - name: "menurole", - columns: table => new - { - menusid = table.Column(type: "int", nullable: false), - rolesid = table.Column(type: "int", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_menurole", x => new { x.menusid, x.rolesid }); - table.ForeignKey( - name: "FK_menurole_menu_menusid", - column: x => x.menusid, - principalTable: "menu", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_menurole_role_rolesid", - column: x => x.rolesid, - principalTable: "role", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }) - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateTable( - name: "roleuser", - columns: table => new - { - rolesid = table.Column(type: "int", nullable: false), - usersid = table.Column(type: "int", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_roleuser", x => new { x.rolesid, x.usersid }); - table.ForeignKey( - name: "FK_roleuser_role_rolesid", - column: x => x.rolesid, - principalTable: "role", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_roleuser_user_usersid", - column: x => x.usersid, - principalTable: "user", - principalColumn: "id", - onDelete: ReferentialAction.Cascade); - }) - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.CreateIndex( - name: "IX_menurole_rolesid", - table: "menurole", - column: "rolesid"); - - migrationBuilder.CreateIndex( - name: "IX_roleuser_usersid", - table: "roleuser", - column: "usersid"); - } - } -} diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/20211030074708_yi-3.Designer.cs b/Yi.Framework/Yi.Framework.Model/Migrations/20211030074708_yi-3.Designer.cs deleted file mode 100644 index 47b070c2..00000000 --- a/Yi.Framework/Yi.Framework.Model/Migrations/20211030074708_yi-3.Designer.cs +++ /dev/null @@ -1,199 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Yi.Framework.Model; - -namespace Yi.Framework.Model.Migrations -{ - [DbContext(typeof(DataContext))] - [Migration("20211030074708_yi-3")] - partial class yi3 - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("Relational:MaxIdentifierLength", 64) - .HasAnnotation("ProductVersion", "5.0.11"); - - modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("icon") - .HasColumnType("longtext"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("is_show") - .HasColumnType("int"); - - b.Property("is_top") - .HasColumnType("int"); - - b.Property("menu_name") - .HasColumnType("longtext"); - - b.Property("menuid") - .HasColumnType("int"); - - b.Property("mouldid") - .HasColumnType("int"); - - b.Property("roleid") - .HasColumnType("int"); - - b.Property("router") - .HasColumnType("longtext"); - - b.Property("sort") - .HasColumnType("int"); - - b.HasKey("id"); - - b.HasIndex("menuid"); - - b.HasIndex("mouldid"); - - b.HasIndex("roleid"); - - b.ToTable("menu"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.mould", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("mould_name") - .HasColumnType("longtext"); - - b.Property("url") - .HasColumnType("longtext"); - - b.HasKey("id"); - - b.ToTable("mould"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("introduce") - .HasColumnType("longtext"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("role_name") - .HasColumnType("longtext"); - - b.Property("userid") - .HasColumnType("int"); - - b.HasKey("id"); - - b.HasIndex("userid"); - - b.ToTable("role"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.user", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("address") - .HasColumnType("longtext"); - - b.Property("age") - .HasColumnType("int"); - - b.Property("email") - .HasColumnType("longtext"); - - b.Property("icon") - .HasColumnType("longtext"); - - b.Property("introduction") - .HasColumnType("longtext"); - - b.Property("ip") - .HasColumnType("longtext"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("nick") - .HasColumnType("longtext"); - - b.Property("password") - .HasColumnType("longtext"); - - b.Property("phone") - .HasColumnType("int"); - - b.Property("username") - .HasColumnType("longtext"); - - b.HasKey("id"); - - b.ToTable("user"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => - { - b.HasOne("Yi.Framework.Model.Models.menu", null) - .WithMany("children") - .HasForeignKey("menuid"); - - b.HasOne("Yi.Framework.Model.Models.mould", "mould") - .WithMany() - .HasForeignKey("mouldid"); - - b.HasOne("Yi.Framework.Model.Models.role", null) - .WithMany("menus") - .HasForeignKey("roleid"); - - b.Navigation("mould"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => - { - b.HasOne("Yi.Framework.Model.Models.user", null) - .WithMany("roles") - .HasForeignKey("userid"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => - { - b.Navigation("children"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => - { - b.Navigation("menus"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.user", b => - { - b.Navigation("roles"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/20211030074708_yi-3.cs b/Yi.Framework/Yi.Framework.Model/Migrations/20211030074708_yi-3.cs deleted file mode 100644 index 5df34fdc..00000000 --- a/Yi.Framework/Yi.Framework.Model/Migrations/20211030074708_yi-3.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -namespace Yi.Framework.Model.Migrations -{ - public partial class yi3 : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/20211030074922_yi-5.Designer.cs b/Yi.Framework/Yi.Framework.Model/Migrations/20211030074922_yi-5.Designer.cs deleted file mode 100644 index 5d247544..00000000 --- a/Yi.Framework/Yi.Framework.Model/Migrations/20211030074922_yi-5.Designer.cs +++ /dev/null @@ -1,219 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Yi.Framework.Model; - -namespace Yi.Framework.Model.Migrations -{ - [DbContext(typeof(DataContext))] - [Migration("20211030074922_yi-5")] - partial class yi5 - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("Relational:MaxIdentifierLength", 64) - .HasAnnotation("ProductVersion", "5.0.11"); - - modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("icon") - .HasColumnType("longtext"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("is_show") - .HasColumnType("int"); - - b.Property("is_top") - .HasColumnType("int"); - - b.Property("menu_name") - .HasColumnType("longtext"); - - b.Property("menuid") - .HasColumnType("int"); - - b.Property("mouldid") - .HasColumnType("int"); - - b.Property("roleid") - .HasColumnType("int"); - - b.Property("router") - .HasColumnType("longtext"); - - b.Property("sort") - .HasColumnType("int"); - - b.HasKey("id"); - - b.HasIndex("menuid"); - - b.HasIndex("mouldid"); - - b.HasIndex("roleid"); - - b.ToTable("menu"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.mould", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("mould_name") - .HasColumnType("longtext"); - - b.Property("url") - .HasColumnType("longtext"); - - b.HasKey("id"); - - b.ToTable("mould"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("introduce") - .HasColumnType("longtext"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("role_name") - .HasColumnType("longtext"); - - b.Property("userid") - .HasColumnType("int"); - - b.HasKey("id"); - - b.HasIndex("userid"); - - b.ToTable("role"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.user", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("address") - .HasColumnType("longtext"); - - b.Property("age") - .HasColumnType("int"); - - b.Property("email") - .HasColumnType("longtext"); - - b.Property("icon") - .HasColumnType("longtext"); - - b.Property("introduction") - .HasColumnType("longtext"); - - b.Property("ip") - .HasColumnType("longtext"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("nick") - .HasColumnType("longtext"); - - b.Property("password") - .HasColumnType("longtext"); - - b.Property("phone") - .HasColumnType("int"); - - b.Property("username") - .HasColumnType("longtext"); - - b.HasKey("id"); - - b.ToTable("user"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.visit", b => - { - b.Property("id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - b.Property("is_delete") - .HasColumnType("int"); - - b.Property("num") - .HasColumnType("int"); - - b.Property("time") - .HasColumnType("datetime(6)"); - - b.HasKey("id"); - - b.ToTable("visit"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => - { - b.HasOne("Yi.Framework.Model.Models.menu", null) - .WithMany("children") - .HasForeignKey("menuid"); - - b.HasOne("Yi.Framework.Model.Models.mould", "mould") - .WithMany() - .HasForeignKey("mouldid"); - - b.HasOne("Yi.Framework.Model.Models.role", null) - .WithMany("menus") - .HasForeignKey("roleid"); - - b.Navigation("mould"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => - { - b.HasOne("Yi.Framework.Model.Models.user", null) - .WithMany("roles") - .HasForeignKey("userid"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => - { - b.Navigation("children"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => - { - b.Navigation("menus"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.user", b => - { - b.Navigation("roles"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/20211030074922_yi-5.cs b/Yi.Framework/Yi.Framework.Model/Migrations/20211030074922_yi-5.cs deleted file mode 100644 index 1d627b06..00000000 --- a/Yi.Framework/Yi.Framework.Model/Migrations/20211030074922_yi-5.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; - -namespace Yi.Framework.Model.Migrations -{ - public partial class yi5 : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "visit", - columns: table => new - { - id = table.Column(type: "int", nullable: false) - .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), - time = table.Column(type: "datetime(6)", nullable: false), - num = table.Column(type: "int", nullable: false), - is_delete = table.Column(type: "int", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_visit", x => x.id); - }) - .Annotation("MySql:CharSet", "utf8mb4"); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "visit"); - } - } -} diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/20211022181627_yi-1.Designer.cs b/Yi.Framework/Yi.Framework.Model/Migrations/20211106082100_yi-1.Designer.cs similarity index 91% rename from Yi.Framework/Yi.Framework.Model/Migrations/20211022181627_yi-1.Designer.cs rename to Yi.Framework/Yi.Framework.Model/Migrations/20211106082100_yi-1.Designer.cs index 455f2d84..2e948098 100644 --- a/Yi.Framework/Yi.Framework.Model/Migrations/20211022181627_yi-1.Designer.cs +++ b/Yi.Framework/Yi.Framework.Model/Migrations/20211106082100_yi-1.Designer.cs @@ -9,7 +9,7 @@ using Yi.Framework.Model; namespace Yi.Framework.Model.Migrations { [DbContext(typeof(DataContext))] - [Migration("20211022181627_yi-1")] + [Migration("20211106082100_yi-1")] partial class yi1 { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -134,8 +134,8 @@ namespace Yi.Framework.Model.Migrations b.Property("password") .HasColumnType("longtext"); - b.Property("phone") - .HasColumnType("int"); + b.Property("phone") + .HasColumnType("longtext"); b.Property("username") .HasColumnType("longtext"); @@ -145,6 +145,26 @@ namespace Yi.Framework.Model.Migrations b.ToTable("user"); }); + modelBuilder.Entity("Yi.Framework.Model.Models.visit", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b.Property("is_delete") + .HasColumnType("int"); + + b.Property("num") + .HasColumnType("int"); + + b.Property("time") + .HasColumnType("datetime(6)"); + + b.HasKey("id"); + + b.ToTable("visit"); + }); + modelBuilder.Entity("menurole", b => { b.Property("menusid") diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/20211022181627_yi-1.cs b/Yi.Framework/Yi.Framework.Model/Migrations/20211106082100_yi-1.cs similarity index 89% rename from Yi.Framework/Yi.Framework.Model/Migrations/20211022181627_yi-1.cs rename to Yi.Framework/Yi.Framework.Model/Migrations/20211106082100_yi-1.cs index 8b17bb96..0fc278db 100644 --- a/Yi.Framework/Yi.Framework.Model/Migrations/20211022181627_yi-1.cs +++ b/Yi.Framework/Yi.Framework.Model/Migrations/20211106082100_yi-1.cs @@ -1,4 +1,5 @@ -using Microsoft.EntityFrameworkCore.Metadata; +using System; +using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; namespace Yi.Framework.Model.Migrations @@ -69,7 +70,8 @@ namespace Yi.Framework.Model.Migrations .Annotation("MySql:CharSet", "utf8mb4"), address = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), - phone = table.Column(type: "int", nullable: true), + phone = table.Column(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), is_delete = table.Column(type: "int", nullable: false) }, constraints: table => @@ -78,6 +80,22 @@ namespace Yi.Framework.Model.Migrations }) .Annotation("MySql:CharSet", "utf8mb4"); + migrationBuilder.CreateTable( + name: "visit", + columns: table => new + { + id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + time = table.Column(type: "datetime(6)", nullable: false), + num = table.Column(type: "int", nullable: false), + is_delete = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_visit", x => x.id); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + migrationBuilder.CreateTable( name: "menu", columns: table => new @@ -194,6 +212,9 @@ namespace Yi.Framework.Model.Migrations migrationBuilder.DropTable( name: "roleuser"); + migrationBuilder.DropTable( + name: "visit"); + migrationBuilder.DropTable( name: "menu"); diff --git a/Yi.Framework/Yi.Framework.Model/Migrations/DataContextModelSnapshot.cs b/Yi.Framework/Yi.Framework.Model/Migrations/DataContextModelSnapshot.cs index 42c7f861..ff1fcee1 100644 --- a/Yi.Framework/Yi.Framework.Model/Migrations/DataContextModelSnapshot.cs +++ b/Yi.Framework/Yi.Framework.Model/Migrations/DataContextModelSnapshot.cs @@ -44,9 +44,6 @@ namespace Yi.Framework.Model.Migrations b.Property("mouldid") .HasColumnType("int"); - b.Property("roleid") - .HasColumnType("int"); - b.Property("router") .HasColumnType("longtext"); @@ -59,8 +56,6 @@ namespace Yi.Framework.Model.Migrations b.HasIndex("mouldid"); - b.HasIndex("roleid"); - b.ToTable("menu"); }); @@ -99,13 +94,8 @@ namespace Yi.Framework.Model.Migrations b.Property("role_name") .HasColumnType("longtext"); - b.Property("userid") - .HasColumnType("int"); - b.HasKey("id"); - b.HasIndex("userid"); - b.ToTable("role"); }); @@ -142,8 +132,8 @@ namespace Yi.Framework.Model.Migrations b.Property("password") .HasColumnType("longtext"); - b.Property("phone") - .HasColumnType("int"); + b.Property("phone") + .HasColumnType("longtext"); b.Property("username") .HasColumnType("longtext"); @@ -173,6 +163,36 @@ namespace Yi.Framework.Model.Migrations b.ToTable("visit"); }); + modelBuilder.Entity("menurole", b => + { + b.Property("menusid") + .HasColumnType("int"); + + b.Property("rolesid") + .HasColumnType("int"); + + b.HasKey("menusid", "rolesid"); + + b.HasIndex("rolesid"); + + b.ToTable("menurole"); + }); + + modelBuilder.Entity("roleuser", b => + { + b.Property("rolesid") + .HasColumnType("int"); + + b.Property("usersid") + .HasColumnType("int"); + + b.HasKey("rolesid", "usersid"); + + b.HasIndex("usersid"); + + b.ToTable("roleuser"); + }); + modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => { b.HasOne("Yi.Framework.Model.Models.menu", null) @@ -183,34 +203,43 @@ namespace Yi.Framework.Model.Migrations .WithMany() .HasForeignKey("mouldid"); - b.HasOne("Yi.Framework.Model.Models.role", null) - .WithMany("menus") - .HasForeignKey("roleid"); - b.Navigation("mould"); }); - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => + modelBuilder.Entity("menurole", b => { + b.HasOne("Yi.Framework.Model.Models.menu", null) + .WithMany() + .HasForeignKey("menusid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("Yi.Framework.Model.Models.role", null) + .WithMany() + .HasForeignKey("rolesid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("roleuser", b => + { + b.HasOne("Yi.Framework.Model.Models.role", null) + .WithMany() + .HasForeignKey("rolesid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + b.HasOne("Yi.Framework.Model.Models.user", null) - .WithMany("roles") - .HasForeignKey("userid"); + .WithMany() + .HasForeignKey("usersid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); }); modelBuilder.Entity("Yi.Framework.Model.Models.menu", b => { b.Navigation("children"); }); - - modelBuilder.Entity("Yi.Framework.Model.Models.role", b => - { - b.Navigation("menus"); - }); - - modelBuilder.Entity("Yi.Framework.Model.Models.user", b => - { - b.Navigation("roles"); - }); #pragma warning restore 612, 618 } } diff --git a/Yi.Framework/Yi.Framework.Model/Models/menu.cs b/Yi.Framework/Yi.Framework.Model/Models/menu.cs index 80ff6cff..0a562163 100644 --- a/Yi.Framework/Yi.Framework.Model/Models/menu.cs +++ b/Yi.Framework/Yi.Framework.Model/Models/menu.cs @@ -15,6 +15,9 @@ namespace Yi.Framework.Model.Models public List children { get; set; } + + public List roles { get; set; } + public mould mould { get; set; } } } diff --git a/Yi.Framework/Yi.Framework.Model/Models/role.cs b/Yi.Framework/Yi.Framework.Model/Models/role.cs index 3e6b4927..8516124f 100644 --- a/Yi.Framework/Yi.Framework.Model/Models/role.cs +++ b/Yi.Framework/Yi.Framework.Model/Models/role.cs @@ -13,5 +13,6 @@ namespace Yi.Framework.Model.Models public List menus { get; set; } + public List users { get; set; } } } diff --git a/Yi.Framework/Yi.Framework.Model/Models/user.cs b/Yi.Framework/Yi.Framework.Model/Models/user.cs index d9d38fbe..58857e36 100644 --- a/Yi.Framework/Yi.Framework.Model/Models/user.cs +++ b/Yi.Framework/Yi.Framework.Model/Models/user.cs @@ -18,7 +18,7 @@ namespace Yi.Framework.Model.Models public int? age { get; set; } public string introduction { get; set; } public string address { get; set; } - public int? phone { get; set; } + public string phone { get; set; } public List roles { get; set; } diff --git a/Yi.Framework/Yi.Framework.SMSProcessor/Worker.cs b/Yi.Framework/Yi.Framework.SMSProcessor/Worker.cs index 09544ed5..d6039afb 100644 --- a/Yi.Framework/Yi.Framework.SMSProcessor/Worker.cs +++ b/Yi.Framework/Yi.Framework.SMSProcessor/Worker.cs @@ -25,7 +25,7 @@ namespace Yi.Framework.SMSProcessor { _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); _logger.LogInformation($"Worker appsetting ConsulClientOption:Ip={this._IConfiguration["ConsulClientOption:Ip"]}"); - await Task.Delay(1000, stoppingToken); + await Task.Delay(100000, stoppingToken); } } } diff --git a/Yi.Framework/Yi.Framework.Service/RoleService.cs b/Yi.Framework/Yi.Framework.Service/RoleService.cs index 05f776b5..2ab3a56c 100644 --- a/Yi.Framework/Yi.Framework.Service/RoleService.cs +++ b/Yi.Framework/Yi.Framework.Service/RoleService.cs @@ -47,7 +47,9 @@ namespace Yi.Framework.Service { var role_data = await _Db.Set().Include(u=>u.menus).Where(u => u.id == roleId).FirstOrDefaultAsync(); var menuList = role_data.menus.Where(u => u.is_delete == Normal).ToList(); - + + menuList.ForEach(u => u.roles = null); + return menuList; } diff --git a/Yi.Framework/Yi.Framework.Service/UserService.cs b/Yi.Framework/Yi.Framework.Service/UserService.cs index c2357f0a..6e9396cf 100644 --- a/Yi.Framework/Yi.Framework.Service/UserService.cs +++ b/Yi.Framework/Yi.Framework.Service/UserService.cs @@ -15,22 +15,25 @@ namespace Yi.Framework.Service { public partial class UserService : BaseService, IUserService { - private IRoleService _roleService; short Normal = (short)Common.Enum.DelFlagEnum.Normal; - public UserService(IDbContextFactory DbFactory, IRoleService roleService) : base(DbFactory) + public async Task PhoneIsExsit(string smsAddress) { - _roleService = roleService; + var userList = await GetEntity(u => u.phone == smsAddress); + if (userList == null) + { + return false; + } + return true; } public async Task EmailIsExsit(string emailAddress) { - var userList = await GetAllEntitiesTrueAsync(); - var is_email = userList.Where(u => u.email == emailAddress).FirstOrDefault(); - if (is_email == null) + var userList = await GetEntity(u => u.email == emailAddress); + if (userList == null) { - return true; + return false; } - return false; + return true; } /// /// @@ -48,9 +51,10 @@ namespace Yi.Framework.Service List menuList = new(); foreach(var item in user_data.roles) { - var m=item.menus.Where(u => u.router.ToUpper() == router.ToUpper()).FirstOrDefault(); - menuList= m.children.Where(u => menuIds.Contains(u.id)&&u.is_delete==Normal).ToList(); - if (m != null) { break; } + var m=item.menus.Where(u =>u?.router?.ToUpper() == router.ToUpper()).FirstOrDefault(); + if (m == null) { break; } + menuList = m.children?.Where(u => menuIds.Contains(u.id)&&u.is_delete==Normal).ToList(); + } return menuList; } @@ -63,7 +67,12 @@ namespace Yi.Framework.Service } public async Task GetUserInRolesByHttpUser(int userId) { - return await GetUserById(userId); + var data = await GetUserById(userId); + data.roles?.ForEach(u=> { + u.users = null; + u.menus = null; + }); + return data; } public async Task Login(user _user) @@ -79,7 +88,7 @@ namespace Yi.Framework.Service { return false; } - return await AddAsync(_user); + return await UpdateAsync(_user); } public async Task SetRoleByUser(List roleIds, List userIds) @@ -89,5 +98,7 @@ namespace Yi.Framework.Service user_data.ForEach(u => u.roles = roleList); return await UpdateListAsync(user_data); } + + } } diff --git a/Yi.Framework/Yi.Framework.WebCore/Init/DataSeed.cs b/Yi.Framework/Yi.Framework.WebCore/Init/DataSeed.cs index 4cd8ea76..0129b67e 100644 --- a/Yi.Framework/Yi.Framework.WebCore/Init/DataSeed.cs +++ b/Yi.Framework/Yi.Framework.WebCore/Init/DataSeed.cs @@ -13,7 +13,7 @@ namespace Yi.Framework.WebCore.Init { public async static Task SeedAsync(IDbContextFactory _DbFactory) { - var _Db= _DbFactory.ConnWriteOrRead(Common.Enum.WriteAndReadEnum.Write); + var _Db = _DbFactory.ConnWriteOrRead(Common.Enum.WriteAndReadEnum.Write); if (!_Db.Set().Any()) { await _Db.Set().AddAsync(new user @@ -22,18 +22,28 @@ namespace Yi.Framework.WebCore.Init password = "123", roles = new List() { + new role(){ role_name="普通用户"}, + new role() { role_name="管理员", menus = new List() { - new menu() - { - menu_name="用户角色管理",is_show=1,is_top=1, children=new List() + new menu() + { + menu_name="根",is_show=1,is_top=1, children=new List(){ + new menu() + { + menu_name="首页",is_show=1,router="/" + }, + + new menu() + { + menu_name="用户角色管理",is_show=1, children=new List() { new menu() - { - menu_name="用户管理",router="/AdmUser", is_show=1,children=new List() + { + menu_name="用户管理",router="/AdmUser/", is_show=1,children=new List() { new menu() { @@ -64,14 +74,14 @@ namespace Yi.Framework.WebCore.Init menu_name="add",is_show=0, mould=new mould() { - mould_name="del",url="/user/adduser" + mould_name="add",url="/user/adduser" } } - } + } }, new menu() { - menu_name="角色管理",router="/admrole", is_show=1,children=new List() + menu_name="角色管理",router="/admrole/", is_show=1,children=new List() { new menu() { @@ -102,21 +112,21 @@ namespace Yi.Framework.WebCore.Init menu_name="add",is_show=0, mould=new mould() { - mould_name="del",url="/role/addroler" + mould_name="add",url="/role/addrole" } } } } } - + }, new menu() { - menu_name="角色接口管理",is_show=1, is_top=1,children=new List() + menu_name="角色接口管理",is_show=1, children=new List() { new menu() { - menu_name="菜单管理",router="/AdmMenu", is_show=1,children=new List() + menu_name="菜单管理",router="/AdmMenu/", is_show=1,children=new List() { new menu() { @@ -147,14 +157,14 @@ namespace Yi.Framework.WebCore.Init menu_name="add",is_show=0, mould=new mould() { - mould_name="del",url="/Menu/addMenu" + mould_name="add",url="/Menu/addMenu" } } } }, new menu() { - menu_name="接口管理",router="/admMould", is_show=1,children=new List() + menu_name="接口管理",router="/admMould/", is_show=1,children=new List() { new menu() { @@ -192,23 +202,49 @@ namespace Yi.Framework.WebCore.Init }, new menu() { - menu_name="角色菜单分配管理",router="/admRoleMenu", is_show=1, children=null + menu_name="角色菜单分配管理",router="/admRoleMenu/", is_show=1, children=null } } }, new menu() { - menu_name="路由管理",is_show=1,is_top=1,children=new List() + menu_name="路由管理",is_show=1,children=new List() { new menu() { - menu_name="用户信息",router="/userinfo", is_show=1,children=null - + menu_name="用户信息",router="/userinfo/", is_show=1,children=null + } } } + + + + + + + + + + + + + + + + + + + + + + + + } + } + } } } diff --git a/Yi.Framework/Yi.Framework.WebCore/Init/RedisInit.cs b/Yi.Framework/Yi.Framework.WebCore/Init/RedisInit.cs index a091428f..7856785c 100644 --- a/Yi.Framework/Yi.Framework.WebCore/Init/RedisInit.cs +++ b/Yi.Framework/Yi.Framework.WebCore/Init/RedisInit.cs @@ -15,10 +15,10 @@ namespace Yi.Framework.WebCore.Init { var setDto = Common.Helper.JsonHelper.ObjToStr(new SettingDto() { - ImageList_key =new List { "默认图片", "默认图片" }, - InitRole_key = "普通用户", - Title_key = "YiFramework", - InitIcon_key = "默认头像" + ImageList =new List { "默认图片", "默认图片" }, + InitRole = "普通用户", + Title = "YiFramework", + InitIcon = "默认头像" }); if (_cacheClientDB.Get(RedisConst.key)==null) { diff --git a/Yi.Vue/src/api/accountApi.js b/Yi.Vue/src/api/accountApi.js index c0e19022..30744d7a 100644 --- a/Yi.Vue/src/api/accountApi.js +++ b/Yi.Vue/src/api/accountApi.js @@ -16,11 +16,11 @@ export default { method: 'post', }) }, - register(username, password, email, code) { + register(username, password, phone, code) { return myaxios({ url: `/Account/register?code=${code}`, method: 'post', - data: { username, password, email } + data: { username, password, phone } }) }, email(emailAddress) { @@ -29,6 +29,12 @@ export default { method: 'post', }) }, + SendSMS(smsAddress) { + return myaxios({ + url: `/Account/SendSMS?SMSAddress=${smsAddress}`, + method: 'post', + }) + }, changePassword(user, newPassword) { return myaxios({ url: `/Account/changePassword`, diff --git a/Yi.Vue/src/views/register.vue b/Yi.Vue/src/views/register.vue index 14c82936..5a7afbc4 100644 --- a/Yi.Vue/src/views/register.vue +++ b/Yi.Vue/src/views/register.vue @@ -18,10 +18,10 @@ -

+

注册-从这里开始 🚀

-

加入我们,获得一个有趣的灵魂!

+

加入我们,获得一个有趣的灵魂!

@@ -31,30 +31,42 @@ v-model="form.username" outlined label="用户名" - placeholder="JohnDoe" - - class="mb-3" + placeholder="cc" + class="mb-1" counter="20" > + label="电话" + placeholder="12345678901" + class="mb-1" + > + + + + + + + + 验证码 + + @@ -67,7 +79,9 @@ - 注册 + + 注册 + @@ -86,53 +100,79 @@ - - - {{ link.icon }} - - - + + + {{ link.icon }} + + +