diff --git a/WebFirst/database/sqlite.db b/WebFirst/database/sqlite.db
index 07b8ee12..df70988a 100644
Binary files a/WebFirst/database/sqlite.db and b/WebFirst/database/sqlite.db differ
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml
index 92d0af2b..d92fa4c9 100644
--- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Config/SwaggerDoc.xml
@@ -4,62 +4,6 @@
Yi.Framework.ApiMicroservice
-
-
- 账户管理
-
-
-
-
- 重置管理员CC的密码
-
-
-
-
-
- 没啥说,登录
-
-
-
-
-
-
- 没啥说,注册
-
-
-
-
-
-
- 没啥说,登出
-
-
-
-
-
- 通过已登录的用户获取用户信息
-
-
-
-
-
- 获取当前登录用户的前端路由
-
-
-
-
-
- 自己更新密码
-
-
-
-
-
-
- 验证码
-
-
-
动态条件分页查询
@@ -206,6 +150,62 @@
+
+
+ 账户管理
+
+
+
+
+ 重置管理员CC的密码
+
+
+
+
+
+ 没啥说,登录
+
+
+
+
+
+
+ 没啥说,注册
+
+
+
+
+
+
+ 没啥说,登出
+
+
+
+
+
+ 通过已登录的用户获取用户信息
+
+
+
+
+
+ 获取当前登录用户的前端路由
+
+
+
+
+
+ 自己更新密码
+
+
+
+
+
+
+ 验证码
+
+
+
动态条件分页查询
@@ -441,6 +441,70 @@
+
+
+ 用户管理
+
+
+
+
+ 动态条件分页查询
+
+
+
+
+
+
+
+
+ 更改用户状态
+
+
+
+
+
+
+
+ 给多用户设置多角色
+
+
+
+
+
+
+ 通过用户id得到用户信息关联部门、岗位、角色
+
+
+
+
+
+
+ 更新用户信息
+
+
+
+
+
+
+ 更新个人中心信息
+
+
+
+
+
+
+ 添加用户
+
+
+
+
+
+
+ 重置密码
+
+
+
+
测试控制器
@@ -562,69 +626,5 @@
-
-
- 用户管理
-
-
-
-
- 动态条件分页查询
-
-
-
-
-
-
-
-
- 更改用户状态
-
-
-
-
-
-
-
- 给多用户设置多角色
-
-
-
-
-
-
- 通过用户id得到用户信息关联部门、岗位、角色
-
-
-
-
-
-
- 更新用户信息
-
-
-
-
-
-
- 更新个人中心信息
-
-
-
-
-
-
- 添加用户
-
-
-
-
-
-
- 重置密码
-
-
-
-
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ArticleController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Article/ArticleController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ArticleController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Article/ArticleController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/CategoryController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/CategoryController.cs
new file mode 100644
index 00000000..cc47f38f
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/CategoryController.cs
@@ -0,0 +1,28 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Yi.Framework.Common.Models;
+using Yi.Framework.Interface;
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+using Yi.Framework.WebCore;
+using Yi.Framework.WebCore.AttributeExtend;
+using Yi.Framework.WebCore.AuthorizationPolicy;
+
+namespace Yi.Framework.ApiMicroservice.Controllers
+{
+ [ApiController]
+ [Route("api/[controller]/[action]")]
+ public class CategoryController : BaseCrudController
+ {
+ private ICategoryService _iCategoryService;
+ public CategoryController(ILogger logger, ICategoryService iCategoryService) : base(logger, iCategoryService)
+ {
+ _iCategoryService = iCategoryService;
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SkuController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SkuController.cs
new file mode 100644
index 00000000..22a37906
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SkuController.cs
@@ -0,0 +1,28 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Yi.Framework.Common.Models;
+using Yi.Framework.Interface;
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+using Yi.Framework.WebCore;
+using Yi.Framework.WebCore.AttributeExtend;
+using Yi.Framework.WebCore.AuthorizationPolicy;
+
+namespace Yi.Framework.ApiMicroservice.Controllers
+{
+ [ApiController]
+ [Route("api/[controller]/[action]")]
+ public class SkuController : BaseCrudController
+ {
+ private ISkuService _iSkuService;
+ public SkuController(ILogger logger, ISkuService iSkuService) : base(logger, iSkuService)
+ {
+ _iSkuService = iSkuService;
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsController.cs
new file mode 100644
index 00000000..c31c4c91
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsController.cs
@@ -0,0 +1,28 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Yi.Framework.Common.Models;
+using Yi.Framework.Interface;
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+using Yi.Framework.WebCore;
+using Yi.Framework.WebCore.AttributeExtend;
+using Yi.Framework.WebCore.AuthorizationPolicy;
+
+namespace Yi.Framework.ApiMicroservice.Controllers
+{
+ [ApiController]
+ [Route("api/[controller]/[action]")]
+ public class SpecsController : BaseCrudController
+ {
+ private ISpecsService _iSpecsService;
+ public SpecsController(ILogger logger, ISpecsService iSpecsService) : base(logger, iSpecsService)
+ {
+ _iSpecsService = iSpecsService;
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsGroupController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsGroupController.cs
new file mode 100644
index 00000000..8e65d62e
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpecsGroupController.cs
@@ -0,0 +1,28 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Yi.Framework.Common.Models;
+using Yi.Framework.Interface;
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+using Yi.Framework.WebCore;
+using Yi.Framework.WebCore.AttributeExtend;
+using Yi.Framework.WebCore.AuthorizationPolicy;
+
+namespace Yi.Framework.ApiMicroservice.Controllers
+{
+ [ApiController]
+ [Route("api/[controller]/[action]")]
+ public class SpecsGroupController : BaseCrudController
+ {
+ private ISpecsGroupService _iSpecsGroupService;
+ public SpecsGroupController(ILogger logger, ISpecsGroupService iSpecsGroupService) : base(logger, iSpecsGroupService)
+ {
+ _iSpecsGroupService = iSpecsGroupService;
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpuController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpuController.cs
new file mode 100644
index 00000000..e16727d2
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/Shop/SpuController.cs
@@ -0,0 +1,28 @@
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Yi.Framework.Common.Models;
+using Yi.Framework.Interface;
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+using Yi.Framework.WebCore;
+using Yi.Framework.WebCore.AttributeExtend;
+using Yi.Framework.WebCore.AuthorizationPolicy;
+
+namespace Yi.Framework.ApiMicroservice.Controllers
+{
+ [ApiController]
+ [Route("api/[controller]/[action]")]
+ public class SpuController : BaseCrudController
+ {
+ private ISpuService _iSpuService;
+ public SpuController(ILogger logger, ISpuService iSpuService) : base(logger, iSpuService)
+ {
+ _iSpuService = iSpuService;
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/AccountController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/AccountController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/AccountController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/AccountController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ConfigController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/ConfigController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/ConfigController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/ConfigController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/DeptController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/DeptController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/DeptController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/DeptController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/DictionaryController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/DictionaryController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/DictionaryController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/DictionaryController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/DictionaryInfoController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/DictionaryInfoController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/DictionaryInfoController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/DictionaryInfoController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/FileController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/FileController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/FileController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/FileController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/LogController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/LogController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/LogController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/LogController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/LoginLogController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/LoginLogController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/LoginLogController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/LoginLogController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/MenuController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/MenuController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/MenuController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/MenuController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/OnlineController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/OnlineController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/OnlineController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/OnlineController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/OperationLogController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/OperationLogController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/OperationLogController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/OperationLogController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/PostController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/PostController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/PostController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/PostController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RoleController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/RoleController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/RoleController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/RoleController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/UserController.cs b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/UserController.cs
similarity index 100%
rename from Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/UserController.cs
rename to Yi.Framework.Net6/Yi.Framework.ApiMicroservice/Controllers/System/UserController.cs
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.json b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.json
index 07cf237d..0278d8e5 100644
--- a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.json
+++ b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/appsettings.json
@@ -12,8 +12,8 @@
"SqlLog_Enable": false,
"Consul_Enabled": false,
- "DbCodeFirst_Enabled": false,
- "DbSeed_Enabled": false,
+ "DbCodeFirst_Enabled": true,
+ "DbSeed_Enabled": true,
"Apollo_Enabled": false,
"HealthCheck_Enabled": false,
"RabbitMQ_Enabled": false,
diff --git a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db
index ce7018e8..326eb9ab 100644
Binary files a/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db and b/Yi.Framework.Net6/Yi.Framework.ApiMicroservice/yi-sqlsugar-dev.db differ
diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ICategoryService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ICategoryService.cs
new file mode 100644
index 00000000..88833ca8
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ICategoryService.cs
@@ -0,0 +1,9 @@
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+
+namespace Yi.Framework.Interface
+{
+ public partial interface ICategoryService:IBaseService
+ {
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISkuService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISkuService.cs
new file mode 100644
index 00000000..5adf4d8f
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISkuService.cs
@@ -0,0 +1,9 @@
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+
+namespace Yi.Framework.Interface
+{
+ public partial interface ISkuService:IBaseService
+ {
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISpecsGroupService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISpecsGroupService.cs
new file mode 100644
index 00000000..f7bb04e6
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISpecsGroupService.cs
@@ -0,0 +1,9 @@
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+
+namespace Yi.Framework.Interface
+{
+ public partial interface ISpecsGroupService:IBaseService
+ {
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISpecsService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISpecsService.cs
new file mode 100644
index 00000000..174689d2
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISpecsService.cs
@@ -0,0 +1,9 @@
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+
+namespace Yi.Framework.Interface
+{
+ public partial interface ISpecsService:IBaseService
+ {
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISpuService.cs b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISpuService.cs
new file mode 100644
index 00000000..774a4cab
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Interface/IServiceTemplate/ISpuService.cs
@@ -0,0 +1,9 @@
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+
+namespace Yi.Framework.Interface
+{
+ public partial interface ISpuService:IBaseService
+ {
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/CategoryEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/CategoryEntity.cs
new file mode 100644
index 00000000..b5f24ae3
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Model/CategoryEntity.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json.Serialization;
+using SqlSugar;
+namespace Yi.Framework.Model.Models
+{
+ ///
+ /// 商品分类表
+ ///
+ public partial class CategoryEntity:IBaseModelEntity
+ {
+ [SugarColumn(IsIgnore = true)]
+ public List Children { get; set; }
+
+
+ [Navigate(NavigateType.OneToMany,nameof(SpecsGroupEntity.CategoryId))]
+ public List SpecsGroups { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/CategoryEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/CategoryEntity.cs
new file mode 100644
index 00000000..16131d5e
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/CategoryEntity.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json.Serialization;
+using SqlSugar;
+namespace Yi.Framework.Model.Models
+{
+ ///
+ /// 商品分类表
+ ///
+ [SugarTable("Category")]
+ public partial class CategoryEntity:IBaseModelEntity
+ {
+ public CategoryEntity()
+ {
+ this.CreateTime = DateTime.Now;
+ }
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [SugarColumn(ColumnName="Id" ,IsPrimaryKey = true )]
+ public long Id { get; set; }
+ ///
+ /// 父级id
+ ///
+ [SugarColumn(ColumnName="ParentId" )]
+ public long? ParentId { get; set; }
+ ///
+ /// 分类名称
+ ///
+ [SugarColumn(ColumnName="CategoryName" )]
+ public string CategoryName { get; set; }
+ ///
+ /// 创建者
+ ///
+ [SugarColumn(ColumnName="CreateUser" )]
+ public long? CreateUser { get; set; }
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName="CreateTime" )]
+ public DateTime? CreateTime { get; set; }
+ ///
+ /// 修改者
+ ///
+ [SugarColumn(ColumnName="ModifyUser" )]
+ public long? ModifyUser { get; set; }
+ ///
+ /// 修改时间
+ ///
+ [SugarColumn(ColumnName="ModifyTime" )]
+ public DateTime? ModifyTime { get; set; }
+ ///
+ /// 是否删除
+ ///
+ [SugarColumn(ColumnName="IsDeleted" )]
+ public bool? IsDeleted { get; set; }
+ ///
+ /// 租户Id
+ ///
+ [SugarColumn(ColumnName="TenantId" )]
+ public long? TenantId { get; set; }
+ ///
+ /// 排序字段
+ ///
+ [SugarColumn(ColumnName="OrderNum" )]
+ public int? OrderNum { get; set; }
+ ///
+ /// 描述
+ ///
+ [SugarColumn(ColumnName="Remark" )]
+ public string? Remark { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SkuEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SkuEntity.cs
new file mode 100644
index 00000000..76e374eb
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SkuEntity.cs
@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json.Serialization;
+using SqlSugar;
+namespace Yi.Framework.Model.Models
+{
+ ///
+ /// Sku表
+ ///
+ [SugarTable("Sku")]
+ public partial class SkuEntity:IBaseModelEntity
+ {
+ public SkuEntity()
+ {
+ this.CreateTime = DateTime.Now;
+ }
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [SugarColumn(ColumnName="Id" ,IsPrimaryKey = true )]
+ public long Id { get; set; }
+ ///
+ /// SpuId
+ ///
+ [SugarColumn(ColumnName="SpuId" )]
+ public long? SpuId { get; set; }
+ ///
+ /// 库存
+ ///
+ [SugarColumn(ColumnName="Stock" )]
+ public int? Stock { get; set; }
+ ///
+ /// 价格
+ ///
+ [SugarColumn(ColumnName="Price" )]
+ public int? Price { get; set; }
+
+ ///
+ /// 创建者
+ ///
+ [SugarColumn(ColumnName="CreateUser" )]
+ public long? CreateUser { get; set; }
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName="CreateTime" )]
+ public DateTime? CreateTime { get; set; }
+ ///
+ /// 修改者
+ ///
+ [SugarColumn(ColumnName="ModifyUser" )]
+ public long? ModifyUser { get; set; }
+ ///
+ /// 修改时间
+ ///
+ [SugarColumn(ColumnName="ModifyTime" )]
+ public DateTime? ModifyTime { get; set; }
+ ///
+ /// 是否删除
+ ///
+ [SugarColumn(ColumnName="IsDeleted" )]
+ public bool? IsDeleted { get; set; }
+ ///
+ /// 租户Id
+ ///
+ [SugarColumn(ColumnName="TenantId" )]
+ public long? TenantId { get; set; }
+ ///
+ /// 排序字段
+ ///
+ [SugarColumn(ColumnName="OrderNum" )]
+ public int? OrderNum { get; set; }
+ ///
+ /// 描述
+ ///
+ [SugarColumn(ColumnName="Remark" )]
+ public string? Remark { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SpecsEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SpecsEntity.cs
new file mode 100644
index 00000000..a5b0c161
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SpecsEntity.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json.Serialization;
+using SqlSugar;
+namespace Yi.Framework.Model.Models
+{
+ ///
+ /// 商品规格表
+ ///
+ [SugarTable("Specs")]
+ public partial class SpecsEntity:IBaseModelEntity
+ {
+ public SpecsEntity()
+ {
+ this.CreateTime = DateTime.Now;
+ }
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [SugarColumn(ColumnName="Id" ,IsPrimaryKey = true )]
+ public long Id { get; set; }
+ ///
+ /// 商品规格组id
+ ///
+ [SugarColumn(ColumnName="SpecsGroupId" )]
+ public long? SpecsGroupId { get; set; }
+ ///
+ /// 商品规格名
+ ///
+ [SugarColumn(ColumnName="SpecsName" )]
+ public string SpecsName { get; set; }
+ ///
+ /// 创建者
+ ///
+ [SugarColumn(ColumnName="CreateUser" )]
+ public long? CreateUser { get; set; }
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName="CreateTime" )]
+ public DateTime? CreateTime { get; set; }
+ ///
+ /// 修改者
+ ///
+ [SugarColumn(ColumnName="ModifyUser" )]
+ public long? ModifyUser { get; set; }
+ ///
+ /// 修改时间
+ ///
+ [SugarColumn(ColumnName="ModifyTime" )]
+ public DateTime? ModifyTime { get; set; }
+ ///
+ /// 是否删除
+ ///
+ [SugarColumn(ColumnName="IsDeleted" )]
+ public bool? IsDeleted { get; set; }
+ ///
+ /// 租户Id
+ ///
+ [SugarColumn(ColumnName="TenantId" )]
+ public long? TenantId { get; set; }
+ ///
+ /// 排序字段
+ ///
+ [SugarColumn(ColumnName="OrderNum" )]
+ public int? OrderNum { get; set; }
+ ///
+ /// 描述
+ ///
+ [SugarColumn(ColumnName="Remark" )]
+ public string? Remark { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SpecsGroupEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SpecsGroupEntity.cs
new file mode 100644
index 00000000..8dd9c248
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SpecsGroupEntity.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json.Serialization;
+using SqlSugar;
+namespace Yi.Framework.Model.Models
+{
+ ///
+ /// 商品规格组表
+ ///
+ [SugarTable("SpecsGroup")]
+ public partial class SpecsGroupEntity:IBaseModelEntity
+ {
+ public SpecsGroupEntity()
+ {
+ this.CreateTime = DateTime.Now;
+ }
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [SugarColumn(ColumnName="Id" ,IsPrimaryKey = true )]
+ public long Id { get; set; }
+ ///
+ /// 分类id
+ ///
+ [SugarColumn(ColumnName="CategoryId" )]
+ public long? CategoryId { get; set; }
+ ///
+ /// 商品规格组名
+ ///
+ [SugarColumn(ColumnName="SpecsGroupName" )]
+ public string SpecsGroupName { get; set; }
+ ///
+ /// 创建者
+ ///
+ [SugarColumn(ColumnName="CreateUser" )]
+ public long? CreateUser { get; set; }
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName="CreateTime" )]
+ public DateTime? CreateTime { get; set; }
+ ///
+ /// 修改者
+ ///
+ [SugarColumn(ColumnName="ModifyUser" )]
+ public long? ModifyUser { get; set; }
+ ///
+ /// 修改时间
+ ///
+ [SugarColumn(ColumnName="ModifyTime" )]
+ public DateTime? ModifyTime { get; set; }
+ ///
+ /// 是否删除
+ ///
+ [SugarColumn(ColumnName="IsDeleted" )]
+ public bool? IsDeleted { get; set; }
+ ///
+ /// 租户Id
+ ///
+ [SugarColumn(ColumnName="TenantId" )]
+ public long? TenantId { get; set; }
+ ///
+ /// 排序字段
+ ///
+ [SugarColumn(ColumnName="OrderNum" )]
+ public int? OrderNum { get; set; }
+ ///
+ /// 描述
+ ///
+ [SugarColumn(ColumnName="Remark" )]
+ public string? Remark { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SpuEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SpuEntity.cs
new file mode 100644
index 00000000..f1b2453d
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Model/ModelsTemplate/SpuEntity.cs
@@ -0,0 +1,83 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json.Serialization;
+using SqlSugar;
+namespace Yi.Framework.Model.Models
+{
+ ///
+ /// Spu表
+ ///
+ [SugarTable("Spu")]
+ public partial class SpuEntity:IBaseModelEntity
+ {
+ public SpuEntity()
+ {
+ this.CreateTime = DateTime.Now;
+ }
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [SugarColumn(ColumnName="Id" ,IsPrimaryKey = true )]
+ public long Id { get; set; }
+ ///
+ /// 商品分类Id
+ ///
+ [SugarColumn(ColumnName="CategoryId" )]
+ public long? CategoryId { get; set; }
+ ///
+ /// 商品名称
+ ///
+ [SugarColumn(ColumnName="SpuName" )]
+ public string SpuName { get; set; }
+ ///
+ /// 商品详情
+ ///
+ [SugarColumn(ColumnName="Details" )]
+ public string Details { get; set; }
+ ///
+ /// 商品价格
+ ///
+ [SugarColumn(ColumnName="Price" )]
+ public string Price { get; set; }
+
+ ///
+ /// 创建者
+ ///
+ [SugarColumn(ColumnName="CreateUser" )]
+ public long? CreateUser { get; set; }
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName="CreateTime" )]
+ public DateTime? CreateTime { get; set; }
+ ///
+ /// 修改者
+ ///
+ [SugarColumn(ColumnName="ModifyUser" )]
+ public long? ModifyUser { get; set; }
+ ///
+ /// 修改时间
+ ///
+ [SugarColumn(ColumnName="ModifyTime" )]
+ public DateTime? ModifyTime { get; set; }
+ ///
+ /// 是否删除
+ ///
+ [SugarColumn(ColumnName="IsDeleted" )]
+ public bool? IsDeleted { get; set; }
+ ///
+ /// 租户Id
+ ///
+ [SugarColumn(ColumnName="TenantId" )]
+ public long? TenantId { get; set; }
+ ///
+ /// 排序字段
+ ///
+ [SugarColumn(ColumnName="OrderNum" )]
+ public int? OrderNum { get; set; }
+ ///
+ /// 描述
+ ///
+ [SugarColumn(ColumnName="Remark" )]
+ public string? Remark { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SkuEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/SkuEntity.cs
new file mode 100644
index 00000000..b07a6bcf
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Model/SkuEntity.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json.Serialization;
+using SqlSugar;
+namespace Yi.Framework.Model.Models
+{
+ ///
+ /// Sku表
+ ///
+ public partial class SkuEntity:IBaseModelEntity
+ {
+ ///
+ /// 规格sku信息
+ ///
+ [SugarColumn(ColumnName = "SpecsSkuInfo", IsJson = true)]
+ public List SpecsSkuInfo { get; set; }
+ ///
+ /// 规格sku完整信息
+ ///
+ [SugarColumn(ColumnName = "SpecsSkuAllInfo", IsJson = true)]
+ public List SpecsSkuAllInfo { get; set; }
+ }
+
+ public class SpecsSkuAllInfoModel
+ {
+ public string? SpecsGroupName { get; set; }
+ public string? SpecsName { get; set; }
+ }
+ public class SpecsSkuInfoModel
+ {
+ public long? SpecsGroupId { get; set; }
+ public long? SpecsId { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SpecsGroupEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/SpecsGroupEntity.cs
new file mode 100644
index 00000000..96793422
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Model/SpecsGroupEntity.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json.Serialization;
+using SqlSugar;
+namespace Yi.Framework.Model.Models
+{
+ ///
+ /// 商品规格组表
+ ///
+ public partial class SpecsGroupEntity:IBaseModelEntity
+ {
+ [Navigate(NavigateType.OneToMany, nameof(SpecsEntity.SpecsGroupId))]
+ public List Specses { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Model/SpuEntity.cs b/Yi.Framework.Net6/Yi.Framework.Model/SpuEntity.cs
new file mode 100644
index 00000000..6f253f55
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Model/SpuEntity.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.Json.Serialization;
+using SqlSugar;
+namespace Yi.Framework.Model.Models
+{
+
+ public partial class SpuEntity:IBaseModelEntity
+ {
+ ///
+ /// 规格Spu完整信息
+ ///
+ [SugarColumn(ColumnName = "SpecsAllInfo", IsJson = true)]
+ public List SpecsSpuAllInfo { get; set; }
+ ///
+ /// 规格Spu信息
+ ///
+ [SugarColumn(ColumnName = "SpecsInfo", IsJson = true)]
+ public List SpecsSpuInfo { get; set; }
+
+ [Navigate(NavigateType.OneToMany, nameof(SkuEntity.SpuId))]
+ public List Spus { get; set; }
+ }
+
+ public class SpecsSpuAllInfoModel
+ {
+ public string? SpecsGroupName { get; set; }
+ public List? SpecsNames{ get;set;}
+ }
+ public class SpecsSpuInfoModel
+ {
+ public long? SpecsGroupId{ get; set; }
+ public List? SpecsIds { get; set; }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/CategoryService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/CategoryService.cs
new file mode 100644
index 00000000..ea55419a
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/CategoryService.cs
@@ -0,0 +1,14 @@
+using SqlSugar;
+using Yi.Framework.Interface;
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+
+namespace Yi.Framework.Service
+{
+ public partial class CategoryService : BaseService, ICategoryService
+ {
+ public CategoryService(IRepository repository) : base(repository)
+ {
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SkuService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SkuService.cs
new file mode 100644
index 00000000..6d86af4c
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SkuService.cs
@@ -0,0 +1,14 @@
+using SqlSugar;
+using Yi.Framework.Interface;
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+
+namespace Yi.Framework.Service
+{
+ public partial class SkuService : BaseService, ISkuService
+ {
+ public SkuService(IRepository repository) : base(repository)
+ {
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SpecsGroupService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SpecsGroupService.cs
new file mode 100644
index 00000000..fc7edbe2
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SpecsGroupService.cs
@@ -0,0 +1,14 @@
+using SqlSugar;
+using Yi.Framework.Interface;
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+
+namespace Yi.Framework.Service
+{
+ public partial class SpecsGroupService : BaseService, ISpecsGroupService
+ {
+ public SpecsGroupService(IRepository repository) : base(repository)
+ {
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SpecsService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SpecsService.cs
new file mode 100644
index 00000000..0374e217
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SpecsService.cs
@@ -0,0 +1,14 @@
+using SqlSugar;
+using Yi.Framework.Interface;
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+
+namespace Yi.Framework.Service
+{
+ public partial class SpecsService : BaseService, ISpecsService
+ {
+ public SpecsService(IRepository repository) : base(repository)
+ {
+ }
+ }
+}
diff --git a/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SpuService.cs b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SpuService.cs
new file mode 100644
index 00000000..a91bc78d
--- /dev/null
+++ b/Yi.Framework.Net6/Yi.Framework.Service/ServiceTemplate/SpuService.cs
@@ -0,0 +1,14 @@
+using SqlSugar;
+using Yi.Framework.Interface;
+using Yi.Framework.Model.Models;
+using Yi.Framework.Repository;
+
+namespace Yi.Framework.Service
+{
+ public partial class SpuService : BaseService, ISpuService
+ {
+ public SpuService(IRepository repository) : base(repository)
+ {
+ }
+ }
+}