package connect
import (
"database/sql"
"fmt"
_ "github.com/bmizerany/pq"
"log"
"wei.com/大伟代码/007.大伟运维监控管理工具/config"
)
func Connect ( ) * sql. DB{
dbinfo := config. DBinfo ( )
dbStr := fmt. Sprintf ( "host=%s port=%s user=%s password=%s dbname=%s sslmode=disable" , dbinfo. Ip, dbinfo. Port, dbinfo. DbUser, dbinfo. DbPass, dbinfo. DbName)
DB, err := sql. Open ( "postgres" , dbStr)
if err != nil {
log. Println ( "打开数据时出错!" )
}
return DB
}
package userinfo
import (
"database/sql"
"log"
)
func DeleteUserinfo ( db * sql. DB) int64 {
stmt, err := db. Prepare ( "delete from userinfo where Name =$1" )
if err != nil {
log. Println ( "删除语句预备错误!" )
panic ( err)
}
res, err := stmt. Exec ( "张三" )
if err != nil {
log. Println ( "插入语句执行错误!" )
panic ( err)
}
affect, err := res. RowsAffected ( )
if err != nil {
log. Println ( "插入语句感染行数错误!" )
panic ( err)
}
return affect
}
package userinfo
import (
"database/sql"
"log"
)
func InsertUserinfo ( db * sql. DB) int64 {
stmt, err := db. Prepare ( "insert into userinfo(Id,Name,Passwd,Work ) values ($1,$2,$3,$4) " )
if err != nil {
log. Println ( "插入语句预备错误!" )
panic ( err)
}
res, err := stmt. Exec ( "3" , "张三" , "ruiyun123" , "HUPX,LINUX," )
if err != nil {
log. Println ( "插入语句执行错误!" )
panic ( err)
}
n, err := res. RowsAffected ( )
if err != nil {
log. Println ( "插入语句感染行数错误!" )
panic ( err)
}
return n
}
package userinfo
import (
"database/sql"
"log"
)
type User struct {
Id int
Name string
Passwd string
Work string
Other string
}
var ListUser [ ] User
func SelectUserinfo ( db * sql. DB) {
ListUser = make ( [ ] User, 1000 , 1000 )
rows, err := db. Query ( "select * from userinfo" )
if err != nil {
log. Println ( err)
return
}
i := 0
for rows. Next ( ) {
rows. Scan ( & ListUser[ i] . Id, & ListUser[ i] . Name, & ListUser[ i] . Passwd, & ListUser[ i] . Work, & ListUser[ i] . Other)
i++
}
}
package userinfo
import (
"database/sql"
"log"
)
func UpdateUserinfo ( db * sql. DB) int64 {
stmt, err := db. Prepare ( "update userinfo set Id=$1 where Name=$2" )
if err != nil {
log. Println ( "更新语句预备错误!" )
panic ( err)
}
res, err := stmt. Exec ( "71001214" , "汪伟" )
if err != nil {
log. Println ( "更新语句执行错误!" )
panic ( err)
}
affect, err := res. RowsAffected ( )
if err != nil {
log. Println ( "更新语句感染行数错误!" )
panic ( err)
}
return affect
}
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"wei.com/大伟代码/007.大伟运维监控管理工具/route"
)
func main ( ) {
app := gin. Default ( )
registerRouter ( app)
err := app. Run ( ":8080" )
if err != nil {
fmt. Println ( err)
}
}
func registerRouter ( router * gin. Engine) {
new ( route. Controller) . Router ( router)
}
package route
import (
"github.com/gin-gonic/gin"
"log"
"wei.com/大伟代码/007.大伟运维监控管理工具/ZC"
"wei.com/大伟代码/007.大伟运维监控管理工具/db/connect"
"wei.com/大伟代码/007.大伟运维监控管理工具/db/userinfo"
)
type Controller struct {
}
func ( handler Controller) Router ( engine * gin. Engine) {
engine. Static ( "/cssDir" , "template/css" )
engine. LoadHTMLGlob ( "template/**/*" )
engine. GET ( "/" , handler. Login)
engine. POST ( "/LoginPost" , handler. LoginPost)
engine. GET ( "/ZCSNGL" , handler. ZCSNGL)
engine. GET ( "/ZCLPARGL" , handler. ZCLPARGL)
}
func ( handler Controller) Login ( context * gin. Context) {
context. HTML ( 200 , "login.html" , gin. H{ } )
}
func ( handler Controller) LoginPost ( context * gin. Context) {
u:= context. PostForm ( "u" )
p:= context. PostForm ( "p" )
if len ( u) < 0 {
log. Println ( "用户名不能为空" )
context. JSON ( 244 , gin. H{ "message" : "用户名称不能为空" } )
return
}
if len ( p) < 6 {
log. Println ( "密码少于6位" )
context. JSON ( 244 , gin. H{ "message" : "密码少于6位" } )
return
}
conn := connect. Connect ( )
userinfo. SelectUserinfo ( conn)
for _ , v := range userinfo. ListUser {
if v. Name == u {
if v. Passwd == p {
context. HTML ( 200 , "index.html" , gin. H{ } )
break
}
}
}
conn. Close ( )
return
context. JSON ( 258 , gin. H{ "message" : "验证数据库记录失败,用户密码错误!" , "用户" : u, "密码" : p } )
}
func ( handler Controller) ZCSNGL ( context * gin. Context) {
context. HTML ( 200 , "ZCSNGL.html" , gin. H{ "outString" : ZC. ListSN2Str ( ZC. ZCSNGL ( connect. Connect ( ) ) ) } )
}
func ( handler Controller) ZCLPARGL ( context * gin. Context) {
context. HTML ( 200 , "ZCLPARGL.html" , gin. H{ "outString" : ZC. ListLPAR2Str ( ZC. ZCLPARGL ( connect. Connect ( ) ) ) } )
}