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) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |