199305a
9/5/2019 - 10:55 AM

time+extension

    var milliStamp : String {
        let timeInterval: TimeInterval = Date().timeIntervalSince1970
        let millisecond = CLongLong(round(timeInterval*1000))
        return "\(millisecond)"
    }
    
    var revealSh(){
      REVEAL_APP_PATH=$(mdfind kMDItemCFBundleIdentifier="com.ittybittyapps.Reveal2" | head -n 1)
BUILD_SCRIPT_PATH="${REVEAL_APP_PATH}/Contents/SharedSupport/Scripts/reveal_server_build_phase.sh"
if [ "${REVEAL_APP_PATH}" -a -e "${BUILD_SCRIPT_PATH}" ]; then
    "${BUILD_SCRIPT_PATH}"
else
    echo "Reveal Server not loaded: Cannot find a compatible Reveal app."
fi
    }
    
    
    
        //生成k线图的测试数据  repeatCount是需要重复的次数
    var klineDataCount : Int = 0
    var basicTime : CLongLong = 1535662800
    func createKlineData(_ repeatCount : Int) ->  [String : Any]{
        
        
        
        if klineDataCount > repeatCount - 40 {
            basicTime += 60
            klineDataCount = 0
        }
        var dataArray = [Double]()
        for _ in 0..<4 {
            let value = Double(16000) + Double(arc4random() % 2000000) / 1666.6
            dataArray.append(value)
        }
        
        dataArray.sort{$0 < $1}
        let low = dataArray.first
        let high = dataArray.last
        var open = 0.0
        var close = 0.0
        let volume = Double(arc4random() % 100000) / 6.66
        
        let randomNum = arc4random() % 10
        
        if randomNum % 2 == 1 {
            open = dataArray[1]
            close = dataArray[2]
        }else{
            open = dataArray[2]
            close = dataArray[1]
        }
        var dataDic = [String : Any]()
        dataDic["T"] = basicTime
        dataDic["o"] = String(open)
        dataDic["h"] = String(high!)
        dataDic["l"] = String(low!)
        dataDic["c"] = String(close)
        dataDic["v"] = String(volume)
        
        
        //        var doubleDataArray = [basicTime,open,high,low,close]
        //        let stringDataArray = doubleDataArray.map{
        //            value in
        //            return String(value!)
        //        }
        klineDataCount += 1
        return dataDic
        
    }
    
    
    
        // 创建https的虚拟数据
    func createGetKLineDataByHttpStub() {
        //  transferArrayToJson()
        //  getJsonArrayString()
        weak var weakSelf : PKKLineDemoView! = self
        stub(condition: isHost(iOSPrincekinTestBaseURLHost)) {
            req in
            print(req)
            let dataDic = ["1":"2"]
            let stubData = try! JSONSerialization.data(withJSONObject: dataDic, options: .prettyPrinted)
            return OHHTTPStubsResponse(fileAtPath: OHPathForFile("data.json", type(of: weakSelf))!,statusCode: 200,headers: ["Content-Type":"application/json"])
            
        }
    }
    func getDataFromHttp(){
        weak var weakSelf : PKKLineDemoView! = self
        createGetKLineDataByHttpStub()
        var param : [String : Any] = [String : Any]()
        param["symbol"] = wSymbol   //"CZRETH"
        let urlString : String = iOSPrincekinTestBaseURL + "/kline"
        Alamofire.request(urlString, method: .get, parameters: param, encoding:  URLEncoding.default, headers: nil).responseJSON {response in
            let dataArray : [[String]]? = response.value as? [[String]]
            
            if dataArray == nil{
                return
            }
            let klineGroup = PKKLineGroup()
            klineGroup.klineArray = PKKLineGroup.klineArray(klineStringArray: dataArray!)
            weakSelf.initData(klineArray: klineGroup.klineArray)
            weakSelf.initFullVCData()
            weakSelf.socket?.socketDelegate = weakSelf
        }
    }