goweb实现数据增量接口

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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值