// 注册码系统的试用功能

// 创建试用数据库与表
功能 sqlCreatTestDataBase()
    变量 返回数组,ret
    ret = sqlite数据库执行返回数组("regtest.db","create table IF NOT EXISTS testManager(id integer primary key autoincrement,pcid,begintime,endtime,num);",返回数组)//创建表
    如果(!ret)
        发送文本消息("创建表失败:"& 获取错误信息(1))
        返回 假
    否则
        返回 真
    结束
结束


// 判断试用者是否可以验证通过
功能 sqlCheckTesterLogin(pcID)
    // 通过传入的机器码，在数据库里查询，看数据库里是否有记录，没有则加入
    变量 sqlstr = 字符串格式化("select * from testManager where pcid='%s';",pcID)
    变量 返回数组,ret,retmsg="登录失败:未知错误"
    ret = sqlite数据库执行返回数组("regtest.db",sqlstr,返回数组)    
    如果(数组大小(返回数组) > 0)
        发送文本消息("Select = "&返回数组)
        // 判断当前机器码的试用次数是否达到设定的最大值
        变量 num = 返回数组[0]["num"]
        发送文本消息("试用次数="&num)
        如果(num > 100 )
            retmsg = "失败:试用次数达到最大值"
            发送文本消息("失败:试用次数达到最大值")
            返回 "false"
        结束        
        num++
        变量 begintime = 当前时间()
        变量 endtime = 指定时间("s",10,begintime)  // 试用时间20分钟        
        变量 update = 字符串格式化("update testManager set num='%s',begintime='%s',endtime='%s' where pcid='%s';",num,begintime,endtime,pcID)
        发送文本消息("SQL: "&update)
        ret = sqlite数据库执行返回数组("regtest.db",update,返回数组)
        如果(ret)
            retmsg = "true"
        否则
            发送文本消息("update Error:"&获取错误信息(1))
            retmsg = "false"
        结束
    否则
        // 第一次试用软件
        变量 begintime = 当前时间()
        变量 endtime = 指定时间("s",10,begintime)  // 试用时间20分钟        
        变量 insert = 字符串格式化("insert into testManager(pcid,begintime,endtime,num) values('%s','%s','%s','1')",pcID,begintime,endtime)
        发送文本消息("SQL: "&insert)
        ret = sqlite数据库执行返回数组("regtest.db",insert,返回数组)
        如果(ret)
            retmsg = "true"
        否则
            发送文本消息("insert Error:"&获取错误信息(1))
            retmsg = "false"
        结束        
    结束    
    返回 retmsg
结束

// 查询剩下的试用时间
功能 sql查询试用时间(pcid)
    // 参数格式: 机器码
    变量 sqlstr = 字符串格式化("select * from testManager where pcid='%s';",pcid)
    变量 返回数组,ret,retMsg
    ret = sqlite数据库执行返回数组("regtest.db",sqlstr,返回数组)
    
    如果(数组大小(返回数组) <=0)
        发送文本消息("Error:"&获取错误信息(1))
        retMsg = "-1"
    否则
        变量 begintime = 返回数组[0]["begintime"]
        变量 endtime = 返回数组[0]["endtime"]
        变量 nowtime = 当前时间()
        变量 min = 时间间隔("n",nowtime,endtime)
        发送文本消息("leave Time: "&min)
        retMsg = min   // 返回剩余的时间：多少分钟
    结束    
    返回 retMsg
结束