Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): bump golang.org/x/sys from 0.0.0-20211110154304-99a53858aa08 to 0.1.0 #5

Open
wants to merge 46 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
820acbc
configs dir
xushuhui Oct 14, 2021
755ab2b
register no auth
xushuhui Oct 14, 2021
6d9c28c
增加book接口
LiYuanits Oct 15, 2021
f2a1346
feat: get book
LiYuanits Oct 15, 2021
45478b5
fix:route, get book
LiYuanits Oct 15, 2021
bdd8981
fix: changeMyPassword, timemixin
xushuhui Oct 18, 2021
ea85503
feat: zap logger middleware
xushuhui Oct 18, 2021
97b4a41
remove: zap logger middleware
xushuhui Oct 18, 2021
5927844
chore:log
xushuhui Oct 20, 2021
28109d4
fix :sql
xushuhui Oct 20, 2021
0f8c63d
fix: create_time,update_time
LiYuanits Oct 20, 2021
89a8f9d
fear: page struct
xushuhui Oct 20, 2021
b78f8dd
feat(biz,data/log):log
LiYuanits Oct 21, 2021
2561e8b
feat(biz,data/log):log
LiYuanits Oct 21, 2021
41bf9e3
fix: page, request validate tag
xushuhui Oct 21, 2021
d476aa1
fix: changemypassword getmyinfomation
xushuhui Oct 21, 2021
1dfe4be
feat: move ent model to model dir
xushuhui Oct 21, 2021
d1b82b9
.gitignore
1768177868 Oct 21, 2021
b27569b
Merge branch 'master' of github.com:xushuhui/lin-cms-go
1768177868 Oct 21, 2021
387ee5d
Dockerfile
1768177868 Oct 21, 2021
eb13016
.dockerignore
1768177868 Oct 22, 2021
cb10233
feat:log
LiYuanits Oct 22, 2021
924b49b
Merge remote-tracking branch 'origin/master'
LiYuanits Oct 22, 2021
98e18bd
refactor: searchlogs
xushuhui Oct 22, 2021
23876f3
refactor:log
LiYuanits Oct 25, 2021
d409748
docs, model
xushuhui Oct 26, 2021
36774b7
feat:group
LiYuanits Nov 1, 2021
fb5a2ae
perf:CreateGroup
LiYuanits Nov 3, 2021
5716be4
refactor:error handle
xushuhui Nov 4, 2021
59e15a4
fix: dispatch permissions
xushuhui Nov 8, 2021
49b5396
fix: delete lin_group_permission struct
xushuhui Nov 8, 2021
43c2581
feat: get all lin_permission
xushuhui Nov 8, 2021
b9fbf4c
feat:group
LiYuanits Nov 8, 2021
d74a2b8
fix: delete group
xushuhui Nov 8, 2021
6d10490
feat : userlog middleware
xushuhui Nov 9, 2021
ee61343
refactor move core/utils
xushuhui Nov 11, 2021
7fe1e4f
middleware error
xushuhui Nov 11, 2021
bba5ff2
feat : permission
xushuhui Nov 15, 2021
94a0ace
feat: delete user
xushuhui Nov 15, 2021
66d3383
feat : updateUser,getUsers
xushuhui Nov 16, 2021
0cd4390
fix: permission
xushuhui Nov 16, 2021
d91925d
fix: permission
xushuhui Nov 16, 2021
3402472
refactor: error
xushuhui Nov 17, 2021
8d06c53
refactor: error wrap
xushuhui Nov 23, 2021
545203c
fix; doc
xushuhui Sep 20, 2022
6586b85
chore(deps): bump golang.org/x/sys
dependabot[bot] Feb 25, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
**/.git
**/.gitignore
**/.vscode
**/*.sql
**/*.log
README.md
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@
/.idea
/.vscode
*.exe
/storage/*
*.log

/configs/*.yaml

/tmp
.air.conf
150 changes: 144 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,149 @@
# lin-cms-go
## 框架选型
fiber ent
<h1 align="center">
<a href="https://doc.cms.talelin.com/">
<img src="https://doc.cms.talelin.com/left-logo.png" width="250"/></a>
<br>
lin-cms-go
</h1>

lin-cms-go 不断更新。let's go
<p align="center">
<img src="https://img.shields.io/badge/go-%3e%3d1.14-blue.svg" alt="go version" data-canonical-src="https://img.shields.io/badge/go-%3e%3d1.14-blue.svg" style="max-width:100%;"></a>
<a href="" rel="nofollow"><img src="https://img.shields.io/badge/fiber-2.21.*-green.svg" alt="fiber version" data-canonical-src="https://img.shields.io/badge/fiber-2.21.*-green.svg" style="max-width:100%;"></a>
<img src="https://img.shields.io/badge/license-license--2.0-lightgrey.svg" alt="lisence" data-canonical-src="https://img.shields.io/badge/license-license--2.0-lightgrey.svg" style="max-width:100%;"></a>
</p>

## lin-cms 接口文档
https://doc.cms.talelin.com/api/
# 简介

## 预防针

* 本项目非官方团队出品,仅出于学习、研究目的丰富下官方项目的语言支持
* 本项目采取后跟进官方团队功能的形式,即官方团队出什么功能,这边就跟进开发什么功能,开发者不必担心前端适配问题。
* 在上一点的基础上,我们会尝试加入一些自己的想法并实现。
* 局限于本人水平,有些地方还需重构,已经纳入了计划中,当然也会有我没考虑到的,希望有更多人参与进来一起完善。

## 专栏教程 (todo)

* lin cms 全家桶(lin-cms-vue & lin-cms-go)为一个前端应用实现内容管理系统。一套教程入门上手 vue、fiber 两大框架。

* 读者反馈:[《lin cms go &vue 教程》读者反馈贴](https://github.com/xushuhui/lin-cms-go/issues/47)

## 线上文档地址(完善中)

[https://github.com/xushuhui/lin-cms-go](https://github.com/xushuhui/lin-cms-go/)

## 线上 demo

可直接参考官方团队的线上 demo:[http://face.cms.talelin.com/](http://face.cms.talelin.com/),用户名:super,密码:123456

## 什么是 lin cms?

> lin-cms 是林间有风团队经过大量项目实践所提炼出的一套**内容管理系统框架**。lin-cms 可以有效的帮助开发者提高 cms 的开发效率。

本项目是基于 fiber 5.1 的 lin cms 后端实现。

官方团队产品了解请访问 [talelin](https://github.com/talelin)

## lin cms 的特点

lin cms 的构筑思想是有其自身特点的。下面我们阐述一些 lin 的主要特点。

**lin cms 是一个前后端分离的 cms 解决方案**

这意味着,lin 既提供后台的支撑,也有一套对应的前端系统,当然双端分离的好处不仅仅在于此,我们会在后续提供 nodejs 和 php 版本的 lin。如果你心仪 lin,却又因为技术栈的原因无法即可使用,没关系,我们会在后续提供更多的语言版本。为什么 lin 要选择前后端分离的单页面架构呢?

首先,传统的网站开发更多的是采用服务端渲染的方式,需用使用一种模板语言在服务端完成页面渲染:比如 jinja2、jade 等。 服务端渲染的好处在于可以比较好的支持 seo,但作为内部使用的 cms 管理系统,seo 并不重要。

但一个不可忽视的事实是,服务器渲染的页面到底是由前端开发者来完成,还是由服务器开发者来完成?其实都不太合适。现在已经没有多少前端开发者是了解这些服务端模板语言的,而服务器开发者本身是不太擅长开发页面的。那还是分开吧,前端用最熟悉的 vue 写 js 和 css,而服务器只关注自己的 api 即可。

其次,单页面应用程序的体验本身就要好于传统网站。

更多关于 lin cms 的介绍请访问 [lin cms 线上文档](http://doc.cms.talelin.com/)

**框架本身已内置了 cms 常用的功能**

lin 已经内置了 cms 中最为常见的需求:用户管理、权限管理、日志系统等。开发者只需要集中精力开发自己的 cms 业务即可

## lin cms go 的特点

在当前项目的版本`(0.0.1)`中,特点更多来自于`fiber`框架本身带来的特点。通过充分利用框架的特性,实现高效的后端使用、开发,也就是说,只要你熟悉`fiber`框架,那么对于理解使用和二次开发本项目是没有难度的,即便对于框架的某些功能存在疑问也完全可以通过 fiber 官方的开发手册找到答案。当然我们更欢迎你通过 [issues](https://github.com/xushuhui/lin-cms-go/issues) 来向我们提问:)

在下一个版本中`(>0.0.1)`, 我们会在框架的基础上融入一些自己的东西来增强或者优化框架的使用、开发体验。

## 所需基础

由于 lin 采用的是前后端分离的架构,所以你至少需要熟悉 go 和 vue。

lin 的服务端框架是基于 fiber2.20 的,所以如果你比较熟悉 fiber 的开发模式,那将可以更好的使用本项目。但如果你并不熟悉 fiber,我们认为也没有太大的关系,因为框架本身已经提供了一套完整的开发机制,你只需要在框架下用 go 来编写自己的业务代码即可。照葫芦画瓢应该就是这种感觉。

但前端不同,前端还是需要开发者比较熟悉 vue 的。但我想以 vue 在国内的普及程度,绝大多数的开发者是没有问题的。这也正是我们选择 vue 作为前端框架的原因。如果你喜欢 react or angular,那么加入我们,为 lin 开发一个对应的版本吧。

# 快速开始

## server 端必备环境

* 安装 mysql(version: 5.7+)

* 安装 go 环境 (version: 1.14+)

## 获取工程项目

```bash
git clone https://github.com/xushuhui/lin-cms-go.git
```

> 执行完毕后会生成 lin-cms-go 目录

## 安装依赖包

```bash

go mod tidy

```

## 数据库配置

lin 需要你自己在 mysql 中新建一个数据库,名字由你自己决定。例如,新建一个名为` lin-cms `的数据库。接着,我们需要在工程中进行一项简单的配置。使用编辑器打开 lin 工程根目录下`/configs/config.yaml`,找到如下配置项:

```yaml
data:
datasource:
source: 用户名:密码@tcp(服务器地址)/数据库名?charset=utf8mb4&parseTime=True
```

**请务必根据自己的实际情况修改此配置项**

## 导入数据

接下来使用你本机上任意一款数据库可视化工具,为已经创建好的`lin-cms`数据库运行 lin-cms-go 根目录下的`schema.sql`文件,这个 SQL 脚本文件将为为你生成一些基础的数据库表和数据。

## 运行

如果前面的过程一切顺利,项目所需的准备工作就已经全部完成,这时候你就可以试着让工程运行起来了。在工程的根目录打开命令行,输入:

```bash
go build -o //启动 Web 服务器
```

启动成功后会看到如下提示:

```bash
Fiber v2.20.2
http://127.0.0.1:3000/

```

打开浏览器,访问``http://127.0.0.1:3000``,你会看到一个欢迎界面,至此,lin-cms-go 部署完毕,可搭配 [lin-cms-vue](https://github.com/TaleLin/lin-cms-vue) 使用了。

## 更新日志

[查看日志](http://github.com/xushuhui/lin-cms-go//)

## 常见问题

[查看常见问题](http://github.com/xushuhui/lin-cms-go/)

## 讨论交流

### 微信公众号

![扫码关注](https://tvax4.sinaimg.cn/large/a616b9a4gy1grl9d1rdpvj2076076wey.jpg)
22 changes: 8 additions & 14 deletions api/admin.go
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
package api

import (
"github.com/gofiber/fiber/v2"
"lin-cms-go/internal/biz"
"lin-cms-go/internal/request"
"lin-cms-go/pkg/core"
"lin-cms-go/pkg/utils"

"github.com/gofiber/fiber/v2"
"github.com/xushuhui/goal/core"
"github.com/xushuhui/goal/utils"
)

func GetUsers(c *fiber.Ctx) error {
var req request.GetUsers
if err := core.ParseRequest(c, &req); err != nil {

return err
}

data, err := biz.GetUsers(req)
data, err := biz.GetUsers(c.Context(), req.GroupId, core.GetPage(c), core.GetSize(c))
if err != nil {

return err
}
return core.SetData(c, data)

}

func ChangeUserPassword(c *fiber.Ctx) error {
Expand All @@ -30,26 +28,23 @@ func ChangeUserPassword(c *fiber.Ctx) error {
return err
}

err := biz.ChangeUserPassword(req)
err := biz.ChangeUserPassword(c.Context(), req.Id, req.NewPassword)
if err != nil {
return err
}
return core.SuccessResp(c)

}

func DeleteUser(c *fiber.Ctx) error {

id, err := utils.StringToInt(c.Params("id"))
if err != nil {
return err
}
err = biz.DeleteUser(id)
err = biz.DeleteUser(c.Context(), id)
if err != nil {
return err
}
return core.SuccessResp(c)

}

func UpdateUser(c *fiber.Ctx) error {
Expand All @@ -58,10 +53,9 @@ func UpdateUser(c *fiber.Ctx) error {
return err
}

err := biz.UpdateUser(req)
err := biz.UpdateUser(c.Context(), req.Id, req.GroupIds)
if err != nil {
return err
}
return core.SuccessResp(c)

}
81 changes: 81 additions & 0 deletions api/book.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package api

import (
"lin-cms-go/internal/biz"
"lin-cms-go/internal/request"

"github.com/gofiber/fiber/v2"
"github.com/xushuhui/goal/core"
"github.com/xushuhui/goal/utils"
)

func GetBooks(c *fiber.Ctx) error {
// TODO book 接口少了权限判断

size := core.GetSize(c)
page := core.GetPage(c)
data, err := biz.GetBookAll(c.Context(), page, size)
if err != nil {
return err
}
total, err := biz.GetBookTotal(c.Context())
if err != nil {
return err
}
core.SetPage(c, data, total)
return nil
}

func UpdateBook(c *fiber.Ctx) error {
var req request.UpdateBook
if err := core.ParseRequest(c, &req); err != nil {
return err
}
id, err := utils.StringToInt(c.Params("id"))
if err != nil {
return err
}

err = biz.UpdateBook(c.Context(), id, req)
if err != nil {
return err
}
return core.SuccessResp(c)
}

func CreateBook(c *fiber.Ctx) error {
var req request.CreateBook
if err := core.ParseRequest(c, &req); err != nil {
return err
}
err := biz.CreateBook(c.Context(), req)
if err != nil {
return err
}
return core.SuccessResp(c)
}

func DeleteBook(c *fiber.Ctx) error {
id, err := utils.StringToInt(c.Params("id"))
if err != nil {
return err
}
err = biz.DeleteBook(c.Context(), id)
if err != nil {
return err
}
return core.SuccessResp(c)
}

func GetBook(c *fiber.Ctx) error {
id, err := utils.StringToInt(c.Params("id"))
if err != nil {
return err
}
data, err := biz.GetBook(c.Context(), id)
if err != nil {
return err
}
core.SetData(c, data)
return nil
}
Loading