Пример #1
0
func recal(date string) {
	if date == "" {
		now := time.Now()
		date = now.Format("2006-01-02")
	}

	asia_backup := new(myinit.AsiaPanBackup)
	rows, err := myinit.Engine.Where("schedule_date =?", date).Rows(asia_backup)
	if err != nil {
		fmt.Println(err)
	}
	defer rows.Close()
	for rows.Next() {
		err = rows.Scan(asia_backup)
		pan_int_info := make(map[string]int)
		pan_float_info := make(map[string]float32)
		pan_string_info := make(map[string]string)

		//		if(asia_backup.ScheduleFenxiId!=557720){
		//			continue
		//		}
		//		if(asia_backup.CompanyId!="6"){
		//			continue
		//		}

		pan_int_info["schedule_fenxi_id"] = asia_backup.ScheduleFenxiId
		pan_string_info["schedule_date"] = asia_backup.ScheduleDate
		pan_string_info["schedule_league"] = asia_backup.ScheduleLeague

		pan_string_info["schedule_home"] = asia_backup.ScheduleHome
		pan_string_info["company_id"] = asia_backup.CompanyId
		pan_string_info["company_name"] = asia_backup.CompanyName

		pan_float_info["open_pan"] = asia_backup.OpenPan
		pan_string_info["open_pan_desc"] = asia_backup.OpenPanDesc
		pan_float_info["open_home_water"] = asia_backup.OpenHomeWater
		pan_float_info["open_guest_water"] = asia_backup.OpenGuestWater
		pan_string_info["open_pan_time"] = asia_backup.OpenPanTime
		pan_float_info["real_pan"] = asia_backup.RealPan
		pan_string_info["real_pan_desc"] = asia_backup.RealPanDesc
		pan_float_info["real_home_water"] = asia_backup.RealHomeWater
		pan_float_info["real_guest_water"] = asia_backup.RealGuestWater

		pan_string_info["pan_change_time"] = asia_backup.PanChangeTime
		pan_int_info["home_pan_change_type"] = asia_backup.HomePanChangeType
		pan_string_info["home_pan_change_type_desc"] = asia_backup.HomePanChangeTypeDesc
		pan_int_info["home_water_change_type"] = asia_backup.HomeWaterChangeType
		pan_string_info["home_water_change_type_desc"] = asia_backup.HomeWaterChangeTypeDesc

		fmt.Println(asia_backup.HomePanChangeType, pan_float_info["open_pan"], "==", pan_float_info["real_pan"], "==", pan_float_info["open_home_water"], pan_float_info["real_home_water"])

		predict1_result, predict1_cmt := analyse.AnalysePanResult1(pan_int_info, pan_float_info, pan_string_info)
		pan_string_info["predict1_result"] = predict1_result
		pan_string_info["predict1_cmt"] = predict1_cmt
		predict2_result, predict2_cmt := analyse.AnalysePanResult2(pan_int_info, pan_float_info, pan_string_info)
		pan_string_info["predict2_result"] = predict2_result
		pan_string_info["predict2_cmt"] = predict2_cmt
		fmt.Println(asia_backup.ScheduleHome, "==", asia_backup.CompanyName, "==", predict1_result, predict1_cmt)
		UpdateAsiaPanBackupInfo(pan_int_info, pan_float_info, pan_string_info)
	}
}
Пример #2
0
func doParsePanTr(date string) (parse_res bool) {
	sql = "select * from pk_asia_pan_backup where schedule_date = ?"

	predict_sql = "chedule_date = ? and schedule_no=? group by predict2_result"

	predict_res_map, _ := myinit.Engine.Query(predict_sql, date)

	td_of_company := tr_item.Find("td").Eq(1)
	company_id := tr_item.Attr("id")
	pan_string_info["company_id"] = company_id
	pan_string_info["company_name"] = common.ConvToGB(td_of_company.Find("p a").Attr("title"))

	var is_big_company = 0
	if td_of_company.Find("p img").Attr("src") == "" {
		is_big_company = 0
	} else {
		is_big_company = 1
		//			fmt.Println("src:" + td_of_company.Find("p img").Attr("src"))
	}
	pan_int_info["is_big_company"] = is_big_company

	table_of_pan_detail := tr_item.Find("td .pl_table_data")

	table_of_opentime_pan := table_of_pan_detail.Eq(1)
	tds_of_opentime_pan_table := table_of_opentime_pan.Find("tbody tr td")
	open_pan_32, _ := strconv.ParseFloat(tds_of_opentime_pan_table.Eq(1).Attr("ref"), 32)
	pan_float_info["open_pan"] = float32(open_pan_32)
	pan_string_info["open_pan_desc"] = common.ConvToGB(tds_of_opentime_pan_table.Eq(1).Text())

	open_home_water_32, _ := strconv.ParseFloat(tds_of_opentime_pan_table.Eq(0).Text(), 32)
	open_guest_water_32, _ := strconv.ParseFloat(tds_of_opentime_pan_table.Eq(2).Text(), 32)
	pan_float_info["open_home_water"] = float32(open_home_water_32)
	pan_float_info["open_guest_water"] = float32(open_guest_water_32)

	td_of_pan_time := tr_item.Find("td time")

	pan_string_info["open_pan_time"] = td_of_pan_time.Eq(1).Text()

	table_of_realtime_pan := table_of_pan_detail.Eq(0)
	tds_of_realtime_pan_table := table_of_realtime_pan.Find("tbody tr td")

	real_pan_32, _ := strconv.ParseFloat(tds_of_realtime_pan_table.Eq(1).Attr("ref"), 32)
	pan_float_info["real_pan"] = float32(real_pan_32)
	pan_string_info["real_pan_desc"] = common.ConvToGB(tds_of_realtime_pan_table.Eq(1).Text())

	home_real_water_string := common.ConvToGB(tds_of_realtime_pan_table.Eq(0).Text())
	home_real_water_str := strings.Replace(home_real_water_string, "↑", "", -1)
	home_real_water_str = strings.Replace(home_real_water_str, "↓", "", -1)

	guest_real_water_string := common.ConvToGB(tds_of_realtime_pan_table.Eq(2).Text())
	guest_real_water_str := strings.Replace(guest_real_water_string, "↑", "", -1)
	guest_real_water_str = strings.Replace(guest_real_water_str, "↓", "", -1)

	home_real_water_32, _ := strconv.ParseFloat(home_real_water_str, 32)
	guest_real_water_32, _ := strconv.ParseFloat(guest_real_water_str, 32)

	pan_float_info["real_home_water"] = float32(home_real_water_32)
	pan_float_info["real_guest_water"] = float32(guest_real_water_32)

	pan_string_info["pan_change_time"] = strings.TrimSpace(td_of_pan_time.Eq(0).Text())

	td_item_of_real_pan := tds_of_realtime_pan_table.Eq(1)

	home_pan_change_type := common.ConvToGB(td_item_of_real_pan.Find("font").Text())
	if is_ajax == true {
		home_pan_change_type = td_item_of_real_pan.Find("font").Text()
	}
	fmt.Println("home_pan_desc company:", company_id, pan_string_info["company_name"])

	fmt.Println("home_pan_desc font:", td_item_of_real_pan.Find("font").Text(), common.ConvToGB(td_item_of_real_pan.Find("font").Text()))
	fmt.Println("home_pan_desc before trim:", home_pan_change_type)
	home_pan_change_type = strings.TrimSpace(home_pan_change_type)
	fmt.Println("home_pan_desc:", home_pan_change_type)

	pan_int_info["home_pan_change_type"] = 0
	pan_string_info["home_pan_change_type_desc"] = ""
	if home_pan_change_type == "升" {
		pan_int_info["home_pan_change_type"] = 1
		pan_string_info["home_pan_change_type_desc"] = home_pan_change_type
	}
	if home_pan_change_type == "降" {
		pan_int_info["home_pan_change_type"] = -1
		pan_string_info["home_pan_change_type_desc"] = home_pan_change_type
	}
	fmt.Println("home_pan_change_type_desc:", pan_string_info["home_pan_change_type_desc"])

	home_water_up_down_flag := tds_of_realtime_pan_table.Eq(0).Attr("class")
	pan_int_info["home_water_change_type"] = 0
	pan_string_info["home_water_change_type_desc"] = ""

	if home_water_up_down_flag == "ping" {
		pan_int_info["home_water_change_type"] = -1            // down
		pan_string_info["home_water_change_type_desc"] = "水位降" // down
	}
	if home_water_up_down_flag == "ying" {
		pan_int_info["home_water_change_type"] = 1             // up
		pan_string_info["home_water_change_type_desc"] = "水位升" // up
	}

	//		real_pan_string := strings.Replace(pan_string_info["real_pan_desc"], pan_string_info["home_pan_change_type_desc"], "", -1)
	//		real_pan_desc := strings.TrimSpace(real_pan_string)
	//		fmt.Println("date:", pan_string_info["schedule_date"], pan_string_info["schedule_home"])
	//		fmt.Println("open:", pan_string_info["open_pan_desc"], pan_float_info["open_pan"])
	//		fmt.Println("real:", real_pan_desc, pan_float_info["real_pan"])

	exist_asiapanlog := new(myinit.AsiaPanLog)
	has, f_err := myinit.Engine.Where("schedule_fenxi_id=? AND company_id=? AND pan_change_time=?", schedule_fenxi_id, company_id, pan_string_info["pan_change_time"]).Get(exist_asiapanlog)
	fmt.Println("has:", has, ":", schedule_fenxi_id, ":", company_id, ":", pan_string_info["pan_change_time"])
	fmt.Println("ajax:", f_err)

	if has == true {
		fmt.Println("go has:is:", pan_string_info["pan_change_time"])
		return false
	}

	if pan_float_info["open_pan"] > 0 || pan_float_info["real_pan"] > 0 {
		asiapan.ClearShouPanByScheduleFenxiId(schedule_fenxi_id)
		asiapanbackup.ClearShouPanByScheduleFenxiId(schedule_fenxi_id)

		schedule.ClearScheduleByFenxiId(schedule_fenxi_id)
		//			fmt.Println("pan html:", pan_float_info["open_pan"], pan_float_info["real_pan"])
		fmt.Println("开盘>0 或者即时盘 >0")
		return false
	}

	predict1_result, predict1_cmt := analyse.AnalysePanResult1(pan_int_info, pan_float_info, pan_string_info)
	pan_string_info["predict1_result"] = predict1_result
	pan_string_info["predict1_cmt"] = predict1_cmt
	predict2_result, predict2_cmt := analyse.AnalysePanResult2(pan_int_info, pan_float_info, pan_string_info)
	pan_string_info["predict2_result"] = predict2_result
	pan_string_info["predict2_cmt"] = predict2_cmt

	// fmt.Println("company:" + company)
	// fmt.Println("home_pan_change_type:" + home_pan_change_type)
	// fmt.Println("is big company:" + is_big_company)
	// fmt.Println("change_time:" + change_time)
	// fmt.Println("open_time:" + open_time)
	// fmt.Println("flag:" + home_water_change_type + " " + home_water_up_down_flag)
	//		fmt.Println("home_real_water:", pan_float_info["real_home_water"])
	//		fmt.Println(home_real_water_32)
	//		fmt.Println(float32(home_real_water_32))
	//		fmt.Println("home_real_water water sting:" + home_real_water_str + home_real_water_string)
	//		fmt.Println("guest_real_water:", pan_float_info["real_guest_water"])
	//		fmt.Println("guest_real_water water sting:" + guest_real_water_str + guest_real_water_string)
	//		fmt.Println("pan:", pan_float_info["real_pan"], " ", real_pan_desc)

	// fmt.Println("open_home_water water:", open_home_water)
	// fmt.Println("open_guest_water water:", open_guest_water)
	// fmt.Println("open pan:", open_pan, " ", open_pan_desc)

	addAsiaPan(schedule_fenxi_id, company_id, pan_int_info, pan_float_info, pan_string_info)
	//delete water > 2 and < 1.75
	checkWaterSum(schedule_fenxi_id, company_id, pan_float_info)
	return true
}