diff --git a/asg_form.sln b/asg_form.sln index bc1bca9..5e0c515 100644 --- a/asg_form.sln +++ b/asg_form.sln @@ -12,8 +12,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "解决方案项", "解决 main.md = main.md EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "qqbot", "qqbot\qqbot.csproj", "{48194663-D4E2-40CE-9ED0-9A7459ABA9AD}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -24,10 +22,6 @@ Global {6BBCCC2C-1B0A-4456-B9E5-B0EF2B156D8B}.Debug|Any CPU.Build.0 = Debug|Any CPU {6BBCCC2C-1B0A-4456-B9E5-B0EF2B156D8B}.Release|Any CPU.ActiveCfg = Release|Any CPU {6BBCCC2C-1B0A-4456-B9E5-B0EF2B156D8B}.Release|Any CPU.Build.0 = Release|Any CPU - {48194663-D4E2-40CE-9ED0-9A7459ABA9AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {48194663-D4E2-40CE-9ED0-9A7459ABA9AD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {48194663-D4E2-40CE-9ED0-9A7459ABA9AD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {48194663-D4E2-40CE-9ED0-9A7459ABA9AD}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/asg_form/Controllers/Dbset.cs b/asg_form/Controllers/Dbset.cs index f1dee14..c2566e5 100644 --- a/asg_form/Controllers/Dbset.cs +++ b/asg_form/Controllers/Dbset.cs @@ -16,6 +16,17 @@ using static asg_form.Controllers.InviteReferee; namespace asg_form.Controllers { + + class qquser + { + public int Id { get; set; } + + public string qqid { get; set; } + public int money { get; set; } + + + } + class FormConfig : IEntityTypeConfiguration
{ class forcomConfig : IEntityTypeConfiguration @@ -257,6 +268,7 @@ namespace asg_form.Controllers public DbSet com_Forms { get; set; } public DbSet T_Friends { get; set; } public DbSet T_Store { get; set; } + public DbSet Qqusers { get; set; } public DbSet T_Storeinfo { get; set; } public DbSet T_config { get; set; } public DbSet T_Task { get; set; } diff --git a/asg_form/Controllers/admin.cs b/asg_form/Controllers/admin.cs index 69c96b4..dace8b7 100644 --- a/asg_form/Controllers/admin.cs +++ b/asg_form/Controllers/admin.cs @@ -24,6 +24,11 @@ using Mirai.Net.Sessions.Http.Managers; using asg_form.Controllers.Store; using NPOI.SS.Formula.Functions; using static asg_form.Controllers.Store.Storehttp; +using Flandre.Framework; +using Flandre.Core.Common; +using Flandre.Core.Messaging; +using Mirai.Net.Data.Messages.Concretes; +using Flandre.Core.Messaging.Segments; namespace asg_form.Controllers { @@ -128,28 +133,20 @@ namespace asg_form.Controllers [HttpPost] [Authorize] - public async Task> post_qqbotmsg([FromBody] string msg,string qqgrope,bool is_atall) + public async Task> post_qqbotmsg([FromBody] string msg,string qqgrope,string atuserqq) { if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { return BadRequest(new error_mb { code = 400, message = "无权访问" }); } -if(is_atall){ - var messageChain = new MessageChainBuilder() - .AtAll() - .Plain(msg) - .Build(); - await MessageManager.SendGroupMessageAsync(qqgrope, messageChain); + var message= new MessageBuilder().Add(new AtSegment(atuserqq)).Text(msg).Build(); + + await runbot.runbotr.SendMessageAsync(MessageEnvironment.Channel,null,null,message,qqgrope); - } -else{ - var messageChain = new MessageChainBuilder() - .Plain(msg) - .Build(); - await MessageManager.SendGroupMessageAsync(qqgrope, messageChain); - } + + return Ok("成功!"); diff --git a/asg_form/Migrations/20241019054314_qqbot1.Designer.cs b/asg_form/Migrations/20241019054314_qqbot1.Designer.cs new file mode 100644 index 0000000..b53be6f --- /dev/null +++ b/asg_form/Migrations/20241019054314_qqbot1.Designer.cs @@ -0,0 +1,1057 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using asg_form.Controllers; + +#nullable disable + +namespace asg_form.Migrations +{ + [DbContext(typeof(IDBcontext))] + [Migration("20241019054314_qqbot1")] + partial class qqbot1 + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("text"); + + b.Property("ClaimValue") + .HasColumnType("text"); + + 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("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("text"); + + b.Property("ClaimValue") + .HasColumnType("text"); + + 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("text"); + + b.Property("ProviderKey") + .HasColumnType("text"); + + b.Property("ProviderDisplayName") + .HasColumnType("text"); + + 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("text"); + + b.Property("Name") + .HasColumnType("text"); + + b.Property("Value") + .HasColumnType("text"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("T_TeamT_events", b => + { + b.Property("EventsId") + .HasColumnType("integer"); + + b.Property("TeamsId") + .HasColumnType("bigint"); + + b.HasKey("EventsId", "TeamsId"); + + b.HasIndex("TeamsId"); + + b.ToTable("T_Teams_Player", (string)null); + }); + + modelBuilder.Entity("T_news", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("FormName") + .IsRequired() + .HasColumnType("text"); + + b.Property("Title") + .IsRequired() + .HasColumnType("text"); + + b.Property("Type") + .IsRequired() + .HasColumnType("text"); + + b.Property("msg") + .IsRequired() + .HasColumnType("text"); + + b.Property("time") + .IsRequired() + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("F_news", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.Champion+T_Champion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("eventsId") + .HasColumnType("integer"); + + b.Property("formId") + .HasColumnType("bigint"); + + b.Property("msg") + .IsRequired() + .HasColumnType("text"); + + 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"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Price") + .HasColumnType("bigint"); + + b.Property("Type") + .IsRequired() + .HasColumnType("text"); + + b.Property("description") + .IsRequired() + .HasColumnType("text"); + + b.Property("information") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("id"); + + b.ToTable("T_Store", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.Store.StoreinfoDB", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("id")); + + b.Property("Storeid") + .HasColumnType("bigint"); + + b.Property("buyerid") + .HasColumnType("bigint"); + + b.Property("isVerification") + .HasColumnType("boolean"); + + 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"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("id")); + + b.Property("account") + .IsRequired() + .HasColumnType("text"); + + b.Property("comMsg") + .IsRequired() + .HasColumnType("text"); + + b.Property("comTime") + .HasColumnType("timestamp with time zone"); + + b.Property("comType") + .IsRequired() + .HasColumnType("text"); + + b.Property("degree") + .HasColumnType("integer"); + + b.Property("headName") + .IsRequired() + .HasColumnType("text"); + + b.Property("headTel") + .IsRequired() + .HasColumnType("text"); + + b.Property("orgName") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("id"); + + b.ToTable("F_Friend", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.T_config", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Substance") + .IsRequired() + .HasColumnType("text"); + + b.Property("Title") + .IsRequired() + .HasColumnType("text"); + + b.Property("msg") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("T_Config", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.T_events", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("events_rule_uri") + .HasColumnType("text"); + + b.Property("is_over") + .HasColumnType("boolean"); + + b.Property("name") + .HasColumnType("text"); + + b.Property("opentime") + .HasColumnType("timestamp with time zone"); + + b.Property("promChart") + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("F_events", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.TaskDB", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("id")); + + b.Property("approvalPerson") + .IsRequired() + .HasColumnType("text"); + + b.Property("chinaname") + .IsRequired() + .HasColumnType("text"); + + b.Property("createPerson") + .IsRequired() + .HasColumnType("text"); + + b.Property("createTime") + .IsRequired() + .HasColumnType("text"); + + b.Property("createUserId") + .HasColumnType("bigint"); + + b.Property("lastOperateTime") + .IsRequired() + .HasColumnType("text"); + + b.Property("money") + .HasColumnType("bigint"); + + b.Property("status") + .IsRequired() + .HasColumnType("text"); + + b.Property("taskDescription") + .IsRequired() + .HasColumnType("text"); + + b.Property("taskName") + .IsRequired() + .HasColumnType("text"); + + b.Property("userId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("T_Task", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.Team.T_Player", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Common_Roles") + .HasColumnType("text"); + + b.Property("Game_Name") + .HasColumnType("text"); + + b.Property("Historical_Ranks") + .HasColumnType("integer"); + + b.Property("Id_Card") + .HasColumnType("text"); + + b.Property("Id_Card_Name") + .HasColumnType("text"); + + b.Property("Phone_Number") + .HasColumnType("text"); + + b.Property("TeamId") + .HasColumnType("bigint"); + + b.Property("role_id") + .IsRequired() + .HasColumnType("text"); + + b.Property("role_lin") + .IsRequired() + .HasColumnType("text"); + + b.Property("role_name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("TeamId"); + + b.ToTable("F_Player", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.Team.T_Team", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("is_check") + .HasColumnType("boolean"); + + b.Property("logo_uri") + .IsRequired() + .HasColumnType("text"); + + b.Property("piaoshu") + .HasColumnType("integer"); + + b.Property("team_name") + .IsRequired() + .HasColumnType("text"); + + b.Property("team_password") + .IsRequired() + .HasColumnType("text"); + + b.Property("team_tel") + .IsRequired() + .HasColumnType("text"); + + b.Property("time") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("F_Team", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.comform+com_form", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Com_Cocial_media") + .IsRequired() + .HasColumnType("text"); + + b.Property("Com_qq") + .IsRequired() + .HasColumnType("text"); + + b.Property("Status") + .IsRequired() + .HasColumnType("text"); + + b.Property("UserId") + .HasColumnType("integer"); + + b.Property("comSex") + .IsRequired() + .HasColumnType("text"); + + b.Property("createTime") + .IsRequired() + .HasColumnType("text"); + + b.Property("idv_id") + .IsRequired() + .HasColumnType("text"); + + b.Property("introduction") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("F_ComForm", (string)null); + }); + + modelBuilder.Entity("asg_form.Controllers.form", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("eventsId") + .HasColumnType("integer"); + + b.Property("logo_uri") + .IsRequired() + .HasColumnType("text"); + + b.Property("piaoshu") + .HasColumnType("integer"); + + b.Property("team_name") + .IsRequired() + .HasColumnType("text"); + + b.Property("team_password") + .IsRequired() + .HasColumnType("text"); + + b.Property("team_tel") + .IsRequired() + .HasColumnType("text"); + + b.Property("time") + .HasColumnType("timestamp with time zone"); + + 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"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Common_Roles") + .HasColumnType("text"); + + b.Property("Game_Name") + .HasColumnType("text"); + + b.Property("Historical_Ranks") + .HasColumnType("integer"); + + b.Property("Id_Card") + .HasColumnType("text"); + + b.Property("Id_Card_Name") + .HasColumnType("text"); + + b.Property("Phone_Number") + .HasColumnType("text"); + + b.Property("formId") + .HasColumnType("bigint"); + + b.Property("role_id") + .IsRequired() + .HasColumnType("text"); + + b.Property("role_lin") + .IsRequired() + .HasColumnType("text"); + + b.Property("role_name") + .IsRequired() + .HasColumnType("text"); + + 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"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("chickteam") + .IsRequired() + .HasColumnType("text"); + + b.Property("teamid") + .HasColumnType("bigint"); + + b.Property("userid") + .IsRequired() + .HasColumnType("text"); + + b.Property("win") + .HasColumnType("boolean"); + + 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"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("id")); + + b.Property("belong") + .HasColumnType("text"); + + b.Property("bilibiliuri") + .HasColumnType("text"); + + b.Property("com_limit") + .HasColumnType("integer"); + + b.Property("commentary") + .IsRequired() + .HasColumnType("text"); + + b.Property("judge") + .HasColumnType("text"); + + b.Property("opentime") + .HasColumnType("timestamp with time zone"); + + b.Property("person_type") + .HasColumnType("text"); + + b.Property("referee") + .IsRequired() + .HasColumnType("text"); + + b.Property("tag") + .HasColumnType("text"); + + b.Property("team1_name") + .IsRequired() + .HasColumnType("text"); + + b.Property("team1_piaoshu") + .HasColumnType("integer"); + + b.Property("team2_name") + .IsRequired() + .HasColumnType("text"); + + b.Property("team2_piaoshu") + .HasColumnType("integer"); + + b.Property("winteam") + .HasColumnType("text"); + + b.HasKey("id"); + + b.ToTable("F_game", (string)null); + }); + + modelBuilder.Entity("asg_form.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("text"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("msg") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex"); + + b.ToTable("AspNetRoles", (string)null); + }); + + modelBuilder.Entity("asg_form.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AccessFailedCount") + .HasColumnType("integer"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("text"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("boolean"); + + b.Property("Integral") + .HasColumnType("bigint"); + + b.Property("LockoutEnabled") + .HasColumnType("boolean"); + + b.Property("LockoutEnd") + .HasColumnType("timestamp with time zone"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("PasswordHash") + .HasColumnType("text"); + + b.Property("PhoneNumber") + .HasColumnType("text"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("boolean"); + + b.Property("SecurityStamp") + .HasColumnType("text"); + + b.Property("TwoFactorEnabled") + .HasColumnType("boolean"); + + b.Property("UserBase64") + .HasColumnType("text"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("character varying(256)"); + + b.Property("chinaname") + .HasColumnType("text"); + + b.Property("haveformId") + .HasColumnType("bigint"); + + b.Property("isbooking") + .HasColumnType("boolean"); + + b.Property("myteamId") + .HasColumnType("bigint"); + + b.Property("officium") + .HasColumnType("text"); + + b.Property("point") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex"); + + b.HasIndex("haveformId"); + + b.HasIndex("myteamId"); + + b.ToTable("AspNetUsers", (string)null); + }); + + modelBuilder.Entity("asg_form.blog+blog_db", b => + { + b.Property("ID") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("ID")); + + b.Property("formuser") + .IsRequired() + .HasColumnType("text"); + + b.Property("msg") + .IsRequired() + .HasColumnType("text"); + + b.Property("pushtime") + .HasColumnType("timestamp with time zone"); + + b.Property("title") + .IsRequired() + .HasColumnType("text"); + + 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("T_TeamT_events", b => + { + b.HasOne("asg_form.Controllers.T_events", null) + .WithMany() + .HasForeignKey("EventsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("asg_form.Controllers.Team.T_Team", null) + .WithMany() + .HasForeignKey("TeamsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("asg_form.Controllers.Champion+T_Champion", b => + { + b.HasOne("asg_form.Controllers.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.Team.T_Player", b => + { + b.HasOne("asg_form.Controllers.Team.T_Team", "Team") + .WithMany("role") + .HasForeignKey("TeamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Team"); + }); + + modelBuilder.Entity("asg_form.Controllers.form", b => + { + b.HasOne("asg_form.Controllers.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.HasOne("asg_form.Controllers.Team.T_Team", "myteam") + .WithMany() + .HasForeignKey("myteamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("haveform"); + + b.Navigation("myteam"); + }); + + modelBuilder.Entity("asg_form.Controllers.Store.StoreDB", b => + { + b.Navigation("buyer"); + }); + + modelBuilder.Entity("asg_form.Controllers.T_events", b => + { + b.Navigation("forms"); + }); + + modelBuilder.Entity("asg_form.Controllers.Team.T_Team", b => + { + b.Navigation("role"); + }); + + modelBuilder.Entity("asg_form.Controllers.form", b => + { + b.Navigation("role"); + }); + + modelBuilder.Entity("asg_form.Controllers.schedule+team_game", b => + { + b.Navigation("logs"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/asg_form/Migrations/20241019054314_qqbot1.cs b/asg_form/Migrations/20241019054314_qqbot1.cs new file mode 100644 index 0000000..8e0cbbb --- /dev/null +++ b/asg_form/Migrations/20241019054314_qqbot1.cs @@ -0,0 +1,88 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace asg_form.Migrations +{ + /// + public partial class qqbot1 : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CreationTime", + table: "AspNetUsers"); + + migrationBuilder.AddColumn( + name: "com_limit", + table: "F_game", + type: "integer", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "judge", + table: "F_game", + type: "text", + nullable: true); + + migrationBuilder.AddColumn( + name: "person_type", + table: "F_game", + type: "text", + nullable: true); + + migrationBuilder.CreateTable( + name: "T_Task", + columns: table => new + { + id = table.Column(type: "bigint", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + chinaname = table.Column(type: "text", nullable: false), + createPerson = table.Column(type: "text", nullable: false), + createUserId = table.Column(type: "bigint", nullable: true), + userId = table.Column(type: "bigint", nullable: false), + taskName = table.Column(type: "text", nullable: false), + taskDescription = table.Column(type: "text", nullable: false), + status = table.Column(type: "text", nullable: false), + money = table.Column(type: "bigint", nullable: false), + createTime = table.Column(type: "text", nullable: false), + lastOperateTime = table.Column(type: "text", nullable: false), + approvalPerson = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_T_Task", x => x.id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "T_Task"); + + migrationBuilder.DropColumn( + name: "com_limit", + table: "F_game"); + + migrationBuilder.DropColumn( + name: "judge", + table: "F_game"); + + migrationBuilder.DropColumn( + name: "person_type", + table: "F_game"); + + migrationBuilder.AddColumn( + name: "CreationTime", + table: "AspNetUsers", + type: "timestamp with time zone", + nullable: false, + defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); + } + } +} diff --git a/asg_form/Migrations/IDBcontextModelSnapshot.cs b/asg_form/Migrations/IDBcontextModelSnapshot.cs index 0daeecd..430393d 100644 --- a/asg_form/Migrations/IDBcontextModelSnapshot.cs +++ b/asg_form/Migrations/IDBcontextModelSnapshot.cs @@ -351,6 +351,60 @@ namespace asg_form.Migrations b.ToTable("F_events", (string)null); }); + modelBuilder.Entity("asg_form.Controllers.TaskDB", b => + { + b.Property("id") + .ValueGeneratedOnAdd() + .HasColumnType("bigint"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("id")); + + b.Property("approvalPerson") + .IsRequired() + .HasColumnType("text"); + + b.Property("chinaname") + .IsRequired() + .HasColumnType("text"); + + b.Property("createPerson") + .IsRequired() + .HasColumnType("text"); + + b.Property("createTime") + .IsRequired() + .HasColumnType("text"); + + b.Property("createUserId") + .HasColumnType("bigint"); + + b.Property("lastOperateTime") + .IsRequired() + .HasColumnType("text"); + + b.Property("money") + .HasColumnType("bigint"); + + b.Property("status") + .IsRequired() + .HasColumnType("text"); + + b.Property("taskDescription") + .IsRequired() + .HasColumnType("text"); + + b.Property("taskName") + .IsRequired() + .HasColumnType("text"); + + b.Property("userId") + .HasColumnType("bigint"); + + b.HasKey("id"); + + b.ToTable("T_Task", (string)null); + }); + modelBuilder.Entity("asg_form.Controllers.Team.T_Player", b => { b.Property("Id") @@ -612,13 +666,22 @@ namespace asg_form.Migrations b.Property("bilibiliuri") .HasColumnType("text"); + b.Property("com_limit") + .HasColumnType("integer"); + b.Property("commentary") .IsRequired() .HasColumnType("text"); + b.Property("judge") + .HasColumnType("text"); + b.Property("opentime") .HasColumnType("timestamp with time zone"); + b.Property("person_type") + .HasColumnType("text"); + b.Property("referee") .IsRequired() .HasColumnType("text"); @@ -696,9 +759,6 @@ namespace asg_form.Migrations .IsConcurrencyToken() .HasColumnType("text"); - b.Property("CreationTime") - .HasColumnType("timestamp with time zone"); - b.Property("Email") .HasMaxLength(256) .HasColumnType("character varying(256)"); diff --git a/asg_form/Program.cs b/asg_form/Program.cs index 062a7f7..7f61a84 100644 --- a/asg_form/Program.cs +++ b/asg_form/Program.cs @@ -1,6 +1,8 @@ using asg_form; using asg_form.Controllers; using asg_form.Controllers.Hubs; +using Flandre.Adapters.OneBot.Extensions; +using Flandre.Framework; using IGeekFan.AspNetCore.Knife4jUI; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Identity; @@ -77,12 +79,43 @@ options.AddDefaultPolicy(builder => builder.WithOrigins(urls) + + +Task.Run(() => +{ + var builder1 = FlandreApp.CreateBuilder(new HostApplicationBuilderSettings + { + Args = args, + ContentRootPath = AppDomain.CurrentDomain.BaseDirectory + }); + + // 安装一个适配器,并添加在这里。 + // builder.Adapters.Add(new YourAdapter()); + builder1.Adapters.AddOneBot(builder.Configuration.GetSection("Adapters:OneBot")); + builder1.Plugins.Add(); + var app1 = builder1.Build(); + // 添加内置中间件。 + // 这些中间件保证 Flandre 的正常运转。你也可以加入自己的中间件,并灵活调整其顺序。 + app1.UseCommandSession(); + // app.UseMiddleware(async (ctx, next) => { /* ... */ }); + app1.UseCommandParser(); + app1.UseCommandInvoker(); + runbot.runbotr = app1.Bots.First(); + app1.Run(); +}); + + + + + + + + + + IServiceCollection services = builder.Services; -var eventBusSec = builder.Configuration.GetSection("EventBus"); -builder.Services.Configure(eventBusSec); -builder.Services.AddEventBus("qqbot_server", Assembly.GetExecutingAssembly()); services.AddDbContext(opt => { diff --git a/asg_form/asg_form.csproj b/asg_form/asg_form.csproj index 01b4da4..9594812 100644 --- a/asg_form/asg_form.csproj +++ b/asg_form/asg_form.csproj @@ -27,8 +27,10 @@ + + @@ -64,6 +66,7 @@ + diff --git a/asg_form/libman.json b/asg_form/libman.json new file mode 100644 index 0000000..ceee271 --- /dev/null +++ b/asg_form/libman.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "defaultProvider": "cdnjs", + "libraries": [] +} \ No newline at end of file diff --git a/asg_form/qqbot.cs b/asg_form/qqbot.cs index 8b8118a..6522880 100644 --- a/asg_form/qqbot.cs +++ b/asg_form/qqbot.cs @@ -21,45 +21,238 @@ using NPOI.SS.Formula.Functions; using Onebot.Protocol; using Onebot.Protocol.Models.Messages; using Zack.EventBus; +using Flandre.Framework.Common; +using Flandre.Framework.Routing; +using static asg_form.Controllers.InviteReferee; +using System.Net.Http.Headers; +using System.Net.Http; +using System.Text; +using Azure.Identity; +using OpenAI.Chat; +using Azure.AI.OpenAI; +using Flandre.Core.Messaging; +using Flandre.Core.Common; namespace asg_form { - [EventName("查询选手")] - public class qqbot:IIntegrationEventHandler + + public static class runbot + { + public static Bot runbotr { get; set; } + } + [EventName("查询选手")] + public class qqbot:Plugin { - private IEventBus eventBus; - public qqbot(IEventBus eventBus) + [Command] + public string 查询选手(string name) { - this.eventBus = eventBus; - } - public Task Handle(string eventName, string eventData) - { - - if (eventName == "查询选手") + try { - try - { TestDbContext ctx = new TestDbContext(); string msg = ""; - var roles = ctx.Roles.Include(a => a.form).Where(a => a.role_name.IndexOf(eventData) >= 0).ToList(); + var roles = ctx.Roles.Include(a => a.form).Where(a => a.role_name.IndexOf(name) >= 0).ToList(); foreach (var role in roles) { msg = $"{msg}\r\n姓名:{role.role_name}\r\n第五人格ID:{role.role_id}\r\n选手id:{role.Id}\r\n阵营:{role.role_lin}\r\n属于队伍:{role.form.team_name}\r\n"; } - eventBus.Publish("查询选手req",msg); - } - catch - { - - } + return msg ; + } - return Task.CompletedTask; + catch + { + return "出现错误"; + } + } + [Command] + public string 近期赛程() + { + try + { + TestDbContext testDb = new TestDbContext(); + int q = testDb.team_Games.Count(); + var a = testDb.team_Games.Where(a => a.opentime >= DateTime.Now).Take(7); + string msg = ""; + foreach (var b in a) + { + msg = $"{msg}\r\n{b.team1_name} VS {b.team2_name}\r\n时间:{b.opentime.ToString("f")}"; + } + return msg; + + + } + catch + { + return "出现错误"; + } + + } + + + [Command] + public string 查询冠军() + { + try + { + TestDbContext ctx = new TestDbContext(); + + var teams = ctx.Champions.Include(a => a.events).Include(a => a.form.role).Select(a => new { a.form, a.events, a.msg }).ToList(); + string msg = ""; + foreach (var t in teams) + { + string role = ""; + + foreach (var t2 in t.form.role) + { + role = $"{role} {t2.role_name}"; + } + msg = $"{msg}\r\n队伍名称:{t.form.team_name}\r\n队员:{role}\r\n属于:{t.events.name}\r\n简介:{t.msg}\r\n"; + } + return msg; + + + } + catch + { + return "出现错误"; + } + + } + + [Command] + public string 查询战队(string name) + { + try + { + TestDbContext ctx = new TestDbContext(); + + List teams = ctx.Forms.Include(a => a.role).Where(a => a.team_name.IndexOf(name) >= 0).ToList(); + string msg = ""; + foreach (var t in teams) + { + string role = ""; + foreach (var t2 in t.role) + { + role = $"{role} {t2.role_name}"; + } + msg = $"{msg}\r\n队伍名称:{t.team_name}\r\n队员:{role}\r\n"; + } + return msg; + + + } + catch + { + return "出现错误"; + } + + } + + + [Command] + public async Task 抱抱罗比(MessageContext ctx) + { + try + { + using(TestDbContext testDb=new TestDbContext()) + { + Random ran = new Random(); + int n = ran.Next(100, 200); + + if (!testDb.Qqusers.Any(a => a.qqid == ctx.UserId)) + { + await testDb.Qqusers.AddAsync(new qquser { qqid = ctx.UserId, money = n }); + } + else + { + var user=await testDb.Qqusers.FirstAsync(a=>a.qqid == ctx.UserId); + user.money += n; + + } + await testDb.SaveChangesAsync(); + return $"罗比很开心\r\n给你棒棒糖:{n.ToString()}个"; + } + + + + } + catch + { + return "出现错误"; + } + + } + + + [Command] + public string ai(string msg) + { + try + { + + AzureOpenAIClient azureClient = new( + new Uri("https://dashscope.aliyuncs.com/compatible-mode/v1"), + new System.ClientModel.ApiKeyCredential("sk-c6f37689f4014b5bbf5fd8b2e872d20b")); + ChatClient chatClient = azureClient.GetChatClient("qwen-turbo"); + + ChatCompletion completion = chatClient.CompleteChat( + [ + // System messages represent instructions or other guidance about how the assistant should behave + new UserChatMessage("我们来玩角色扮演接下来你是一个没有父母但很喜欢姐姐的一个小男孩"), + new UserChatMessage(msg), + ]); + + return completion.Content[0].Text; + + } + catch + { + return "出现错误"; + } + + } + + + [Command] + public string aimath(string msg) + { + try + { + + AzureOpenAIClient azureClient = new( + new Uri("https://dashscope.aliyuncs.com/compatible-mode/v1"), + new System.ClientModel.ApiKeyCredential("sk-c6f37689f4014b5bbf5fd8b2e872d20b")); + ChatClient chatClient = azureClient.GetChatClient("qwen-math-plus"); + + ChatCompletion completion = chatClient.CompleteChat( + [ + // System messages represent instructions or other guidance about how the assistant should behave + + new UserChatMessage(msg), + ]); + + return completion.Content[0].Text; + + } + catch + { + return "出现错误"; + } + + } + + + + + + + + public static bool isToday(DateTime dt) { DateTime today = DateTime.Today; @@ -73,7 +266,7 @@ namespace asg_form private async void doAt1AM(object state) { //执行功能... - + } @@ -104,55 +297,7 @@ namespace asg_form // { // try // { - // if (x.MessageChain.GetPlainMessage() == "近期赛程") - // { - // TestDbContext testDb = new TestDbContext(); - // int q = testDb.team_Games.Count(); - // var a = testDb.team_Games.Where(a => a.opentime >= DateTime.Now).Take(7); - // string msg = ""; - // foreach (var b in a) - // { - // msg = $"{msg}\r\n{b.team1_name} VS {b.team2_name}\r\n时间:{b.opentime.ToString("f")}"; - // } - // await MessageManager.SendGroupMessageAsync(x.GroupId, msg); - // } - // if (x.MessageChain.GetPlainMessage() == "后端状态") - // { - // string msg = $"CPU占用:{SystemInfo.CpuLoad.ToString("f2")}\r\n内存占用:{SystemInfo.MemoryAvailable.ToString("f2")}\r\n部署系统:{Windows.GetOsVersion()}"; - - // await MessageManager.SendGroupMessageAsync(x.GroupId, msg); - // } - // if (x.MessageChain.GetPlainMessage() == "参赛队伍") - // { - // TestDbContext testDb = new TestDbContext(); - // var team = testDb.Forms.Select(a => a.team_name); - // string msg = ""; - // foreach (var t in team) - // { - // msg = $"{msg} {t}"; - // } - // await MessageManager.SendGroupMessageAsync(x.GroupId, $"在所有比赛中有以下队伍参赛:\r\n{string.Join(" , ",team)}"); - - // } - // if (x.MessageChain.GetPlainMessage() == "查询冠军") - // { - // TestDbContext ctx = new TestDbContext(); - - // var teams = ctx.Champions.Include(a=>a.events).Include(a=>a.form.role).Select(a => new {a.form,a.events,a.msg}).ToList(); - // string msg = ""; - // foreach (var t in teams) - // { - // string role = ""; - - // foreach (var t2 in t.form.role) - // { - // role = $"{role} {t2.role_name}"; - // } - // msg = $"{msg}\r\n队伍名称:{t.form.team_name}\r\n队员:{role}\r\n属于:{t.events.name}\r\n简介:{t.msg}\r\n"; - // } - // await MessageManager.SendGroupMessageAsync(x.GroupId, $"拥有以下冠军:{msg}"); - - // } + // } // catch(Exception ex) // { diff --git a/qqbot/sendmsg.cs b/qqbot/sendmsg.cs new file mode 100644 index 0000000..ae15445 --- /dev/null +++ b/qqbot/sendmsg.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Zack.EventBus; + +namespace qqbot +{ + [EventName("查询选手req")] + internal class sendmsg : IIntegrationEventHandler + { + public Task Handle(string eventName, string eventData) + { + if (eventName == "查询选手req") + { + + } + return Task.CompletedTask; + } + } +}