移动系统liao
2025-01-26 950f32a006736bd9407bb5f73b744892b8bade2a
no message
28个文件已添加
723 ■■■■■ 已修改文件
.gitignore 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Application/CYZuoYeBenPeiSong.Application.csproj 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Application/CYZuoYeBenPeiSong.Application.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Application/GlobalUsings.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Application/System/Dtos/Mapper.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Application/System/Services/ISystemService.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Application/System/Services/SystemService.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Application/System/SystemAppService.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Application/applicationsettings.json 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Core/BaseRepository.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Core/CYZuoYeBenPeiSong.Core.csproj 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Core/CYZuoYeBenPeiSong.Core.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Core/DbContext.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Core/Startup.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Core/CYZuoYeBenPeiSong.Web.Core.csproj 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Core/CYZuoYeBenPeiSong.Web.Core.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Core/Handlers/JwtHandler.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Core/Startup.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Entry/CYZuoYeBenPeiSong.Web.Entry.csproj 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Entry/CYZuoYeBenPeiSong.Web.Entry.csproj.user 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Entry/Program.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Entry/Properties/launchSettings.json 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Entry/SingleFilePublish.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Entry/appsettings.Development.json 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.Web.Entry/appsettings.json 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CYZuoYeBenPeiSong.sln 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CyZuoYeBenPeiSong.model/CyZuoYeBenPeiSong.model.csproj 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CyZuoYeBenPeiSong.model/EC_OnlineAdviser.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
New file
@@ -0,0 +1,11 @@
.vs/
CYZuoYeBenPeiSong.Application/bin/
CYZuoYeBenPeiSong.Core/bin/
CYZuoYeBenPeiSong.Core/obj/
CyZuoYeBenPeiSong.model/bin/
CyZuoYeBenPeiSong.model/obj/
CYZuoYeBenPeiSong.Web.Core/bin/
CYZuoYeBenPeiSong.Web.Core/obj/
CYZuoYeBenPeiSong.Web.Entry/bin/
CYZuoYeBenPeiSong.Web.Entry/obj/
CYZuoYeBenPeiSong.Application/obj/
CYZuoYeBenPeiSong.Application/CYZuoYeBenPeiSong.Application.csproj
New file
@@ -0,0 +1,33 @@
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <NoWarn>1701;1702;1591</NoWarn>
        <DocumentationFile>CYZuoYeBenPeiSong.Application.xml</DocumentationFile>
        <ImplicitUsings>enable</ImplicitUsings>
    </PropertyGroup>
    <ItemGroup>
        <None Remove="applicationsettings.json" />
        <None Remove="CYZuoYeBenPeiSong.Application.xml" />
    </ItemGroup>
    <ItemGroup>
        <Content Include="applicationsettings.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </Content>
    </ItemGroup>
    <ItemGroup>
        <ProjectReference Include="..\CYZuoYeBenPeiSong.Core\CYZuoYeBenPeiSong.Core.csproj" />
        <ProjectReference Include="..\CyZuoYeBenPeiSong.model\CyZuoYeBenPeiSong.model.csproj" />
    </ItemGroup>
    <ItemGroup>
        <Folder Include="System\Services\" />
    </ItemGroup>
</Project>
CYZuoYeBenPeiSong.Application/CYZuoYeBenPeiSong.Application.xml
New file
@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>CYZuoYeBenPeiSong.Application</name>
    </assembly>
    <members>
        <member name="T:CYZuoYeBenPeiSong.Application.SystemAppService">
            <summary>
            系统服务接口
            </summary>
        </member>
        <member name="M:CYZuoYeBenPeiSong.Application.SystemAppService.GetDescription">
            <summary>
            获取系统描述
            </summary>
            <returns></returns>
        </member>
    </members>
</doc>
CYZuoYeBenPeiSong.Application/GlobalUsings.cs
New file
@@ -0,0 +1,15 @@
global using Furion;
global using Furion.DataEncryption;
global using Furion.DataValidation;
global using Furion.DependencyInjection;
global using Furion.DynamicApiController;
global using Furion.Extensions;
global using Furion.FriendlyException;
global using Furion.Logging;
global using Mapster;
global using Microsoft.AspNetCore.Authorization;
global using Microsoft.AspNetCore.Http;
global using Microsoft.AspNetCore.Mvc;
global using Microsoft.CodeAnalysis;
global using System.ComponentModel.DataAnnotations;
global using SqlSugar;
CYZuoYeBenPeiSong.Application/System/Dtos/Mapper.cs
New file
@@ -0,0 +1,8 @@
namespace CYZuoYeBenPeiSong.Application;
public class Mapper : IRegister
{
    public void Register(TypeAdapterConfig config)
    {
    }
}
CYZuoYeBenPeiSong.Application/System/Services/ISystemService.cs
New file
@@ -0,0 +1,6 @@
namespace CYZuoYeBenPeiSong.Application;
public interface ISystemService
{
    string GetDescription();
}
CYZuoYeBenPeiSong.Application/System/Services/SystemService.cs
New file
@@ -0,0 +1,9 @@
namespace CYZuoYeBenPeiSong.Application;
public class SystemService : ISystemService, ITransient
{
    public string GetDescription()
    {
        return "让 .NET 开发更简单,更通用,更流行。";
    }
}
CYZuoYeBenPeiSong.Application/System/SystemAppService.cs
New file
@@ -0,0 +1,29 @@
using CyZuoYeBenPeiSong.model;
namespace CYZuoYeBenPeiSong.Application;
/// <summary>
/// 系统服务接口
/// </summary>
public class SystemAppService : IDynamicApiController
{
    private readonly ISystemService _systemService;
    private readonly ISqlSugarClient _unitOfWork;
    public SystemAppService(ISystemService systemService )
    {
        _systemService = systemService;
        //_unitOfWork = sugarUnitOfWork;
    }
    /// <summary>
    /// 获取系统描述
    /// </summary>
    /// <returns></returns>
    public string GetDescription()
    {
        var unitOfWork = App.GetService<ISqlSugarClient>();//用手动获取方式支持切换仓储
        var a= unitOfWork.Queryable<EC_OnlineAdviser>().ToList();
        return _systemService.GetDescription();
    }
}
CYZuoYeBenPeiSong.Application/applicationsettings.json
New file
@@ -0,0 +1,31 @@
{
  "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
  "SpecificationDocumentSettings": {
    "DocumentTitle": "Furion | 规范化接口",
    "GroupOpenApiInfos": [
      {
        "Group": "Default",
        "Title": "规范化接口演示",
        "Description": "让 .NET 开发更简单,更通用,更流行。",
        "Version": "1.0.0",
        "TermsOfService": "https://furion.net",
        "Contact": {
          "Name": "百小僧",
          "Url": "https://gitee.com/monksoul",
          "Email": "monksoul@outlook.com"
        },
        "License": {
          "Name": "Apache-2.0",
          "Url": "https://gitee.com/dotnetchina/Furion/blob/rc1/LICENSE"
        }
      }
    ]
  },
  "CorsAccessorSettings": {
    "WithExposedHeaders": [
      "access-token",
      "x-access-token",
      "environment"
    ]
  }
}
CYZuoYeBenPeiSong.Core/BaseRepository.cs
New file
@@ -0,0 +1,98 @@
using Furion;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;
namespace CYZuoYeBenPeiSong.Core
{
    /// <summary>
    /// 仓储类,使用方式只需要继承就行
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class BaseRepository<T> : SimpleClient<T> where T : class, new()
    {
        public BaseRepository(ISqlSugarClient context = null) : base(context)//默认值等于null不能少
        {
            base.Context = App.GetService<ISqlSugarClient>();//用手动获取方式支持切换仓储
        }
        ///// <summary>
        ///// 重写更新方法
        ///// </summary>
        ///// <param name="updateObj"></param>
        ///// <returns></returns>
        //public Task<bool> EzUpdateAsync(T updateObj)
        //{
        //    var intbs = updateObj as BaseModelBase;
        //    if (intbs != null)
        //    {
        //        intbs.UpDataBy = GetJwtBy();
        //        intbs.UpDataTime = DateTime.Now;
        //    }
        //    return base.UpdateAsync(updateObj);
        //}
        ///// <summary>
        ///// 异步插入
        ///// </summary>
        ///// <param name="insertObj"></param>
        ///// <returns></returns>
        //public Task<bool> EzInsertAsync(T insertObj)
        //{
        //    var intbs = insertObj as BaseModelBase;
        //    if (intbs != null)
        //    {
        //        intbs.CreateBy = GetJwtBy();
        //        intbs.CreateTime = DateTime.Now;
        //    }
        //    return base.InsertAsync(insertObj);
        //}
        ///// <summary>
        ///// 重写插入
        ///// </summary>
        ///// <param name="insertObj"></param>
        ///// <returns></returns>
        //public T EzInsertReturnEntity(T insertObj)
        //{
        //    var intbs = insertObj as BaseModelBase;
        //    if (intbs != null)
        //    {
        //        intbs.CreateBy = GetJwtBy();
        //        intbs.CreateTime = DateTime.Now;
        //    }
        //    return base.InsertReturnEntity(insertObj);
        //}
        ///// <summary>
        ///// 异步插入
        ///// </summary>
        ///// <param name="insertObj"></param>
        ///// <returns></returns>
        //public Task<int> EzInsertReturnIdentityAsync(T insertObj)
        //{
        //    var intbs = insertObj as BaseModelBase;
        //    if (intbs != null)
        //    {
        //        intbs.CreateBy = GetJwtBy();
        //        intbs.CreateTime = DateTime.Now;
        //    }
        //    return base.InsertReturnIdentityAsync(insertObj);
        //}
        /// <summary>
        /// 获取用户姓名和ID
        /// </summary>
        /// <returns></returns>
        private string GetJwtBy()
        {
            return (App.User?.FindFirstValue("UserID") ?? "") + "|" + (App.User?.FindFirstValue("NickName") ?? "系统自主处理");
        }
    }
}
CYZuoYeBenPeiSong.Core/CYZuoYeBenPeiSong.Core.csproj
New file
@@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <NoWarn>1701;1702;1591</NoWarn>
        <DocumentationFile>CYZuoYeBenPeiSong.Core.xml</DocumentationFile>
    </PropertyGroup>
    <ItemGroup>
        <None Remove="CYZuoYeBenPeiSong.Core.xml" />
    </ItemGroup>
    <ItemGroup>
        <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.5.15" />
        <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.5.15" />
        <PackageReference Include="Furion.Pure" Version="4.9.5.15" />
        <PackageReference Include="SqlSugarCore" Version="5.1.4.169" />
    </ItemGroup>
</Project>
CYZuoYeBenPeiSong.Core/CYZuoYeBenPeiSong.Core.xml
New file
@@ -0,0 +1,30 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>CYZuoYeBenPeiSong.Core</name>
    </assembly>
    <members>
        <member name="T:CYZuoYeBenPeiSong.Core.BaseRepository`1">
            <summary>
            仓储类,使用方式只需要继承就行
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:CYZuoYeBenPeiSong.Core.BaseRepository`1.GetJwtBy">
            <summary>
            获取用户姓名和ID
            </summary>
            <returns></returns>
        </member>
        <member name="T:CYZuoYeBenPeiSong.Core.DbContext">
            <summary>
            数据库上下文对象
            </summary>
        </member>
        <member name="F:CYZuoYeBenPeiSong.Core.DbContext.Instance">
            <summary>
            SqlSugar 数据库实例
            </summary>
        </member>
    </members>
</doc>
CYZuoYeBenPeiSong.Core/DbContext.cs
New file
@@ -0,0 +1,23 @@
using Furion;
using SqlSugar;
using System.Collections.Generic;
namespace CYZuoYeBenPeiSong.Core;
/// <summary>
/// 数据库上下文对象
/// </summary>
public static class DbContext
{
    /// <summary>
    /// SqlSugar 数据库实例
    /// </summary>
    public static readonly SqlSugarScope Instance = new(
        // 读取 appsettings.json 中的 ConnectionConfigs 配置节点
        App.GetConfig<List<ConnectionConfig>>("ConnectionConfigs")
        , db =>
        {
            // 这里配置全局事件,比如拦截执行 SQL
            var a = 1;
        });
}
CYZuoYeBenPeiSong.Core/Startup.cs
New file
@@ -0,0 +1,86 @@

using Furion;
using Furion.Logging.Extensions;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace CYZuoYeBenPeiSong.Core
{
    public class Startup : AppStartup
    {
        //使用sqlsugar 数据库连接库
        public void ConfigureServices(IServiceCollection services)
        {
            var configConnection = App.GetConfig<List<ConnectionConfig>>("DbConnect");
            services.AddSingleton<ISqlSugarClient>(s =>
            {
                SqlSugarScope sqlSugar = new SqlSugarScope(configConnection,
               db =>
               {
                   db.CurrentConnectionConfig.ConfigureExternalServices = new ConfigureExternalServices()
                   {
                       //判断是否开启redis设置二级缓存方式
                       //DataInfoCacheService = new SqlSugarRedisCache(),
                       //模型定义为 int?号时自动为可空
                       EntityService = (c, p) =>
                       {
                           /***高版C#写法***/
                           //支持string?和string
                           if (p.IsPrimarykey == false && new NullabilityInfoContext()
                            .Create(c).WriteState is NullabilityState.Nullable)
                           {
                               p.IsNullable = true;
                           }
                       }
                   };
                   db.CurrentConnectionConfig.MoreSettings = new ConnMoreSettings()
                   {
                       //所有 增、删 、改 会自动调用.RemoveDataCache()清理二级缓存
                       IsAutoRemoveDataCache = true
                   };
                   db.Aop.OnError = (exp) =>
                   {
                       $"数据库执行错误了:{exp}".LogInformation();
                       //   NlogUtil.WriteFileLog(NLog.LogLevel.Error, LogType.Other, "SqlSugar", "执行SQL错误事件", exp);
                   };
                   //单例参数配置,所有上下文生效
                   //db.Aop.OnLogExecuting = (sql, pars) =>
                   //{
                   //    //获取作IOC作用域对象
                   //  //  var appServive = s.GetService<IHttpContextAccessor>();
                   //   // var obj = appServive?.HttpContext?.RequestServices.GetService<Log>();
                   // //   Console.WriteLine("AOP" + obj.GetHashCode());
                   //};
               });
                //sqlSugar.DbMaintenance.CreateDatabase();
                //Type[]? types = DbCoreUntil.DbCodeFirstModes("EzCoreNetFurion.Model", thisAttribute: typeof(CoderFirstAttribute));
                //sqlSugar.CodeFirst.InitTables(types ?? new Type[] { });
                return sqlSugar;
            });
        }
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
        }
    }
}
CYZuoYeBenPeiSong.Web.Core/CYZuoYeBenPeiSong.Web.Core.csproj
New file
@@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <NoWarn>1701;1702;1591</NoWarn>
        <DocumentationFile>CYZuoYeBenPeiSong.Web.Core.xml</DocumentationFile>
    </PropertyGroup>
    <ItemGroup>
        <None Remove="CYZuoYeBenPeiSong.Web.Core.xml" />
    </ItemGroup>
    <ItemGroup>
        <ProjectReference Include="..\CYZuoYeBenPeiSong.Application\CYZuoYeBenPeiSong.Application.csproj" />
    </ItemGroup>
</Project>
CYZuoYeBenPeiSong.Web.Core/CYZuoYeBenPeiSong.Web.Core.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>CYZuoYeBenPeiSong.Web.Core</name>
    </assembly>
    <members>
    </members>
</doc>
CYZuoYeBenPeiSong.Web.Core/Handlers/JwtHandler.cs
New file
@@ -0,0 +1,16 @@
using Furion.Authorization;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using System.Threading.Tasks;
namespace CYZuoYeBenPeiSong.Web.Core;
public class JwtHandler : AppAuthorizeHandler
{
    public override Task<bool> PipelineAsync(AuthorizationHandlerContext context, DefaultHttpContext httpContext)
    {
        // 这里写您的授权判断逻辑,授权通过返回 true,否则返回 false
        return Task.FromResult(true);
    }
}
CYZuoYeBenPeiSong.Web.Core/Startup.cs
New file
@@ -0,0 +1,47 @@
using CYZuoYeBenPeiSong.Core;
using Furion;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using SqlSugar;
namespace CYZuoYeBenPeiSong.Web.Core;
public class Startup : AppStartup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddConsoleFormatter();
        services.AddJwt<JwtHandler>();
        services.AddCorsAccessor();
        services.AddControllers()
                .AddInjectWithUnifyResult();
    }
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseHttpsRedirection();
        app.UseRouting();
        app.UseCorsAccessor();
        app.UseAuthentication();
        app.UseAuthorization();
        app.UseInject(string.Empty);
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });
    }
}
CYZuoYeBenPeiSong.Web.Entry/CYZuoYeBenPeiSong.Web.Entry.csproj
New file
@@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
    <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
        <PublishReadyToRunComposite>true</PublishReadyToRunComposite>
    </PropertyGroup>
    <ItemGroup>
        <ProjectReference Include="..\CYZuoYeBenPeiSong.Web.Core\CYZuoYeBenPeiSong.Web.Core.csproj" />
    </ItemGroup>
    <ProjectExtensions>
        <VisualStudio>
            <UserProperties properties_4launchsettings_1json__JsonSchema="" />
        </VisualStudio>
    </ProjectExtensions>
</Project>
CYZuoYeBenPeiSong.Web.Entry/CYZuoYeBenPeiSong.Web.Entry.csproj.user
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
  </PropertyGroup>
  <PropertyGroup>
    <ActiveDebugProfile>CYZuoYeBenPeiSong.Web.Entry</ActiveDebugProfile>
  </PropertyGroup>
</Project>
CYZuoYeBenPeiSong.Web.Entry/Program.cs
New file
@@ -0,0 +1 @@
Serve.Run(RunOptions.Default.WithArgs(args));
CYZuoYeBenPeiSong.Web.Entry/Properties/launchSettings.json
New file
@@ -0,0 +1,31 @@
{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:53785",
      "sslPort": 44342
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "CYZuoYeBenPeiSong.Web.Entry": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "launchUrl": "",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}
CYZuoYeBenPeiSong.Web.Entry/SingleFilePublish.cs
New file
@@ -0,0 +1,22 @@
using Furion;
using System.Reflection;
namespace CYZuoYeBenPeiSong.Web.Entry;
public class SingleFilePublish : ISingleFilePublish
{
    public Assembly[] IncludeAssemblies()
    {
        return Array.Empty<Assembly>();
    }
    public string[] IncludeAssemblyNames()
    {
        return new[]
        {
            "CYZuoYeBenPeiSong.Application",
            "CYZuoYeBenPeiSong.Core",
            "CYZuoYeBenPeiSong.Web.Core"
        };
    }
}
CYZuoYeBenPeiSong.Web.Entry/appsettings.Development.json
New file
@@ -0,0 +1,10 @@
{
  "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning",
      "Microsoft.EntityFrameworkCore": "Information"
    }
  }
}
CYZuoYeBenPeiSong.Web.Entry/appsettings.json
New file
@@ -0,0 +1,38 @@
{
  "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning",
      "Microsoft.EntityFrameworkCore": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionConfigs": [
    {
      "ConnectionString": "Server=118.123.213.60;Database=ECTEST; User ID=sa;Password=123qwe!@#;",
      "DbType": "SqlServer", // "SqlServer" ,mysql,
      "IsAutoCloseConnection": true
    }
  ],
  "DbConnect": [
    {
      "ConfigId": "default", //多库配置ID
      "ConnectionString": "Server=118.123.213.60;Database=ECTEST; User ID=sa;Password=123qwe!@#; Encrypt=True;TrustServerCertificate=True;",
      "DbType": "SqlServer", // "SqlServer" ,mysql,
      "IsAutoCloseConnection": true
    }
    //,
    //{
    //  "ConfigId": "1", //多库配置ID
    //  "ConnectionString": "Server=MS-FSEUTNLCXFDB\\SQLEXPRESS;Database=EzCoreDb; MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;integrated security=True;",
    //  "DbType": "SqlServer", // "SqlServer" ,mysql,
    //  "IsAutoCloseConnection": true
    //}
  ]
}
CYZuoYeBenPeiSong.sln
New file
@@ -0,0 +1,49 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32519.111
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CYZuoYeBenPeiSong.Application", "CYZuoYeBenPeiSong.Application\CYZuoYeBenPeiSong.Application.csproj", "{AB699EE9-43A8-46F2-A855-04A26DE63372}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CYZuoYeBenPeiSong.Web.Core", "CYZuoYeBenPeiSong.Web.Core\CYZuoYeBenPeiSong.Web.Core.csproj", "{9D14BB78-DA2A-4040-B9DB-5A515B599181}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CYZuoYeBenPeiSong.Core", "CYZuoYeBenPeiSong.Core\CYZuoYeBenPeiSong.Core.csproj", "{4FB30091-15C7-4FD9-AB7D-266814F360F5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CYZuoYeBenPeiSong.Web.Entry", "CYZuoYeBenPeiSong.Web.Entry\CYZuoYeBenPeiSong.Web.Entry.csproj", "{C8D99F52-EDC7-411F-8300-6DB14BF59E8C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CyZuoYeBenPeiSong.model", "CyZuoYeBenPeiSong.model\CyZuoYeBenPeiSong.model.csproj", "{64B70280-D571-494F-9DD0-CE274C3C5B44}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {AB699EE9-43A8-46F2-A855-04A26DE63372}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {AB699EE9-43A8-46F2-A855-04A26DE63372}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {AB699EE9-43A8-46F2-A855-04A26DE63372}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {AB699EE9-43A8-46F2-A855-04A26DE63372}.Release|Any CPU.Build.0 = Release|Any CPU
        {9D14BB78-DA2A-4040-B9DB-5A515B599181}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {9D14BB78-DA2A-4040-B9DB-5A515B599181}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {9D14BB78-DA2A-4040-B9DB-5A515B599181}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {9D14BB78-DA2A-4040-B9DB-5A515B599181}.Release|Any CPU.Build.0 = Release|Any CPU
        {4FB30091-15C7-4FD9-AB7D-266814F360F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {4FB30091-15C7-4FD9-AB7D-266814F360F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {4FB30091-15C7-4FD9-AB7D-266814F360F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {4FB30091-15C7-4FD9-AB7D-266814F360F5}.Release|Any CPU.Build.0 = Release|Any CPU
        {C8D99F52-EDC7-411F-8300-6DB14BF59E8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {C8D99F52-EDC7-411F-8300-6DB14BF59E8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {C8D99F52-EDC7-411F-8300-6DB14BF59E8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {C8D99F52-EDC7-411F-8300-6DB14BF59E8C}.Release|Any CPU.Build.0 = Release|Any CPU
        {64B70280-D571-494F-9DD0-CE274C3C5B44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {64B70280-D571-494F-9DD0-CE274C3C5B44}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {64B70280-D571-494F-9DD0-CE274C3C5B44}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {64B70280-D571-494F-9DD0-CE274C3C5B44}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {B2073C2C-0FD3-452B-8047-8134D68E12CE}
    EndGlobalSection
EndGlobal
CyZuoYeBenPeiSong.model/CyZuoYeBenPeiSong.model.csproj
New file
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\CYZuoYeBenPeiSong.Core\CYZuoYeBenPeiSong.Core.csproj" />
  </ItemGroup>
</Project>
CyZuoYeBenPeiSong.model/EC_OnlineAdviser.cs
New file
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CyZuoYeBenPeiSong.model
{
    public class EC_OnlineAdviser
    {
        /// <summary>
        /// 标题
        /// </summary>
        public  string Title { get; set; }
    }
}