| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 | package controllersimport (    "wb/om"    "testbench/models/etc"    "wb/ctrl"    "wb/st"    "wb/gis"    "wb/lg"    "strings"    "time"    "wb/ut"    "testbench/models/iot"    "wb/cs"    "wb/svc")type GisController struct {    ctrl.ItemBaseController}func (this *GisController) GetPoints(){    tbRet := svc.Svc(this.CtxUser).GetTableList(etc.Tbl.Genset, svc.ListParams{})    lstGenset := tbRet.Rows    lstPoint := make([]map[string]interface{}, 0)    for _, gs := range lstGenset{        point := createPoint(gs)        point["type"]="genset"        point["remark"]= gs.GetString("gsmodel") + "(" + gs.GetString("gsratedpower") + "KW)"        point["gsratedpower"] = gs.GetString("gsratedpower")        lstPoint = append(lstPoint, point)    }    wpRet := svc.Svc(this.CtxUser).GetTableList(etc.Tbl.Wp, svc.ListParams{})    lstWp := wpRet.Rows    for _, wp := range lstWp{        point := createPoint(wp)        point["type"] = "wpvehicle"        point["remark"]= wp.GetString("gsmodel") + "(" + wp.GetString("wprange") + "M)"        point["gsratedpower"] = wp.GetString("gsratedpower")        lstPoint = append(lstPoint, point)    }    ret := cs.MObject{}    ret["ret"] = st.Success    ret["result"] = lstPoint    this.SendJson(&ret)}func (this *GisController)UiPath(){    sid := this.GetTrimString("sid")    if sid == ""{        lg.Error(st.ParamSnIsNone, this.Ctx.Input.Params())        this.Ctx.WriteString(st.ParamSnIsNone)    }    itemType := iot.GetThingTypeById(sid)    param := om.Params{"sid":sid}    this.Data["DeviceName"] = "没找到该设备"    this.Data["DeviceId"] = sid    this.Data["DeviceType"] = itemType    if stat, item := om.Table(itemType).Get(param);stat == st.Success{        this.Data["DeviceName"] = item.GetString("name")        this.Data["DeviceId"] = sid        this.Data["wpmodel"] = item.GetString("wpmodel")    }    this.TplName = "gis/path.tpl"}func (this *GisController)UiWpldPath(){    sid := this.GetTrimString("sid")    if sid == ""{        lg.Error(st.ParamSnIsNone, this.Ctx.Input.Params())        this.Ctx.WriteString(st.ParamSnIsNone)    }    itemType := iot.GetThingTypeById(sid)    param := om.Params{"sid":sid}    this.Data["DeviceName"] = "没找到该设备"    this.Data["DeviceId"] = sid    this.Data["DeviceType"] = itemType    if stat, item := om.Table(itemType).Get(param);stat == st.Success{        this.Data["DeviceName"] = item.GetString("name")        this.Data["DeviceId"] = sid    }    this.TplName = "gis/wpldpath.tpl"}func (this *GisController)Position(){    sid:= this.GetString("sid")    sid = strings.TrimSpace(sid)    pois := cs.MObject{}    pois["city"]="city"    pois["create_time"] = "2014-10-17 10:46:11"    pois["district"] = "2014-10-17 10:46:11"    pois["loc_time"] = time.Now().Unix()    pois["title"] = "title"    pois["track_name"] = "namename"    pois["city_id"] = "city_id"    pois["track_id"] = sid    pois["location"] = []float64{gis.DefaultX, gis.DefaultY}    if sid == ""{        lg.Error(st.ParamSnIsNone, this.Ctx.Input.Params())    }else{        _, pts := om.DbQueryValuesWithDb(etc.DbNamePosition, "SELECT x, y, createtime FROM position WHERE sid=? ORDER BY createtime DESC LIMIT 1", sid)        if len(pts) > 0{            x, y := gis.Wgs2bdWithDefaultByPt(pts[0])            pois["location"] = []interface{}{x, y}            pois["create_time"]= pts[0].GetString("createtime")            pois["loc_time"] = ut.GetUnixTimeFromDb(pts[0].GetString("createtime"))            pois["modify_time"] = pts[0].GetString("createtime")        }    }    ret := cs.MObject{}    ret["status"] = 0    ret["size"] = 1    ret["total"] = 1    ret["message"] = "成功"    ret["pois"] = []interface{}{pois}    this.SendJson(&ret)}func (this *GisController) CurPosition(){    sid:= this.GetTrimString("sid")    ret := cs.MObject{}    ret["status"] = 1    ret["message"] = "失败"    poi := []float64{gis.DefaultX, gis.DefaultY}    createTime := int64(0)    if sid == ""{        lg.Error(st.ParamSnIsNone, this.Ctx.Input.Params())    }else{        _, pts := om.DbQueryValuesWithDb(etc.DbNamePosition, "SELECT x, y, createtime FROM position WHERE sid=? ORDER BY createtime DESC LIMIT 1", sid)        if len(pts) > 0{            x, y := gis.Wgs2bdWithDefaultByPt(pts[0])            poi[0] = x            poi[1] = y            createTime = ut.GetUnixTimeFromDb(pts[0].GetString("createtime"))            ret["status"] = 0            ret["message"] = "成功"        }    }    ret["poi"] = cs.MObject{"location":poi, "loc_time":createTime}    this.SendJson(&ret)}func (this *GisController) Path(){    sid:= this.GetTrimString("sid")    ret := cs.MObject{}    ret["status"] = 1    ret["total"] = 0    ret["message"] = ""    pois := make([][]interface{}, 0)    ret["pois"] = pois    if sid == "" {        lg.Error(st.ParamSnIsNone, this.Ctx.Input.Params())        ret["message"] = st.ParamSnIsNone        this.SendJson(&ret)        return    }    startTime, err := this.GetInt64("start")    if err!= nil || startTime == 0{        ret["message"] = "startTime is none"        lg.Error("startTime is none", this.Ctx.Input.Params())        this.SendJson(&ret)        return    }    endTime, err := this.GetInt64("end")    if err!= nil || endTime==0{        ret["message"] = "endTime is none"        lg.Error("endTime is none", this.Ctx.Input.Params())        this.SendJson(&ret)        return    }    lg.Debug("GisController.Path start:", startTime, "end:", endTime)    timeStart := ut.GetDbTimeFromUnix(startTime)    timeEnd := ut.GetDbTimeFromUnix(endTime)    _, pts := om.DbQueryValuesWithDb(etc.DbNamePosition, "SELECT x, y, createtime FROM position WHERE sid=? and createtime >? and createtime <? ORDER BY createtime DESC LIMIT 3600", sid, timeStart, timeEnd)    for _, pt := range pts{        x, y := gis.Wgs2bdWithDefaultByPt(pt)        poi := make([]interface{}, 3)        if x == 0 || y == 0{            continue        }        poi[0] = x        poi[1] = y        poi[2] = ut.GetUnixTimeFromDb(pt.GetString("createtime"))        pois = append(pois, poi)    }    ret["total"] = len(pois)    ret["status"] = 0    ret["message"] = "成功"    ret["pois"] = pois    this.SendJson(&ret)}func createPoint(src cs.MObject)cs.MObject{    point := gis.CreateBDPointByMo(src)    point["status"]= src.GetString("status")    point["name"]= src.GetString("name")    point["sid"]= src.GetString("sid")    return point}func (this *GisController)UiPosition(){    itemHi, ok := this.Ctx.Input.Params()[":hi"]    if !ok {        lg.Error(st.ParamItemIsNone_, this.Ctx.Input.Params())        this.Ctx.WriteString(st.ParamItemIsNone_)        return    }    itemHi = strings.TrimSpace(itemHi)    itemName := ""    switch itemHi {    case etc.Tbl.Genset, etc.Tbl.Wp:        itemName = itemHi    }    sn:= this.GetString("sn")    sn = strings.TrimSpace(sn)    if sn == ""{        lg.Error(st.ParamSnIsNone, this.Ctx.Input.Params())        this.Ctx.WriteString(st.ParamSnIsNone)    }    this.Data["ItemName"] = itemName    this.Data["DeviceId"] = sn    this.TplName = "gis/point.tpl"}
 |