// 打开数据库
function openDB(name, path, callback) {

	plus.sqlite.openDatabase({
		name: name,
		path: path,
		success: function(e) {
			console.log("打开数据库成功:" + JSON.stringify(e));
			callback(e)
		},
		fail: function(e) {
			console.log("打开数据库失败:" + JSON.stringify(e));
			callback(e);
		}
	})
}

// 查询SQL
function selectSQL(name, sql, callback) {

	plus.sqlite.selectSql({
		name: name,
		sql: sql,
		success: function(e) {
			// console.log("查询数据库:" + name + ",表:" + sql + ";的"); 
			console.log("查询数据库成功:" + JSON.stringify(e));
			callback(e);
		},
		fail: function(e) {
			console.log("查询数据库失败:" + JSON.stringify(e));
			callback(e);
		}
	})
}

// 关闭数据库
function closeDB(name, path, callback) {

	plus.sqlite.closeDatabase({
		name: name,
		path: path,
		success: function(e) {
			console.log("关闭数据库成功:" + JSON.stringify(e));
			callback(e)
		},
		fail: function(e) {
			console.log("关闭数据库失败:" + JSON.stringify(e));
			callback(e);
		}
	})
}


// 执行事务
function transactionDB(name, operation, callback) {
	plus.sqlite.transaction({
		name: name,
		operation: operation,
		success: function(e) {
			console.log('事务成功!');
			callback(e)
		},
		fail: function(e) {
			console.log('事务失败: ' + JSON.stringify(e));
			callback(e)
		}
	});
}

// 执行SQL语句(增删改)
function executeSQL(name, sql, callback) {
	plus.sqlite.executeSql({
		name: name,
		sql: sql,
		success: function(e) {
			// console.log('执行SQL成功!');
			plus.sqlite.executeSql({
				name: name,
				sql: sql,
				success: function(e) {
					console.log('执行sql成功!');
					callback(e)
				},
				fail: function(e) {
					console.log('执行sql失败: ' + JSON.stringify(e));
					callback(e)
				}
			});
		},
		fail: function(e) {
			console.log('执行sql失败: ' + JSON.stringify(e));
			callback(e)
		}
	});
}

function getTime(){
			var date = new Date(),
			year = date.getFullYear(),
			month = date.getMonth() + 1,
			day = date.getDate(),
			hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(),
			minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(),
			second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
			month >= 1 && month <= 9 ? (month = "0" + month) : "";
			day >= 0 && day <= 9 ? (day = "0" + day) : "";
			var timer = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
			return timer;
		}

 /**
  * 插入数据
  * @param {Object} table 表名
  * @param {Object} key
  * @param {Object} value
  */
 function insertSQL(table, key, value){
  key = key.map(item => {
   return `"${item}"`
  }).join(',')
  value = value.map(item => {
	  if(item === 'null') {
		  return item
	  } else {
		  return `"${item}"`
	  }
  }).join(',')
  console.log(`INSERT INTO "${table}" (${key}) VALUES (${value});`, 'fffffff')
  let sql = `INSERT INTO "${table}" (${key}) VALUES (${value});`
  commonSQL('third', sql)
 }

function commonSQL(name,sql){
  console.log('sql' , sql);
  return new Promise((resolve, reject) => {
   plus.sqlite.executeSql({
    name: name,
    sql: sql,
    success: function(e){
     console.log('res',e);
     resolve('success')
    },
    fail: function(e){
     console.log('executeSql failed: '+JSON.stringify(e));
     reject('fail')
    }
   });
  })
 }



export{
	openDB,
	closeDB,
	selectSQL,
	transactionDB,
	executeSQL,
	getTime,
	insertSQL,
	commonSQL
}