index.go
package main
import (
"fmt"
"net/http"
"net/url"
"strings"
"io"
"log"
"./handle"
)
func index(w http.ResponseWriter, r *http.Request) {
if r.RequestURI == "/favicon.ico" {
return
}
//参数解析
r.ParseForm()
param := make(map[string]string)
for k, v := range r.Form {
param[k] = strings.Join(v, "")
}
fmt.Println(param)
//url解析
u, err:= url.Parse(r.URL.Path)
if err != nil {
log.Fatal("ParseUrl: ", err)
}
path := strings.Split(u.Path, "/")
fmt.Println(path[1])
res := ""
if(path[1]=="user"){
res = handle.GetUserData(param)
}
if(path[1]=="course"){
res = handle.GetCourseData(param)
}
io.WriteString(w, res)
}
func main() {
http.HandleFunc("/", index) //入口
err := http.ListenAndServe(":9000", nil) //监听端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
handle.go
package handle
import (
"fmt"
"time"
"database/sql"
"encoding/json"
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
func init(){
db=getConn()
}
func GetUserData(param map[string]string) string {
result := make(map[string]interface{})
sql := "SELECT school_code,create_time,id,real_name,original_uid,certificate_code,sex,age,image,phone_num FROM user_student_info WHERE"
if(param["create_time"]!=""){
sql += " create_time >= '"+param["create_time"]+" 00:00:00'"
}else{
timeObj := time.Now()
current := timeObj.Format("2006-01-02")
fmt.Println(current)
start_time := current+" 00:00:00"
end_time := current+" 23:59:59"
sql += " create_time > '"+start_time+"' and create_time < '"+end_time+"'"
}
sql += " ORDER BY create_time desc"
fmt.Println(sql)
rows,err := db.Query(sql)
if(err != nil){
fmt.Println(err)
result["errno"]=1
result["msg"]="fail"
result["data"]=""
res_json,_ := json.Marshal(result)
return string(res_json)
}
var res []map[string]interface{}
for rows.Next() {
var id string
var original_uid string
var real_name string
var certificate_code string
var sex string
var age int
var image string
var phone_num string
var create_time string
var school_code string
err :=rows.Scan(&school_code,&create_time,&id,&real_name,&original_uid,&certificate_code,&sex,&age,&image,&phone_num)
if(err != nil){
fmt.Println(err)
}
data := make(map[string]interface{})
data["user_id"]=id
data["original_uid"]=original_uid
data["real_name"]=real_name
data["certificate_code"]=certificate_code
data["sex"]=sex
data["age"]=age
data["image"]=image
data["phone_num"]=phone_num
data["create_time"]=create_time
data["school_code"]=school_code
res = append(res,data)
}
fmt.Println(res)
result["errno"]=0
result["msg"]="success"
result["data"]=res
res_json,_ := json.Marshal(result)
return string(res_json)
}
func GetCourseData(param map[string]string) string {
result := make(map[string]interface{})
sql := "SELECT c.student_id,c.original_student_id,c.car_number,u.real_name,c.course_date,c.course_period,c.train_status,c.subject,c.school_code,c.coach_name,c.coach_id FROM course_record c join user_student_info u on c.student_id = u.id WHERE"
if(param["create_time"]!=""){
sql += " c.create_time >= '"+param["create_time"]+" 00:00:00'"
}else{
timeObj := time.Now()
current := timeObj.Format("2006-01-02")
fmt.Println(current)
start_time := current+" 00:00:00"
end_time := current+" 23:59:59"
sql += " c.create_time > '"+start_time+"' and c.create_time < '"+end_time+"'"
}
sql += " ORDER BY c.create_time desc"
fmt.Println(sql)
rows,err := db.Query(sql)
if(err != nil){
fmt.Println(err)
}
data := make(map[string]interface{})
data["school_code"]=school_code
data["student_id"]=student_id
data["original_uid"]=original_student_id
data["real_name"]=real_name
data["coach_id"]=coach_id
data["coach_name"]=coach_name
data["car_number"]=car_number
data["course_date"]=course_date
data["course_period"]=course_period
data["train_status"]=train_status
data["subject"]=subject
res = append(res,data)
}
fmt.Println(res)
result["errno"]=0
result["msg"]="success"
result["data"]=res
res_json,_ := json.Marshal(result)
return string(res_json)
}
func getConn() *sql.DB {
con,err := sql.Open("mysql","root:Abc@123$%^00.@(ip:3307)/data_center?charset=utf8")
if err!=nil{
fmt.Println(err)
}
return con
}