package mapper

import (
	webServerEntity "cicv-data-closedloop/amd64/score_server/entity"
	"cicv-data-closedloop/common/config/c_db"
	"cicv-data-closedloop/common/config/c_log"
	"cicv-data-closedloop/common/util"
)

func SelectFromCollectLimitBySnCode(snCode string) webServerEntity.CollectLimitPo {
	// 如果查出是空，则插入一条新数据
	var resultPos []webServerEntity.CollectLimitPo
	selectSql, _ := util.ReadFile(c_db.SqlFilesMap["collect_limit-select-by-sn_code.sql"])
	err := c_db.MysqlDb.Select(&resultPos, selectSql, snCode)
	if err != nil || len(resultPos) == 0 {
		c_log.GlobalLogger.Error(err)
		InsertNew(snCode)
		return *new(webServerEntity.CollectLimitPo)
	}
	return resultPos[0]
}

func InsertNew(snCode string) {
	sqlTemplate, _ := util.ReadFile(c_db.SqlFilesMap["collect_limit-insert_new.sql"])
	if err := c_db.DoTx(sqlTemplate, []any{snCode}); err != nil {
		c_log.GlobalLogger.Error("插入数据报错：", err)
		return
	}
}

func UpdateCollectLimit(snCode string) {
	// 更新记录结束时间为默认时间
	sqlTemplate, _ := util.ReadFile(c_db.SqlFilesMap["collect_limit-add_one.sql"])
	c_log.GlobalLogger.Error("执行 sql：", sqlTemplate)
	if err := c_db.DoTx(sqlTemplate, []any{
		snCode,
	}); err != nil {
		c_log.GlobalLogger.Error("插入数据报错：", err)
		return
	}
}

//
//func SelectLatestByTeamName(teamName string) []webServerEntity.ExamPo {
//	// 车辆不是在起点启动的自动驾驶模式
//	var result []webServerEntity.ExamPo
//	selectSql, err := util.ReadFile(c_db.SqlFilesMap["exam-select-latest-by-team_name.sql"])
//	if err != nil {
//		c_log.GlobalLogger.Error("读取sql文件报错：", err)
//		return nil
//	}
//	if err = c_db.MysqlDb.Select(&result, selectSql, teamName); err != nil {
//		c_log.GlobalLogger.Error("数据库查询报错：", err)
//		return nil
//	}
//	return result
//}
