mirror of
https://gitee.com/ccnetcore/Yi
synced 2026-03-03 16:20:52 +08:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e18af626b | ||
|
|
89dd5b79d6 | ||
|
|
356f71f13e | ||
|
|
2f5d71a299 | ||
|
|
b581c12edb | ||
|
|
d4d6aeb0b4 | ||
|
|
77114e6cfc | ||
|
|
e14a078440 | ||
|
|
3b38a0d628 | ||
|
|
927d8cb6c9 |
@@ -22,8 +22,7 @@ Yi框架-一套与SqlSugar一样爽的.Net6低代码开源框架。
|
||||
适合.Net6学习、Sqlsugar学习 、项目二次开发。
|
||||
集大成者,终究轮子
|
||||
|
||||
|
||||
Yi框架最新版本标签:`v1.1.7`,具体版本可以查看标签迭代
|
||||
Yi框架最新版本标签:`v1.1.8`,具体版本可以查看标签迭代
|
||||
|
||||
(项目与Sqlsugar同步更新,但这作者老杰哥代码天天爆肝到凌晨两点,我们也尽量会跟上他的脚步。更新频繁,所以可watching持续关注。)
|
||||
|
||||
@@ -97,9 +96,8 @@ WebFirst开发:所有代码生成器已经配置完成,无需任何操作数
|
||||
- [x] 支持采用`异步`开发awit/async
|
||||
- [x] 支持数据库主从`读写分离`
|
||||
- [x] 支持功能替换,无需改动代码,只需配置`json文件`进行装配即可
|
||||
- [x] ~~-支持采用DbFirst开发方式,使用`T4模板代码生成器`,自动映射模型一键生成Service及IService所有代码~~
|
||||
- [x] 支持WebFirst,无需改动代码,自动生成全套代码与数据库,只需点点点
|
||||
- [x] ~~-支持`用户-角色-菜单-接口`以及vue2.0前端全部逻辑代码,下载无需修改直接使用~~
|
||||
- [x] 支持`用户-角色-菜单-接口`以及vue2.0前端全部逻辑代码,下载无需修改直接使用
|
||||
- [x] 支持`Aop封装`,FilterAop、IocAop、LogAop、SqlAop
|
||||
- [x] 支持`Log4Net日志`记录,自动生成至bin目录下的logs文件夹
|
||||
- [x] 支持`DbSeed数据库种子数据`接入
|
||||
@@ -115,7 +113,6 @@ WebFirst开发:所有代码生成器已经配置完成,无需任何操作数
|
||||
- [x] 支持`Ocelot`网关,路由、服务聚合、服务发现、认证、鉴权、限流、熔断、缓存、Header头传递
|
||||
- [x] 支持`Apollo`全局配置中心;
|
||||
- [x] 支持`docker`镜像制作
|
||||
- [x] ~~-支持页面`静态化处理`,将动态页面生成静态页面~~
|
||||
- [x] 支持`Quartz.net`任务调度,实现任意接口被调度
|
||||
- [x] 支持`ELK`,log4net+kafka+es+logstach+kibana
|
||||
- [x] 支持`IdentityService4`授权中心
|
||||
@@ -125,7 +122,7 @@ WebFirst开发:所有代码生成器已经配置完成,无需任何操作数
|
||||
- [x] 支持`Docker+k8s`部署
|
||||
- [x] 支持`Jenkins+CI/CD`
|
||||
- [x] 支持`AutoMapper`模块映射
|
||||
- [ ] 支持`微信支付`(没账号)
|
||||
- [x] 支持`微信支付`
|
||||
- [x] 支持`单表多租户`常用功能
|
||||
- [x] 支持`逻辑删除`常用功能
|
||||
- [x] 支持`操作日志`常用功能
|
||||
|
||||
@@ -23,6 +23,12 @@
|
||||
<param name="registerDto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.ApiMicroservice.Controllers.AccountController.Logout">
|
||||
<summary>
|
||||
没啥说,登出
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Yi.Framework.ApiMicroservice.Controllers.AccountController.GetUserAllInfo">
|
||||
<summary>
|
||||
通过已登录的用户获取用户信息及菜单
|
||||
|
||||
@@ -70,6 +70,10 @@ namespace Yi.Framework.ApiMicroservice.Controllers
|
||||
return Result.SuccessError("注册失败!用户名已存在!");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 没啥说,登出
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public Result Logout()
|
||||
{
|
||||
|
||||
@@ -14,6 +14,7 @@ namespace Yi.Framework.Model.Query
|
||||
public List<QueryParameter> Parameters { get; set; } = new List<QueryParameter>();
|
||||
public List<string> OrderBys { get; set; } = new List<string>();
|
||||
|
||||
public bool IsAsc { get; set; } = false;
|
||||
}
|
||||
|
||||
public class QueryCondition
|
||||
@@ -21,5 +22,7 @@ namespace Yi.Framework.Model.Query
|
||||
public List<QueryParameter> Parameters { get; set; } = new List<QueryParameter>();
|
||||
public List<string> OrderBys { get; set; } = new List<string>();
|
||||
|
||||
public bool IsAsc { get; set; } = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
using Newtonsoft.Json.Converters;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.Json.Serialization;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Yi.Framework.Model.Query
|
||||
|
||||
@@ -24,5 +24,6 @@ namespace Yi.Framework.Repository
|
||||
public Task<List<S>> UseSqlAsync<S>(string sql, object parameters = null);
|
||||
public Task<bool> UseSqlAsync(string sql, object parameters = null);
|
||||
ISugarQueryable<T> QueryConditionHandler(QueryCondition pars);
|
||||
Task<bool> UpdateSuperSaveAsync(T data, Expression<Func<T, object>> columns);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,12 +144,52 @@ namespace Yi.Framework.Repository
|
||||
{
|
||||
foreach (var item in pars.OrderBys)
|
||||
{
|
||||
query.OrderBy(item.ToSqlFilter());
|
||||
if (pars.IsAsc)
|
||||
{
|
||||
query.OrderBy(item.ToSqlFilter() + " asc");
|
||||
}
|
||||
else
|
||||
{
|
||||
query.OrderBy(item.ToSqlFilter() + " desc");
|
||||
}
|
||||
}
|
||||
}
|
||||
return query.Where(sugarParamters);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 更新高级保存,验证重复
|
||||
/// </summary>
|
||||
/// <param name="list"></param>
|
||||
/// <param name="columns"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> UpdateSuperSaveAsync(T data, Expression<Func<T, object>> columns)
|
||||
{
|
||||
var x = _Db.Storageable(data)
|
||||
.SplitError(it => it.Any())
|
||||
.SplitUpdate(it => true)
|
||||
.WhereColumns(columns)//这里用name作为数据库查找条件
|
||||
.ToStorage();
|
||||
return await x.AsInsertable.ExecuteCommandAsync() > 0;//插入可插入部分
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加高级保存,验证重复
|
||||
/// </summary>
|
||||
/// <param name="list"></param>
|
||||
/// <param name="columns"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> InsertSuperSaveAsync(T data, Expression<Func<T, object>> columns)
|
||||
{
|
||||
var x = _Db.Storageable(data)
|
||||
.SplitError(it => it.Any())
|
||||
.SplitInsert(it => true)
|
||||
.WhereColumns(columns)//这里用name作为数据库查找条件
|
||||
.ToStorage();
|
||||
return await x.AsInsertable.ExecuteCommandAsync() > 0;//插入可插入部分
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -40,6 +40,11 @@ const mutations = { //变化//载荷
|
||||
state.user = user
|
||||
setUser(user)
|
||||
},
|
||||
SET_NEW_USER(state, userInfo) {
|
||||
state.user.user = userInfo
|
||||
setUser(state.user)
|
||||
},
|
||||
|
||||
SetGradient(state, gradient) {
|
||||
state.drawer.gradient = gradient
|
||||
},
|
||||
@@ -90,7 +95,11 @@ const actions = { //动作
|
||||
|
||||
var code=[];
|
||||
resp2.data.menus.forEach(element => {
|
||||
code.push(element.permissionCode)
|
||||
if(element.permissionCode!="")
|
||||
{
|
||||
code.push(element.permissionCode)
|
||||
}
|
||||
|
||||
});
|
||||
commit('SET_PER', code)
|
||||
|
||||
|
||||
@@ -47,6 +47,11 @@
|
||||
hoverable
|
||||
item-text="menuName"
|
||||
>
|
||||
<template v-slot:prepend="{ item }">
|
||||
<v-icon>
|
||||
{{ item.menuIcon }}
|
||||
</v-icon>
|
||||
</template>
|
||||
<template v-slot:append="{ item }">
|
||||
<app-btn v-if="item.menuType==0">路由:{{ item.router }}</app-btn>
|
||||
<app-btn v-if="item.menuType==1" color="secondary">权限:{{ item.permissionCode }}</app-btn>
|
||||
|
||||
@@ -335,7 +335,7 @@ export default {
|
||||
this.editInfo = Object.assign({}, this.userInfo);
|
||||
this.roleInfo = resp.data.roles;
|
||||
this.menuInfo = resp.data.menus;
|
||||
this.$store.commit("SET_USER", this.userInfo);
|
||||
this.$store.commit("SET_NEW_USER", this.userInfo);
|
||||
});
|
||||
},
|
||||
choiceImg() {
|
||||
|
||||
Reference in New Issue
Block a user