|
@@ -3695,42 +3695,207 @@ func AddFtdry(c *gin.Context) {
|
|
}
|
|
}
|
|
|
|
|
|
func CheckDates(c *gin.Context) {
|
|
func CheckDates(c *gin.Context) {
|
|
- appG := app.Gin{C: c}
|
|
|
|
- dataByte, _ := ioutil.ReadAll(c.Request.Body)
|
|
|
|
- fsion := gofasion.NewFasion(string(dataByte))
|
|
|
|
- dataList := fsion.Get("data").Array()
|
|
|
|
|
|
+ // appG := app.Gin{C: c}
|
|
|
|
+ // dataByte, _ := ioutil.ReadAll(c.Request.Body)
|
|
|
|
+ // fsion := gofasion.NewFasion(string(dataByte))
|
|
|
|
+ // dataList := fsion.Get("data").Array()
|
|
|
|
|
|
tx := restful.Engine.NewSession()
|
|
tx := restful.Engine.NewSession()
|
|
- reqList := make([]map[string]interface{}, 0)
|
|
|
|
|
|
+ defer tx.Close()
|
|
|
|
+ // reqList := make([]map[string]interface{}, 0)
|
|
|
|
+
|
|
|
|
+ // for _, fsion2 := range dataList {
|
|
|
|
+ // s_params := make([]interface{}, 0)
|
|
|
|
+
|
|
|
|
+ // sqlnamestr := fsion2.Get("sqlname").ValueStr()
|
|
|
|
+ // sql, p := restful.GetSqlByNameDBT(sqlnamestr, tx)
|
|
|
|
+
|
|
|
|
+ // parammaps := fsion2.Get("parammaps")
|
|
|
|
+ // paramslist := strings.Split(p, ",")
|
|
|
|
+ // if len(paramslist) > 0 && p != "" {
|
|
|
|
+ // for _, value := range paramslist {
|
|
|
|
+ // s_params = append(s_params, parammaps.Get(strings.Trim(value, " ")).ValueStr())
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // queryData, err := tx.SQL(sql, s_params...).QueryString()
|
|
|
|
+ // if err != nil {
|
|
|
|
+ // logging.Error("CheckDates err: ", err)
|
|
|
|
+ // appG.Response(http.StatusInternalServerError, e.ERROR, err)
|
|
|
|
+ // return
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // reqData := make(map[string]interface{}, 0)
|
|
|
|
+ // for _, item := range queryData {
|
|
|
|
+ // reqData["msg"] = item
|
|
|
|
+ // }
|
|
|
|
+ // reqData["sqlname"] = sqlnamestr
|
|
|
|
+ // reqList = append(reqList, reqData)
|
|
|
|
+ // }
|
|
|
|
|
|
- for _, fsion2 := range dataList {
|
|
|
|
- s_params := make([]interface{}, 0)
|
|
|
|
|
|
+ appG := app.Gin{C: c}
|
|
|
|
+ dataByte, _ := ioutil.ReadAll(c.Request.Body)
|
|
|
|
+ tempval_ := make(map[string]interface{})
|
|
|
|
+ tempCommon := make(map[string]interface{})
|
|
|
|
+ tempval := make([]map[string]interface{}, 0)
|
|
|
|
+ err := json.Unmarshal(dataByte, &tempval_)
|
|
|
|
+ logging.Info("ExecDataByConfig ", c.Keys, c.Request.RemoteAddr, tempval_["common"], tempval_["data"])
|
|
|
|
+ // fmt.Println("ExecDataByConfig ", c.Keys, c.Request.RemoteAddr, tempval_["common"], tempval_["data"])
|
|
|
|
+ if err != nil {
|
|
|
|
+ } else {
|
|
|
|
+ if v, ok := tempval_["common"].(map[string]interface{}); ok {
|
|
|
|
+ tempCommon = v
|
|
|
|
+ }
|
|
|
|
|
|
- sqlnamestr := fsion2.Get("sqlname").ValueStr()
|
|
|
|
- sql, p := restful.GetSqlByNameDBT(sqlnamestr, tx)
|
|
|
|
|
|
+ if v, ok := tempval_["data"].([]interface{}); ok {
|
|
|
|
+ for _, Tvalue := range v {
|
|
|
|
+ if v1, ok := Tvalue.(map[string]interface{}); ok {
|
|
|
|
+ tempval = append(tempval, v1)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- parammaps := fsion2.Get("parammaps")
|
|
|
|
- paramslist := strings.Split(p, ",")
|
|
|
|
- if len(paramslist) > 0 && p != "" {
|
|
|
|
- for _, value := range paramslist {
|
|
|
|
- s_params = append(s_params, parammaps.Get(strings.Trim(value, " ")).ValueStr())
|
|
|
|
|
|
+ if err == nil {
|
|
|
|
+ if tempv, exists := c.Get("jwt_username"); exists {
|
|
|
|
+ tempCommon["jwt_username"] = tempv.(string)
|
|
|
|
+ }
|
|
|
|
+ for _, paramvalue := range tempval {
|
|
|
|
+ if _, ok := paramvalue["resultname"]; !ok {
|
|
|
|
+ paramvalue["resultname"] = paramvalue["name"]
|
|
|
|
+ }
|
|
|
|
+ _, err := ExecDataQuery(paramvalue, tempCommon, tempval, nil, nil, tx)
|
|
|
|
+ if err != nil {
|
|
|
|
+ logging.Error("ExecDataParam error:", err)
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ // reqData := make(map[string]interface{}, 0)
|
|
|
|
+ // for _, item := range execDataList {
|
|
|
|
+ // fmt.Println(execDataList)
|
|
|
|
+ // }
|
|
|
|
+ // reqList = append(reqList, reqData)
|
|
|
|
+ }
|
|
|
|
+ if err == nil {
|
|
|
|
+ appG.Response(http.StatusOK, e.SUCCESS, tempval)
|
|
|
|
+ } else {
|
|
|
|
+ msg := geterrmsg(err.Error())
|
|
|
|
+ appG.Response(http.StatusInternalServerError, e.ERROR, msg)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+ if err != nil {
|
|
|
|
+ msg := geterrmsg(err.Error())
|
|
|
|
+ appG.Response(http.StatusOK, e.ERROR, msg)
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func ExecDataQuery(fasion map[string]interface{}, CommonParamMap map[string]interface{}, ParamMap []map[string]interface{}, ParentParamMap map[string]interface{}, sameParamMap []map[string]interface{}, tx *xorm.Session) (interface{}, error) {
|
|
|
|
+ sqlname := fasion["name"].(string)
|
|
|
|
+ sqltype := "" //v 校验/s1 查询/sm 查询/e 执行
|
|
|
|
+ if v, ok := fasion["type"]; ok {
|
|
|
|
+ sqltype = v.(string)
|
|
|
|
+ }
|
|
|
|
+ sql := ""
|
|
|
|
+ p := ""
|
|
|
|
+ s_params := make([]interface{}, 0)
|
|
|
|
+ if sqltype != "" {
|
|
|
|
+ sql, p = restful.GetSqlByName(sqlname, tx)
|
|
|
|
+ //sqlApi, _ := models.GetApisqlByName(sqlname)
|
|
|
|
+ if v, ok := fasion["parammaps"].(map[string]interface{}); ok {
|
|
|
|
+ paramslist := strings.Split(p, ",")
|
|
|
|
+ if len(paramslist) > 0 && p != "" {
|
|
|
|
+ for _, value := range paramslist {
|
|
|
|
+ ss := ""
|
|
|
|
+ if strings.ToLower(strings.Trim(value, " ")) == "snowid" {
|
|
|
|
+ ids, err := setting.SnowIds.NextId()
|
|
|
|
+ if err != nil {
|
|
|
|
+ ids = time.Now().UnixNano()
|
|
|
|
+ logging.Info("create SnowIds err", err)
|
|
|
|
+ }
|
|
|
|
+ s_params = append(s_params, ids)
|
|
|
|
+ } else {
|
|
|
|
+ if ss == "" && CommonParamMap != nil {
|
|
|
|
+ if valuestring, ok := v[strings.Trim(value, " ")].(string); ok {
|
|
|
|
+ ss = valuestring
|
|
|
|
+ tempstrb := strings.IndexAny(valuestring, "@")
|
|
|
|
+ tempstre := strings.IndexAny(valuestring, ".")
|
|
|
|
+ if (tempstre > tempstrb) && (strings.ToLower(valuestring[tempstrb+1:tempstre]) == "common") {
|
|
|
|
+ if CommonParamMap[valuestring[tempstre+1:]] != nil {
|
|
|
|
+ ss = CommonParamMap[valuestring[tempstre+1:]].(string)
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ ss = ""
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ss == "" && ParentParamMap != nil {
|
|
|
|
+ ss = getParamValue_(v, value, ParentParamMap)
|
|
|
|
+ }
|
|
|
|
+ if ss == "" && sameParamMap != nil {
|
|
|
|
+ ss = getParamValue(v, value, sameParamMap)
|
|
|
|
+ }
|
|
|
|
+ if ss == "" && ParamMap != nil {
|
|
|
|
+ ss = getParamValue(v, value, ParamMap)
|
|
|
|
+ }
|
|
|
|
+ s_params = append(s_params, ss)
|
|
|
|
+ }
|
|
|
|
|
|
- queryData, err := tx.SQL(sql, s_params...).QueryString()
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if sql == "" {
|
|
|
|
+ sqltype = ""
|
|
|
|
+ }
|
|
|
|
+ if sql != "" {
|
|
|
|
+ tempValParam, err := restful.QueryByMap(sql, 0, 1, s_params)
|
|
if err != nil {
|
|
if err != nil {
|
|
- logging.Error("CheckDates err: ", err)
|
|
|
|
- appG.Response(http.StatusInternalServerError, e.ERROR, err)
|
|
|
|
- return
|
|
|
|
|
|
+ return nil, err
|
|
}
|
|
}
|
|
-
|
|
|
|
- reqData := make(map[string]interface{}, 0)
|
|
|
|
- for _, item := range queryData {
|
|
|
|
- reqData["msg"] = item
|
|
|
|
|
|
+ // fmt.Println(tempValParam)
|
|
|
|
+ return tempValParam, nil
|
|
|
|
+ } else {
|
|
|
|
+ if tempValParam, ok := fasion["resultmaps"].(map[string]interface{}); ok {
|
|
|
|
+ err := ExitsChildrenQuery(fasion, tempValParam, ParamMap, CommonParamMap, tx)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ return nil, err
|
|
}
|
|
}
|
|
- reqData["sqlname"] = sqlnamestr
|
|
|
|
- reqList = append(reqList, reqData)
|
|
|
|
}
|
|
}
|
|
|
|
+ // if tempValParam.(map[string]interface{})["list"].([]map[string]interface{})[0]["vmsg"] != "" {
|
|
|
|
+ // return nil, errors.New(tempValParam.(map[string]interface{})["list"].([]map[string]interface{})[0]["vmsg"].(string))
|
|
|
|
+ // }
|
|
|
|
|
|
- appG.Response(http.StatusOK, e.SUCCESS, reqList)
|
|
|
|
|
|
+ return nil, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func ExitsChildrenQuery(fasion map[string]interface{}, tempValParam interface{}, ParamMap []map[string]interface{}, commonParam map[string]interface{}, tx *xorm.Session) error {
|
|
|
|
+ var err error
|
|
|
|
+ subarray, ok := fasion["children"]
|
|
|
|
+
|
|
|
|
+ if ok {
|
|
|
|
+ for _, v := range tempValParam.(map[string]interface{})["list"].([]interface{}) { //遍历父集有多少行数据
|
|
|
|
+ tempVal_arrary := make([]map[string]interface{}, 0)
|
|
|
|
+ for _, subarrayvalue := range subarray.([]interface{}) { //遍历所有执行命令
|
|
|
|
+ tempVal_ := make(map[string]interface{})
|
|
|
|
+ if _, ok := subarrayvalue.(map[string]interface{})["resultname"]; !ok {
|
|
|
|
+ tempVal_["resultname"] = subarrayvalue.(map[string]interface{})["name"]
|
|
|
|
+ } else {
|
|
|
|
+ tempVal_["resultname"] = subarrayvalue.(map[string]interface{})["resultname"]
|
|
|
|
+ }
|
|
|
|
+ tempVal_["resultmaps"], err = ExecDataQuery(subarrayvalue.(map[string]interface{}), commonParam, ParamMap, v.(map[string]interface{}), tempVal_arrary, tx) //递归调用执行
|
|
|
|
+
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ tempVal_arrary = append(tempVal_arrary, tempVal_)
|
|
|
|
+ }
|
|
|
|
+ v.(map[string]interface{})["children"] = tempVal_arrary
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return nil
|
|
}
|
|
}
|