加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

go语言

发布时间:2020-12-16 19:11:15 所属栏目:大数据 来源:网络整理
导读:packagecontrollersimport("github.com/revel/revel""fmt""time""strconv""strings""database/sql""text/template"_"github.com/go-sql-driver/mysql")typeSparkstruct{*revel.Controller}var(starlist=map[string]string{"xuezhiqian":"薛之谦","wanghan":"
packagecontrollers

import(
"github.com/revel/revel"
"fmt"
"time"
"strconv"
"strings"
"database/sql"
"text/template"
_"github.com/go-sql-driver/mysql"
)

typeSparkstruct{
*revel.Controller
}

var(
starlist=map[string]string{
"xuezhiqian":"薛之谦","wanghan":"汪涵","yangdi":"杨迪","guoxuefu":"郭雪芙","zhangyu":"张宇","liuwei":"刘维","tianyuan":"田源","qianfeng":"钱枫","shenmengchen":"沈梦辰","zhaosilu":"赵思璐",}
db*sql.DB

)
typedbObjstruct{
db*sql.DB
}

func(cSpark)getcase()*dbObj{
ifdb!=nil{
return&dbObj{db:db}
}else{
varconfmap[string]string
conf=c.getconf()
fmt.Println(conf)
server:=fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s",conf["user"],conf["pwd"],conf["host"],conf["port"],conf["db"],conf["charset"])
db,_=sql.Open("mysql",server)//第一个参数为驱动名
db.SetMaxOpenConns(100)
db.SetMaxIdleConns(10)
return&dbObj{db}
}
}

func(cSpark)getdb(){
ifdb==nil{
varconfmap[string]string
conf=c.getconf()
fmt.Println(conf)
server:=fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s",server)//第一个参数为驱动名
db.SetMaxOpenConns(100)
db.SetMaxIdleConns(10)
}
}

func(cSpark)getconf()map[string]string{
varconfmap[string]string
conf=make(map[string]string,10)
conf["host"],_=revel.Config.String("host")
conf["db"],_=revel.Config.String("db")
conf["pwd"],_=revel.Config.String("pwd")
conf["user"],_=revel.Config.String("user")
conf["port"],_=revel.Config.String("port")
conf["charset"],_=revel.Config.String("charset")
returnconf
}

func(cSpark)Add(starnamestring,urlstring,usernamestring,cbstring)revel.Result{
starname=template.HTMLEscapeString(strings.TrimSpace(starname))
username=template.HTMLEscapeString(strings.TrimSpace(username))
url=template.HTMLEscapeString(strings.TrimSpace(url))
ifstarname==""{
returnc.display(1,"请填写好你支持的明星,再提交!","",cb)
}
ifurl==""{
returnc.display(2,"请填写好你剪辑好的视频,再提交!",cb)
}

newlist:=make(map[string]string,len(starlist))
forkey,name:=rangestarlist{
newlist[name]=key
}
_,ok:=newlist[starname]
if(!ok){
returnc.display(3,"填写的明星不存在",cb)
}

t:=time.Now().Unix()
tt:=strconv.FormatInt(t,10)
//c.getdb()
c.getcase()
//stmt,err:=db.Prepare("insertintostar(starname,username,videourl,addtime,status)values(?,?,?)")
//checkErr(err)
//res,err:=stmt.Exec(starname,url,tt,0)
//checkErr(err)
//id,err:=res.LastInsertId()
//fmt.Println(id)
fmt.Println(db)
_,err:=db.Exec("insertintostar(starname,?)",starname,0)
_,err=db.Exec("updateinfosetnum=num+1wherestarname=?",starname)
//checkErr(err)
//id,err=res.LastInsertId()
iferr==nil{
returnc.display(0,"ok","提交成功,请耐心等待工作人员审核",cb)
}else{
returnc.display(4,"插入数据库失败",cb)
}

}

func(cSpark)Getstarlist(cbstring)revel.Result{

c.getcase()
rows,err:=db.Query("selectid,num,imgurl,headimgfrominfoorderbynumdesc")
checkErr(err)
deferrows.Close()
list:=make([]map[string]interface{},1)
forrows.Next(){
row:=make(map[string]interface{})
varidint
varstarnamestring
varnumint
varimgurlstring
varvideourlstring
varheadimgstring
err=rows.Scan(&id,&starname,&num,&imgurl,&videourl,&headimg)
row["id"]=id
row["starname"]=starname
row["num"]=num
row["imgurl"]=imgurl
row["videourl"]=videourl
row["headimg"]=headimg
checkErr(err)
list=append(list,row)
}

returnc.display(0,list,cb)
}

func(cSpark)Getone(namestring,cbstring)revel.Result{
//c.getdb()
c.getcase()
stmt,err:=db.Prepare("selectid,headimgfrominfowherestarname=?")
checkErr(err)
varidint
varstarnamestring
varnumint
varimgurlstring
varvideourlstring
varheadimgstring
error:=stmt.QueryRow(name).Scan(&id,&headimg)
checkErr(error)
row:=make(map[string]interface{})
row["id"]=id
row["starname"]=starname
row["num"]=num
row["imgurl"]=imgurl
row["videourl"]=videourl
row["headimg"]=headimg
returnc.display(0,row,cb)
}

funccheckErr(errerror){
iferr!=nil{
panic(err)
}
}

func(cSpark)display(errnoint,msgstring,datainterface{},cbstring)revel.Result{
varresult=make(map[string]interface{},2)
result["errno"]=errno
result["msg"]=msg
result["data"]=data
ifcb!=""{
returnc.RenderJSONP(cb,result)
}else{
returnc.RenderJSON(result)
}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读