添加文章模板的后端实现
This commit is contained in:
parent
1c2ff37630
commit
aeb0b55a43
@ -2,10 +2,9 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="7cf7b6b3-0082-44ef-bb0f-bfcc57e19eb1" name="Default Changelist" comment="">
|
<list default="true" id="7cf7b6b3-0082-44ef-bb0f-bfcc57e19eb1" name="Default Changelist" comment="">
|
||||||
|
<change afterPath="$PROJECT_DIR$/fork.go" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/controller/blog.go" beforeDir="false" afterPath="$PROJECT_DIR$/controller/blog.go" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/main.go" beforeDir="false" afterPath="$PROJECT_DIR$/main.go" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/main.go" beforeDir="false" afterPath="$PROJECT_DIR$/main.go" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/model/blog.go" beforeDir="false" afterPath="$PROJECT_DIR$/model/blog.go" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@ -54,10 +53,11 @@
|
|||||||
<property name="go.import.settings.migrated" value="true" />
|
<property name="go.import.settings.migrated" value="true" />
|
||||||
<property name="go.sdk.automatically.set" value="true" />
|
<property name="go.sdk.automatically.set" value="true" />
|
||||||
<property name="go.tried.to.enable.integration.vgo.integrator" value="true" />
|
<property name="go.tried.to.enable.integration.vgo.integrator" value="true" />
|
||||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/../DroneIntegratedManagementServer" />
|
<property name="last_opened_file_path" value="$PROJECT_DIR$/../gobase" />
|
||||||
|
<property name="nodejs_package_manager_path" value="npm" />
|
||||||
<property name="settings.editor.selected.configurable" value="go.sdk" />
|
<property name="settings.editor.selected.configurable" value="go.sdk" />
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager">
|
<component name="RunManager" selected="Go Build.background">
|
||||||
<configuration name="background" type="GoApplicationRunConfiguration" factoryName="Go Application">
|
<configuration name="background" type="GoApplicationRunConfiguration" factoryName="Go Application">
|
||||||
<module name="background" />
|
<module name="background" />
|
||||||
<working_directory value="$PROJECT_DIR$/" />
|
<working_directory value="$PROJECT_DIR$/" />
|
||||||
@ -70,6 +70,26 @@
|
|||||||
<output_directory value="$PROJECT_DIR$/" />
|
<output_directory value="$PROJECT_DIR$/" />
|
||||||
<method v="2" />
|
<method v="2" />
|
||||||
</configuration>
|
</configuration>
|
||||||
|
<configuration name="fork2" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true">
|
||||||
|
<module name="background" />
|
||||||
|
<working_directory value="$PROJECT_DIR$/" />
|
||||||
|
<parameters value="background.exe" />
|
||||||
|
<kind value="FILE" />
|
||||||
|
<filePath value="$PROJECT_DIR$/fork.go" />
|
||||||
|
<package value="background" />
|
||||||
|
<directory value="$PROJECT_DIR$/" />
|
||||||
|
<output_directory value="$PROJECT_DIR$" />
|
||||||
|
<method v="2" />
|
||||||
|
</configuration>
|
||||||
|
<list>
|
||||||
|
<item itemvalue="Go Build.background" />
|
||||||
|
<item itemvalue="Go Build.fork2" />
|
||||||
|
</list>
|
||||||
|
<recent_temporary>
|
||||||
|
<list>
|
||||||
|
<item itemvalue="Go Build.fork2" />
|
||||||
|
</list>
|
||||||
|
</recent_temporary>
|
||||||
</component>
|
</component>
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
<option name="version" value="2" />
|
<option name="version" value="2" />
|
||||||
@ -91,30 +111,30 @@
|
|||||||
<screen x="0" y="40" width="2048" height="1112" />
|
<screen x="0" y="40" width="2048" height="1112" />
|
||||||
</state>
|
</state>
|
||||||
<state x="767" y="429" key="#Go_Modules/0.40.2048.1112@0.40.2048.1112" timestamp="1595431702688" />
|
<state x="767" y="429" key="#Go_Modules/0.40.2048.1112@0.40.2048.1112" timestamp="1595431702688" />
|
||||||
<state x="479" y="251" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1595432372558">
|
<state x="479" y="251" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1595778748175">
|
||||||
<screen x="0" y="40" width="2048" height="1112" />
|
<screen x="0" y="40" width="2048" height="1112" />
|
||||||
</state>
|
</state>
|
||||||
<state x="479" y="251" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.40.2048.1112@0.40.2048.1112" timestamp="1595432372558" />
|
<state x="479" y="251" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.40.2048.1112@0.40.2048.1112" timestamp="1595778748175" />
|
||||||
<state x="805" y="351" key="FileChooserDialogImpl" timestamp="1595431879732">
|
<state x="805" y="351" key="FileChooserDialogImpl" timestamp="1595857317209">
|
||||||
<screen x="0" y="40" width="2048" height="1112" />
|
<screen x="0" y="40" width="2048" height="1112" />
|
||||||
</state>
|
</state>
|
||||||
<state x="805" y="351" key="FileChooserDialogImpl/0.40.2048.1112@0.40.2048.1112" timestamp="1595431879732" />
|
<state x="805" y="351" key="FileChooserDialogImpl/0.40.2048.1112@0.40.2048.1112" timestamp="1595857317209" />
|
||||||
<state width="2005" height="305" key="GridCell.Tab.0.bottom" timestamp="1595746777201">
|
<state width="2005" height="305" key="GridCell.Tab.0.bottom" timestamp="1595778772403">
|
||||||
<screen x="0" y="40" width="2048" height="1112" />
|
<screen x="0" y="40" width="2048" height="1112" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2005" height="305" key="GridCell.Tab.0.bottom/0.40.2048.1112@0.40.2048.1112" timestamp="1595746777201" />
|
<state width="2005" height="305" key="GridCell.Tab.0.bottom/0.40.2048.1112@0.40.2048.1112" timestamp="1595778772403" />
|
||||||
<state width="2005" height="305" key="GridCell.Tab.0.center" timestamp="1595746777200">
|
<state width="2005" height="305" key="GridCell.Tab.0.center" timestamp="1595778772403">
|
||||||
<screen x="0" y="40" width="2048" height="1112" />
|
<screen x="0" y="40" width="2048" height="1112" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2005" height="305" key="GridCell.Tab.0.center/0.40.2048.1112@0.40.2048.1112" timestamp="1595746777200" />
|
<state width="2005" height="305" key="GridCell.Tab.0.center/0.40.2048.1112@0.40.2048.1112" timestamp="1595778772403" />
|
||||||
<state width="2005" height="305" key="GridCell.Tab.0.left" timestamp="1595746777200">
|
<state width="2005" height="305" key="GridCell.Tab.0.left" timestamp="1595778772403">
|
||||||
<screen x="0" y="40" width="2048" height="1112" />
|
<screen x="0" y="40" width="2048" height="1112" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2005" height="305" key="GridCell.Tab.0.left/0.40.2048.1112@0.40.2048.1112" timestamp="1595746777200" />
|
<state width="2005" height="305" key="GridCell.Tab.0.left/0.40.2048.1112@0.40.2048.1112" timestamp="1595778772403" />
|
||||||
<state width="2005" height="305" key="GridCell.Tab.0.right" timestamp="1595746777200">
|
<state width="2005" height="305" key="GridCell.Tab.0.right" timestamp="1595778772403">
|
||||||
<screen x="0" y="40" width="2048" height="1112" />
|
<screen x="0" y="40" width="2048" height="1112" />
|
||||||
</state>
|
</state>
|
||||||
<state width="2005" height="305" key="GridCell.Tab.0.right/0.40.2048.1112@0.40.2048.1112" timestamp="1595746777200" />
|
<state width="2005" height="305" key="GridCell.Tab.0.right/0.40.2048.1112@0.40.2048.1112" timestamp="1595778772403" />
|
||||||
<state width="2005" height="376" key="GridCell.Tab.1.bottom" timestamp="1595433941254">
|
<state width="2005" height="376" key="GridCell.Tab.1.bottom" timestamp="1595433941254">
|
||||||
<screen x="0" y="40" width="2048" height="1112" />
|
<screen x="0" y="40" width="2048" height="1112" />
|
||||||
</state>
|
</state>
|
||||||
@ -135,9 +155,9 @@
|
|||||||
<screen x="0" y="40" width="2048" height="1112" />
|
<screen x="0" y="40" width="2048" height="1112" />
|
||||||
</state>
|
</state>
|
||||||
<state x="526" y="240" key="SettingsEditor/0.40.2048.1112@0.40.2048.1112" timestamp="1595432383541" />
|
<state x="526" y="240" key="SettingsEditor/0.40.2048.1112@0.40.2048.1112" timestamp="1595432383541" />
|
||||||
<state x="687" y="283" width="672" height="678" key="search.everywhere.popup" timestamp="1595431850294">
|
<state x="687" y="283" width="672" height="678" key="search.everywhere.popup" timestamp="1595757093391">
|
||||||
<screen x="0" y="40" width="2048" height="1112" />
|
<screen x="0" y="40" width="2048" height="1112" />
|
||||||
</state>
|
</state>
|
||||||
<state x="687" y="283" width="672" height="678" key="search.everywhere.popup/0.40.2048.1112@0.40.2048.1112" timestamp="1595431850294" />
|
<state x="687" y="283" width="672" height="678" key="search.everywhere.popup/0.40.2048.1112@0.40.2048.1112" timestamp="1595757093391" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
17
.vscode/launch.json
vendored
Normal file
17
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
// 使用 IntelliSense 了解相关属性。
|
||||||
|
// 悬停以查看现有属性的描述。
|
||||||
|
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Launch",
|
||||||
|
"type": "go",
|
||||||
|
"request": "launch",
|
||||||
|
"mode": "auto",
|
||||||
|
"program": "${fileDirname}",
|
||||||
|
"env": {},
|
||||||
|
"args": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
42
11.yaml
Normal file
42
11.yaml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
listen_api: 4596
|
||||||
|
runmode: debug
|
||||||
|
max_conn: 121
|
||||||
|
logs:
|
||||||
|
dir: /var/log/user
|
||||||
|
file: user.log
|
||||||
|
level: 1
|
||||||
|
savefile: false
|
||||||
|
redis1:
|
||||||
|
addr: 49.235.25.67:16379
|
||||||
|
password: ~
|
||||||
|
db: 1
|
||||||
|
mysql:
|
||||||
|
addr: 49.235.25.67
|
||||||
|
user: caiyu
|
||||||
|
password: 12345678
|
||||||
|
db: background
|
||||||
|
max_open: 100
|
||||||
|
MaxIdle: 99
|
||||||
|
elasticsearch:
|
||||||
|
address: http://hyrtc.net:9200
|
||||||
|
mysql1:
|
||||||
|
addr: 49.235.25.67
|
||||||
|
user: caiyu
|
||||||
|
password: 12345678
|
||||||
|
db: background
|
||||||
|
max_open: 100
|
||||||
|
MaxIdle: 99
|
||||||
|
mongo:
|
||||||
|
addr: 49.235.25.67
|
||||||
|
port: 27017
|
||||||
|
user: root
|
||||||
|
password: root
|
||||||
|
db: test
|
||||||
|
max_open: 100
|
||||||
|
MaxIdle: 99
|
||||||
|
ca_cert: ""
|
||||||
|
client_cert: ""
|
||||||
|
client_key: ""
|
||||||
|
test_arr:
|
||||||
|
- 1
|
||||||
|
- 23
|
@ -5,94 +5,95 @@ import (
|
|||||||
"background/logs"
|
"background/logs"
|
||||||
"background/model"
|
"background/model"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"qiniupkg.com/x/log.v7"
|
"qiniupkg.com/x/log.v7"
|
||||||
"strconv"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetPageParaFromQuery(c *gin.Context) (int,int){
|
func GetPageParaFromQuery(c *gin.Context) (int, int) {
|
||||||
limit := c.Query("limit")
|
limit := c.Query("limit")
|
||||||
offset := c.Query("offset")
|
offset := c.Query("offset")
|
||||||
|
|
||||||
iLmit,e := strconv.Atoi(limit)
|
iLmit, e := strconv.Atoi(limit)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
return 0,0
|
return 0, 0
|
||||||
}
|
}
|
||||||
iOffset,e := strconv.Atoi(offset)
|
iOffset, e := strconv.Atoi(offset)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
return 0,0
|
return 0, 0
|
||||||
}
|
}
|
||||||
return iLmit,iOffset
|
return iLmit, iOffset
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetArticles(c *gin.Context) {
|
func GetArticles(c *gin.Context) {
|
||||||
type ReqArticles struct {
|
type ReqArticles struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Type int32 `json:"types"`
|
Type int32 `json:"types"`
|
||||||
}
|
}
|
||||||
var req ReqArticles
|
var req ReqArticles
|
||||||
rsp := RespBase{"ERR",-1,nil}
|
rsp := RespBase{"ERR", -1, nil}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
e := c.BindJSON(&req)
|
e := c.BindJSON(&req)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
article := []model.Doc{}
|
article := []model.Doc{}
|
||||||
limit,offset := GetPageParaFromQuery(c)
|
limit, offset := GetPageParaFromQuery(c)
|
||||||
public := c.Query("is_public")
|
public := c.Query("is_public")
|
||||||
|
|
||||||
var sql string
|
var sql string
|
||||||
if req.Name != ""{
|
if req.Name != "" {
|
||||||
if req.Type == 110{
|
if req.Type == 110 {
|
||||||
is_public := 0
|
is_public := 0
|
||||||
if public == "true"{
|
if public == "true" {
|
||||||
is_public = 0
|
is_public = 0
|
||||||
}else{
|
} else {
|
||||||
is_public = 1
|
is_public = 1
|
||||||
}
|
}
|
||||||
sql = "select * from doc where doc.title like '%%%s%%' and is_public = %d limit %d offset %d "
|
sql = "select * from doc where doc.title like '%%%s%%' and is_public = %d limit %d offset %d "
|
||||||
sql = fmt.Sprintf(sql,req.Name,is_public,limit,offset*limit)
|
sql = fmt.Sprintf(sql, req.Name, is_public, limit, offset*limit)
|
||||||
}else{
|
} else {
|
||||||
is_public := 0
|
is_public := 0
|
||||||
if public == "true" {
|
if public == "true" {
|
||||||
is_public = 0
|
is_public = 0
|
||||||
}else{
|
} else {
|
||||||
is_public = 1
|
is_public = 1
|
||||||
}
|
}
|
||||||
sql = fmt.Sprintf("select * from doc where doc.title like '%%%s%%' and doc.type = %d and is_public = %d limit %d offset %d ",
|
sql = fmt.Sprintf("select * from doc where doc.title like '%%%s%%' and doc.type = %d and is_public = %d limit %d offset %d ",
|
||||||
req.Name,req.Type,is_public,limit,offset*limit)
|
req.Name, req.Type, is_public, limit, offset*limit)
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
if req.Type == 110{
|
if req.Type == 110 {
|
||||||
is_public := 0
|
is_public := 0
|
||||||
if public == "true" {
|
if public == "true" {
|
||||||
is_public = 1
|
is_public = 1
|
||||||
}else{
|
} else {
|
||||||
is_public = 0
|
is_public = 0
|
||||||
}
|
}
|
||||||
sql = fmt.Sprintf("SELECT doc.id,doc.author,LEFT(doc.content,50) as content,doc.title from doc where is_public = %d " +
|
sql = fmt.Sprintf("SELECT doc.id,doc.author,LEFT(doc.content,50) as content,doc.title from doc where is_public = %d "+
|
||||||
"order by id desc limit %d offset %d",is_public,limit,offset)
|
"order by id desc limit %d offset %d", is_public, limit, offset)
|
||||||
}else{
|
} else {
|
||||||
is_public := 0
|
is_public := 0
|
||||||
if public == "true" {
|
if public == "true" {
|
||||||
is_public = 1
|
is_public = 1
|
||||||
}else{
|
} else {
|
||||||
is_public = 0
|
is_public = 0
|
||||||
}
|
}
|
||||||
sql = fmt.Sprintf("SELECT doc.id,doc.author,LEFT(doc.content,50) as content,doc.title,doc.type from doc where doc.type = %d and is_public = %d " +
|
sql = fmt.Sprintf("SELECT doc.id,doc.author,LEFT(doc.content,50) as content,doc.title,doc.type from doc where doc.type = %d and is_public = %d "+
|
||||||
" order by id desc limit %d offset %d",req.Type,is_public,limit,offset)
|
" order by id desc limit %d offset %d", req.Type, is_public, limit, offset)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.Print(sql)
|
log.Print(sql)
|
||||||
e = db.GetMysqlClient().Query2(sql,&article)
|
e = db.GetMysqlClient().Query2(sql, &article)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error(),sql)
|
logs.Error(e.Error(), sql)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for k,_ := range article{
|
for k, _ := range article {
|
||||||
article[k].Content += "..."
|
article[k].Content += "..."
|
||||||
}
|
}
|
||||||
rsp.Data = article
|
rsp.Data = article
|
||||||
@ -101,21 +102,21 @@ func GetArticles(c *gin.Context) {
|
|||||||
rsp.Msg = "OK"
|
rsp.Msg = "OK"
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetArticleCount(c *gin.Context) {
|
func GetArticleCount(c *gin.Context) {
|
||||||
resp := RespBase{Msg:"FAIL",Status: 211}
|
resp := RespBase{Msg: "FAIL", Status: 211}
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,resp)
|
c.JSON(200, resp)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
query := fmt.Sprintf("select count(*) as cnt from doc")
|
query := fmt.Sprintf("select count(*) as cnt from doc")
|
||||||
type Cnt struct {
|
type Cnt struct {
|
||||||
Cnt int64 `sql:"cnt" json:"cnt"`
|
Cnt int64 `sql:"cnt" json:"cnt"`
|
||||||
}
|
}
|
||||||
cnt := []Cnt{};
|
cnt := []Cnt{}
|
||||||
|
|
||||||
e := db.GetMysqlClient().Query2(query,&cnt)
|
e := db.GetMysqlClient().Query2(query, &cnt)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
log.Print(e.Error())
|
log.Print(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -124,32 +125,32 @@ func GetArticleCount(c *gin.Context) {
|
|||||||
resp.Msg = "OK"
|
resp.Msg = "OK"
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetArticle(c *gin.Context) {
|
func GetArticle(c *gin.Context) {
|
||||||
resp := RespBase{Msg:"FAIL",Status: 211}
|
resp := RespBase{Msg: "FAIL", Status: 211}
|
||||||
sid := c.Param("id")
|
sid := c.Param("id")
|
||||||
var id int
|
var id int
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,resp)
|
c.JSON(200, resp)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
if sid == ""{
|
if sid == "" {
|
||||||
return
|
return
|
||||||
}else{
|
} else {
|
||||||
id,err = strconv.Atoi(sid)
|
id, err = strconv.Atoi(sid)
|
||||||
if nil != err{
|
if nil != err {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
query := fmt.Sprintf("select * from doc where doc.id = '%d'",id)
|
query := fmt.Sprintf("select * from doc where doc.id = '%d'", id)
|
||||||
docs := []model.Doc{}
|
docs := []model.Doc{}
|
||||||
e := db.GetMysqlClient().Query2(query,&docs)
|
e := db.GetMysqlClient().Query2(query, &docs)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
log.Print(e.Error())
|
log.Print(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if len(docs) > 0{
|
if len(docs) > 0 {
|
||||||
resp.Data = docs[0]
|
resp.Data = docs[0]
|
||||||
resp.Status = 0
|
resp.Status = 0
|
||||||
resp.Msg = "OK"
|
resp.Msg = "OK"
|
||||||
@ -157,86 +158,86 @@ func GetArticle(c *gin.Context) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateArtilce(c *gin.Context) {
|
func UpdateArtilce(c *gin.Context) {
|
||||||
rsp := RespBase{Msg:"FAIL", Status:210,}
|
rsp := RespBase{Msg: "FAIL", Status: 210}
|
||||||
type ReqUpdateArticle struct {
|
type ReqUpdateArticle struct {
|
||||||
Id int64 `json:"id"`
|
Id int64 `json:"id"`
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
Content string `json:"content"`
|
Content string `json:"content"`
|
||||||
author string `json:"author"`
|
author string `json:"author"`
|
||||||
Type int64 `json:"type"`
|
Type int64 `json:"type"`
|
||||||
IsPublic int `json:"is_public"`
|
IsPublic int `json:"is_public"`
|
||||||
}
|
}
|
||||||
var req ReqUpdateArticle
|
var req ReqUpdateArticle
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
er := c.BindJSON(&req)
|
er := c.BindJSON(&req)
|
||||||
if nil != er{
|
if nil != er {
|
||||||
logs.Error(er.Error())
|
logs.Error(er.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if req.Title == ""{
|
if req.Title == "" {
|
||||||
rsp.Msg = "title required"
|
rsp.Msg = "title required"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
e := model.UpdateDoc(
|
e := model.UpdateDoc(
|
||||||
model.Doc{
|
model.Doc{
|
||||||
Type:req.Type,
|
Type: req.Type,
|
||||||
Title:req.Title,
|
Title: req.Title,
|
||||||
Content:req.Content,
|
Content: req.Content,
|
||||||
Author:req.author,
|
Author: req.author,
|
||||||
ID:req.Id,
|
ID: req.Id,
|
||||||
IsPublic:req.IsPublic,
|
IsPublic: req.IsPublic,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
rsp.Msg = "OK"
|
rsp.Msg = "OK"
|
||||||
rsp.Status = 0
|
rsp.Status = 0
|
||||||
|
|
||||||
}
|
}
|
||||||
func SearchArticle(c *gin.Context) {
|
func SearchArticle(c *gin.Context) {
|
||||||
rsp := RespBase{Msg:"FAIL", Status:210,}
|
rsp := RespBase{Msg: "FAIL", Status: 210}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
func AddArticle(c *gin.Context) {
|
func AddArticle(c *gin.Context) {
|
||||||
rsp := RespBase{Msg:"FAIL", Status:210,}
|
rsp := RespBase{Msg: "FAIL", Status: 210}
|
||||||
type ReqAddArticle struct {
|
type ReqAddArticle struct {
|
||||||
Id int64 `json:"id"`
|
Id int64 `json:"id"`
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
Content string `json:"content"`
|
Content string `json:"content"`
|
||||||
author string `json:"author"`
|
author string `json:"author"`
|
||||||
Type int64 `json:"type"`
|
Type int64 `json:"type"`
|
||||||
Ispublic int `json:"is_public"`
|
Ispublic int `json:"is_public"`
|
||||||
}
|
}
|
||||||
var req ReqAddArticle
|
var req ReqAddArticle
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
er := c.BindJSON(&req)
|
er := c.BindJSON(&req)
|
||||||
if nil != er{
|
if nil != er {
|
||||||
logs.Error(er.Error())
|
logs.Error(er.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if req.Title == ""{
|
if req.Title == "" {
|
||||||
rsp.Msg = "title required"
|
rsp.Msg = "title required"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
e := model.CreateDoc(
|
e := model.CreateDoc(
|
||||||
model.Doc{
|
model.Doc{
|
||||||
Type:req.Type,
|
Type: req.Type,
|
||||||
Title:req.Title,
|
Title: req.Title,
|
||||||
Content:req.Content,
|
Content: req.Content,
|
||||||
Author:req.author,
|
Author: req.author,
|
||||||
IsPublic:req.Ispublic,
|
IsPublic: req.Ispublic,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -244,28 +245,27 @@ func AddArticle(c *gin.Context) {
|
|||||||
rsp.Status = 0
|
rsp.Status = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ArticlesType(c *gin.Context) {
|
||||||
func ArticlesType(c *gin.Context) {
|
rsp := RespBase{Msg: "FAIL", Status: 210}
|
||||||
rsp := RespBase{Msg:"FAIL", Status:210,}
|
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
rsp.Data = model.GetArticlesType()
|
rsp.Data = model.GetArticlesType()
|
||||||
rsp.Msg = "OK"
|
rsp.Msg = "OK"
|
||||||
rsp.Status = 0
|
rsp.Status = 0
|
||||||
}
|
}
|
||||||
func DeleteArticleType(c *gin.Context) {
|
func DeleteArticleType(c *gin.Context) {
|
||||||
rsp := RespBase{Msg:"Fail",Status:210}
|
rsp := RespBase{Msg: "Fail", Status: 210}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
sid :=c.Query("id")
|
sid := c.Query("id")
|
||||||
if sid == ""{
|
if sid == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
id ,e := strconv.Atoi(sid)
|
id, e := strconv.Atoi(sid)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
log.Print(e.Error())
|
log.Print(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -273,39 +273,39 @@ func DeleteArticleType(c *gin.Context) {
|
|||||||
rsp.Msg = "OK"
|
rsp.Msg = "OK"
|
||||||
rsp.Status = 0
|
rsp.Status = 0
|
||||||
}
|
}
|
||||||
func AddArticleType(c *gin.Context) {
|
func AddArticleType(c *gin.Context) {
|
||||||
rsp := RespBase{Msg:"Fail",Status:210}
|
rsp := RespBase{Msg: "Fail", Status: 210}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
typeName :=c.Query("name")
|
typeName := c.Query("name")
|
||||||
group := c.Query("group")
|
group := c.Query("group")
|
||||||
groupid,e := strconv.Atoi(group)
|
groupid, e := strconv.Atoi(group)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
id := c.Query("id")
|
id := c.Query("id")
|
||||||
if id != ""{
|
if id != "" {
|
||||||
if typeName == ""{
|
if typeName == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
articleType := model.ArticleType{
|
articleType := model.ArticleType{
|
||||||
Id: 0,
|
Id: 0,
|
||||||
Name: typeName,
|
Name: typeName,
|
||||||
Group: int32(groupid),
|
Group: int32(groupid),
|
||||||
}
|
}
|
||||||
rsp.Data = model.UpdateArticleType(articleType)
|
rsp.Data = model.UpdateArticleType(articleType)
|
||||||
rsp.Msg = "OK"
|
rsp.Msg = "OK"
|
||||||
rsp.Status = 0
|
rsp.Status = 0
|
||||||
}else{
|
} else {
|
||||||
if typeName == ""{
|
if typeName == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
articleType := model.ArticleType{
|
articleType := model.ArticleType{
|
||||||
Id: 0,
|
Id: 0,
|
||||||
Name: typeName,
|
Name: typeName,
|
||||||
Group: int32(groupid),
|
Group: int32(groupid),
|
||||||
}
|
}
|
||||||
rsp.Data = model.AddArticleType(articleType)
|
rsp.Data = model.AddArticleType(articleType)
|
||||||
rsp.Msg = "OK"
|
rsp.Msg = "OK"
|
||||||
@ -313,41 +313,40 @@ func AddArticleType(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleteArticle(c *gin.Context) {
|
func DeleteArticle(c *gin.Context) {
|
||||||
rsp := RespBase{Msg:"FAIL", Status:210,}
|
rsp := RespBase{Msg: "FAIL", Status: 210}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
sid := c.Param("id")
|
sid := c.Param("id")
|
||||||
id,err := strconv.Atoi(sid)
|
id, err := strconv.Atoi(sid)
|
||||||
if nil != err{
|
if nil != err {
|
||||||
rsp.Status = -234
|
rsp.Status = -234
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}
|
}
|
||||||
err = model.DeleteDoc(int64(id))
|
err = model.DeleteDoc(int64(id))
|
||||||
if nil != err{
|
if nil != err {
|
||||||
rsp.Status = -234
|
rsp.Status = -234
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}
|
}
|
||||||
rsp.Data = id
|
rsp.Data = id
|
||||||
rsp.Status = 0
|
rsp.Status = 0
|
||||||
rsp.Msg = "OK"
|
rsp.Msg = "OK"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ArticlesTypes(c *gin.Context) {
|
||||||
func ArticlesTypes(c *gin.Context) {
|
resp := RespBase{"unkown error", -231, nil}
|
||||||
resp := RespBase{"unkown error",-231,nil}
|
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,resp)
|
c.JSON(200, resp)
|
||||||
}()
|
}()
|
||||||
type DocType struct {
|
type DocType struct {
|
||||||
Id int64 `sql:"id"`
|
Id int64 `sql:"id"`
|
||||||
TypeName string `sql:"type_name"`
|
TypeName string `sql:"type_name"`
|
||||||
}
|
}
|
||||||
docTypes := []DocType{}
|
docTypes := []DocType{}
|
||||||
e := db.GetMysqlClient().Query2("select * from doc_type",
|
e := db.GetMysqlClient().Query2("select * from doc_type",
|
||||||
&docTypes)
|
&docTypes)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
log.Print(e.Error())
|
log.Print(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -356,20 +355,20 @@ func ArticlesTypes(c *gin.Context) {
|
|||||||
resp.Status = 0
|
resp.Status = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateMemo(c *gin.Context) {
|
func CreateMemo(c *gin.Context) {
|
||||||
resp := RespBase{"unkown error",-231,nil}
|
resp := RespBase{"unkown error", -231, nil}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,resp)
|
c.JSON(200, resp)
|
||||||
}()
|
}()
|
||||||
var req model.Memo
|
var req model.Memo
|
||||||
e := c.BindJSON(&req)
|
e := c.BindJSON(&req)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
resp.Msg = "wrong input"
|
resp.Msg = "wrong input"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
e = model.CreateMemo(req)
|
e = model.CreateMemo(req)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -378,20 +377,19 @@ func CreateMemo(c *gin.Context) {
|
|||||||
resp.Status = 0
|
resp.Status = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UpdateMemo(c *gin.Context) {
|
||||||
func UpdateMemo(c *gin.Context) {
|
resp := RespBase{"unkown error", -231, nil}
|
||||||
resp := RespBase{"unkown error",-231,nil}
|
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,resp)
|
c.JSON(200, resp)
|
||||||
}()
|
}()
|
||||||
var req model.Memo
|
var req model.Memo
|
||||||
e := c.BindJSON(&req)
|
e := c.BindJSON(&req)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
resp.Msg = "wrong input"
|
resp.Msg = "wrong input"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
e = model.UpdateMemo(req)
|
e = model.UpdateMemo(req)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -401,12 +399,12 @@ func UpdateMemo(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GetDocGroup(c *gin.Context) {
|
func GetDocGroup(c *gin.Context) {
|
||||||
rsp := RespBase{"ERR",-1,nil}
|
rsp := RespBase{"ERR", -1, nil}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
group,e := model.GetAllGroup()
|
group, e := model.GetAllGroup()
|
||||||
if nil != e{
|
if nil != e {
|
||||||
log.Print(e.Error())
|
log.Print(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -414,32 +412,41 @@ func GetDocGroup(c *gin.Context) {
|
|||||||
rsp.Status = 0
|
rsp.Status = 0
|
||||||
rsp.Msg = "OK"
|
rsp.Msg = "OK"
|
||||||
}
|
}
|
||||||
func GetMemos(c *gin.Context) {
|
|
||||||
rsp := RespBase{"ERR",-1,nil}
|
func GetTemplates(c *gin.Context) {
|
||||||
|
rsp := RespBase{"ERR", -1, nil}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
|
}()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetMemos(c *gin.Context) {
|
||||||
|
rsp := RespBase{"ERR", -1, nil}
|
||||||
|
defer func() {
|
||||||
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
type ReqMemos struct {
|
type ReqMemos struct {
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
}
|
}
|
||||||
req := ReqMemos{}
|
req := ReqMemos{}
|
||||||
e := c.BindJSON(&req)
|
e := c.BindJSON(&req)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
limit,offset := GetPageParaFromQuery(c)
|
limit, offset := GetPageParaFromQuery(c)
|
||||||
if limit != 0 && offset != 0{
|
if limit != 0 && offset != 0 {
|
||||||
dat, e := model.GetMemos(req.Title,10,0)
|
dat, e := model.GetMemos(req.Title, 10, 0)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
rsp.Data = dat
|
rsp.Data = dat
|
||||||
rsp.Status = 0
|
rsp.Status = 0
|
||||||
rsp.Msg = "OK"
|
rsp.Msg = "OK"
|
||||||
}else {
|
} else {
|
||||||
dat, e := model.GetMemos(req.Title,10,0)
|
dat, e := model.GetMemos(req.Title, 10, 0)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
rsp.Data = dat
|
rsp.Data = dat
|
||||||
@ -448,15 +455,17 @@ func GetMemos(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
func GetDocTemplate(c *gin.Context) {
|
||||||
|
|
||||||
|
}
|
||||||
func GetMemo(c *gin.Context) {
|
func GetMemo(c *gin.Context) {
|
||||||
rsp := RespBase{"ERR",-1,nil}
|
rsp := RespBase{"ERR", -1, nil}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
id := c.Query("id")
|
id := c.Query("id")
|
||||||
dat, e := model.ReadMemo(int32(db.Atoi(id)))
|
dat, e := model.ReadMemo(int32(db.Atoi(id)))
|
||||||
if nil != e{
|
if nil != e {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
rsp.Msg = "OK"
|
rsp.Msg = "OK"
|
||||||
@ -464,25 +473,25 @@ func GetMemo(c *gin.Context) {
|
|||||||
rsp.Data = dat
|
rsp.Data = dat
|
||||||
}
|
}
|
||||||
func DeleteMemos(c *gin.Context) {
|
func DeleteMemos(c *gin.Context) {
|
||||||
resp := RespBase{"unkown error",-231,nil}
|
resp := RespBase{"unkown error", -231, nil}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,resp)
|
c.JSON(200, resp)
|
||||||
}()
|
}()
|
||||||
type DelReq struct {
|
type DelReq struct {
|
||||||
Id int32 `json:"id"`
|
Id int32 `json:"id"`
|
||||||
}
|
}
|
||||||
var req DelReq
|
var req DelReq
|
||||||
e := c.BindJSON(&req)
|
e := c.BindJSON(&req)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
resp.Msg = "wrong input"
|
resp.Msg = "wrong input"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
e = model.DeleteMemo(req.Id)
|
e = model.DeleteMemo(req.Id)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
resp.Data = nil
|
resp.Data = nil
|
||||||
resp.Msg = "OK"
|
resp.Msg = "OK"
|
||||||
resp.Status = 0
|
resp.Status = 0
|
||||||
}
|
}
|
||||||
|
@ -3,25 +3,26 @@ package controller
|
|||||||
import (
|
import (
|
||||||
"background/logs"
|
"background/logs"
|
||||||
"background/model"
|
"background/model"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"qiniupkg.com/x/log.v7"
|
"qiniupkg.com/x/log.v7"
|
||||||
)
|
)
|
||||||
|
|
||||||
func AddHardware(c *gin.Context) {
|
func AddHardware(c *gin.Context) {
|
||||||
resp := RespBase{"unkown error",-231,nil}
|
resp := RespBase{"unkown error", -231, nil}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,resp)
|
c.JSON(200, resp)
|
||||||
}()
|
}()
|
||||||
var hardware model.Hardware
|
var hardware model.Hardware
|
||||||
|
|
||||||
e := c.BindJSON(&hardware)
|
e := c.BindJSON(&hardware)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
log.Print(e)
|
log.Print(e)
|
||||||
print(e)
|
print(e)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
e = hardware.CreateHardware()
|
e = hardware.CreateHardware()
|
||||||
if nil != e{
|
if nil != e {
|
||||||
resp.Status = -100
|
resp.Status = -100
|
||||||
resp.Msg = e.Error()
|
resp.Msg = e.Error()
|
||||||
log.Print(e)
|
log.Print(e)
|
||||||
@ -32,17 +33,17 @@ func AddHardware(c *gin.Context) {
|
|||||||
resp.Status = 0
|
resp.Status = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleteHardWare(c *gin.Context) {
|
func DeleteHardWare(c *gin.Context) {
|
||||||
resp := RespBase{"unkown error",-231,nil}
|
resp := RespBase{"unkown error", -231, nil}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,resp)
|
c.JSON(200, resp)
|
||||||
}()
|
}()
|
||||||
name := c.Query("name")
|
name := c.Query("name")
|
||||||
if name == ""{
|
if name == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
e := model.DeleteHardware(name)
|
e := model.DeleteHardware(name)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -51,20 +52,20 @@ func DeleteHardWare(c *gin.Context) {
|
|||||||
resp.Data = nil
|
resp.Data = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateHardWare(c *gin.Context) {
|
func UpdateHardWare(c *gin.Context) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func ReadHardWare(c *gin.Context) {
|
func ReadHardWare(c *gin.Context) {
|
||||||
rsp := RespBase{"ERR",-1,nil}
|
rsp := RespBase{"ERR", -1, nil}
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,rsp)
|
c.JSON(200, rsp)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
limit,offset := GetPageParaFromQuery(c)
|
limit, offset := GetPageParaFromQuery(c)
|
||||||
log.Print(limit,offset)
|
log.Print(limit, offset)
|
||||||
hardware,e := model.GetHardwares(limit,offset)
|
hardware, e := model.GetHardwares(limit, offset)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
rsp.Data = hardware
|
rsp.Data = hardware
|
||||||
|
19
controller/helper/helper.go
Normal file
19
controller/helper/helper.go
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package helper
|
||||||
|
|
||||||
|
import (
|
||||||
|
"background/controller/params"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetPageParam(c *gin.Context) (int, int) {
|
||||||
|
var limit, offset int
|
||||||
|
var ok bool
|
||||||
|
limit, ok = c.Keys[params.K_OFFSET].(int)
|
||||||
|
if !ok {
|
||||||
|
}
|
||||||
|
offset, ok = c.Keys[params.K_OFFSET].(int)
|
||||||
|
if !ok {
|
||||||
|
}
|
||||||
|
return limit, offset
|
||||||
|
}
|
5
controller/params/params
Normal file
5
controller/params/params
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package params
|
||||||
|
|
||||||
|
const K_OFFSET = "offset"
|
||||||
|
const K_LIMIT = "limit"
|
||||||
|
|
@ -1,16 +1,17 @@
|
|||||||
package controller
|
package controller
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"background/config"
|
||||||
|
"background/db"
|
||||||
|
"background/logs"
|
||||||
|
"background/model"
|
||||||
|
"background/redis"
|
||||||
"background/utils"
|
"background/utils"
|
||||||
"bytes"
|
"bytes"
|
||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fatih/structs"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
_ "github.com/go-sql-driver/mysql"
|
|
||||||
"github.com/tommy351/gin-sessions"
|
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
@ -20,15 +21,14 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
"background/config"
|
|
||||||
"background/db"
|
"github.com/fatih/structs"
|
||||||
"background/logs"
|
"github.com/gin-gonic/gin"
|
||||||
"background/model"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
"background/redis"
|
sessions "github.com/tommy351/gin-sessions"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UserController struct {
|
type UserController struct {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type ReqSendEmailCode struct {
|
type ReqSendEmailCode struct {
|
||||||
@ -80,8 +80,8 @@ func (this *UserController) SetUser(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *UserController) ModifyPasswd(c *gin.Context) {
|
func (this *UserController) ModifyPasswd(c *gin.Context) {
|
||||||
type ReqModifyPasswd struct{
|
type ReqModifyPasswd struct {
|
||||||
id int `json:"id"`
|
id int `json:"id"`
|
||||||
UserName string `json:"user_name"`
|
UserName string `json:"user_name"`
|
||||||
Password string `json:"password"`
|
Password string `json:"password"`
|
||||||
}
|
}
|
||||||
@ -91,16 +91,16 @@ func (this *UserController) ModifyPasswd(c *gin.Context) {
|
|||||||
resp.Msg = "err"
|
resp.Msg = "err"
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
c.JSON(200,resp)
|
c.JSON(200, resp)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
e := c.BindJSON(&req)
|
e := c.BindJSON(&req)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
e = model.ModyfyPassword(req.UserName,req.Password)
|
e = model.ModyfyPassword(req.UserName, req.Password)
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -137,7 +137,6 @@ func (this *UserController) GetUser(c *gin.Context) {
|
|||||||
resp.Data = users
|
resp.Data = users
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (this *UserController) Users(c *gin.Context) {
|
func (this *UserController) Users(c *gin.Context) {
|
||||||
var statuscode int
|
var statuscode int
|
||||||
var resp RespBase
|
var resp RespBase
|
||||||
@ -169,7 +168,6 @@ func (this *UserController) Users(c *gin.Context) {
|
|||||||
resp.Data = dat
|
resp.Data = dat
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (this *UserController) SerarchUsers(c *gin.Context) {
|
func (this *UserController) SerarchUsers(c *gin.Context) {
|
||||||
var statuscode int
|
var statuscode int
|
||||||
var resp RespBase
|
var resp RespBase
|
||||||
@ -234,7 +232,6 @@ func DefaultOption(c *gin.Context) {
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (this *UserController) Login(c *gin.Context) {
|
func (this *UserController) Login(c *gin.Context) {
|
||||||
type LoginReq struct {
|
type LoginReq struct {
|
||||||
RememberMe int32 `json:"remember_me"`
|
RememberMe int32 `json:"remember_me"`
|
||||||
@ -258,7 +255,7 @@ func (this *UserController) Login(c *gin.Context) {
|
|||||||
h.Write([]byte(req.UserPwd)) // 需要加密的字符串为 123456
|
h.Write([]byte(req.UserPwd)) // 需要加密的字符串为 123456
|
||||||
passmd5 := h.Sum(nil)
|
passmd5 := h.Sum(nil)
|
||||||
var result []model.Users
|
var result []model.Users
|
||||||
query := fmt.Sprintf("select * from users where user_name = '%s'",req.UserName)
|
query := fmt.Sprintf("select * from users where user_name = '%s'", req.UserName)
|
||||||
er := db.GetMysqlClient().Query2(query,
|
er := db.GetMysqlClient().Query2(query,
|
||||||
&result)
|
&result)
|
||||||
logs.Debug("sql query:" + query)
|
logs.Debug("sql query:" + query)
|
||||||
@ -395,7 +392,7 @@ func (this *UserController) Register(c *gin.Context) {
|
|||||||
|
|
||||||
func (this *UserController) Logout(c *gin.Context) {
|
func (this *UserController) Logout(c *gin.Context) {
|
||||||
token := c.Param("token")
|
token := c.Param("token")
|
||||||
log.Print("logout token is ",token)
|
log.Print("logout token is ", token)
|
||||||
var resp RespBase
|
var resp RespBase
|
||||||
config.RedisOne().Del(token)
|
config.RedisOne().Del(token)
|
||||||
resp.Msg = "退出成功"
|
resp.Msg = "退出成功"
|
||||||
|
@ -7,48 +7,62 @@ import (
|
|||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/go-sql-driver/mysql"
|
|
||||||
_ "github.com/go-sql-driver/mysql"
|
|
||||||
"gopkg.in/mgo.v2"
|
|
||||||
"gopkg.in/olivere/elastic.v7"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"github.com/go-sql-driver/mysql"
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/jinzhu/gorm"
|
||||||
|
"gopkg.in/mgo.v2"
|
||||||
|
"gopkg.in/olivere/elastic.v7"
|
||||||
)
|
)
|
||||||
|
|
||||||
var gEla ElkEngine
|
var gEla ElkEngine
|
||||||
var gDb Database
|
var gDb Database
|
||||||
var blogDb Database
|
var blogDb Database
|
||||||
var gMongo *mgo.Session
|
var gMongo *mgo.Session
|
||||||
var gElkEngine ElkEngine
|
var gElkEngine ElkEngine
|
||||||
|
var gOrm *gorm.DB
|
||||||
|
|
||||||
func Init() {
|
func Init() {
|
||||||
|
var e error
|
||||||
mysqlconf := config.GetMysqlConfig()
|
mysqlconf := config.GetMysqlConfig()
|
||||||
blogConf := config.GetMysqlBlogConfig()
|
|
||||||
//InitMongoDb()
|
//InitMongoDb()
|
||||||
fmt.Print("api runmode is " + config.ApiConfig().RunMode)
|
log.Print("api runmode is " + config.ApiConfig().RunMode)
|
||||||
if config.ApiConfig().RunMode == "debug"{
|
if config.ApiConfig().RunMode == "debug" {
|
||||||
blogDb = Database{Type: string(""), DB: initMysqlTLS(blogConf)}
|
gDb = Database{Type: string(""), DB: initMysql(mysqlconf)}
|
||||||
}else{
|
sqls := fmt.Sprintf("%s:%s@(%s)/%s?charset=utf8&parseTime=True&loc=Local",
|
||||||
blogDb = Database{Type: string(""), DB: initMysqlTLS(blogConf)}
|
mysqlconf.UserName, mysqlconf.Password, mysqlconf.Addr,
|
||||||
}
|
mysqlconf.Db)
|
||||||
if config.ApiConfig().RunMode == "debug"{
|
log.Print(sqls)
|
||||||
gDb = Database{Type: string(""), DB: initMysqlTLS(mysqlconf)}
|
gOrm, e = gorm.Open("mysql", sqls)
|
||||||
}else{
|
if nil != e {
|
||||||
gDb = Database{Type: string(""), DB: initMysqlTLS(mysqlconf)}
|
log.Print(e.Error())
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sqls := fmt.Sprintf("%s:%s@/%s?charset=utf8&parseTime=True&loc=Local", mysqlconf.UserName, mysqlconf.Password,
|
||||||
|
mysqlconf.Db)
|
||||||
|
gOrm, e = gorm.Open("mysql", sqls)
|
||||||
|
if nil != e {
|
||||||
|
log.Print(e.Error())
|
||||||
|
os.Exit(-1)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
InitELK()
|
InitELK()
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitELK() {
|
func InitELK() {
|
||||||
var e error
|
var e error
|
||||||
elkconf := config.GetElkConfig()
|
elkconf := config.GetElkConfig()
|
||||||
log.Print(elkconf)
|
log.Print(elkconf)
|
||||||
gElkEngine.cli,e = elastic.NewClient(
|
gElkEngine.cli, e = elastic.NewClient(
|
||||||
elastic.SetURL(elkconf.Address),
|
elastic.SetURL(elkconf.Address),
|
||||||
// Must turn off sniff in docker
|
// Must turn off sniff in docker
|
||||||
elastic.SetSniff(false),)
|
elastic.SetSniff(false))
|
||||||
if nil != e{
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
gElkEngine.cli = nil
|
gElkEngine.cli = nil
|
||||||
}
|
}
|
||||||
@ -72,7 +86,7 @@ func initMysql(mysqlconf *config.MysqlConfig) *sql.DB {
|
|||||||
fmt.Println(e.Error())
|
fmt.Println(e.Error())
|
||||||
os.Exit(200)
|
os.Exit(200)
|
||||||
}
|
}
|
||||||
return _db
|
return _db
|
||||||
}
|
}
|
||||||
|
|
||||||
func initMysqlTLS(mysqlconf *config.MysqlConfig) *sql.DB {
|
func initMysqlTLS(mysqlconf *config.MysqlConfig) *sql.DB {
|
||||||
@ -91,8 +105,8 @@ func initMysqlTLS(mysqlconf *config.MysqlConfig) *sql.DB {
|
|||||||
}
|
}
|
||||||
clientCert = append(clientCert, certs)
|
clientCert = append(clientCert, certs)
|
||||||
mysql.RegisterTLSConfig("custom", &tls.Config{
|
mysql.RegisterTLSConfig("custom", &tls.Config{
|
||||||
RootCAs: rootCertPool,
|
RootCAs: rootCertPool,
|
||||||
Certificates: clientCert,
|
Certificates: clientCert,
|
||||||
InsecureSkipVerify: true,
|
InsecureSkipVerify: true,
|
||||||
})
|
})
|
||||||
cnn := fmt.Sprintf("%s:%s@tcp(%s:3306)/%s?charset=utf8&tls=custom", mysqlconf.UserName, mysqlconf.Password,
|
cnn := fmt.Sprintf("%s:%s@tcp(%s:3306)/%s?charset=utf8&tls=custom", mysqlconf.UserName, mysqlconf.Password,
|
||||||
@ -108,22 +122,22 @@ func initMysqlTLS(mysqlconf *config.MysqlConfig) *sql.DB {
|
|||||||
fmt.Println(e.Error())
|
fmt.Println(e.Error())
|
||||||
os.Exit(200)
|
os.Exit(200)
|
||||||
}
|
}
|
||||||
return _db
|
return _db
|
||||||
}
|
}
|
||||||
func initMongoDb(conf *config.MongoConfig) *mgo.Session{
|
func initMongoDb(conf *config.MongoConfig) *mgo.Session {
|
||||||
var url string
|
var url string
|
||||||
if conf.UserName == ""{
|
if conf.UserName == "" {
|
||||||
url = fmt.Sprintf("mongodb://%s:%d/%s",conf.Addr,conf.Port,conf.Db)
|
url = fmt.Sprintf("mongodb://%s:%d/%s", conf.Addr, conf.Port, conf.Db)
|
||||||
|
|
||||||
}else{
|
} else {
|
||||||
url = fmt.Sprintf("mongodb://%s:%s@%s:%d/%s",conf.UserName,conf.Password,conf.Addr,conf.Port,conf.Db)
|
url = fmt.Sprintf("mongodb://%s:%s@%s:%d/%s", conf.UserName, conf.Password, conf.Addr, conf.Port, conf.Db)
|
||||||
|
|
||||||
}
|
}
|
||||||
log.Print("connect to url " + url)
|
log.Print("connect to url " + url)
|
||||||
logs.Debug("connect to url " + url)
|
logs.Debug("connect to url " + url)
|
||||||
|
|
||||||
mgo,err := mgo.Dial(url)
|
mgo, err := mgo.Dial(url)
|
||||||
if nil != err{
|
if nil != err {
|
||||||
logs.Error(err.Error())
|
logs.Error(err.Error())
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -133,20 +147,23 @@ func initMongoDb(conf *config.MongoConfig) *mgo.Session{
|
|||||||
func GetMysqlClient() *Database {
|
func GetMysqlClient() *Database {
|
||||||
return &gDb
|
return &gDb
|
||||||
}
|
}
|
||||||
func GetBlogMysql() *Database{
|
func GetBlogMysql() *Database {
|
||||||
return &blogDb
|
return &blogDb
|
||||||
}
|
}
|
||||||
func GetMongoDb() *mgo.Session {
|
func GetMongoDb() *mgo.Session {
|
||||||
return gMongo
|
return gMongo
|
||||||
}
|
}
|
||||||
func InitMongoDb() {
|
func InitMongoDb() {
|
||||||
mongoConf := config.GetMongoDBConfig()
|
mongoConf := config.GetMongoDBConfig()
|
||||||
gMongo = initMongoDb(mongoConf)
|
gMongo = initMongoDb(mongoConf)
|
||||||
if gMongo == nil{
|
if gMongo == nil {
|
||||||
log.Print("error mongo initial")
|
log.Print("error mongo initial")
|
||||||
os.Exit(25)
|
os.Exit(25)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func GetElastic() *ElkEngine{
|
func GetElastic() *ElkEngine {
|
||||||
return &gElkEngine
|
return &gElkEngine
|
||||||
}
|
}
|
||||||
|
func GetOrm() *gorm.DB {
|
||||||
|
return gOrm
|
||||||
|
}
|
||||||
|
62
main.go
62
main.go
@ -8,12 +8,14 @@ import (
|
|||||||
_ "background/docs"
|
_ "background/docs"
|
||||||
"background/logs"
|
"background/logs"
|
||||||
"background/model"
|
"background/model"
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"github.com/swaggo/files" // swagger embed files
|
|
||||||
"github.com/swaggo/gin-swagger" // gin-swagger middleware
|
|
||||||
"github.com/tommy351/gin-sessions"
|
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
swaggerFiles "github.com/swaggo/files" // swagger embed files
|
||||||
|
ginSwagger "github.com/swaggo/gin-swagger" // gin-swagger middleware
|
||||||
|
sessions "github.com/tommy351/gin-sessions"
|
||||||
)
|
)
|
||||||
|
|
||||||
// @title 大厅功能api
|
// @title 大厅功能api
|
||||||
@ -22,28 +24,27 @@ import (
|
|||||||
// @BasePath /api/v1
|
// @BasePath /api/v1
|
||||||
|
|
||||||
var (
|
var (
|
||||||
userController = controller.UserController{}
|
userController = controller.UserController{}
|
||||||
mailContoller = controller.MailController{}
|
mailContoller = controller.MailController{}
|
||||||
fileController = controller.FileController{}
|
fileController = controller.FileController{}
|
||||||
webhookController = controller.WebHookController{}
|
webhookController = controller.WebHookController{}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
func CORSMiddleware(c *gin.Context) {
|
func CORSMiddleware(c *gin.Context) {
|
||||||
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")
|
c.Writer.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")
|
||||||
if config.ApiConfig().RunMode == "release"{
|
if config.ApiConfig().RunMode == "release" {
|
||||||
c.Writer.Header().Set("Access-Control-Allow-Origin", "https://testingcloud.club")
|
c.Writer.Header().Set("Access-Control-Allow-Origin", "https://testingcloud.club")
|
||||||
|
|
||||||
}else{
|
} else {
|
||||||
c.Writer.Header().Set("Access-Control-Allow-Origin", "http://localhost:8080")
|
c.Writer.Header().Set("Access-Control-Allow-Origin", "http://localhost:8080")
|
||||||
}
|
}
|
||||||
c.Writer.Header().Set("Access-Control-Max-Age", "86400")
|
c.Writer.Header().Set("Access-Control-Max-Age", "86400")
|
||||||
c.Writer.Header().Set("Access-Control-Allow-Headers",
|
c.Writer.Header().Set("Access-Control-Allow-Headers",
|
||||||
"X-Requested-With," +
|
"X-Requested-With,"+
|
||||||
" Content-Type, Origin, Authorization," +
|
" Content-Type, Origin, Authorization,"+
|
||||||
"Accept,Client-Security-Token, Accept-Encoding," +
|
"Accept,Client-Security-Token, Accept-Encoding,"+
|
||||||
"x-access-token,Access-Control-Request-Method," +
|
"x-access-token,Access-Control-Request-Method,"+
|
||||||
"Access-Control-Request-Headers")
|
"Access-Control-Request-Headers")
|
||||||
c.Writer.Header().Set("Access-Control-Expose-Headers", "Content-Length")
|
c.Writer.Header().Set("Access-Control-Expose-Headers", "Content-Length")
|
||||||
c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
|
c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
|
||||||
|
|
||||||
@ -79,9 +80,9 @@ func InitRedisConfig() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitElasticSearch(){
|
func InitElasticSearch() {
|
||||||
e := db.GetElastic().CreateIndex("hardware",model.HardwareTypeMapping())
|
e := db.GetElastic().CreateIndex("hardware", model.HardwareTypeMapping())
|
||||||
if nil != e{
|
if nil != e {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -90,6 +91,8 @@ func InitLogs() {
|
|||||||
logs.Init(config.GetLogConfig().Dir, config.GetLogConfig().File, config.GetLogConfig().Level, config.GetLogConfig().SaveFile)
|
logs.Init(config.GetLogConfig().Dir, config.GetLogConfig().File, config.GetLogConfig().Level, config.GetLogConfig().SaveFile)
|
||||||
}
|
}
|
||||||
func main() {
|
func main() {
|
||||||
|
log.Print("gid is", os.Getegid())
|
||||||
|
|
||||||
InitConfig()
|
InitConfig()
|
||||||
InitLogs()
|
InitLogs()
|
||||||
InitRedisConfig()
|
InitRedisConfig()
|
||||||
@ -136,7 +139,7 @@ func main() {
|
|||||||
api.POST("/articles", controller.GetArticles) // 获取所有文章
|
api.POST("/articles", controller.GetArticles) // 获取所有文章
|
||||||
api.PUT("/article", controller.AddArticle) // 添加文章
|
api.PUT("/article", controller.AddArticle) // 添加文章
|
||||||
api.PUT("/article_search", controller.SearchArticle) // 添加文章
|
api.PUT("/article_search", controller.SearchArticle) // 添加文章
|
||||||
api.GET("/article_type", controller.ArticlesType) //获取所有文章分类
|
api.GET("/article_type", controller.ArticlesType) //获取所有文章分类
|
||||||
api.PUT("/article_type", controller.AddArticleType)
|
api.PUT("/article_type", controller.AddArticleType)
|
||||||
api.DELETE("/article_type", controller.DeleteArticleType)
|
api.DELETE("/article_type", controller.DeleteArticleType)
|
||||||
|
|
||||||
@ -156,16 +159,23 @@ func main() {
|
|||||||
api.GET("/filelist", fileController.FileList) // 文件列表
|
api.GET("/filelist", fileController.FileList) // 文件列表
|
||||||
api.GET("/fileType", fileController.FileType) // 文件类型
|
api.GET("/fileType", fileController.FileType) // 文件类型
|
||||||
|
|
||||||
api.PUT("/memo", controller.CreateMemo) // 备忘录新建
|
api.PUT("/memo", controller.CreateMemo) // 备忘录新建
|
||||||
api.POST("/memo", controller.UpdateMemo) // 备忘录更新
|
api.POST("/memo", controller.UpdateMemo) // 备忘录更新
|
||||||
api.POST("/memos", controller.GetMemos) // 备忘录批量
|
api.POST("/memos", controller.GetMemos) // 备忘录批量
|
||||||
api.POST("/delmemo", controller.DeleteMemos) //删除备忘录
|
api.POST("/delmemo", controller.DeleteMemos) //删除备忘录
|
||||||
api.GET("/memo", controller.GetMemo) // 单独读取
|
api.GET("/memo", controller.GetMemo) // 单独读取
|
||||||
api.GET("doc_groups",controller.GetDocGroup) // 获取所有的文章分组
|
api.GET("doc_groups", controller.GetDocGroup) // 获取所有的文章分组
|
||||||
|
api.GET("templates", controller.GetDocTemplate) // 获取所有文章的模板
|
||||||
|
|
||||||
|
api.GET("doc_versions", nil) // 获取文章的某个版本
|
||||||
}
|
}
|
||||||
hookapi := r.Group("hookapi")
|
hookapi := r.Group("hookapi")
|
||||||
{
|
{
|
||||||
hookapi.POST("/push_hook/:repo",webhookController.PushHook)
|
hookapi.POST("/push_hook/:repo", webhookController.PushHook)
|
||||||
|
}
|
||||||
|
openapi := r.Group("openapi")
|
||||||
|
{
|
||||||
|
openapi.POST("negotiate")
|
||||||
}
|
}
|
||||||
e := r.Run(":" + strconv.Itoa(config.GetPort()))
|
e := r.Run(":" + strconv.Itoa(config.GetPort()))
|
||||||
if nil != e {
|
if nil != e {
|
||||||
|
@ -4,28 +4,29 @@ import (
|
|||||||
"background/db"
|
"background/db"
|
||||||
"background/logs"
|
"background/logs"
|
||||||
"fmt"
|
"fmt"
|
||||||
"qiniupkg.com/x/log.v7"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"qiniupkg.com/x/log.v7"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Doc struct {
|
type Doc struct {
|
||||||
ID int64 `sql:"id" json:"id"`
|
ID int64 `sql:"id" json:"id"`
|
||||||
Title string `sql:"title" json:"title"`
|
Title string `sql:"title" json:"title"`
|
||||||
Type int64 `sql:"type" json:"type"`
|
Type int64 `sql:"type" json:"type"`
|
||||||
Content string `sql:"content" json:"content"`
|
Content string `sql:"content" json:"content"`
|
||||||
Author string `sql:"author" json:"author"`
|
Author string `sql:"author" json:"author"`
|
||||||
IsPublic int `sql:"is_public" json:"is_public"`
|
IsPublic int `sql:"is_public" json:"is_public"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type DocGroup struct {
|
type DocGroup struct {
|
||||||
Int int32 `sql:"int"`
|
Int int32 `sql:"int"`
|
||||||
Name string `sql:"name"`
|
Name string `sql:"name"`
|
||||||
}
|
}
|
||||||
type ArticleType struct {
|
type ArticleType struct {
|
||||||
Id int64 `sql:"id" json:"id"`
|
Id int64 `sql:"id" json:"id"`
|
||||||
Name string `sql:"type_name" json:"type_name"`
|
Name string `sql:"type_name" json:"type_name"`
|
||||||
Author string `sql:"author" json:"author"`
|
Author string `sql:"author" json:"author"`
|
||||||
Group int32 `sql:"group" json:"group"`
|
Group int32 `sql:"group" json:"group"`
|
||||||
GroupName string `json:"group_name"`
|
GroupName string `json:"group_name"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,11 +34,11 @@ func GetArticlesType() []ArticleType {
|
|||||||
ret := []ArticleType{}
|
ret := []ArticleType{}
|
||||||
sql := fmt.Sprintf("select * from doc_type")
|
sql := fmt.Sprintf("select * from doc_type")
|
||||||
e := db.GetBlogMysql().Query2(sql, &ret)
|
e := db.GetBlogMysql().Query2(sql, &ret)
|
||||||
for k,_ := range ret{
|
for k, _ := range ret {
|
||||||
group := []DocGroup{}
|
group := []DocGroup{}
|
||||||
sql = fmt.Sprintf("select * from doc_group where doc_group.int = %d",ret[k].Group)
|
sql = fmt.Sprintf("select * from doc_group where doc_group.int = %d", ret[k].Group)
|
||||||
db.GetBlogMysql().Query2(sql, &group)
|
db.GetBlogMysql().Query2(sql, &group)
|
||||||
if len(group) > 0{
|
if len(group) > 0 {
|
||||||
ret[k].GroupName = group[0].Name
|
ret[k].GroupName = group[0].Name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -60,7 +61,7 @@ func CreateDoc(doc Doc) error {
|
|||||||
DUAL
|
DUAL
|
||||||
WHERE
|
WHERE
|
||||||
NOT EXISTS ( SELECT * FROM doc WHERE doc.title = '%s' );`, doc.Title, strings.Replace(doc.Content, "'", "\\'", -1),
|
NOT EXISTS ( SELECT * FROM doc WHERE doc.title = '%s' );`, doc.Title, strings.Replace(doc.Content, "'", "\\'", -1),
|
||||||
doc.Author, doc.Type,doc.IsPublic,doc.Title)
|
doc.Author, doc.Type, doc.IsPublic, doc.Title)
|
||||||
_, e := db.GetMysqlClient().Query(sql)
|
_, e := db.GetMysqlClient().Query(sql)
|
||||||
if nil != e {
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
@ -69,10 +70,10 @@ func CreateDoc(doc Doc) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateDoc(doc Doc) error{
|
func UpdateDoc(doc Doc) error {
|
||||||
sql := fmt.Sprintf(`update doc set doc.author = '%s' ,doc.title = '%s',doc.type = '%d',doc.content = '%s' where doc.id = '%d'; `,
|
sql := fmt.Sprintf(`update doc set doc.author = '%s' ,doc.title = '%s',doc.type = '%d',doc.content = '%s' where doc.id = '%d'; `,
|
||||||
doc.Author, doc.Title, doc.Type,
|
doc.Author, doc.Title, doc.Type,
|
||||||
strings.Replace(doc.Content, "'", "\\'", -1),doc.ID)
|
strings.Replace(doc.Content, "'", "\\'", -1), doc.ID)
|
||||||
_, e := db.GetMysqlClient().Query(sql)
|
_, e := db.GetMysqlClient().Query(sql)
|
||||||
if nil != e {
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
@ -81,8 +82,8 @@ func UpdateDoc(doc Doc) error{
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func DeleteDoc(id int64) error{
|
func DeleteDoc(id int64) error {
|
||||||
sql := fmt.Sprintf(`delete from doc where id = %d`,id)
|
sql := fmt.Sprintf(`delete from doc where id = %d`, id)
|
||||||
_, e := db.GetMysqlClient().Query(sql)
|
_, e := db.GetMysqlClient().Query(sql)
|
||||||
if nil != e {
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
@ -91,8 +92,8 @@ func DeleteDoc(id int64) error{
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddArticleType(t ArticleType) error{
|
func AddArticleType(t ArticleType) error {
|
||||||
sql := fmt.Sprintf("insert into doc_type(id,type_name,`group`) values ('%d','%s','%d')",t.Id,t.Name,t.Group)
|
sql := fmt.Sprintf("insert into doc_type(id,type_name,`group`) values ('%d','%s','%d')", t.Id, t.Name, t.Group)
|
||||||
log.Print(sql)
|
log.Print(sql)
|
||||||
_, e := db.GetMysqlClient().Query(sql)
|
_, e := db.GetMysqlClient().Query(sql)
|
||||||
if nil != e {
|
if nil != e {
|
||||||
@ -101,18 +102,8 @@ func AddArticleType(t ArticleType) error{
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
func UpdateArticleType(t ArticleType) error{
|
func UpdateArticleType(t ArticleType) error {
|
||||||
sql := fmt.Sprintf("update doc_type set type_name = '%s' and group = '%d' where id = %d",t.Name,t.Group,t.Id)
|
sql := fmt.Sprintf("update doc_type set type_name = '%s' and group = '%d' where id = %d", t.Name, t.Group, t.Id)
|
||||||
_, e := db.GetMysqlClient().Query(sql)
|
|
||||||
if nil != e {
|
|
||||||
logs.Error(e.Error())
|
|
||||||
return e
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
|
|
||||||
}
|
|
||||||
func DeleteArticleType(id int32) error {
|
|
||||||
sql := fmt.Sprintf("delete from doc_type where id = '%d'",id)
|
|
||||||
_, e := db.GetMysqlClient().Query(sql)
|
_, e := db.GetMysqlClient().Query(sql)
|
||||||
if nil != e {
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
@ -121,24 +112,34 @@ func DeleteArticleType(id int32) error {
|
|||||||
return nil
|
return nil
|
||||||
|
|
||||||
}
|
}
|
||||||
func GetAllDocs() ([]Doc,error) {
|
func DeleteArticleType(id int32) error {
|
||||||
|
sql := fmt.Sprintf("delete from doc_type where id = '%d'", id)
|
||||||
|
_, e := db.GetMysqlClient().Query(sql)
|
||||||
|
if nil != e {
|
||||||
|
logs.Error(e.Error())
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
|
||||||
|
}
|
||||||
|
func GetAllDocs() ([]Doc, error) {
|
||||||
ret := []Doc{}
|
ret := []Doc{}
|
||||||
sql := fmt.Sprintf("select * from doc")
|
sql := fmt.Sprintf("select * from doc")
|
||||||
e := db.GetMysqlClient().Query2(sql,&ret)
|
e := db.GetMysqlClient().Query2(sql, &ret)
|
||||||
if nil != e {
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return nil,e
|
return nil, e
|
||||||
}
|
}
|
||||||
return ret,nil
|
return ret, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
func GetAllGroup() ([]DocGroup,error) {
|
func GetAllGroup() ([]DocGroup, error) {
|
||||||
ret := []DocGroup{}
|
ret := []DocGroup{}
|
||||||
sql := fmt.Sprintf("select * from doc_group")
|
sql := fmt.Sprintf("select * from doc_group")
|
||||||
e := db.GetMysqlClient().Query2(sql,&ret)
|
e := db.GetMysqlClient().Query2(sql, &ret)
|
||||||
if nil != e {
|
if nil != e {
|
||||||
logs.Error(e.Error())
|
logs.Error(e.Error())
|
||||||
return nil,e
|
return nil, e
|
||||||
}
|
}
|
||||||
return ret,nil
|
return ret, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user