diff --git a/asg_form/Controllers/Champion.cs b/asg_form/Controllers/Champion.cs index 1f7acfc..7b5dc4c 100644 --- a/asg_form/Controllers/Champion.cs +++ b/asg_form/Controllers/Champion.cs @@ -1,5 +1,4 @@ -using asg_form.Model; -using Manganese.Array; +using Manganese.Array; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; @@ -111,7 +110,7 @@ namespace asg_form.Controllers { public long Id { get; set; } public form form { get; set; } - public T_events events { get; set; } + public Events.T_events events { get; set; } public string msg { get; set; } } diff --git a/asg_form/Controllers/Dbset.cs b/asg_form/Controllers/Dbset.cs index 62383e5..022cff8 100644 --- a/asg_form/Controllers/Dbset.cs +++ b/asg_form/Controllers/Dbset.cs @@ -1,6 +1,5 @@  using asg_form.Controllers.Store; -using asg_form.Model; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.DataEncryption; @@ -36,7 +35,7 @@ namespace asg_form.Controllers builder.Property(e => e.team_password).IsRequired(); builder.Property(e => e.time).IsRequired(); builder.Property(e => e.piaoshu).IsRequired(); - builder.HasOne(c => c.events).WithMany(a => a.forms).IsRequired(); + builder.HasOne(c => c.events).WithMany(a => a.forms).IsRequired(); } } @@ -64,11 +63,20 @@ namespace asg_form.Controllers { public void Configure(EntityTypeBuilder builder) { - builder.ToTable("F_Store"); + builder.ToTable("T_Storeinfo"); builder.HasOne(c => c.Store).WithMany(a => a.buyer).IsRequired(); } } + class STORConfig : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("T_Store"); + + + } + } class newsConfig : IEntityTypeConfiguration { @@ -120,9 +128,9 @@ namespace asg_form.Controllers builder.HasOne(e => e.team).WithMany(o=>o.logs).IsRequired(); } } - class EventsConfig : IEntityTypeConfiguration + class EventsConfig : IEntityTypeConfiguration { - public void Configure(EntityTypeBuilder builder) + public void Configure(EntityTypeBuilder builder) { builder.ToTable("F_events"); builder.Property(e => e.Id).IsRequired(); @@ -162,10 +170,22 @@ namespace asg_form.Controllers } } + class configConfig : IEntityTypeConfiguration + { + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("T_Config"); + builder.Property(e => e.Id).IsRequired(); + builder.Property(a => a.Title); + builder.Property(a => a.msg); + builder.Property(e => e.Substance); + + + } + } - class TestDbContext : DbContext { @@ -176,12 +196,14 @@ namespace asg_form.Controllers public DbSet blogs { get; set; } public DbSet schlogs { get; set; } public DbSet team_Games { get; set; } - public DbSet events { get; set; } + public DbSet events { get; set; } public DbSet Champions { get; set; } public DbSet com_Forms { get; set; } public DbSet T_Friends { get; set; } public DbSet T_Store { get; set; } public DbSet T_Storeinfo { get; set; } + public DbSet T_config { get; set; } + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { @@ -197,6 +219,7 @@ namespace asg_form.Controllers } + public class IDBcontext : IdentityDbContext { public DbSet users { get; set; } diff --git a/asg_form/Controllers/Events.cs b/asg_form/Controllers/Events.cs index 32dfe37..32d533b 100644 --- a/asg_form/Controllers/Events.cs +++ b/asg_form/Controllers/Events.cs @@ -1,5 +1,4 @@ -using asg_form.Model; -using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using System.Security.Claims; @@ -7,8 +6,7 @@ using static asg_form.Controllers.excel; namespace asg_form.Controllers { - - public class Events:ControllerBase + public class Events : ControllerBase { private readonly RoleManager roleManager; private readonly UserManager userManager; @@ -25,16 +23,26 @@ namespace asg_form.Controllers /// /// // [Authorize] - + [Route("api/v1/Events")] [HttpGet] - // [ResponseCache(Duration = 260)] - public async Task>> Getallevent() + // [ResponseCache(Duration = 260)] + public async Task> Getallevent(bool get_poem = false) { TestDbContext testDbContext = new TestDbContext(); - var Event= testDbContext.events.ToList(); - return Event; - + object Event = new object(); + if (get_poem) + { + Event = testDbContext.events.Select(a => new { a.Id, a.is_over, a.opentime, a.name, a.promChart }).ToList(); + + } + else + { + Event = testDbContext.events.Select(a => new { a.Id, a.is_over, a.opentime, a.name }).ToList(); + + } + return Event; + } /// /// 发布新赛事 @@ -43,16 +51,16 @@ namespace asg_form.Controllers [Authorize] [Route("api/v1/admin/Events")] [HttpPost] - public async Task>> Postevent(T_events events, [FromBody]string rule_markdown) + public async Task>> Postevent([FromBody] events_get events) { TestDbContext testDbContext = new TestDbContext(); - await testDbContext.events.AddAsync(new T_events { name = events.name, is_over = events.is_over, opentime = events.opentime ,events_rule_uri= new Uri($"https://124.223.35.239/doc/rule/{events.name}.md") }); + await testDbContext.events.AddAsync(new T_events { name = events.name, is_over = events.is_over, opentime = events.opentime, events_rule_uri = new Uri($"https://124.223.35.239/doc/rule/{events.name}.md") }); System.IO.Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + $"loge/{events.name}"); - System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory+ $"doc/rule/{events.name}.md", rule_markdown); + System.IO.File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + $"doc/rule/{events.name}.md", events.rule_markdown); await testDbContext.SaveChangesAsync(); - + return Ok("添加成功!"); - + } /// @@ -62,40 +70,40 @@ namespace asg_form.Controllers [Authorize] [Route("api/v1/admin/Events")] [HttpPut] - public async Task>> putevent(string event_name, [FromBody]T_events events) + public async Task>> putevent(string event_name, [FromBody] T_events events) { if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) - { - - TestDbContext testDb=new TestDbContext(); - var eve= testDb.events.FirstOrDefault(a => a.name == event_name); - eve.name=events.name; - eve.opentime=events.opentime; - eve.is_over=events.is_over; + { + + TestDbContext testDb = new TestDbContext(); + var eve = testDb.events.FirstOrDefault(a => a.name == event_name); + eve.name = events.name; + eve.opentime = events.opentime; + eve.is_over = events.is_over; await testDb.SaveChangesAsync(); return Ok(eve); } return BadRequest(new error_mb { code = 400, message = "没管理员改个P!" }); - } + } - /// - /// 删除新赛事 - /// - /// - [Authorize] + /// + /// 删除新赛事 + /// + /// + [Authorize] [Route("api/v1/admin/Events")] [HttpDelete] public async Task>> Delevent(string event_name) { if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { - TestDbContext test=new TestDbContext(); - var evernt= test.events.FirstOrDefault(a => a.name == event_name); + TestDbContext test = new TestDbContext(); + var evernt = test.events.FirstOrDefault(a => a.name == event_name); test.Remove(evernt); - await test.SaveChangesAsync(); + await test.SaveChangesAsync(); return Ok("删掉了呢"); } else @@ -103,7 +111,7 @@ namespace asg_form.Controllers return BadRequest(new error_mb { code = 400, message = "没P管理员隔着装尼玛呢" }); } - } + } /// /// 修改赛事 @@ -112,7 +120,7 @@ namespace asg_form.Controllers [Authorize] [Route("api/v1/admin/Events_rule")] [HttpDelete] - public async Task>> event_rule(string event_name, [FromBody]string rule_markdown) + public async Task>> event_rule(string event_name, [FromBody] string rule_markdown) { if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { @@ -129,7 +137,50 @@ namespace asg_form.Controllers } + /// + /// 修改赛程图 + /// + /// + [Authorize] + [Route("api/v1/admin/poem")] + [HttpPost] + public async Task>> event_poem(string event_name, [FromBody] string poem_json) + { + if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + TestDbContext test = new TestDbContext(); + var evernt = test.events.FirstOrDefault(a => a.name == event_name); + evernt.promChart = poem_json; + await test.SaveChangesAsync(); + return Ok("修改了呢"); + } + else + { + return BadRequest(new error_mb { code = 400, message = "没P管理员隔着装尼玛呢" }); + } - - } + } + + + public class T_events + { + public int Id { get; set; } + public string? name { get; set; } + public bool? is_over { get; set; } + public DateTime? opentime { get; set; } + public List
? forms { get; set; } + public Uri? events_rule_uri { get; set; } + public string? promChart { get; set; } + + } + public class events_get + { + public int Id { get; set; } + public string? name { get; set; } + public bool? is_over { get; set; } + public DateTime? opentime { get; set; } + public string rule_markdown { get; set; } + + } + } } diff --git a/asg_form/Controllers/Store/Storehttp.cs b/asg_form/Controllers/Store/Storehttp.cs index 920372c..b1eef7b 100644 --- a/asg_form/Controllers/Store/Storehttp.cs +++ b/asg_form/Controllers/Store/Storehttp.cs @@ -64,7 +64,10 @@ namespace asg_form.Controllers.Store using (TestDbContext sb = new TestDbContext()) { var a= await sb.T_Store.FindAsync(storeinfo.id); - a = storeinfo; + a.Name=storeinfo.Name; + a.description=storeinfo.description; + a.information=storeinfo.information; + a.Price=storeinfo.Price; await sb.SaveChangesAsync(); return Ok(storeinfo); } @@ -88,7 +91,26 @@ namespace asg_form.Controllers.Store using (TestDbContext sb = new TestDbContext()) { - var a= sb.T_Store.ToList().GroupBy(a => a.Type); + var a= sb.T_Store.ToList(); + return Ok(a); + } + } + + [Route("api/v1/Store/Verification")] + [HttpGet] + [Authorize] + public async Task> Verification(long storeinfoid) + { + + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + return BadRequest(new error_mb { code = 400, message = "无权访问" }); + } + using (TestDbContext sb = new TestDbContext()) + { + var a = sb.T_Storeinfo.Find(storeinfoid); + a.isVerification = true; + await sb.SaveChangesAsync(); return Ok(a); } } @@ -112,7 +134,7 @@ namespace asg_form.Controllers.Store } using (TestDbContext sb = new TestDbContext()) { - var a = new Store_record(null,null); + var a = new all_record(); IQueryable b; if (showVerification) { @@ -124,19 +146,30 @@ namespace asg_form.Controllers.Store } if (search_id == null) { - return Ok(await b.Paginate(pageindex, pagesize).ToListAsync()) ; + a.cout = b.Count(); + a.msg = await b.Paginate(pageindex, pagesize).ToListAsync(); + } else { - return Ok(await b.Where(a=>a.buyerid==search_id).Paginate(pageindex, pagesize).ToListAsync()); + a.cout = b.Where(a => a.buyerid == search_id).Count(); + a.msg = await b.Where(a => a.buyerid == search_id).Paginate(pageindex, pagesize).ToListAsync(); } + return Ok(a); } } - public record Store_record(long? allstort,List? Storeinfos); + public record buyreq_record(bool iserror, string msg); + + + public record all_record() + { + public long? cout { get; set; } + public object msg { get; set; } + } [Route("api/v1/Store/Buy")] - [HttpGet] + [HttpPost] [Authorize] - public async Task> BuyStore(long storeid) + public async Task> BuyStore([FromBody]long[] storeid) { string id = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value; var user = await userManager.FindByIdAsync(id); @@ -149,20 +182,28 @@ namespace asg_form.Controllers.Store using (TestDbContext sb = new TestDbContext()) { - var stort= await sb.T_Store.FindAsync(storeid); - try + List bureq = new List(); + foreach (var item in storeid) { - user.Integral = cut_value((long)user.Integral,stort.Price); - await userManager.UpdateAsync(user); - await sb.T_Storeinfo.AddAsync(new StoreinfoDB { buyerid = id.ToInt64(), Store = stort }); - await sb.SaveChangesAsync(); - return Ok("购买成功,请前往背包查看"); - } - catch - { - return BadRequest(new error_mb { code = 400, message = $"你的金钱无法满足你完成以下操作" }); + var stort = await sb.T_Store.FindAsync(storeid); + try + { + user.Integral = cut_value((long)user.Integral, stort.Price); + await userManager.UpdateAsync(user); + await sb.T_Storeinfo.AddAsync(new StoreinfoDB { buyerid = id.ToInt64(), Store = stort }); + await sb.SaveChangesAsync(); + bureq.Add(new buyreq_record(false, $"购买{stort.Name}成功")); + + } + catch + { + bureq.Add(new buyreq_record(true, $"购买失败,因为余额不足")); + + } } + + return Ok(bureq); } } } diff --git a/asg_form/Controllers/admin.cs b/asg_form/Controllers/admin.cs index ccb90e9..841fffd 100644 --- a/asg_form/Controllers/admin.cs +++ b/asg_form/Controllers/admin.cs @@ -21,6 +21,9 @@ using MimeKit; using MailKit.Net.Smtp; using Mirai.Net.Utils.Scaffolds; using Mirai.Net.Sessions.Http.Managers; +using asg_form.Controllers.Store; +using NPOI.SS.Formula.Functions; +using static asg_form.Controllers.Store.Storehttp; namespace asg_form.Controllers { @@ -231,55 +234,24 @@ else{ [Route("api/v2/admin/allperson")] [HttpGet] [Authorize] - public async Task> getalladmin_v2(string? keyword, short page, short page_long = 10) + public async Task> getalladmin_v2(string? keyword, short pageindex=1, short pagesize = 10) { if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { - List users = new List(); - post_user_v2 user = new post_user_v2(); + var a = new all_record(); if (keyword == null) { - int a = userManager.Users.Count(); - user.Count = a; - int b = page_long * page; - if (page_long * page > a) - { - b = a; - } - users = userManager.Users.Skip(page_long * page - page_long).Take(page_long).ToList(); + a.cout = userManager.Users.Count(); + a.msg = await userManager.Users.Paginate(pageindex, pagesize).ToListAsync(); } else { - int a = userManager.Users.Where(a => a.UserName.IndexOf(keyword) >= 0 || a.chinaname.IndexOf(keyword) >= 0 || a.Email.IndexOf(keyword) >= 0).Count(); - user.Count = a; - int b = page_long * page; - if (page_long * page > a) - { - b = a; - } - users = userManager.Users.Where(a => a.UserName.IndexOf(keyword) >= 0 || a.chinaname.IndexOf(keyword) >= 0 || a.Email.IndexOf(keyword) >= 0).Skip(page_long * page - page_long).Take(page_long).ToList(); - + + a.cout = userManager.Users.Where(a=>a.chinaname==keyword||a.UserName==keyword||a.Email==keyword).Count(); + a.msg = await userManager.Users.Where(a => a.chinaname == keyword || a.UserName == keyword || a.Email == keyword).Paginate(pageindex, pagesize).ToListAsync(); } - - - foreach (var auser in users) - { - bool isadmin = await userManager.IsInRoleAsync(auser, "admin"); - var roles = await userManager.GetRolesAsync(auser); - try - { - // user.user.Add(new post_user { id = auser.Id, chinaname = auser.chinaname, name = auser.UserName, isadmin = isadmin, email = auser.Email, Roles = (List)roles, officium = auser.officium, Integral = auser.Integral }); - - } - catch - { - - } - - } - return user; - + return Ok(a); } else diff --git a/asg_form/Controllers/config.cs b/asg_form/Controllers/config.cs new file mode 100644 index 0000000..2b1fbd3 --- /dev/null +++ b/asg_form/Controllers/config.cs @@ -0,0 +1,131 @@ +using System.Security.Claims; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace asg_form.Controllers; + +public class T_config +{ + public int Id { set; get; } + public string Title{ set; get; } + public string Substance{ set; get;} + public string? msg{ set; get; } + + +} + + + +[ApiController] +[Route("api/[controller]")] +public class config : ControllerBase +{ + [Route("api/v1/admin/config")] + [HttpPost] + [Authorize] + public async Task> config_post([FromBody] T_config config) + { + + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + return BadRequest(new error_mb { code = 400, message = "无权访问" }); + } +using(TestDbContext db=new TestDbContext()){ + var config__ = db.T_config.FirstOrDefault(a => a.Id == config.Id); + if (config__==null) + { + db.T_config.Add(config); + await db.SaveChangesAsync(); + } + else + { + var config_ = db.T_config.FirstOrDefault(a => a.Id == config.Id); + + config_.msg=config.msg; + config_.Substance = config.Substance; + config_.Title = config.Title; + await db.SaveChangesAsync(); + } + +} + + + return Ok("添加成功!"); + + } + + + + + + + + [Route("api/v1/admin/config/byTitle")] + [HttpPost] + [Authorize] + public async Task> config_get_title([FromBody] string title) + { + + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + return BadRequest(new error_mb { code = 400, message = "无权访问" }); + } + using (TestDbContext db = new TestDbContext()) + { + var config = db.T_config.FirstOrDefault(a => a.Title == title); + return Ok(config.Substance); + } + + } + + [Route("api/v1/admin/config")] + [HttpDelete] + [Authorize] + public async Task> config_get_title(int Id) + { + + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + return BadRequest(new error_mb { code = 400, message = "无权访问" }); + } + using (TestDbContext db = new TestDbContext()) + { + var config = db.T_config.FirstOrDefault(a => a.Id==Id); + db.Remove(config); + await db.SaveChangesAsync(); + return Ok("成功!"); + } + + } + + + + + + [Route("api/v1/admin/config/all")] + [HttpGet] + [Authorize] + public async Task> config_get_all(short page, short page_long = 10) + { + + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + return BadRequest(new error_mb { code = 400, message = "无权访问" }); + } + using (TestDbContext db = new TestDbContext()) + { + int a = db.T_config.Count(); + int b = page_long * page; + if (page_long * page > a) + { + b = a; + } + object config = db.T_config.Skip(page_long * page - page_long).Take(page_long).ToList(); + return Ok(config); + } + + } + + + +} diff --git a/asg_form/Controllers/form_cs.cs b/asg_form/Controllers/form_cs.cs index 697c062..ebdf086 100644 --- a/asg_form/Controllers/form_cs.cs +++ b/asg_form/Controllers/form_cs.cs @@ -1,6 +1,5 @@ using asg_form.Controllers.Hubs; -using asg_form.Model; using Manganese.Text; using Masuit.Tools; using Masuit.Tools.Win32.AntiVirus; @@ -440,7 +439,7 @@ namespace asg_form.Controllers public string team_password { get; set; } public string team_tel { get; set; } public string logo_uri { get; set; } - public T_events events { get; set; } + public Events.T_events events { get; set; } // public string? belong { get; set; } public List role { get; set; } = new List(); } diff --git a/asg_form/Migrations/20240810122803_newstore.Designer.cs b/asg_form/Migrations/20240810122803_newstore.Designer.cs new file mode 100644 index 0000000..839eb97 --- /dev/null +++ b/asg_form/Migrations/20240810122803_newstore.Designer.cs @@ -0,0 +1,818 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using asg_form.Controllers; + +#nullable disable + +namespace asg_form.Migrations +{ + [DbContext(typeof(IDBcontext))] + [Migration("20240810122803_newstore")] + partial class newstore + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("nvarchar(max)"); + + b.Property("ClaimValue") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderKey") + .HasColumnType("nvarchar(450)"); + + b.Property("ProviderDisplayName") + .HasColumnType("nvarchar(max)"); + + b.Property("UserId") + .HasColumnType("bigint"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("RoleId") + .HasColumnType("bigint"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("bigint"); + + b.Property("LoginProvider") + .HasColumnType("nvarchar(450)"); + + b.Property("Name") + .HasColumnType("nvarchar(450)"); + + b.Property("Value") + .HasColumnType("nvarchar(max)"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.Champion+T_Champion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("eventsId") + .HasColumnType("int"); + + b.Property("formId") + .HasColumnType("bigint"); + + b.Property("msg") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("eventsId"); + + b.HasIndex("formId"); + + b.ToTable("F_Champion", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.Store.StoreDB", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Price") + .HasColumnType("bigint"); + + b.Property("Type") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("description") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("information") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("T_Store", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.Store.StoreinfoDB", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("Storeid") + .HasColumnType("bigint"); + + b.Property("buyerid") + .HasColumnType("bigint"); + + b.Property("isVerification") + .HasColumnType("bit"); + + b.HasKey("id"); + + b.HasIndex("Storeid"); + + b.ToTable("T_Storeinfo", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.T_Friend", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("account") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("comMsg") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("comTime") + .HasColumnType("datetime2"); + + b.Property("comType") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("degree") + .HasColumnType("int"); + + b.Property("headName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("headTel") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("orgName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("F_Friend", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.T_news", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("FormName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("msg") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("time") + .IsRequired() + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.ToTable("F_news", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.comform+com_form", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Com_Cocial_media") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Com_Email") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Com_qq") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("int"); + + b.Property("idv_id") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.ToTable("F_ComForm", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.form", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("eventsId") + .HasColumnType("int"); + + b.Property("logo_uri") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("piaoshu") + .HasColumnType("int"); + + b.Property("team_name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("team_password") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("team_tel") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("time") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.HasIndex("eventsId"); + + b.ToTable("F_form", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("Common_Roles") + .HasColumnType("nvarchar(max)"); + + b.Property("Game_Name") + .HasColumnType("nvarchar(max)"); + + b.Property("Historical_Ranks") + .HasColumnType("int"); + + b.Property("Id_Card") + .HasColumnType("nvarchar(max)"); + + b.Property("Id_Card_Name") + .HasColumnType("nvarchar(max)"); + + b.Property("Phone_Number") + .HasColumnType("nvarchar(max)"); + + b.Property("formId") + .HasColumnType("bigint"); + + b.Property("role_id") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("role_lin") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("role_name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("formId"); + + b.ToTable("F_role", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.schedule+schedule_log", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("chickteam") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("teamid") + .HasColumnType("bigint"); + + b.Property("userid") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("win") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.HasIndex("teamid"); + + b.ToTable("F_achlog", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.schedule+team_game", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id")); + + b.Property("belong") + .HasColumnType("nvarchar(max)"); + + b.Property("bilibiliuri") + .HasColumnType("nvarchar(max)"); + + b.Property("commentary") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("opentime") + .HasColumnType("datetime2"); + + b.Property("referee") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("tag") + .HasColumnType("nvarchar(max)"); + + b.Property("team1_name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("team1_piaoshu") + .HasColumnType("int"); + + b.Property("team2_name") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("team2_piaoshu") + .HasColumnType("int"); + + b.Property("winteam") + .HasColumnType("nvarchar(max)"); + + b.HasKey("id"); + + b.ToTable("F_game", (string)null); + }); + + modelBuilder.Entity("asg_form.Model.T_events", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("events_rule_uri") + .HasColumnType("nvarchar(max)"); + + b.Property("is_over") + .HasColumnType("bit"); + + b.Property("name") + .HasColumnType("nvarchar(max)"); + + b.Property("opentime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + b.ToTable("F_events", (string)null); + }); + + modelBuilder.Entity("asg_form.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("msg") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("asg_form.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + + b.Property("AccessFailedCount") + .HasColumnType("int"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("nvarchar(max)"); + + b.Property("CreationTime") + .HasColumnType("datetime2"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("bit"); + + b.Property("Integral") + .HasColumnType("bigint"); + + b.Property("LockoutEnabled") + .HasColumnType("bit"); + + b.Property("LockoutEnd") + .HasColumnType("datetimeoffset"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("PasswordHash") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("bit"); + + b.Property("SecurityStamp") + .HasColumnType("nvarchar(max)"); + + b.Property("TwoFactorEnabled") + .HasColumnType("bit"); + + b.Property("UserBase64") + .HasColumnType("nvarchar(max)"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("nvarchar(256)"); + + b.Property("chinaname") + .HasColumnType("nvarchar(max)"); + + b.Property("haveformId") + .HasColumnType("bigint"); + + b.Property("isbooking") + .HasColumnType("bit"); + + b.Property("officium") + .HasColumnType("nvarchar(max)"); + + b.Property("point") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.HasIndex("haveformId"); + + b.ToTable("AspNetUsers", (string)null); + }); + + modelBuilder.Entity("asg_form.blog+blog_db", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("ID")); + + b.Property("formuser") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("msg") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("pushtime") + .HasColumnType("datetime2"); + + b.Property("title") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("ID"); + + b.ToTable("F_blog", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("asg_form.Role", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("asg_form.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("asg_form.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("asg_form.Role", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("asg_form.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("asg_form.User", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("asg_form.Controllers.Champion+T_Champion", b => + { + b.HasOne("asg_form.Model.T_events", "events") + .WithMany() + .HasForeignKey("eventsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("asg_form.Controllers.form", "form") + .WithMany() + .HasForeignKey("formId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("events"); + + b.Navigation("form"); + }); + + modelBuilder.Entity("asg_form.Controllers.Store.StoreinfoDB", b => + { + b.HasOne("asg_form.Controllers.Store.StoreDB", "Store") + .WithMany("buyer") + .HasForeignKey("Storeid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Store"); + }); + + modelBuilder.Entity("asg_form.Controllers.form", b => + { + b.HasOne("asg_form.Model.T_events", "events") + .WithMany("forms") + .HasForeignKey("eventsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("events"); + }); + + modelBuilder.Entity("asg_form.Controllers.role", b => + { + b.HasOne("asg_form.Controllers.form", "form") + .WithMany("role") + .HasForeignKey("formId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("form"); + }); + + modelBuilder.Entity("asg_form.Controllers.schedule+schedule_log", b => + { + b.HasOne("asg_form.Controllers.schedule+team_game", "team") + .WithMany("logs") + .HasForeignKey("teamid") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("team"); + }); + + modelBuilder.Entity("asg_form.User", b => + { + b.HasOne("asg_form.Controllers.form", "haveform") + .WithMany() + .HasForeignKey("haveformId"); + + b.Navigation("haveform"); + }); + + modelBuilder.Entity("asg_form.Controllers.Store.StoreDB", b => + { + b.Navigation("buyer"); + }); + + modelBuilder.Entity("asg_form.Controllers.form", b => + { + b.Navigation("role"); + }); + + modelBuilder.Entity("asg_form.Controllers.schedule+team_game", b => + { + b.Navigation("logs"); + }); + + modelBuilder.Entity("asg_form.Model.T_events", b => + { + b.Navigation("forms"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/asg_form/Migrations/20240810122803_newstore.cs b/asg_form/Migrations/20240810122803_newstore.cs new file mode 100644 index 0000000..b61042b --- /dev/null +++ b/asg_form/Migrations/20240810122803_newstore.cs @@ -0,0 +1,104 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace asg_form.Migrations +{ + /// + public partial class newstore : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_F_Store_StoreDB_Storeid", + table: "F_Store"); + + migrationBuilder.DropPrimaryKey( + name: "PK_StoreDB", + table: "StoreDB"); + + migrationBuilder.DropPrimaryKey( + name: "PK_F_Store", + table: "F_Store"); + + migrationBuilder.RenameTable( + name: "StoreDB", + newName: "T_Store"); + + migrationBuilder.RenameTable( + name: "F_Store", + newName: "T_Storeinfo"); + + migrationBuilder.RenameIndex( + name: "IX_F_Store_Storeid", + table: "T_Storeinfo", + newName: "IX_T_Storeinfo_Storeid"); + + migrationBuilder.AddPrimaryKey( + name: "PK_T_Store", + table: "T_Store", + column: "id"); + + migrationBuilder.AddPrimaryKey( + name: "PK_T_Storeinfo", + table: "T_Storeinfo", + column: "id"); + + migrationBuilder.AddForeignKey( + name: "FK_T_Storeinfo_T_Store_Storeid", + table: "T_Storeinfo", + column: "Storeid", + principalTable: "T_Store", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_T_Storeinfo_T_Store_Storeid", + table: "T_Storeinfo"); + + migrationBuilder.DropPrimaryKey( + name: "PK_T_Storeinfo", + table: "T_Storeinfo"); + + migrationBuilder.DropPrimaryKey( + name: "PK_T_Store", + table: "T_Store"); + + migrationBuilder.RenameTable( + name: "T_Storeinfo", + newName: "F_Store"); + + migrationBuilder.RenameTable( + name: "T_Store", + newName: "StoreDB"); + + migrationBuilder.RenameIndex( + name: "IX_T_Storeinfo_Storeid", + table: "F_Store", + newName: "IX_F_Store_Storeid"); + + migrationBuilder.AddPrimaryKey( + name: "PK_F_Store", + table: "F_Store", + column: "id"); + + migrationBuilder.AddPrimaryKey( + name: "PK_StoreDB", + table: "StoreDB", + column: "id"); + + migrationBuilder.AddForeignKey( + name: "FK_F_Store_StoreDB_Storeid", + table: "F_Store", + column: "Storeid", + principalTable: "StoreDB", + principalColumn: "id", + onDelete: ReferentialAction.Cascade); + } + } +} diff --git a/asg_form/Migrations/IDBcontextModelSnapshot.cs b/asg_form/Migrations/IDBcontextModelSnapshot.cs index d1c6115..7ba0339 100644 --- a/asg_form/Migrations/IDBcontextModelSnapshot.cs +++ b/asg_form/Migrations/IDBcontextModelSnapshot.cs @@ -181,7 +181,7 @@ namespace asg_form.Migrations b.HasKey("id"); - b.ToTable("StoreDB"); + b.ToTable("T_Store", (string)null); }); modelBuilder.Entity("asg_form.Controllers.Store.StoreinfoDB", b => @@ -205,7 +205,7 @@ namespace asg_form.Migrations b.HasIndex("Storeid"); - b.ToTable("F_Store", (string)null); + b.ToTable("T_Storeinfo", (string)null); }); modelBuilder.Entity("asg_form.Controllers.T_Friend", b => diff --git a/asg_form/Model/Event.cs b/asg_form/Model/Event.cs deleted file mode 100644 index f77c0f0..0000000 --- a/asg_form/Model/Event.cs +++ /dev/null @@ -1,16 +0,0 @@ -using asg_form.Controllers; - -namespace asg_form.Model -{ - public class T_events - { - public int Id { get; set; } - public string? name { get; set; } - public bool? is_over { get; set; } - public DateTime? opentime { get; set; } - - public List? forms { get; set; } - public Uri? events_rule_uri { get; set; } - - } -} diff --git a/asg_form/asg_form.csproj b/asg_form/asg_form.csproj index 88f2d2b..6e5e9de 100644 --- a/asg_form/asg_form.csproj +++ b/asg_form/asg_form.csproj @@ -51,6 +51,7 @@ +