mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-09-20 17:57:54 +00:00
结构调整添加cmd
This commit is contained in:
+14
-15
@@ -4,9 +4,8 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
@@ -29,19 +28,19 @@ func GetLoginLogList(c *gin.Context) {
|
||||
|
||||
size := c.Request.FormValue("pageSize")
|
||||
if size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools.StrToInt(err, size)
|
||||
}
|
||||
|
||||
index := c.Request.FormValue("pageIndex")
|
||||
if index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.Username = c.Request.FormValue("username")
|
||||
data.Status = c.Request.FormValue("status")
|
||||
data.Ipaddr = c.Request.FormValue("ipaddr")
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
|
||||
var mp = make(map[string]interface{}, 3)
|
||||
mp["list"] = result
|
||||
@@ -63,9 +62,9 @@ func GetLoginLogList(c *gin.Context) {
|
||||
// @Security
|
||||
func GetLoginLog(c *gin.Context) {
|
||||
var LoginLog models.LoginLog
|
||||
LoginLog.InfoId, _ = utils.StringToInt(c.Param("infoId"))
|
||||
LoginLog.InfoId, _ = tools.StringToInt(c.Param("infoId"))
|
||||
result, err := LoginLog.Get()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
@@ -85,9 +84,9 @@ func GetLoginLog(c *gin.Context) {
|
||||
func InsertLoginLog(c *gin.Context) {
|
||||
var data models.LoginLog
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
pkg.HasError(err, "", 500)
|
||||
tools.HasError(err, "", 500)
|
||||
result, err := data.Create()
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -106,9 +105,9 @@ func InsertLoginLog(c *gin.Context) {
|
||||
func UpdateLoginLog(c *gin.Context) {
|
||||
var data models.LoginLog
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
result, err := data.Update(data.InfoId)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -123,10 +122,10 @@ func UpdateLoginLog(c *gin.Context) {
|
||||
// @Router /api/v1/loginlog/{infoId} [delete]
|
||||
func DeleteLoginLog(c *gin.Context) {
|
||||
var data models.LoginLog
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
IDS := utils.IdsStrToIdsIntGroup("infoId", c)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
IDS := tools.IdsStrToIdsIntGroup("infoId", c)
|
||||
_, err := data.BatchDelete(IDS)
|
||||
pkg.HasError(err, "修改失败", 500)
|
||||
tools.HasError(err, "修改失败", 500)
|
||||
var res app.Response
|
||||
res.Msg = "删除成功"
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
|
||||
+12
-13
@@ -4,9 +4,8 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
@@ -29,19 +28,19 @@ func GetOperLogList(c *gin.Context) {
|
||||
|
||||
size := c.Request.FormValue("pageSize")
|
||||
if size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools.StrToInt(err, size)
|
||||
}
|
||||
|
||||
index := c.Request.FormValue("pageIndex")
|
||||
if index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.OperName = c.Request.FormValue("operName")
|
||||
data.Status = c.Request.FormValue("status")
|
||||
data.OperIp = c.Request.FormValue("operIp")
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
|
||||
var mp = make(map[string]interface{}, 3)
|
||||
mp["list"] = result
|
||||
@@ -64,9 +63,9 @@ func GetOperLogList(c *gin.Context) {
|
||||
// @Security
|
||||
func GetOperLog(c *gin.Context) {
|
||||
var OperLog models.SysOperLog
|
||||
OperLog.OperId, _ = utils.StringToInt(c.Param("operId"))
|
||||
OperLog.OperId, _ = tools.StringToInt(c.Param("operId"))
|
||||
result, err := OperLog.Get()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -85,9 +84,9 @@ func GetOperLog(c *gin.Context) {
|
||||
func InsertOperLog(c *gin.Context) {
|
||||
var data models.SysOperLog
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
pkg.HasError(err, "", 500)
|
||||
tools.HasError(err, "", 500)
|
||||
result, err := data.Create()
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -102,10 +101,10 @@ func InsertOperLog(c *gin.Context) {
|
||||
// @Router /api/v1/operlog/{operId} [delete]
|
||||
func DeleteOperLog(c *gin.Context) {
|
||||
var data models.SysOperLog
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
IDS := utils.IdsStrToIdsIntGroup("operId", c)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
IDS := tools.IdsStrToIdsIntGroup("operId", c)
|
||||
_, err := data.BatchDelete(IDS)
|
||||
pkg.HasError(err, "删除失败", 500)
|
||||
tools.HasError(err, "删除失败", 500)
|
||||
var res app.Response
|
||||
res.Msg = "删除成功"
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"github.com/shirou/gopsutil/cpu"
|
||||
"github.com/shirou/gopsutil/disk"
|
||||
"github.com/shirou/gopsutil/mem"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/tools/app"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
|
||||
@@ -2,14 +2,14 @@ package system
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/captcha"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"go-admin/tools/captcha"
|
||||
)
|
||||
|
||||
func GenerateCaptchaHandler(c *gin.Context) {
|
||||
id, b64s, err := captcha.DriverDigitFunc()
|
||||
pkg.HasError(err, "验证码获取失败", 500)
|
||||
tools.HasError(err, "验证码获取失败", 500)
|
||||
app.Custum(c, gin.H{
|
||||
"code": 200,
|
||||
"data": b64s,
|
||||
|
||||
+20
-21
@@ -4,10 +4,9 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/app/msg"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"go-admin/tools/app/msg"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
@@ -29,19 +28,19 @@ func GetConfigList(c *gin.Context) {
|
||||
var pageIndex = 1
|
||||
|
||||
if size := c.Request.FormValue("pageSize"); size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools.StrToInt(err, size)
|
||||
}
|
||||
|
||||
if index := c.Request.FormValue("pageIndex"); index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.ConfigKey = c.Request.FormValue("configKey")
|
||||
data.ConfigName = c.Request.FormValue("configName")
|
||||
data.ConfigType = c.Request.FormValue("configType")
|
||||
data.DataScope = utils.GetUserIdStr(c)
|
||||
data.DataScope = tools.GetUserIdStr(c)
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
|
||||
var mp = make(map[string]interface{}, 3)
|
||||
mp["list"] = result
|
||||
@@ -64,9 +63,9 @@ func GetConfigList(c *gin.Context) {
|
||||
// @Security
|
||||
func GetConfig(c *gin.Context) {
|
||||
var Config models.SysConfig
|
||||
Config.ConfigId, _ = utils.StringToInt(c.Param("configId"))
|
||||
Config.ConfigId, _ = tools.StringToInt(c.Param("configId"))
|
||||
result, err := Config.Get()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
@@ -85,7 +84,7 @@ func GetConfigByConfigKey(c *gin.Context) {
|
||||
var Config models.SysConfig
|
||||
Config.ConfigKey = c.Param("configKey")
|
||||
result, err := Config.Get()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
|
||||
app.OK(c, result,result.ConfigValue)
|
||||
}
|
||||
@@ -103,10 +102,10 @@ func GetConfigByConfigKey(c *gin.Context) {
|
||||
func InsertConfig(c *gin.Context) {
|
||||
var data models.SysConfig
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
data.CreateBy = utils.GetUserIdStr(c)
|
||||
pkg.HasError(err, "", 500)
|
||||
data.CreateBy = tools.GetUserIdStr(c)
|
||||
tools.HasError(err, "", 500)
|
||||
result, err := data.Create()
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
|
||||
app.OK(c, result,"")
|
||||
}
|
||||
@@ -124,10 +123,10 @@ func InsertConfig(c *gin.Context) {
|
||||
func UpdateConfig(c *gin.Context) {
|
||||
var data models.SysConfig
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
pkg.HasError(err, "数据解析失败", -1)
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
tools.HasError(err, "数据解析失败", -1)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
result, err := data.Update(data.ConfigId)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
app.OK(c, result,"")
|
||||
}
|
||||
|
||||
@@ -140,10 +139,10 @@ func UpdateConfig(c *gin.Context) {
|
||||
// @Router /api/v1/config/{configId} [delete]
|
||||
func DeleteConfig(c *gin.Context) {
|
||||
var data models.SysConfig
|
||||
id, err := utils.StringToInt(c.Param("configId"))
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
id, err := tools.StringToInt(c.Param("configId"))
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
data.ConfigId = id
|
||||
_, err = data.Delete()
|
||||
pkg.HasError(err, "修改失败", 500)
|
||||
app.OK(c, nil,msg.DeletedSuccess)
|
||||
tools.HasError(err, "修改失败", 500)
|
||||
app.OK(c, nil, msg.DeletedSuccess)
|
||||
}
|
||||
|
||||
+26
-27
@@ -4,10 +4,9 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/app/msg"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"go-admin/tools/app/msg"
|
||||
)
|
||||
|
||||
// @Summary 分页部门列表数据
|
||||
@@ -23,10 +22,10 @@ func GetDeptList(c *gin.Context) {
|
||||
var Dept models.Dept
|
||||
Dept.DeptName = c.Request.FormValue("deptName")
|
||||
Dept.Status = c.Request.FormValue("status")
|
||||
Dept.DeptId, _ = utils.StringToInt(c.Request.FormValue("deptId"))
|
||||
Dept.DataScope = utils.GetUserIdStr(c)
|
||||
Dept.DeptId, _ = tools.StringToInt(c.Request.FormValue("deptId"))
|
||||
Dept.DataScope = tools.GetUserIdStr(c)
|
||||
result, err := Dept.SetDept(true)
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
app.OK(c,result,"")
|
||||
}
|
||||
|
||||
@@ -34,9 +33,9 @@ func GetDeptTree(c *gin.Context) {
|
||||
var Dept models.Dept
|
||||
Dept.DeptName = c.Request.FormValue("deptName")
|
||||
Dept.Status= c.Request.FormValue("status")
|
||||
Dept.DeptId, _ = utils.StringToInt(c.Request.FormValue("deptId"))
|
||||
Dept.DeptId, _ = tools.StringToInt(c.Request.FormValue("deptId"))
|
||||
result, err := Dept.SetDept(false)
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
app.OK(c,result,"")
|
||||
}
|
||||
|
||||
@@ -50,11 +49,11 @@ func GetDeptTree(c *gin.Context) {
|
||||
// @Security
|
||||
func GetDept(c *gin.Context) {
|
||||
var Dept models.Dept
|
||||
Dept.DeptId, _ = utils.StringToInt(c.Param("deptId"))
|
||||
Dept.DataScope = utils.GetUserIdStr(c)
|
||||
Dept.DeptId, _ = tools.StringToInt(c.Param("deptId"))
|
||||
Dept.DataScope = tools.GetUserIdStr(c)
|
||||
result, err := Dept.Get()
|
||||
pkg.HasError(err, msg.NotFound, 404)
|
||||
app.OK(c,result,msg.GetSuccess)
|
||||
tools.HasError(err, msg.NotFound, 404)
|
||||
app.OK(c,result, msg.GetSuccess)
|
||||
}
|
||||
|
||||
// @Summary 添加部门
|
||||
@@ -70,11 +69,11 @@ func GetDept(c *gin.Context) {
|
||||
func InsertDept(c *gin.Context) {
|
||||
var data models.Dept
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
pkg.HasError(err, "", 500)
|
||||
data.CreateBy = utils.GetUserIdStr(c)
|
||||
tools.HasError(err, "", 500)
|
||||
data.CreateBy = tools.GetUserIdStr(c)
|
||||
result, err := data.Create()
|
||||
pkg.HasError(err, "", -1)
|
||||
app.OK(c,result,msg.CreatedSuccess)
|
||||
tools.HasError(err, "", -1)
|
||||
app.OK(c,result, msg.CreatedSuccess)
|
||||
}
|
||||
|
||||
// @Summary 修改部门
|
||||
@@ -91,11 +90,11 @@ func InsertDept(c *gin.Context) {
|
||||
func UpdateDept(c *gin.Context) {
|
||||
var data models.Dept
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
pkg.HasError(err, "", -1)
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
tools.HasError(err, "", -1)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
result, err := data.Update(data.DeptId)
|
||||
pkg.HasError(err, "", -1)
|
||||
app.OK(c,result,msg.UpdatedSuccess)
|
||||
tools.HasError(err, "", -1)
|
||||
app.OK(c,result, msg.UpdatedSuccess)
|
||||
}
|
||||
|
||||
// @Summary 删除部门
|
||||
@@ -107,23 +106,23 @@ func UpdateDept(c *gin.Context) {
|
||||
// @Router /api/v1/dept/{id} [delete]
|
||||
func DeleteDept(c *gin.Context) {
|
||||
var data models.Dept
|
||||
id, err := utils.StringToInt(c.Param("id"))
|
||||
id, err := tools.StringToInt(c.Param("id"))
|
||||
_, err = data.Delete(id)
|
||||
pkg.HasError(err, "删除失败", 500)
|
||||
app.OK(c,"",msg.DeletedSuccess)
|
||||
tools.HasError(err, "删除失败", 500)
|
||||
app.OK(c,"", msg.DeletedSuccess)
|
||||
}
|
||||
|
||||
func GetDeptTreeRoleselect(c *gin.Context) {
|
||||
var Dept models.Dept
|
||||
var SysRole models.SysRole
|
||||
id, err := utils.StringToInt(c.Param("roleId"))
|
||||
id, err := tools.StringToInt(c.Param("roleId"))
|
||||
SysRole.RoleId = id
|
||||
result, err := Dept.SetDeptLable()
|
||||
pkg.HasError(err, msg.NotFound, -1)
|
||||
tools.HasError(err, msg.NotFound, -1)
|
||||
menuIds := make([]int, 0)
|
||||
if id != 0 {
|
||||
menuIds, err = SysRole.GetRoleDeptId()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
}
|
||||
app.Custum(c,gin.H{
|
||||
"code": 200,
|
||||
|
||||
@@ -4,9 +4,8 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
@@ -28,21 +27,21 @@ func GetDictDataList(c *gin.Context) {
|
||||
var pageIndex = 1
|
||||
|
||||
if size := c.Request.FormValue("pageSize"); size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools.StrToInt(err, size)
|
||||
}
|
||||
|
||||
if index := c.Request.FormValue("pageIndex"); index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.DictLabel = c.Request.FormValue("dictLabel")
|
||||
data.Status = c.Request.FormValue("status")
|
||||
data.DictType = c.Request.FormValue("dictType")
|
||||
id := c.Request.FormValue("dictCode")
|
||||
data.DictCode, _ = utils.StringToInt(id)
|
||||
data.DataScope = utils.GetUserIdStr(c)
|
||||
data.DictCode, _ = tools.StringToInt(id)
|
||||
data.DataScope = tools.GetUserIdStr(c)
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
|
||||
var mp = make(map[string]interface{}, 3)
|
||||
mp["list"] = result
|
||||
@@ -66,9 +65,9 @@ func GetDictDataList(c *gin.Context) {
|
||||
func GetDictData(c *gin.Context) {
|
||||
var DictData models.DictData
|
||||
DictData.DictLabel = c.Request.FormValue("dictLabel")
|
||||
DictData.DictCode, _ = utils.StringToInt(c.Param("dictCode"))
|
||||
DictData.DictCode, _ = tools.StringToInt(c.Param("dictCode"))
|
||||
result, err := DictData.GetByCode()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -85,7 +84,7 @@ func GetDictDataByDictType(c *gin.Context) {
|
||||
var DictData models.DictData
|
||||
DictData.DictType = c.Param("dictType")
|
||||
result, err := DictData.Get()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
@@ -105,10 +104,10 @@ func GetDictDataByDictType(c *gin.Context) {
|
||||
func InsertDictData(c *gin.Context) {
|
||||
var data models.DictData
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
data.CreateBy = utils.GetUserIdStr(c)
|
||||
pkg.HasError(err, "", 500)
|
||||
data.CreateBy = tools.GetUserIdStr(c)
|
||||
tools.HasError(err, "", 500)
|
||||
result, err := data.Create()
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -127,10 +126,10 @@ func InsertDictData(c *gin.Context) {
|
||||
func UpdateDictData(c *gin.Context) {
|
||||
var data models.DictData
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
pkg.HasError(err, "", -1)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
tools.HasError(err, "", -1)
|
||||
result, err := data.Update(data.DictCode)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -145,10 +144,10 @@ func UpdateDictData(c *gin.Context) {
|
||||
// @Router /api/v1/dict/data/{dictCode} [delete]
|
||||
func DeleteDictData(c *gin.Context) {
|
||||
var data models.DictData
|
||||
id, err := utils.StringToInt(c.Param("dictCode"))
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
id, err := tools.StringToInt(c.Param("dictCode"))
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
_, err = data.Delete(id)
|
||||
pkg.HasError(err, "修改失败", 500)
|
||||
tools.HasError(err, "修改失败", 500)
|
||||
|
||||
var res app.Response
|
||||
res.Msg = "删除成功"
|
||||
|
||||
@@ -4,9 +4,8 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
@@ -28,20 +27,20 @@ func GetDictTypeList(c *gin.Context) {
|
||||
var pageIndex = 1
|
||||
|
||||
if size := c.Request.FormValue("pageSize"); size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools.StrToInt(err, size)
|
||||
}
|
||||
|
||||
if index := c.Request.FormValue("pageIndex"); index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.DictName = c.Request.FormValue("dictName")
|
||||
id := c.Request.FormValue("dictId")
|
||||
data.DictId, _ = utils.StringToInt(id)
|
||||
data.DictId, _ = tools.StringToInt(id)
|
||||
data.DictType = c.Request.FormValue("dictType")
|
||||
data.DataScope = utils.GetUserIdStr(c)
|
||||
data.DataScope = tools.GetUserIdStr(c)
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
|
||||
var mp = make(map[string]interface{}, 3)
|
||||
mp["list"] = result
|
||||
@@ -64,9 +63,9 @@ func GetDictTypeList(c *gin.Context) {
|
||||
func GetDictType(c *gin.Context) {
|
||||
var DictType models.DictType
|
||||
DictType.DictName = c.Request.FormValue("dictName")
|
||||
DictType.DictId, _ = utils.StringToInt(c.Param("dictId"))
|
||||
DictType.DictId, _ = tools.StringToInt(c.Param("dictId"))
|
||||
result, err := DictType.Get()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -76,9 +75,9 @@ func GetDictType(c *gin.Context) {
|
||||
func GetDictTypeOptionSelect(c *gin.Context) {
|
||||
var DictType models.DictType
|
||||
DictType.DictName = c.Request.FormValue("dictName")
|
||||
DictType.DictId, _ = utils.StringToInt(c.Param("dictId"))
|
||||
DictType.DictId, _ = tools.StringToInt(c.Param("dictId"))
|
||||
result, err := DictType.GetList()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -97,10 +96,10 @@ func GetDictTypeOptionSelect(c *gin.Context) {
|
||||
func InsertDictType(c *gin.Context) {
|
||||
var data models.DictType
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
data.CreateBy = utils.GetUserIdStr(c)
|
||||
pkg.HasError(err, "", 500)
|
||||
data.CreateBy = tools.GetUserIdStr(c)
|
||||
tools.HasError(err, "", 500)
|
||||
result, err := data.Create()
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -119,10 +118,10 @@ func InsertDictType(c *gin.Context) {
|
||||
func UpdateDictType(c *gin.Context) {
|
||||
var data models.DictType
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
pkg.HasError(err, "", -1)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
tools.HasError(err, "", -1)
|
||||
result, err := data.Update(data.DictId)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
@@ -137,10 +136,10 @@ func UpdateDictType(c *gin.Context) {
|
||||
// @Router /api/v1/dict/type/{dictId} [delete]
|
||||
func DeleteDictType(c *gin.Context) {
|
||||
var data models.DictType
|
||||
id, err := utils.StringToInt(c.Param("dictId"))
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
id, err := tools.StringToInt(c.Param("dictId"))
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
_, err = data.Delete(id)
|
||||
pkg.HasError(err, "修改失败", 500)
|
||||
tools.HasError(err, "修改失败", 500)
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 200,
|
||||
|
||||
+7
-8
@@ -3,24 +3,23 @@ package system
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
)
|
||||
|
||||
func GetInfo(c *gin.Context) {
|
||||
|
||||
var roles = make([]string, 1)
|
||||
roles[0] = utils.GetRoleName(c)
|
||||
roles[0] = tools.GetRoleName(c)
|
||||
|
||||
var permissions = make([]string, 1)
|
||||
permissions[0] = "*:*:*"
|
||||
RoleMenu := models.RoleMenu{}
|
||||
RoleMenu.RoleId = utils.GetRoleId(c)
|
||||
RoleMenu.RoleId = tools.GetRoleId(c)
|
||||
|
||||
var mp = make(map[string]interface{})
|
||||
mp["roles"] = roles
|
||||
if utils.GetRoleName(c) == "admin" || utils.GetRoleName(c) == "系统管理员" {
|
||||
if tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员" {
|
||||
mp["permissions"] = permissions
|
||||
} else {
|
||||
list, _ := RoleMenu.GetPermis()
|
||||
@@ -28,9 +27,9 @@ func GetInfo(c *gin.Context) {
|
||||
}
|
||||
|
||||
sysuser := models.SysUser{}
|
||||
sysuser.UserId = utils.GetUserId(c)
|
||||
sysuser.UserId = tools.GetUserId(c)
|
||||
user, err := sysuser.Get()
|
||||
pkg.HasError(err, "", 500)
|
||||
tools.HasError(err, "", 500)
|
||||
|
||||
mp["introduction"] = " am a super administrator"
|
||||
|
||||
|
||||
+23
-24
@@ -4,9 +4,8 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
)
|
||||
|
||||
// @Summary Menu列表数据
|
||||
@@ -20,9 +19,9 @@ import (
|
||||
func GetMenuList(c *gin.Context) {
|
||||
var Menu models.Menu
|
||||
Menu.MenuName = c.Request.FormValue("menuName")
|
||||
Menu.DataScope = utils.GetUserIdStr(c)
|
||||
Menu.DataScope = tools.GetUserIdStr(c)
|
||||
result, err := Menu.SetMenu()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
|
||||
app.OK(c,result,"")
|
||||
}
|
||||
@@ -37,24 +36,24 @@ func GetMenuList(c *gin.Context) {
|
||||
// @Security Bearer
|
||||
func GetMenu(c *gin.Context) {
|
||||
var data models.Menu
|
||||
id, err := utils.StringToInt(c.Param("id"))
|
||||
id, err := tools.StringToInt(c.Param("id"))
|
||||
data.MenuId = id
|
||||
result, err := data.GetByMenuId()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
app.OK(c,result,"")
|
||||
}
|
||||
|
||||
func GetMenuTreeRoleselect(c *gin.Context) {
|
||||
var Menu models.Menu
|
||||
var SysRole models.SysRole
|
||||
id, err := utils.StringToInt(c.Param("roleId"))
|
||||
id, err := tools.StringToInt(c.Param("roleId"))
|
||||
SysRole.RoleId = id
|
||||
result, err := Menu.SetMenuLable()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
menuIds := make([]int, 0)
|
||||
if id != 0 {
|
||||
menuIds, err = SysRole.GetRoleMeunId()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
}
|
||||
app.Custum(c,gin.H{
|
||||
"code": 200,
|
||||
@@ -75,7 +74,7 @@ func GetMenuTreeRoleselect(c *gin.Context) {
|
||||
func GetMenuTreeelect(c *gin.Context) {
|
||||
var data models.Menu
|
||||
result, err := data.SetMenuLable()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
app.OK(c,result,"")
|
||||
}
|
||||
|
||||
@@ -97,10 +96,10 @@ func GetMenuTreeelect(c *gin.Context) {
|
||||
func InsertMenu(c *gin.Context) {
|
||||
var data models.Menu
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
data.CreateBy = utils.GetUserIdStr(c)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
data.CreateBy = tools.GetUserIdStr(c)
|
||||
result, err := data.Create()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
app.OK(c,result,"")
|
||||
}
|
||||
|
||||
@@ -118,10 +117,10 @@ func InsertMenu(c *gin.Context) {
|
||||
func UpdateMenu(c *gin.Context) {
|
||||
var data models.Menu
|
||||
err2 := c.BindWith(&data, binding.JSON)
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
pkg.HasError(err2, "修改失败", -1)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
tools.HasError(err2, "修改失败", -1)
|
||||
_, err := data.Update(data.MenuId)
|
||||
pkg.HasError(err, "", 501)
|
||||
tools.HasError(err, "", 501)
|
||||
app.OK(c,"","修改成功")
|
||||
|
||||
}
|
||||
@@ -135,10 +134,10 @@ func UpdateMenu(c *gin.Context) {
|
||||
// @Router /api/v1/menu/{id} [delete]
|
||||
func DeleteMenu(c *gin.Context) {
|
||||
var data models.Menu
|
||||
id, err := utils.StringToInt(c.Param("id"))
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
id, err := tools.StringToInt(c.Param("id"))
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
_, err = data.Delete(id)
|
||||
pkg.HasError(err, "删除失败", 500)
|
||||
tools.HasError(err, "删除失败", 500)
|
||||
app.OK(c,"","删除成功")
|
||||
}
|
||||
|
||||
@@ -152,8 +151,8 @@ func DeleteMenu(c *gin.Context) {
|
||||
// @Security Bearer
|
||||
func GetMenuRole(c *gin.Context) {
|
||||
var Menu models.Menu
|
||||
result, err := Menu.SetMenuRole(utils.GetRoleName(c))
|
||||
pkg.HasError(err, "获取失败", 500)
|
||||
result, err := Menu.SetMenuRole(tools.GetRoleName(c))
|
||||
tools.HasError(err, "获取失败", 500)
|
||||
app.OK(c,result,"")
|
||||
}
|
||||
|
||||
@@ -168,8 +167,8 @@ func GetMenuRole(c *gin.Context) {
|
||||
func GetMenuIDS(c *gin.Context) {
|
||||
var data models.RoleMenu
|
||||
data.RoleName = c.GetString("role")
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
result, err := data.GetIDS()
|
||||
pkg.HasError(err, "获取失败", 500)
|
||||
tools.HasError(err, "获取失败", 500)
|
||||
app.OK(c,result,"")
|
||||
}
|
||||
|
||||
+18
-19
@@ -3,9 +3,8 @@ package system
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
)
|
||||
|
||||
// @Summary 职位列表数据
|
||||
@@ -24,21 +23,21 @@ func GetPostList(c *gin.Context) {
|
||||
var pageIndex = 1
|
||||
|
||||
if size := c.Request.FormValue("pageSize"); size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools.StrToInt(err, size)
|
||||
}
|
||||
|
||||
if index := c.Request.FormValue("pageIndex"); index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.PostName = c.Request.FormValue("postName")
|
||||
id := c.Request.FormValue("postId")
|
||||
data.PostId, _ = utils.StringToInt(id)
|
||||
data.PostId, _ = tools.StringToInt(id)
|
||||
|
||||
data.PostName = c.Request.FormValue("postName")
|
||||
data.DataScope = utils.GetUserIdStr(c)
|
||||
data.DataScope = tools.GetUserIdStr(c)
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
app.PageOK(c, result, count, pageIndex, pageSize, "")
|
||||
}
|
||||
|
||||
@@ -51,9 +50,9 @@ func GetPostList(c *gin.Context) {
|
||||
// @Security
|
||||
func GetPost(c *gin.Context) {
|
||||
var Post models.Post
|
||||
Post.PostId, _ = utils.StringToInt(c.Param("postId"))
|
||||
Post.PostId, _ = tools.StringToInt(c.Param("postId"))
|
||||
result, err := Post.Get()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
app.OK(c,result,"")
|
||||
}
|
||||
|
||||
@@ -70,10 +69,10 @@ func GetPost(c *gin.Context) {
|
||||
func InsertPost(c *gin.Context) {
|
||||
var data models.Post
|
||||
err := c.Bind(&data)
|
||||
data.CreateBy = utils.GetUserIdStr(c)
|
||||
pkg.HasError(err, "", 500)
|
||||
data.CreateBy = tools.GetUserIdStr(c)
|
||||
tools.HasError(err, "", 500)
|
||||
result, err := data.Create()
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
app.OK(c,result,"")
|
||||
}
|
||||
|
||||
@@ -91,10 +90,10 @@ func UpdatePost(c *gin.Context) {
|
||||
var data models.Post
|
||||
|
||||
err := c.Bind(&data)
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
pkg.HasError(err, "", -1)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
tools.HasError(err, "", -1)
|
||||
result, err := data.Update(data.PostId)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
app.OK(c,result,"修改成功")
|
||||
}
|
||||
|
||||
@@ -107,9 +106,9 @@ func UpdatePost(c *gin.Context) {
|
||||
// @Router /api/v1/post/{postId} [delete]
|
||||
func DeletePost(c *gin.Context) {
|
||||
var data models.Post
|
||||
id, err := utils.StringToInt(c.Param("postId"))
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
id, err := tools.StringToInt(c.Param("postId"))
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
_, err = data.Delete(id)
|
||||
pkg.HasError(err, "删除失败", 500)
|
||||
tools.HasError(err, "删除失败", 500)
|
||||
app.OK(c,"","删除成功")
|
||||
}
|
||||
|
||||
+24
-25
@@ -4,9 +4,8 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
)
|
||||
|
||||
// @Summary 角色列表数据
|
||||
@@ -27,19 +26,19 @@ func GetRoleList(c *gin.Context) {
|
||||
var pageIndex = 1
|
||||
|
||||
if size := c.Request.FormValue("pageSize"); size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools.StrToInt(err, size)
|
||||
}
|
||||
|
||||
if index := c.Request.FormValue("pageIndex"); index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.RoleKey = c.Request.FormValue("roleKey")
|
||||
data.RoleName = c.Request.FormValue("roleName")
|
||||
data.Status = c.Request.FormValue("status")
|
||||
data.DataScope = utils.GetUserIdStr(c)
|
||||
data.DataScope = tools.GetUserIdStr(c)
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
|
||||
app.PageOK(c, result, count, pageIndex, pageSize, "")
|
||||
}
|
||||
@@ -54,11 +53,11 @@ func GetRoleList(c *gin.Context) {
|
||||
// @Security Bearer
|
||||
func GetRole(c *gin.Context) {
|
||||
var Role models.SysRole
|
||||
Role.RoleId, _ = utils.StringToInt(c.Param("roleId"))
|
||||
Role.RoleId, _ = tools.StringToInt(c.Param("roleId"))
|
||||
result, err := Role.Get()
|
||||
menuIds := make([]int, 0)
|
||||
menuIds, err = Role.GetRoleMeunId()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
result.MenuIds = menuIds
|
||||
app.OK(c, result, "")
|
||||
|
||||
@@ -75,15 +74,15 @@ func GetRole(c *gin.Context) {
|
||||
// @Router /api/v1/role [post]
|
||||
func InsertRole(c *gin.Context) {
|
||||
var data models.SysRole
|
||||
data.CreateBy = utils.GetUserIdStr(c)
|
||||
data.CreateBy = tools.GetUserIdStr(c)
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
pkg.HasError(err, "", 500)
|
||||
tools.HasError(err, "", 500)
|
||||
id, err := data.Insert()
|
||||
data.RoleId = id
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
var t models.RoleMenu
|
||||
_, err = t.Insert(id, data.MenuIds)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
app.OK(c, data, "添加成功")
|
||||
}
|
||||
|
||||
@@ -98,32 +97,32 @@ func InsertRole(c *gin.Context) {
|
||||
// @Router /api/v1/role [put]
|
||||
func UpdateRole(c *gin.Context) {
|
||||
var data models.SysRole
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
err := c.Bind(&data)
|
||||
pkg.HasError(err, "数据解析失败", -1)
|
||||
tools.HasError(err, "数据解析失败", -1)
|
||||
result, err := data.Update(data.RoleId)
|
||||
var t models.RoleMenu
|
||||
_, err = t.DeleteRoleMenu(data.RoleId)
|
||||
pkg.HasError(err, "添加失败1", -1)
|
||||
tools.HasError(err, "添加失败1", -1)
|
||||
_, err2 := t.Insert(data.RoleId, data.MenuIds)
|
||||
pkg.HasError(err2, "添加失败2", -1)
|
||||
tools.HasError(err2, "添加失败2", -1)
|
||||
|
||||
app.OK(c, result, "修改成功")
|
||||
}
|
||||
|
||||
func UpdateRoleDataScope(c *gin.Context) {
|
||||
var data models.SysRole
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
err := c.Bind(&data)
|
||||
pkg.HasError(err, "数据解析失败", -1)
|
||||
tools.HasError(err, "数据解析失败", -1)
|
||||
result, err := data.Update(data.RoleId)
|
||||
|
||||
var t models.SysRoleDept
|
||||
_, err = t.DeleteRoleDept(data.RoleId)
|
||||
pkg.HasError(err, "添加失败1", -1)
|
||||
tools.HasError(err, "添加失败1", -1)
|
||||
if data.DataScope == "2" {
|
||||
_, err2 := t.Insert(data.RoleId, data.DeptIds)
|
||||
pkg.HasError(err2, "添加失败2", -1)
|
||||
tools.HasError(err2, "添加失败2", -1)
|
||||
}
|
||||
app.OK(c, result, "修改成功")
|
||||
}
|
||||
@@ -137,13 +136,13 @@ func UpdateRoleDataScope(c *gin.Context) {
|
||||
// @Router /api/v1/role/{roleId} [delete]
|
||||
func DeleteRole(c *gin.Context) {
|
||||
var Role models.SysRole
|
||||
Role.UpdateBy = utils.GetUserIdStr(c)
|
||||
Role.UpdateBy = tools.GetUserIdStr(c)
|
||||
|
||||
IDS := utils.IdsStrToIdsIntGroup("roleId", c)
|
||||
IDS := tools.IdsStrToIdsIntGroup("roleId", c)
|
||||
_, err := Role.BatchDelete(IDS)
|
||||
pkg.HasError(err, "删除失败1", -1)
|
||||
tools.HasError(err, "删除失败1", -1)
|
||||
var t models.RoleMenu
|
||||
_, err = t.BatchDeleteRoleMenu(IDS)
|
||||
pkg.HasError(err, "删除失败1", -1)
|
||||
tools.HasError(err, "删除失败1", -1)
|
||||
app.OK(c, "", "删除成功")
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/tools/app"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
|
||||
+27
-28
@@ -5,9 +5,8 @@ import (
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"github.com/google/uuid"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"log"
|
||||
)
|
||||
|
||||
@@ -27,25 +26,25 @@ func GetSysUserList(c *gin.Context) {
|
||||
|
||||
size := c.Request.FormValue("pageSize")
|
||||
if size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools.StrToInt(err, size)
|
||||
}
|
||||
|
||||
index := c.Request.FormValue("pageIndex")
|
||||
if index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.Username = c.Request.FormValue("userName")
|
||||
|
||||
postId := c.Request.FormValue("postId")
|
||||
data.PostId, _ = utils.StringToInt(postId)
|
||||
data.PostId, _ = tools.StringToInt(postId)
|
||||
|
||||
deptId := c.Request.FormValue("deptId")
|
||||
data.DeptId, _ = utils.StringToInt(deptId)
|
||||
data.DeptId, _ = tools.StringToInt(deptId)
|
||||
|
||||
data.DataScope = utils.GetUserIdStr(c)
|
||||
data.DataScope = tools.GetUserIdStr(c)
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools.HasError(err, "", -1)
|
||||
|
||||
app.PageOK(c, result, count, pageIndex, pageSize, "")
|
||||
}
|
||||
@@ -59,9 +58,9 @@ func GetSysUserList(c *gin.Context) {
|
||||
// @Security
|
||||
func GetSysUser(c *gin.Context) {
|
||||
var SysUser models.SysUser
|
||||
SysUser.UserId, _ = utils.StringToInt(c.Param("userId"))
|
||||
SysUser.UserId, _ = tools.StringToInt(c.Param("userId"))
|
||||
result, err := SysUser.Get()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
var SysRole models.SysRole
|
||||
var Post models.Post
|
||||
roles, err := SysRole.GetList()
|
||||
@@ -90,10 +89,10 @@ func GetSysUser(c *gin.Context) {
|
||||
// @Security
|
||||
func GetSysUserProfile(c *gin.Context) {
|
||||
var SysUser models.SysUser
|
||||
userId := utils.GetUserIdStr(c)
|
||||
SysUser.UserId, _ = utils.StringToInt(userId)
|
||||
userId := tools.GetUserIdStr(c)
|
||||
SysUser.UserId, _ = tools.StringToInt(userId)
|
||||
result, err := SysUser.Get()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
var SysRole models.SysRole
|
||||
var Post models.Post
|
||||
var Dept models.Dept
|
||||
@@ -133,7 +132,7 @@ func GetSysUserInit(c *gin.Context) {
|
||||
var Post models.Post
|
||||
roles, err := SysRole.GetList()
|
||||
posts, err := Post.GetList()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools.HasError(err, "抱歉未找到相关信息", -1)
|
||||
mp := make(map[string]interface{}, 2)
|
||||
mp["roles"] = roles
|
||||
mp["posts"] = posts
|
||||
@@ -152,11 +151,11 @@ func GetSysUserInit(c *gin.Context) {
|
||||
func InsertSysUser(c *gin.Context) {
|
||||
var sysuser models.SysUser
|
||||
err := c.BindWith(&sysuser, binding.JSON)
|
||||
pkg.HasError(err, "非法数据格式", 500)
|
||||
tools.HasError(err, "非法数据格式", 500)
|
||||
|
||||
sysuser.CreateBy = utils.GetUserIdStr(c)
|
||||
sysuser.CreateBy = tools.GetUserIdStr(c)
|
||||
id, err := sysuser.Insert()
|
||||
pkg.HasError(err, "添加失败", 500)
|
||||
tools.HasError(err, "添加失败", 500)
|
||||
app.OK(c, id, "添加成功")
|
||||
}
|
||||
|
||||
@@ -172,10 +171,10 @@ func InsertSysUser(c *gin.Context) {
|
||||
func UpdateSysUser(c *gin.Context) {
|
||||
var data models.SysUser
|
||||
err := c.BindWith(&data, binding.JSON)
|
||||
pkg.HasError(err, "数据解析失败", -1)
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
tools.HasError(err, "数据解析失败", -1)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
result, err := data.Update(data.UserId)
|
||||
pkg.HasError(err, "修改失败", 500)
|
||||
tools.HasError(err, "修改失败", 500)
|
||||
app.OK(c, result, "修改成功")
|
||||
}
|
||||
|
||||
@@ -188,10 +187,10 @@ func UpdateSysUser(c *gin.Context) {
|
||||
// @Router /api/v1/sysuser/{userId} [delete]
|
||||
func DeleteSysUser(c *gin.Context) {
|
||||
var data models.SysUser
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
IDS := utils.IdsStrToIdsIntGroup("userId", c)
|
||||
data.UpdateBy = tools.GetUserIdStr(c)
|
||||
IDS := tools.IdsStrToIdsIntGroup("userId", c)
|
||||
result, err := data.BatchDelete(IDS)
|
||||
pkg.HasError(err, "删除失败", 500)
|
||||
tools.HasError(err, "删除失败", 500)
|
||||
app.OK(c, result, "删除成功")
|
||||
}
|
||||
|
||||
@@ -214,9 +213,9 @@ func InsetSysUserAvatar(c *gin.Context) {
|
||||
_ = c.SaveUploadedFile(file, filPath)
|
||||
}
|
||||
sysuser := models.SysUser{}
|
||||
sysuser.UserId = utils.GetUserId(c)
|
||||
sysuser.UserId = tools.GetUserId(c)
|
||||
sysuser.Avatar = "/" + filPath
|
||||
sysuser.UpdateBy = utils.GetUserIdStr(c)
|
||||
sysuser.UpdateBy = tools.GetUserIdStr(c)
|
||||
sysuser.Update(sysuser.UserId)
|
||||
app.OK(c, filPath, "修改成功")
|
||||
}
|
||||
@@ -224,9 +223,9 @@ func InsetSysUserAvatar(c *gin.Context) {
|
||||
func SysUserUpdatePwd(c *gin.Context) {
|
||||
var pwd models.SysUserPwd
|
||||
err := c.Bind(&pwd)
|
||||
pkg.HasError(err, "数据解析失败", 500)
|
||||
tools.HasError(err, "数据解析失败", 500)
|
||||
sysuser := models.SysUser{}
|
||||
sysuser.UserId = utils.GetUserId(c)
|
||||
sysuser.UserId = tools.GetUserId(c)
|
||||
sysuser.SetPwd(pwd)
|
||||
app.OK(c, "", "密码修改成功")
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@ package tools
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/models/tools"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
tools2 "go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
@@ -23,17 +23,17 @@ func GetDBColumnList(c *gin.Context) {
|
||||
var pageIndex = 1
|
||||
|
||||
if size := c.Request.FormValue("pageSize"); size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools2.StrToInt(err, size)
|
||||
}
|
||||
|
||||
if index := c.Request.FormValue("pageIndex"); index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools2.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.TableName = c.Request.FormValue("tableName")
|
||||
pkg.Assert(data.TableName=="","table name cannot be empty!",500)
|
||||
tools2.Assert(data.TableName=="","table name cannot be empty!",500)
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools2.HasError(err, "", -1)
|
||||
|
||||
var mp = make(map[string]interface{}, 3)
|
||||
mp["list"] = result
|
||||
|
||||
@@ -2,10 +2,10 @@ package tools
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/config"
|
||||
"go-admin/models/tools"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
tools2 "go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
config2 "go-admin/tools/config"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
@@ -23,23 +23,23 @@ func GetDBTableList(c *gin.Context) {
|
||||
var err error
|
||||
var pageSize = 10
|
||||
var pageIndex = 1
|
||||
if config.DatabaseConfig.Dbtype=="sqlite3"{
|
||||
if config2.DatabaseConfig.Dbtype=="sqlite3"{
|
||||
res.Msg="对不起,sqlite3 暂不支持代码生成!"
|
||||
c.JSON(http.StatusOK, res.ReturnError(500))
|
||||
return
|
||||
}
|
||||
|
||||
if size := c.Request.FormValue("pageSize"); size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools2.StrToInt(err, size)
|
||||
}
|
||||
|
||||
if index := c.Request.FormValue("pageIndex"); index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools2.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.TableName = c.Request.FormValue("tableName")
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools2.HasError(err, "", -1)
|
||||
|
||||
var mp = make(map[string]interface{}, 3)
|
||||
mp["list"] = result
|
||||
|
||||
+6
-7
@@ -4,22 +4,21 @@ import (
|
||||
"bytes"
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/models/tools"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
tools2 "go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"net/http"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
func Preview(c *gin.Context) {
|
||||
table := tools.SysTables{}
|
||||
id, err := utils.StringToInt(c.Param("tableId"))
|
||||
pkg.HasError(err, "", -1)
|
||||
id, err := tools2.StringToInt(c.Param("tableId"))
|
||||
tools2.HasError(err, "", -1)
|
||||
table.TableId = id
|
||||
t1, err := template.ParseFiles("template/model.go.template")
|
||||
pkg.HasError(err, "", -1)
|
||||
tools2.HasError(err, "", -1)
|
||||
t2, err := template.ParseFiles("template/api.go.template")
|
||||
pkg.HasError(err, "", -1)
|
||||
tools2.HasError(err, "", -1)
|
||||
tab, _ := table.Get()
|
||||
var b1 bytes.Buffer
|
||||
err = t1.Execute(&b1, tab)
|
||||
|
||||
+15
-16
@@ -3,9 +3,8 @@ package tools
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/models/tools"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/pkg/utils"
|
||||
tools2 "go-admin/tools"
|
||||
"go-admin/tools/app"
|
||||
"net/http"
|
||||
"strings"
|
||||
)
|
||||
@@ -25,16 +24,16 @@ func GetSysTableList(c *gin.Context) {
|
||||
var pageIndex = 1
|
||||
|
||||
if size := c.Request.FormValue("pageSize"); size != "" {
|
||||
pageSize = pkg.StrToInt(err, size)
|
||||
pageSize = tools2.StrToInt(err, size)
|
||||
}
|
||||
|
||||
if index := c.Request.FormValue("pageIndex"); index != "" {
|
||||
pageIndex = pkg.StrToInt(err, index)
|
||||
pageIndex = tools2.StrToInt(err, index)
|
||||
}
|
||||
|
||||
data.TableName = c.Request.FormValue("tableName")
|
||||
result, count, err := data.GetPage(pageSize, pageIndex)
|
||||
pkg.HasError(err, "", -1)
|
||||
tools2.HasError(err, "", -1)
|
||||
|
||||
var mp = make(map[string]interface{}, 3)
|
||||
mp["list"] = result
|
||||
@@ -57,9 +56,9 @@ func GetSysTableList(c *gin.Context) {
|
||||
// @Security
|
||||
func GetSysTables(c *gin.Context) {
|
||||
var data tools.SysTables
|
||||
data.TableId, _ = utils.StringToInt(c.Param("tableId"))
|
||||
data.TableId, _ = tools2.StringToInt(c.Param("tableId"))
|
||||
result, err := data.Get()
|
||||
pkg.HasError(err, "抱歉未找到相关信息", -1)
|
||||
tools2.HasError(err, "抱歉未找到相关信息", -1)
|
||||
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
@@ -85,7 +84,7 @@ func InsertSysTable(c *gin.Context) {
|
||||
var dbTable tools.DBTables
|
||||
var dbColumn tools.DBColumns
|
||||
data.TableName = c.Request.FormValue("tables")
|
||||
data.CreateBy = utils.GetUserIdStr(c)
|
||||
data.CreateBy = tools2.GetUserIdStr(c)
|
||||
|
||||
dbTable.TableName = data.TableName
|
||||
dbtable, err := dbTable.Get()
|
||||
@@ -103,7 +102,7 @@ func InsertSysTable(c *gin.Context) {
|
||||
data.Crud = true
|
||||
|
||||
dbcolumn, err := dbColumn.GetList()
|
||||
data.CreateBy = utils.GetUserIdStr(c)
|
||||
data.CreateBy = tools2.GetUserIdStr(c)
|
||||
data.TableComment = dbtable.TableComment
|
||||
if dbtable.TableComment == "" {
|
||||
data.TableComment = data.ClassName
|
||||
@@ -163,7 +162,7 @@ func InsertSysTable(c *gin.Context) {
|
||||
}
|
||||
|
||||
result, err := data.Create()
|
||||
pkg.HasError(err, "", -1)
|
||||
tools2.HasError(err, "", -1)
|
||||
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
@@ -185,10 +184,10 @@ func InsertSysTable(c *gin.Context) {
|
||||
func UpdateSysTable(c *gin.Context) {
|
||||
var data tools.SysTables
|
||||
err := c.Bind(&data)
|
||||
pkg.HasError(err, "数据解析失败", -1)
|
||||
data.UpdateBy = utils.GetUserIdStr(c)
|
||||
tools2.HasError(err, "数据解析失败", -1)
|
||||
data.UpdateBy = tools2.GetUserIdStr(c)
|
||||
result, err := data.Update()
|
||||
pkg.HasError(err, "", -1)
|
||||
tools2.HasError(err, "", -1)
|
||||
|
||||
var res app.Response
|
||||
res.Data = result
|
||||
@@ -205,10 +204,10 @@ func UpdateSysTable(c *gin.Context) {
|
||||
// @Router /api/v1/sys/tables/info/{tableId} [delete]
|
||||
func DeleteSysTables(c *gin.Context) {
|
||||
var data tools.SysTables
|
||||
id, err := utils.StringToInt(c.Param("tableId"))
|
||||
id, err := tools2.StringToInt(c.Param("tableId"))
|
||||
data.TableId = id
|
||||
_, err = data.Delete()
|
||||
pkg.HasError(err, "删除失败", 500)
|
||||
tools2.HasError(err, "删除失败", 500)
|
||||
var res app.Response
|
||||
res.Msg = "删除成功"
|
||||
c.JSON(http.StatusOK, res.ReturnOK())
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
"go-admin/database"
|
||||
"go-admin/router"
|
||||
"go-admin/tools"
|
||||
config2 "go-admin/tools/config"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
config string
|
||||
port string
|
||||
mode string
|
||||
//auto tls
|
||||
//StartCmd : set up restful api server
|
||||
StartCmd = &cobra.Command{
|
||||
Use: "server",
|
||||
Short: "Start API server",
|
||||
Example: "go-admin server config/settings.yml",
|
||||
PreRun: func(cmd *cobra.Command, args []string) {
|
||||
usage()
|
||||
setup()
|
||||
},
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
return run()
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
func init() {
|
||||
StartCmd.PersistentFlags().StringVarP(&config, "config", "c", "config/settings.yml", "Start server with provided configuration file")
|
||||
StartCmd.PersistentFlags().StringVarP(&port, "port", "p", "8000", "Tcp port server listening on")
|
||||
StartCmd.PersistentFlags().StringVarP(&mode, "mode", "m", "dev", "server mode ; eg:dev,test,prod")
|
||||
}
|
||||
|
||||
func usage() {
|
||||
usageStr := `starting api server`
|
||||
fmt.Printf("%s\n", usageStr)
|
||||
}
|
||||
|
||||
func setup() {
|
||||
|
||||
//1. 读取配置
|
||||
config2.ConfigSetup(config)
|
||||
//2. 设置日志
|
||||
tools.InitLogger()
|
||||
//3. 初始化数据库链接
|
||||
database.Setup()
|
||||
//4. 设置gin mode
|
||||
if viper.GetString("settings.application.mode") == string(tools.ModeProd) {
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
}
|
||||
}
|
||||
|
||||
func run() error {
|
||||
r := router.InitRouter()
|
||||
|
||||
defer database.Eloquent.Close()
|
||||
|
||||
srv := &http.Server{
|
||||
Addr: config2.ApplicationConfig.Host + ":" + config2.ApplicationConfig.Port,
|
||||
Handler: r,
|
||||
}
|
||||
|
||||
go func() {
|
||||
// 服务连接
|
||||
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
log.Fatalf("listen: %s\n", err)
|
||||
}
|
||||
}()
|
||||
log.Println("Server Run ", config2.ApplicationConfig.Host+":"+config2.ApplicationConfig.Port)
|
||||
log.Println("Enter Control + C Shutdown Server")
|
||||
// 等待中断信号以优雅地关闭服务器(设置 5 秒的超时时间)
|
||||
quit := make(chan os.Signal)
|
||||
signal.Notify(quit, os.Interrupt)
|
||||
<-quit
|
||||
log.Println("Shutdown Server ...")
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
if err := srv.Shutdown(ctx); err != nil {
|
||||
log.Fatal("Server Shutdown:", err)
|
||||
}
|
||||
log.Println("Server exiting")
|
||||
return nil
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"go-admin/cmd/api"
|
||||
"go-admin/cmd/migrate"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "go-admin",
|
||||
Short: "-v",
|
||||
SilenceUsage: true,
|
||||
DisableAutoGenTag: true,
|
||||
Long: `go-admin`,
|
||||
PersistentPreRunE: func(*cobra.Command, []string) error { return nil },
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
usageStr := `go-admin 0.0.1`
|
||||
log.Printf("%s\n", usageStr)
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(api.StartCmd)
|
||||
rootCmd.AddCommand(migrate.StartCmd)
|
||||
}
|
||||
|
||||
//Execute : apply commands
|
||||
func Execute() {
|
||||
if err := rootCmd.Execute(); err != nil {
|
||||
os.Exit(-1)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package migrate
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
orm "go-admin/database"
|
||||
"go-admin/models"
|
||||
"go-admin/models/gorm"
|
||||
tools2 "go-admin/models/tools"
|
||||
"go-admin/tools"
|
||||
config2 "go-admin/tools/config"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var (
|
||||
config string
|
||||
mode string
|
||||
StartCmd = &cobra.Command{
|
||||
Use: "migrate",
|
||||
Short: "Migrate about gdb operator",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
run()
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
func init() {
|
||||
StartCmd.PersistentFlags().StringVarP(&config, "config", "c", "config/app.yml", "Start server with provided configuration file")
|
||||
StartCmd.PersistentFlags().StringVarP(&mode, "mode", "m", "dev", "server mode ; eg:dev,test,prod")
|
||||
}
|
||||
|
||||
func run() {
|
||||
usage := `start migrate`
|
||||
fmt.Println(usage)
|
||||
//1. 读取配置
|
||||
config2.ConfigSetup(config)
|
||||
//2. 设置日志
|
||||
tools.InitLogger()
|
||||
//3. 初始化数据库链接
|
||||
//dao.Setup()
|
||||
//4. 数据库迁移
|
||||
gorm.AutoMigrate(orm.Eloquent)
|
||||
//db := gdb.GetDB()
|
||||
//db.AutoMigrate(migrateModel()...)
|
||||
usage = `finish`
|
||||
fmt.Println(usage)
|
||||
}
|
||||
|
||||
func migrateModel() error {
|
||||
if config2.DatabaseConfig.Dbtype == "mysql" {
|
||||
orm.Eloquent = orm.Eloquent.Set("gorm:table_options", "ENGINE=InnoDB CHARSET=utf8mb4")
|
||||
}
|
||||
orm.Eloquent.SingularTable(true)
|
||||
return orm.Eloquent.AutoMigrate(
|
||||
new(models.CasbinRule),
|
||||
new(tools2.SysTables),
|
||||
new(tools2.SysColumns),
|
||||
new(models.Dept),
|
||||
new(models.Menu),
|
||||
new(models.LoginLog),
|
||||
new(models.SysOperLog),
|
||||
new(models.RoleMenu),
|
||||
new(models.SysRoleDept),
|
||||
new(models.SysUser),
|
||||
new(models.SysRole),
|
||||
new(models.Post),
|
||||
new(models.DictData),
|
||||
new(models.SysConfig),
|
||||
new(models.DictType),
|
||||
).Error
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/spf13/viper"
|
||||
"log"
|
||||
)
|
||||
|
||||
var cfgDatabase *viper.Viper
|
||||
var cfgApplication *viper.Viper
|
||||
var cfgJwt *viper.Viper
|
||||
|
||||
func init() {
|
||||
viper.SetConfigName("settings")
|
||||
viper.AddConfigPath("./config")
|
||||
err := viper.ReadInConfig()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
cfgDatabase = viper.Sub("settings.database")
|
||||
if cfgDatabase == nil {
|
||||
panic("config not found settings.database")
|
||||
}
|
||||
DatabaseConfig = InitDatabase(cfgDatabase)
|
||||
|
||||
cfgApplication = viper.Sub("settings.application")
|
||||
if cfgApplication == nil {
|
||||
panic("config not found settings.application")
|
||||
}
|
||||
ApplicationConfig = InitApplication(cfgApplication)
|
||||
|
||||
cfgJwt = viper.Sub("settings.jwt")
|
||||
if cfgJwt == nil {
|
||||
panic("config not found settings.jwt")
|
||||
}
|
||||
JwtConfig = InitJwt(cfgJwt)
|
||||
}
|
||||
|
||||
func SetApplicationIsInit() {
|
||||
SetConfig("./config","settings.application.isInit", false)
|
||||
}
|
||||
|
||||
func SetConfig(configPath string,key string,value interface{}){
|
||||
viper.AddConfigPath(configPath)
|
||||
viper.Set(key, value)
|
||||
viper.WriteConfig()
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
p, admin, /api/v1/menulist, GET
|
||||
p, admin, /api/v1/menu, POST
|
||||
p, admin, /api/v1/dict/databytype/, GET
|
||||
p, admin, /api/v1/menu/, PUT
|
||||
p, admin, /api/v1/menu/, DELETE
|
||||
p, admin, /api/v1/sysUserList, GET
|
||||
p, admin, /api/v1/sysUser/:id, GET
|
||||
p, admin, /api/v1/sysUser/, GET
|
||||
p, admin, /api/v1/sysUser, POST
|
||||
p, admin, /api/v1/sysUser, PUT
|
||||
p, admin, /api/v1/sysUser/:id, DELETE
|
||||
p, admin, /api/v1/user/profile, GET
|
||||
p, admin, /api/v1/rolelist, GET
|
||||
p, admin, /api/v1/role/:id, GET
|
||||
p, admin, /api/v1/role, POST
|
||||
p, admin, /api/v1/role, PUT
|
||||
p, admin, /api/v1/role/:id, DELETE
|
||||
p, admin, /api/v1/configList, GET
|
||||
p, admin, /api/v1/config/:id, GET
|
||||
p, admin, /api/v1/configKey/:id, GET
|
||||
p, admin, /api/v1/config, POST
|
||||
p, admin, /api/v1/config/, PUT
|
||||
p, admin, /api/v1/config/:id, DELETE
|
||||
p, admin, /api/v1/menurole, GET
|
||||
p, admin, /api/v1/roleMenuTreeselect/:id, GET
|
||||
p, admin, /api/v1/menuTreeselect, GET
|
||||
p, admin, /api/v1/rolemenu, GET
|
||||
p, admin, /api/v1/rolemenu, POST
|
||||
p, admin, /api/v1/rolemenu/:id, DELETE
|
||||
p, admin, /api/v1/doctor, GET
|
||||
p, admin, /api/v1/doctor, POST
|
||||
p, admin, /api/v1/doctor/:id, PUT
|
||||
p, admin, /api/v1/doctor/:id, DELETE
|
||||
p, admin, /api/v1/doctor/pic/, POST
|
||||
p, admin, /api/v1/deptList, GET
|
||||
p, admin, /api/v1/dept/:id, GET
|
||||
p, admin, /api/v1/dept, POST
|
||||
p, admin, /api/v1/dept, PUT
|
||||
p, admin, /api/v1/dept/:id, DELETE
|
||||
p, admin, /api/v1/dict/datalist, GET
|
||||
p, admin, /api/v1/dict/data/:id, GET
|
||||
p, admin, /api/v1/dict/databytype/:id, GET
|
||||
p, admin, /api/v1/dict/data, POST
|
||||
p, admin, /api/v1/dict/data/, PUT
|
||||
p, admin, /api/v1/dict/data/:id, DELETE
|
||||
p, admin, /api/v1/dict/typelist, GET
|
||||
p, admin, /api/v1/dict/type/:id, GET
|
||||
p, admin, /api/v1/dict/type, POST
|
||||
p, admin, /api/v1/dict/type, PUT
|
||||
p, admin, /api/v1/dict/type/:id, DELETE
|
||||
p, admin, /api/v1/postlist, GET
|
||||
p, admin, /api/v1/post/:id, GET
|
||||
p, admin, /api/v1/post, POST
|
||||
p, admin, /api/v1/post, PUT
|
||||
p, admin, /api/v1/post/:id, DELETE
|
||||
p, admin, /api/v1/calendar, GET
|
||||
p, admin, /api/v1/calendar, POST
|
||||
p, admin, /api/v1/calendar/:id, PUT
|
||||
p, admin, /api/v1/calendar/:id, DELETE
|
||||
p, admin, /api/v1/member, GET
|
||||
p, admin, /api/v1/member, POST
|
||||
p, admin, /api/v1/member/:id, PUT
|
||||
p, admin, /api/v1/member/:id, DELETE
|
||||
p, admin, /api/v1/orders, GET
|
||||
p, admin, /api/v1/orders/:id, GET
|
||||
p, admin, /api/v1/orders, POST
|
||||
p, admin, /api/v1/orders/:id, PUT
|
||||
p, admin, /api/v1/orders/:id, DELETE
|
||||
p, admin, /api/v1/menu/:id, GET
|
||||
p, admin, /api/v1/menu/:id, PUT
|
||||
p, admin, /api/v1/menuids, GET
|
||||
p, admin, /api/v1/loginloglist, GET
|
||||
p, admin, /api/v1/loginlog/:id, DELETE
|
||||
p, admin, /api/v1/operloglist, GET
|
||||
p, admin, /api/v1/getinfo, GET
|
||||
|
+7
-6
@@ -1,21 +1,22 @@
|
||||
settings:
|
||||
application:
|
||||
env: dev
|
||||
envmsg: "谢谢您的参与,但为了大家更好的体验,所以本次提交就算了吧!\U0001F600\U0001F600\U0001F600"
|
||||
mode: dev # dev开发环境 test测试环境 prod线上环境
|
||||
demomsg: "谢谢您的参与,但为了大家更好的体验,所以本次提交就算了吧!\U0001F600\U0001F600\U0001F600"
|
||||
host: 0.0.0.0
|
||||
isinit: false
|
||||
logpath: temp/logs/log.txt
|
||||
name: testApp
|
||||
port: 8000
|
||||
readtimeout: 1
|
||||
writertimeout: 2
|
||||
log:
|
||||
dir: temp/logs
|
||||
jwt:
|
||||
secret: go-admin
|
||||
timeout: 3600
|
||||
database:
|
||||
database: goadmin
|
||||
dbtype: mysql # sqlite3
|
||||
host: 127.0.0.1 # sqlite3.db
|
||||
name: goadmindb
|
||||
dbtype: mysql
|
||||
host: 127.0.0.1
|
||||
password: 123456
|
||||
port: 3306
|
||||
username: root
|
||||
|
||||
+44
-34
@@ -2,71 +2,81 @@ package database
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
_ "github.com/go-sql-driver/mysql" //加载mysql
|
||||
"github.com/jinzhu/gorm"
|
||||
_ "github.com/jinzhu/gorm/dialects/sqlite"
|
||||
config2 "go-admin/config"
|
||||
"go-admin/tools/config"
|
||||
"log"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
var Eloquent *gorm.DB
|
||||
|
||||
func init() {
|
||||
var (
|
||||
DbType string
|
||||
Host string
|
||||
Port int
|
||||
Name string
|
||||
Username string
|
||||
Password string
|
||||
)
|
||||
|
||||
dbType := config2.DatabaseConfig.Dbtype
|
||||
host := config2.DatabaseConfig.Host
|
||||
port := config2.DatabaseConfig.Port
|
||||
database := config2.DatabaseConfig.Database
|
||||
username := config2.DatabaseConfig.Username
|
||||
password := config2.DatabaseConfig.Password
|
||||
func Setup() {
|
||||
|
||||
if dbType != "mysql" && dbType != "sqlite3" {
|
||||
fmt.Println("db type unknow")
|
||||
DbType = config.DatabaseConfig.Dbtype
|
||||
Host = config.DatabaseConfig.Host
|
||||
Port = config.DatabaseConfig.Port
|
||||
Name = config.DatabaseConfig.Name
|
||||
Username = config.DatabaseConfig.Username
|
||||
Password = config.DatabaseConfig.Password
|
||||
|
||||
if DbType != "mysql" && DbType != "sqlite3" {
|
||||
log.Println("db type unknow")
|
||||
}
|
||||
var err error
|
||||
|
||||
var conn bytes.Buffer
|
||||
conn.WriteString(username)
|
||||
conn.WriteString(":")
|
||||
conn.WriteString(password)
|
||||
conn.WriteString("@tcp(")
|
||||
conn.WriteString(host)
|
||||
conn.WriteString(":")
|
||||
conn.WriteString(strconv.Itoa(port))
|
||||
conn.WriteString(")")
|
||||
conn.WriteString("/")
|
||||
conn.WriteString(database)
|
||||
conn.WriteString("?charset=utf8&parseTime=True&loc=Local&timeout=1000ms")
|
||||
conn := GetMysqlConnect()
|
||||
|
||||
log.Println(conn.String())
|
||||
log.Println(conn)
|
||||
|
||||
var db Database
|
||||
if dbType == "mysql" {
|
||||
if DbType == "mysql" {
|
||||
db = new(Mysql)
|
||||
Eloquent, err = db.Open(DbType, conn)
|
||||
|
||||
Eloquent, err = db.Open(dbType, conn.String())
|
||||
|
||||
} else if dbType == "sqlite3" {
|
||||
} else if DbType == "sqlite3" {
|
||||
db = new(SqlLite)
|
||||
Eloquent, err = db.Open(dbType, host)
|
||||
Eloquent, err = db.Open(DbType, Host)
|
||||
|
||||
} else {
|
||||
panic("db type unknow")
|
||||
}
|
||||
|
||||
Eloquent.LogMode(true)
|
||||
if err != nil {
|
||||
log.Fatalln("%s connect error %v",dbType, err)
|
||||
} else {
|
||||
log.Println("%s connect success!",dbType)
|
||||
log.Fatalln("%s connect error %v", DbType, err)
|
||||
}
|
||||
log.Println("%s connect success!", DbType)
|
||||
|
||||
if Eloquent.Error != nil {
|
||||
log.Fatalln("database error %v", Eloquent.Error)
|
||||
}
|
||||
|
||||
Eloquent.LogMode(true)
|
||||
}
|
||||
|
||||
func GetMysqlConnect() string {
|
||||
var conn bytes.Buffer
|
||||
conn.WriteString(Username)
|
||||
conn.WriteString(":")
|
||||
conn.WriteString(Password)
|
||||
conn.WriteString("@tcp(")
|
||||
conn.WriteString(Host)
|
||||
conn.WriteString(":")
|
||||
conn.WriteString(strconv.Itoa(Port))
|
||||
conn.WriteString(")")
|
||||
conn.WriteString("/")
|
||||
conn.WriteString(Name)
|
||||
conn.WriteString("?charset=utf8&parseTime=True&loc=Local&timeout=1000ms")
|
||||
return conn.String()
|
||||
}
|
||||
|
||||
type Database interface {
|
||||
|
||||
@@ -13,7 +13,6 @@ require (
|
||||
github.com/go-ole/go-ole v1.2.4 // indirect
|
||||
github.com/go-openapi/spec v0.19.7 // indirect
|
||||
github.com/go-openapi/swag v0.19.8 // indirect
|
||||
github.com/go-redis/redis v6.15.7+incompatible
|
||||
github.com/go-sql-driver/mysql v1.4.1
|
||||
github.com/golang/protobuf v1.3.2 // indirect
|
||||
github.com/google/uuid v1.1.1
|
||||
@@ -21,12 +20,14 @@ require (
|
||||
github.com/json-iterator/go v1.1.8 // indirect
|
||||
github.com/mailru/easyjson v0.7.1 // indirect
|
||||
github.com/mattn/go-isatty v0.0.10 // indirect
|
||||
github.com/mitchellh/go-homedir v1.1.0
|
||||
github.com/mojocn/base64Captcha v1.3.1
|
||||
github.com/mssola/user_agent v0.5.1
|
||||
github.com/robfig/cron/v3 v3.0.0
|
||||
github.com/satori/go.uuid v1.2.0
|
||||
github.com/shirou/gopsutil v2.20.3+incompatible
|
||||
github.com/sirupsen/logrus v1.2.0
|
||||
github.com/spf13/cobra v1.0.0
|
||||
github.com/spf13/viper v1.6.2
|
||||
github.com/swaggo/gin-swagger v1.2.0
|
||||
github.com/swaggo/swag v1.6.5
|
||||
|
||||
@@ -41,6 +41,7 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee
|
||||
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
||||
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
@@ -101,8 +102,6 @@ github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tF
|
||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||
github.com/go-openapi/swag v0.19.8 h1:vfK6jLhs7OI4tAXkvkooviaE1JEPcw3mutyegLHHjmk=
|
||||
github.com/go-openapi/swag v0.19.8/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
|
||||
github.com/go-redis/redis v6.15.7+incompatible h1:3skhDh95XQMpnqeqNftPkQD9jL9e5e36z/1SUm6dy1U=
|
||||
github.com/go-redis/redis v6.15.7+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
|
||||
github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA=
|
||||
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
|
||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||
@@ -145,6 +144,8 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
|
||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||
github.com/jinzhu/gorm v1.9.10 h1:HvrsqdhCW78xpJF67g1hMxS6eCToo9PZH4LDB8WKPac=
|
||||
github.com/jinzhu/gorm v1.9.10/go.mod h1:Kh6hTsSGffh4ui079FHrR5Gg+5D0hgihqDcsDN2BBJY=
|
||||
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
|
||||
@@ -175,6 +176,7 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/lib/pq v1.1.1 h1:sJZmqHoEaY7f+NPP8pgLB/WxulyR3fewgCM2qaSlBb4=
|
||||
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
|
||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=
|
||||
@@ -194,6 +196,8 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME
|
||||
github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o=
|
||||
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
|
||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
@@ -257,10 +261,13 @@ github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI=
|
||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||
github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=
|
||||
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8=
|
||||
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
|
||||
github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk=
|
||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
|
||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
|
||||
github.com/spf13/viper v1.6.2 h1:7aKfF+e8/k68gda3LOjo5RxiUqddoFxVq4BKBPrxk5E=
|
||||
github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
|
||||
+6
-6
@@ -6,7 +6,7 @@ import (
|
||||
"github.com/mssola/user_agent"
|
||||
"go-admin/models"
|
||||
jwt "go-admin/pkg/jwtauth"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
@@ -57,9 +57,9 @@ func Authenticator(c *gin.Context) (interface{}, error) {
|
||||
|
||||
ua := user_agent.New(c.Request.UserAgent())
|
||||
loginlog.Ipaddr = c.ClientIP()
|
||||
location := utils.GetLocation(c.ClientIP())
|
||||
location := tools.GetLocation(c.ClientIP())
|
||||
loginlog.LoginLocation = location
|
||||
loginlog.LoginTime = utils.GetCurrntTime()
|
||||
loginlog.LoginTime = tools.GetCurrntTime()
|
||||
loginlog.Status = "0"
|
||||
loginlog.Remark = c.Request.UserAgent()
|
||||
browserName, browserVersion := ua.Browser()
|
||||
@@ -110,16 +110,16 @@ func LogOut(c *gin.Context) {
|
||||
var loginlog models.LoginLog
|
||||
ua := user_agent.New(c.Request.UserAgent())
|
||||
loginlog.Ipaddr = c.ClientIP()
|
||||
location := utils.GetLocation(c.ClientIP())
|
||||
location := tools.GetLocation(c.ClientIP())
|
||||
loginlog.LoginLocation = location
|
||||
loginlog.LoginTime = utils.GetCurrntTime()
|
||||
loginlog.LoginTime = tools.GetCurrntTime()
|
||||
loginlog.Status = "0"
|
||||
loginlog.Remark = c.Request.UserAgent()
|
||||
browserName, browserVersion := ua.Browser()
|
||||
loginlog.Browser = browserName + " " + browserVersion
|
||||
loginlog.Os = ua.OS()
|
||||
loginlog.Platform = ua.Platform()
|
||||
loginlog.Username = utils.GetUserName(c)
|
||||
loginlog.Username = tools.GetUserName(c)
|
||||
loginlog.Msg = "退出成功"
|
||||
loginlog.Create()
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/tools/app"
|
||||
)
|
||||
|
||||
func HelloGoAdmin(c *gin.Context) {
|
||||
app.OK(c,"欢迎使用go-admin 中后台脚手架","")
|
||||
}
|
||||
+1
-1
@@ -7,7 +7,7 @@ import (
|
||||
"github.com/shirou/gopsutil/disk"
|
||||
"github.com/shirou/gopsutil/load"
|
||||
"github.com/shirou/gopsutil/mem"
|
||||
"go-admin/pkg/app"
|
||||
"go-admin/tools/app"
|
||||
"net/http"
|
||||
"runtime"
|
||||
"time"
|
||||
|
||||
@@ -1,18 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/config"
|
||||
orm "go-admin/database"
|
||||
"go-admin/models"
|
||||
"go-admin/models/gorm"
|
||||
"go-admin/router"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"time"
|
||||
"go-admin/cmd"
|
||||
)
|
||||
|
||||
// @title go-admin API
|
||||
@@ -26,58 +15,59 @@ import (
|
||||
// @in header
|
||||
// @name Authorization
|
||||
|
||||
//func main() {
|
||||
// configName := "settings"
|
||||
//
|
||||
//
|
||||
// config.InitConfig(configName)
|
||||
//
|
||||
// gin.SetMode(gin.DebugMode)
|
||||
// log.Println(config.DatabaseConfig.Port)
|
||||
//
|
||||
// err := gorm.AutoMigrate(orm.Eloquent)
|
||||
// if err != nil {
|
||||
// log.Fatalln("数据库初始化失败 err: %v", err)
|
||||
// }
|
||||
//
|
||||
// if config.ApplicationConfig.IsInit {
|
||||
// if err := models.InitDb(); err != nil {
|
||||
// log.Fatal("数据库基础数据初始化失败!")
|
||||
// } else {
|
||||
// config.SetApplicationIsInit()
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// r := router.InitRouter()
|
||||
//
|
||||
// defer orm.Eloquent.Close()
|
||||
//
|
||||
// srv := &http.Server{
|
||||
// Addr: config.ApplicationConfig.Host + ":" + config.ApplicationConfig.Port,
|
||||
// Handler: r,
|
||||
// }
|
||||
//
|
||||
// go func() {
|
||||
// // 服务连接
|
||||
// if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
// log.Fatalf("listen: %s\n", err)
|
||||
// }
|
||||
// }()
|
||||
// log.Println("Server Run ", config.ApplicationConfig.Host+":"+config.ApplicationConfig.Port)
|
||||
// log.Println("Enter Control + C Shutdown Server")
|
||||
// // 等待中断信号以优雅地关闭服务器(设置 5 秒的超时时间)
|
||||
// quit := make(chan os.Signal)
|
||||
// signal.Notify(quit, os.Interrupt)
|
||||
// <-quit
|
||||
// log.Println("Shutdown Server ...")
|
||||
//
|
||||
// ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
// defer cancel()
|
||||
// if err := srv.Shutdown(ctx); err != nil {
|
||||
// log.Fatal("Server Shutdown:", err)
|
||||
// }
|
||||
// log.Println("Server exiting")
|
||||
//}
|
||||
|
||||
func main() {
|
||||
|
||||
if config.ApplicationConfig.Env == "dev" {
|
||||
log.SetFlags(log.Lshortfile | log.LstdFlags)
|
||||
} else {
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
}
|
||||
log.Println(config.DatabaseConfig.Port)
|
||||
|
||||
err := gorm.AutoMigrate(orm.Eloquent)
|
||||
if err != nil {
|
||||
log.Fatalln("数据库初始化失败 err: %v", err)
|
||||
}
|
||||
|
||||
if config.ApplicationConfig.IsInit {
|
||||
if err := models.InitDb(); err != nil {
|
||||
log.Fatal("数据库基础数据初始化失败!")
|
||||
} else {
|
||||
config.SetApplicationIsInit()
|
||||
}
|
||||
}
|
||||
|
||||
r := router.InitRouter()
|
||||
|
||||
defer orm.Eloquent.Close()
|
||||
//if err := r.Run(config.ApplicationConfig.Host + ":" + config.ApplicationConfig.Port); err != nil {
|
||||
// log.Fatal(err)
|
||||
//}
|
||||
|
||||
srv := &http.Server{
|
||||
Addr: config.ApplicationConfig.Host + ":" + config.ApplicationConfig.Port,
|
||||
Handler: r,
|
||||
}
|
||||
|
||||
go func() {
|
||||
// 服务连接
|
||||
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
log.Fatalf("listen: %s\n", err)
|
||||
}
|
||||
}()
|
||||
log.Println("Server Run ", config.ApplicationConfig.Host+":"+config.ApplicationConfig.Port)
|
||||
log.Println("Enter Control + C Shutdown Server")
|
||||
// 等待中断信号以优雅地关闭服务器(设置 5 秒的超时时间)
|
||||
quit := make(chan os.Signal)
|
||||
signal.Notify(quit, os.Interrupt)
|
||||
<-quit
|
||||
log.Println("Shutdown Server ...")
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
if err := srv.Shutdown(ctx); err != nil {
|
||||
log.Fatal("Server Shutdown:", err)
|
||||
}
|
||||
log.Println("Server exiting")
|
||||
cmd.Execute()
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
config2 "go-admin/config"
|
||||
"go-admin/handler"
|
||||
jwt "go-admin/pkg/jwtauth"
|
||||
"go-admin/tools/config"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -13,7 +13,7 @@ func AuthInit() (*jwt.GinJWTMiddleware, error) {
|
||||
Key: []byte("secret key"),
|
||||
Timeout: time.Hour,
|
||||
MaxRefresh: time.Hour,
|
||||
IdentityKey: config2.ApplicationConfig.JwtSecret,
|
||||
IdentityKey: config.ApplicationConfig.JwtSecret,
|
||||
PayloadFunc: handler.PayloadFunc,
|
||||
IdentityHandler: handler.IdentityHandler,
|
||||
Authenticator: handler.Authenticator,
|
||||
|
||||
+3
-3
@@ -2,20 +2,20 @@ package middleware
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/config"
|
||||
config2 "go-admin/tools/config"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func DemoEvn() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
if config.ApplicationConfig.Env == "demo" {
|
||||
if config2.ApplicationConfig.Mode == "demo" {
|
||||
method := c.Request.Method
|
||||
if method == "GET" || method == "OPTIONS" || c.Request.RequestURI == "/login" || c.Request.RequestURI == "/api/v1/logout" {
|
||||
c.Next()
|
||||
} else {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"code": 500,
|
||||
"msg": config.ApplicationConfig.EnvMsg,
|
||||
"msg": config2.ApplicationConfig.DemoMsg,
|
||||
})
|
||||
c.Abort()
|
||||
return
|
||||
|
||||
+21
-23
@@ -4,10 +4,8 @@ import (
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/sirupsen/logrus"
|
||||
"go-admin/config"
|
||||
"go-admin/models"
|
||||
"go-admin/pkg/utils"
|
||||
"os"
|
||||
"go-admin/tools"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
@@ -18,20 +16,20 @@ var logger = logrus.New()
|
||||
// 日志记录到文件
|
||||
func LoggerToFile() gin.HandlerFunc {
|
||||
|
||||
//写入文件
|
||||
src, err := os.OpenFile(config.ApplicationConfig.LogPath, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
|
||||
if err != nil {
|
||||
fmt.Println("err", err)
|
||||
}
|
||||
|
||||
//设置输出
|
||||
logger.Out = src
|
||||
|
||||
//设置日志级别
|
||||
logger.SetLevel(logrus.DebugLevel)
|
||||
|
||||
//设置日志格式
|
||||
logger.SetFormatter(&logrus.TextFormatter{})
|
||||
////写入文件
|
||||
//src, err := os.OpenFile(config2.LogConfig.Dir+"/", os.O_APPEND|os.O_WRONLY, os.ModeAppend)
|
||||
//if err != nil {
|
||||
// fmt.Println("err", err)
|
||||
//}
|
||||
//
|
||||
////设置输出
|
||||
//logger.Out = src
|
||||
//
|
||||
////设置日志级别
|
||||
//logger.SetLevel(logrus.DebugLevel)
|
||||
//
|
||||
////设置日志格式
|
||||
//logger.SetFormatter(&logrus.TextFormatter{})
|
||||
|
||||
return func(c *gin.Context) {
|
||||
// 开始时间
|
||||
@@ -84,9 +82,9 @@ func LoggerToFile() gin.HandlerFunc {
|
||||
menuList, _ := menu.Get()
|
||||
sysOperLog := models.SysOperLog{}
|
||||
sysOperLog.OperIp = clientIP
|
||||
sysOperLog.OperLocation = utils.GetLocation(clientIP)
|
||||
sysOperLog.Status = utils.IntToString(statusCode)
|
||||
sysOperLog.OperName = utils.GetUserName(c)
|
||||
sysOperLog.OperLocation = tools.GetLocation(clientIP)
|
||||
sysOperLog.Status = tools.IntToString(statusCode)
|
||||
sysOperLog.OperName = tools.GetUserName(c)
|
||||
sysOperLog.RequestMethod = c.Request.Method
|
||||
sysOperLog.OperUrl = reqUri
|
||||
if reqUri == "/login" {
|
||||
@@ -112,9 +110,9 @@ func LoggerToFile() gin.HandlerFunc {
|
||||
sysOperLog.Title = menuList[0].Title
|
||||
}
|
||||
b, _ := c.Get("body")
|
||||
sysOperLog.OperParam, _ = utils.StructToJsonStr(b)
|
||||
sysOperLog.CreateBy = utils.GetUserName(c)
|
||||
sysOperLog.OperTime = utils.GetCurrntTime()
|
||||
sysOperLog.OperParam, _ = tools.StructToJsonStr(b)
|
||||
sysOperLog.CreateBy = tools.GetUserName(c)
|
||||
sysOperLog.OperTime = tools.GetCurrntTime()
|
||||
sysOperLog.LatencyTime = (latencyTime).String()
|
||||
sysOperLog.UserAgent = c.Request.UserAgent()
|
||||
if c.Err() == nil {
|
||||
|
||||
@@ -2,10 +2,10 @@ package middleware
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/pkg"
|
||||
mycasbin "go-admin/pkg/casbin"
|
||||
"go-admin/pkg/jwtauth"
|
||||
_ "go-admin/pkg/jwtauth"
|
||||
"go-admin/tools"
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
@@ -16,12 +16,12 @@ func AuthCheckRole() gin.HandlerFunc {
|
||||
data, _ := c.Get("JWT_PAYLOAD")
|
||||
v := data.(jwtauth.MapClaims)
|
||||
e, err := mycasbin.Casbin()
|
||||
pkg.HasError(err,"",500)
|
||||
tools.HasError(err,"",500)
|
||||
//检查权限
|
||||
res, err := e.Enforce(v["rolekey"], c.Request.URL.Path, c.Request.Method)
|
||||
log.Println("----------------", v["rolekey"], c.Request.URL.Path, c.Request.Method)
|
||||
|
||||
pkg.HasError(err,"",500)
|
||||
tools.HasError(err,"",500)
|
||||
|
||||
if res {
|
||||
c.Next()
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ package models
|
||||
|
||||
import (
|
||||
orm "go-admin/database"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
)
|
||||
|
||||
type SysConfig struct {
|
||||
@@ -71,7 +71,7 @@ func (e *SysConfig) GetPage(pageSize int, pageIndex int) ([]SysConfig, int, erro
|
||||
|
||||
// 数据权限控制
|
||||
dataPermission := new(DataPermission)
|
||||
dataPermission.UserId, _ = utils.StringToInt(e.DataScope)
|
||||
dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
|
||||
table = dataPermission.GetDataScope("sys_config", table)
|
||||
|
||||
var count int
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ package models
|
||||
|
||||
import (
|
||||
"github.com/jinzhu/gorm"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
)
|
||||
|
||||
type DataPermission struct {
|
||||
@@ -27,7 +27,7 @@ func (e *DataPermission) GetDataScope(tbname string, table *gorm.DB) *gorm.DB {
|
||||
table = table.Where(tbname+".create_by in (SELECT user_id from sys_user where dept_id = ? )", user.DeptId)
|
||||
}
|
||||
if role.DataScope == "4" {
|
||||
table = table.Where(tbname+".create_by in (SELECT user_id from sys_user where sys_user.dept_id in(select dept_id from sys_dept where dept_path like ? ))", "%"+utils.IntToString(user.DeptId)+"%")
|
||||
table = table.Where(tbname+".create_by in (SELECT user_id from sys_user where sys_user.dept_id in(select dept_id from sys_dept where dept_path like ? ))", "%"+tools.IntToString(user.DeptId)+"%")
|
||||
}
|
||||
if role.DataScope == "5" || role.DataScope == "" {
|
||||
table = table.Where(tbname+".create_by = ?", e.UserId)
|
||||
|
||||
+4
-4
@@ -2,7 +2,7 @@ package models
|
||||
|
||||
import (
|
||||
orm "go-admin/database"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
)
|
||||
|
||||
type Dept struct {
|
||||
@@ -40,7 +40,7 @@ func (e *Dept) Create() (Dept, error) {
|
||||
err := result.Error
|
||||
return doc, err
|
||||
}
|
||||
deptPath := "/" + utils.IntToString(e.DeptId)
|
||||
deptPath := "/" + tools.IntToString(e.DeptId)
|
||||
if int(e.ParentId) != 0 {
|
||||
var deptP Dept
|
||||
orm.Eloquent.Table(e.TableName()).Where("dept_id = ?", e.ParentId).First(&deptP)
|
||||
@@ -115,7 +115,7 @@ func (e *Dept) GetPage(bl bool) ([]Dept, error) {
|
||||
if bl {
|
||||
// 数据权限控制
|
||||
dataPermission := new(DataPermission)
|
||||
dataPermission.UserId, _ = utils.StringToInt(e.DataScope)
|
||||
dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
|
||||
table = dataPermission.GetDataScope("sys_dept", table)
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ func (e *Dept) Update(id int) (update Dept, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
deptPath := "/" + utils.IntToString(e.DeptId)
|
||||
deptPath := "/" + tools.IntToString(e.DeptId)
|
||||
if int(e.ParentId) != 0 {
|
||||
var deptP Dept
|
||||
orm.Eloquent.Table(e.TableName()).Where("dept_id = ?", e.ParentId).First(&deptP)
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ package models
|
||||
|
||||
import (
|
||||
orm "go-admin/database"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
)
|
||||
|
||||
type DictData struct {
|
||||
@@ -98,7 +98,7 @@ func (e *DictData) GetPage(pageSize int, pageIndex int) ([]DictData, int, error)
|
||||
|
||||
// 数据权限控制
|
||||
dataPermission := new(DataPermission)
|
||||
dataPermission.UserId, _ = utils.StringToInt(e.DataScope)
|
||||
dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
|
||||
table = dataPermission.GetDataScope("sys_dict_data", table)
|
||||
|
||||
var count int
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ package models
|
||||
|
||||
import (
|
||||
orm "go-admin/database"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
)
|
||||
|
||||
type DictType struct {
|
||||
@@ -86,7 +86,7 @@ func (e *DictType) GetPage(pageSize int, pageIndex int) ([]DictType, int, error)
|
||||
|
||||
// 数据权限控制
|
||||
dataPermission := new(DataPermission)
|
||||
dataPermission.UserId, _ = utils.StringToInt(e.DataScope)
|
||||
dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
|
||||
table = dataPermission.GetDataScope("sys_dict_type", table)
|
||||
|
||||
var count int
|
||||
|
||||
+2
-2
@@ -2,13 +2,13 @@ package gorm
|
||||
|
||||
import (
|
||||
"github.com/jinzhu/gorm"
|
||||
"go-admin/config"
|
||||
"go-admin/models"
|
||||
"go-admin/models/tools"
|
||||
config2 "go-admin/tools/config"
|
||||
)
|
||||
|
||||
func AutoMigrate(db *gorm.DB) error {
|
||||
if config.DatabaseConfig.Dbtype == "mysql" {
|
||||
if config2.DatabaseConfig.Dbtype == "mysql" {
|
||||
db = db.Set("gorm:table_options", "ENGINE=InnoDB CHARSET=utf8mb4")
|
||||
}
|
||||
db.SingularTable(true)
|
||||
|
||||
+2
-2
@@ -2,15 +2,15 @@ package models
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go-admin/config"
|
||||
orm "go-admin/database"
|
||||
config2 "go-admin/tools/config"
|
||||
"io/ioutil"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func InitDb() error {
|
||||
filePath := "config/db.sql"
|
||||
if config.DatabaseConfig.Dbtype == "sqlite3" {
|
||||
if config2.DatabaseConfig.Dbtype == "sqlite3" {
|
||||
fmt.Println("sqlite3数据库无需初始化!")
|
||||
return nil
|
||||
}
|
||||
|
||||
+4
-4
@@ -2,7 +2,7 @@ package models
|
||||
|
||||
import (
|
||||
orm "go-admin/database"
|
||||
"go-admin/pkg"
|
||||
"go-admin/tools"
|
||||
"log"
|
||||
"strings"
|
||||
)
|
||||
@@ -19,15 +19,15 @@ func (u *Login) GetUser() (user SysUser, role SysRole, e error) {
|
||||
e = orm.Eloquent.Table("sys_user").Where("username = ? ", u.Username).Find(&user).Error
|
||||
if e != nil {
|
||||
if strings.Contains(e.Error(), "record not found") {
|
||||
pkg.HasError(e, "账号或密码错误(代码204)", 500)
|
||||
tools.HasError(e, "账号或密码错误(代码204)", 500)
|
||||
}
|
||||
log.Print(e)
|
||||
return
|
||||
}
|
||||
_, e = pkg.CompareHashAndPassword(user.Password, u.Password)
|
||||
_, e = tools.CompareHashAndPassword(user.Password, u.Password)
|
||||
if e != nil {
|
||||
if strings.Contains(e.Error(), "hashedPassword is not the hash of the given password") {
|
||||
pkg.HasError(e, "账号或密码错误(代码201)", 500)
|
||||
tools.HasError(e, "账号或密码错误(代码201)", 500)
|
||||
}
|
||||
log.Print(e)
|
||||
return
|
||||
|
||||
+4
-4
@@ -3,7 +3,7 @@ package models
|
||||
import (
|
||||
"errors"
|
||||
orm "go-admin/database"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
)
|
||||
|
||||
type Menu struct {
|
||||
@@ -254,7 +254,7 @@ func (e *Menu) GetPage() (Menus []Menu, err error) {
|
||||
|
||||
// 数据权限控制
|
||||
dataPermission := new(DataPermission)
|
||||
dataPermission.UserId, _ = utils.StringToInt(e.DataScope)
|
||||
dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
|
||||
table = dataPermission.GetDataScope("sys_menu", table)
|
||||
|
||||
if err = table.Order("sort").Find(&Menus).Error; err != nil {
|
||||
@@ -285,9 +285,9 @@ func InitPaths(menu *Menu) (err error) {
|
||||
err = errors.New("父级paths异常,请尝试对当前节点父级菜单进行更新操作!")
|
||||
return
|
||||
}
|
||||
menu.Paths = parentMenu.Paths + "/" + utils.IntToString(menu.MenuId)
|
||||
menu.Paths = parentMenu.Paths + "/" + tools.IntToString(menu.MenuId)
|
||||
} else {
|
||||
menu.Paths = "/0/" + utils.IntToString(menu.MenuId)
|
||||
menu.Paths = "/0/" + tools.IntToString(menu.MenuId)
|
||||
}
|
||||
orm.Eloquent.Table("sys_menu").Where("menu_id = ?", menu.MenuId).Update("paths", menu.Paths)
|
||||
return
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ package models
|
||||
|
||||
import (
|
||||
orm "go-admin/database"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
)
|
||||
|
||||
type Post struct {
|
||||
@@ -96,7 +96,7 @@ func (e *Post) GetPage(pageSize int, pageIndex int) ([]Post, int, error) {
|
||||
|
||||
// 数据权限控制
|
||||
dataPermission := new(DataPermission)
|
||||
dataPermission.UserId, _ = utils.StringToInt(e.DataScope)
|
||||
dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
|
||||
table = dataPermission.GetDataScope("sys_post", table)
|
||||
|
||||
var count int
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@ package models
|
||||
|
||||
import (
|
||||
orm "go-admin/database"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
)
|
||||
|
||||
type SysRole struct {
|
||||
@@ -50,7 +50,7 @@ func (e *SysRole) GetPage(pageSize int, pageIndex int) ([]SysRole, int, error) {
|
||||
|
||||
// 数据权限控制
|
||||
dataPermission := new(DataPermission)
|
||||
dataPermission.UserId, _ = utils.StringToInt(e.DataScope)
|
||||
dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
|
||||
table = dataPermission.GetDataScope("sys_role", table)
|
||||
|
||||
var count int
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ package models
|
||||
import (
|
||||
"fmt"
|
||||
orm "go-admin/database"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
)
|
||||
|
||||
type RoleMenu struct {
|
||||
@@ -134,7 +134,7 @@ func (rm *RoleMenu) Insert(roleId int, menuId []int) (bool, error) {
|
||||
}
|
||||
|
||||
func (rm *RoleMenu) Delete(RoleId string, MenuID string) (bool, error) {
|
||||
rm.RoleId, _ = utils.StringToInt(RoleId)
|
||||
rm.RoleId, _ = tools.StringToInt(RoleId)
|
||||
table := orm.Eloquent.Table("sys_role_menu").Where("role_id = ?", RoleId)
|
||||
if MenuID != "" {
|
||||
table = table.Where("menu_id = ?", MenuID)
|
||||
|
||||
+7
-8
@@ -5,10 +5,10 @@ import (
|
||||
orm "go-admin/database"
|
||||
"go-admin/pkg"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/tools"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
// User
|
||||
@@ -128,7 +128,6 @@ func (e *SysUser) Get() (SysUserView SysUserView, err error) {
|
||||
func (e *SysUser) GetPage(pageSize int, pageIndex int) ([]SysUserPage, int, error) {
|
||||
var doc []SysUserPage
|
||||
|
||||
table := orm.Eloquent.Select("sys_user.*,sys_dept.dept_name").Table(e.TableName())
|
||||
table = table.Joins("left join sys_dept on sys_dept.dept_id = sys_user.dept_id")
|
||||
|
||||
if e.Username != "" {
|
||||
@@ -136,12 +135,12 @@ func (e *SysUser) GetPage(pageSize int, pageIndex int) ([]SysUserPage, int, erro
|
||||
}
|
||||
|
||||
if e.DeptId != 0 {
|
||||
table = table.Where("sys_user.dept_id in (select dept_id from sys_dept where dept_path like ? )", "%"+utils.IntToString(e.DeptId)+"%")
|
||||
table = table.Where("sys_user.dept_id in (select dept_id from sys_dept where dept_path like ? )", "%"+tools.IntToString(e.DeptId)+"%")
|
||||
}
|
||||
|
||||
// 数据权限控制
|
||||
dataPermission := new(DataPermission)
|
||||
dataPermission.UserId, _ = utils.StringToInt(e.DataScope)
|
||||
dataPermission.UserId, _ = tools.StringToInt(e.DataScope)
|
||||
table = dataPermission.GetDataScope("sys_user", table)
|
||||
|
||||
var count int
|
||||
@@ -221,16 +220,16 @@ func (e *SysUser) BatchDelete(id []int) (Result bool, err error) {
|
||||
|
||||
func (e *SysUser) SetPwd(pwd SysUserPwd) (Result bool, err error) {
|
||||
user, _ := e.Get()
|
||||
_, err = pkg.CompareHashAndPassword(user.Password, pwd.OldPassword)
|
||||
_, err = tools.CompareHashAndPassword(user.Password, pwd.OldPassword)
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), "hashedPassword is not the hash of the given password") {
|
||||
pkg.HasError(err, "密码错误(代码202)", 500)
|
||||
tools.HasError(err, "密码错误(代码202)", 500)
|
||||
}
|
||||
log.Print(err)
|
||||
return
|
||||
}
|
||||
e.Password = pwd.NewPassword
|
||||
_, err = e.Update(e.UserId)
|
||||
pkg.HasError(err, "更新密码失败(代码202)", 500)
|
||||
tools.HasError(err, "更新密码失败(代码202)", 500)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ package tools
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"go-admin/config"
|
||||
orm "go-admin/database"
|
||||
config2 "go-admin/tools/config"
|
||||
)
|
||||
|
||||
type DBColumns struct {
|
||||
@@ -25,7 +25,7 @@ func (e *DBColumns) GetPage(pageSize int, pageIndex int) ([]DBColumns, int, erro
|
||||
var doc []DBColumns
|
||||
|
||||
table := orm.Eloquent.Select("*").Table("information_schema.`COLUMNS`")
|
||||
table = table.Where("table_schema= ? ", config.DatabaseConfig.Database)
|
||||
table = table.Where("table_schema= ? ", config2.DatabaseConfig.Name)
|
||||
|
||||
if e.TableName != "" {
|
||||
return nil, 0, errors.New("table name cannot be empty!")
|
||||
@@ -46,7 +46,7 @@ func (e *DBColumns) GetList() ([]DBColumns, error) {
|
||||
var doc []DBColumns
|
||||
|
||||
table := orm.Eloquent.Select("*").Table("information_schema.columns")
|
||||
table = table.Where("table_schema= ? ", config.DatabaseConfig.Database)
|
||||
table = table.Where("table_schema= ? ", config2.DatabaseConfig.Name)
|
||||
|
||||
if e.TableName == "" {
|
||||
return nil, errors.New("table name cannot be empty!")
|
||||
|
||||
@@ -2,8 +2,8 @@ package tools
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"go-admin/config"
|
||||
orm "go-admin/database"
|
||||
config2 "go-admin/tools/config"
|
||||
)
|
||||
|
||||
type DBTables struct {
|
||||
@@ -20,7 +20,7 @@ func (e *DBTables) GetPage(pageSize int, pageIndex int) ([]DBTables, int, error)
|
||||
var doc []DBTables
|
||||
|
||||
table := orm.Eloquent.Select("*").Table("information_schema.tables")
|
||||
table = table.Where("table_schema= ? ", config.DatabaseConfig.Database)
|
||||
table = table.Where("table_schema= ? ", config2.DatabaseConfig.Name)
|
||||
|
||||
if e.TableName != "" {
|
||||
table = table.Where("TABLE_NAME = ?", e.TableName)
|
||||
@@ -39,7 +39,7 @@ func (e *DBTables) Get() (DBTables, error) {
|
||||
var doc DBTables
|
||||
|
||||
table := orm.Eloquent.Select("*").Table("information_schema.tables")
|
||||
table = table.Where("table_schema= ? ", config.DatabaseConfig.Database)
|
||||
table = table.Where("table_schema= ? ", config2.DatabaseConfig.Name)
|
||||
if e.TableName == "" {
|
||||
return doc, errors.New("table name cannot be empty!")
|
||||
}
|
||||
|
||||
@@ -6,14 +6,14 @@ import (
|
||||
gormadapter "github.com/casbin/gorm-adapter/v2"
|
||||
"github.com/go-kit/kit/endpoint"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"go-admin/config"
|
||||
"go-admin/pkg/utils"
|
||||
"go-admin/database"
|
||||
"go-admin/tools/config"
|
||||
)
|
||||
|
||||
var Em endpoint.Middleware
|
||||
|
||||
func Casbin() (*casbin.Enforcer, error) {
|
||||
conn := config.DatabaseConfig.Username + ":" + config.DatabaseConfig.Password + "@tcp(" + config.DatabaseConfig.Host + ":" + utils.IntToString(config.DatabaseConfig.Port) + ")/" + config.DatabaseConfig.Database
|
||||
conn := database.GetMysqlConnect()
|
||||
if config.DatabaseConfig.Dbtype == "sqlite3" {
|
||||
conn = config.DatabaseConfig.Host
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"errors"
|
||||
"github.com/dgrijalva/jwt-go"
|
||||
"github.com/gin-gonic/gin"
|
||||
"go-admin/config"
|
||||
config2 "go-admin/tools/config"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strings"
|
||||
@@ -283,9 +283,9 @@ func (mw *GinJWTMiddleware) MiddlewareInit() error {
|
||||
}
|
||||
|
||||
mw.Timeout = time.Hour
|
||||
if config.JwtConfig.Timeout != 0 {
|
||||
if config2.JwtConfig.Timeout != 0 {
|
||||
// TODO: token过期时长
|
||||
mw.Timeout = time.Duration(config.JwtConfig.Timeout) * time.Second
|
||||
mw.Timeout = time.Duration(config2.JwtConfig.Timeout) * time.Second
|
||||
}
|
||||
|
||||
if mw.TimeFunc == nil {
|
||||
|
||||
@@ -28,6 +28,7 @@ func InitRouter() *gin.Engine {
|
||||
r.Use(middleware.RequestId())
|
||||
r.Use(middleware.DemoEvn())
|
||||
|
||||
r.GET("/", handler.HelloGoAdmin)
|
||||
r.Static("/static", "./static")
|
||||
r.GET("/info", handler.Ping)
|
||||
|
||||
|
||||
@@ -10,9 +10,8 @@ type Application struct {
|
||||
Port string
|
||||
Name string
|
||||
JwtSecret string
|
||||
LogPath string
|
||||
Env string
|
||||
EnvMsg string
|
||||
Mode string
|
||||
DemoMsg string
|
||||
}
|
||||
|
||||
func InitApplication(cfg *viper.Viper) *Application {
|
||||
@@ -24,9 +23,8 @@ func InitApplication(cfg *viper.Viper) *Application {
|
||||
Port: cfg.GetString("port"),
|
||||
Name: cfg.GetString("name"),
|
||||
JwtSecret: cfg.GetString("jwtSecret"),
|
||||
LogPath: cfg.GetString("logPath"),
|
||||
Env: cfg.GetString("env"),
|
||||
EnvMsg: cfg.GetString("envMsg"),
|
||||
Mode: cfg.GetString("mode"),
|
||||
DemoMsg: cfg.GetString("demoMsg"),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/spf13/viper"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var cfgDatabase *viper.Viper
|
||||
var cfgApplication *viper.Viper
|
||||
var cfgJwt *viper.Viper
|
||||
var cfgLog *viper.Viper
|
||||
|
||||
//func init() {
|
||||
// InitConfig("settings.dev")
|
||||
//}
|
||||
|
||||
//载入配置文件
|
||||
func ConfigSetup(path string) {
|
||||
viper.SetConfigFile(path)
|
||||
content, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
log.Fatal(fmt.Sprintf("Read config file fail: %s", err.Error()))
|
||||
}
|
||||
//Replace environment variables
|
||||
err = viper.ReadConfig(strings.NewReader(os.ExpandEnv(string(content))))
|
||||
if err != nil {
|
||||
log.Fatal(fmt.Sprintf("Parse config file fail: %s", err.Error()))
|
||||
}
|
||||
//}
|
||||
//
|
||||
//func InitConfig(fileName string) {
|
||||
// viper.SetConfigName(fileName)
|
||||
// viper.AddConfigPath("/config")
|
||||
// err := viper.ReadInConfig()
|
||||
// if err != nil {
|
||||
// log.Println(err)
|
||||
// }
|
||||
|
||||
cfgDatabase = viper.Sub("settings.database")
|
||||
if cfgDatabase == nil {
|
||||
panic("config not found settings.database")
|
||||
}
|
||||
DatabaseConfig = InitDatabase(cfgDatabase)
|
||||
|
||||
cfgApplication = viper.Sub("settings.application")
|
||||
if cfgApplication == nil {
|
||||
panic("config not found settings.application")
|
||||
}
|
||||
ApplicationConfig = InitApplication(cfgApplication)
|
||||
|
||||
cfgJwt = viper.Sub("settings.jwt")
|
||||
if cfgJwt == nil {
|
||||
panic("config not found settings.jwt")
|
||||
}
|
||||
JwtConfig = InitJwt(cfgJwt)
|
||||
|
||||
cfgLog = viper.Sub("settings.log")
|
||||
if cfgLog == nil {
|
||||
panic("config not found settings.log")
|
||||
}
|
||||
LogConfig = InitLog(cfgLog)
|
||||
}
|
||||
|
||||
func SetApplicationIsInit() {
|
||||
SetConfig("./config", "settings.application.isInit", false)
|
||||
}
|
||||
|
||||
func SetConfig(configPath string, key string, value interface{}) {
|
||||
viper.AddConfigPath(configPath)
|
||||
viper.Set(key, value)
|
||||
viper.WriteConfig()
|
||||
}
|
||||
@@ -6,7 +6,7 @@ type Database struct {
|
||||
Dbtype string
|
||||
Host string
|
||||
Port int
|
||||
Database string
|
||||
Name string
|
||||
Username string
|
||||
Password string
|
||||
}
|
||||
@@ -16,7 +16,7 @@ func InitDatabase(cfg *viper.Viper) *Database {
|
||||
Port: cfg.GetInt("port"),
|
||||
Dbtype: cfg.GetString("dbType"),
|
||||
Host: cfg.GetString("host"),
|
||||
Database: cfg.GetString("database"),
|
||||
Name: cfg.GetString("name"),
|
||||
Username: cfg.GetString("username"),
|
||||
Password: cfg.GetString("password"),
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package config
|
||||
|
||||
import "github.com/spf13/viper"
|
||||
|
||||
type Log struct {
|
||||
Dir string
|
||||
}
|
||||
|
||||
func InitLog(cfg *viper.Viper) *Log {
|
||||
return &Log{
|
||||
Dir: cfg.GetString("dir"),
|
||||
}
|
||||
}
|
||||
|
||||
var LogConfig = new(Log)
|
||||
@@ -0,0 +1,13 @@
|
||||
package tools
|
||||
|
||||
type (
|
||||
Mode string
|
||||
)
|
||||
|
||||
const (
|
||||
ModeDev Mode = "dev" //开发模式
|
||||
ModeTest Mode = "test" //测试模式
|
||||
ModeProd Mode = "prod" //生产模式
|
||||
Mysql = "mysql" //mysql数据库标识
|
||||
Sqlite = "sqlite" //sqlite
|
||||
)
|
||||
@@ -1,4 +1,4 @@
|
||||
package utils
|
||||
package tools
|
||||
|
||||
import "strconv"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package utils
|
||||
package tools
|
||||
|
||||
import "strconv"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package utils
|
||||
package tools
|
||||
|
||||
import "strconv"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package utils
|
||||
package tools
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@@ -0,0 +1,56 @@
|
||||
package tools
|
||||
|
||||
import (
|
||||
"errors"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/spf13/viper"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
func InitLogger() {
|
||||
switch Mode(viper.GetString("settings.application.mode")) {
|
||||
case ModeDev, ModeTest:
|
||||
log.SetOutput(os.Stdout)
|
||||
log.SetLevel(log.TraceLevel)
|
||||
case ModeProd:
|
||||
file, err := os.OpenFile(viper.GetString("logger.dir")+"/api-"+time.Now().Format("2006-01-02")+".log", os.O_WRONLY|os.O_APPEND|os.O_CREATE|os.O_SYNC, 0600)
|
||||
if err != nil {
|
||||
log.Fatal("log init failed")
|
||||
}
|
||||
|
||||
var info os.FileInfo
|
||||
info, err = file.Stat()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fileWriter := logFileWriter{file, info.Size()}
|
||||
log.SetOutput(&fileWriter)
|
||||
log.SetLevel(log.ErrorLevel)
|
||||
}
|
||||
|
||||
log.SetReportCaller(true)
|
||||
}
|
||||
|
||||
type logFileWriter struct {
|
||||
file *os.File
|
||||
size int64
|
||||
}
|
||||
|
||||
func (p *logFileWriter) Write(data []byte) (n int, err error) {
|
||||
if p == nil {
|
||||
return 0, errors.New("logFileWriter is nil")
|
||||
}
|
||||
if p.file == nil {
|
||||
return 0, errors.New("file not opened")
|
||||
}
|
||||
n, e := p.file.Write(data)
|
||||
p.size += int64(n)
|
||||
//每天一个文件
|
||||
if p.file.Name() != viper.GetString("logger.dir")+"/api-"+time.Now().Format("2006-01-02")+".log" {
|
||||
p.file.Close()
|
||||
p.file, _ = os.OpenFile(viper.GetString("logger.dir")+"/api-"+time.Now().Format("2006-01-02")+".log", os.O_WRONLY|os.O_APPEND|os.O_CREATE|os.O_SYNC, 0600)
|
||||
p.size = 0
|
||||
}
|
||||
return n, e
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package utils
|
||||
package tools
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@@ -1,4 +1,4 @@
|
||||
package utils
|
||||
package tools
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -1,4 +1,4 @@
|
||||
package utils
|
||||
package tools
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -1,4 +1,4 @@
|
||||
package pkg
|
||||
package tools
|
||||
|
||||
import (
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
Reference in New Issue
Block a user