Exemple #1
0
    def queryState(ID):
        res = {"success": 1, "data": 0, "msg": ""}
        typeDone = gol._Get_Value('chargingDone', '启动')
        state = gol._Get_Value('chargingState', 0)
        times = gol._Get_Value('chargingTimes', 0)

        # 模拟状态调整
        time.sleep(1)
        if (times < 5):
            times += 1
            gol._Set_Value('chargingTimes', times, True)
            if (typeDone == "启动"):
                res['msg'] = "充电启动中"
            elif (typeDone == "停止"):
                res['msg'] = "充电停止中"
        else:
            gol._Set_Value('chargingTimes', 0, True)

            if (typeDone == "启动"):
                gol._Set_Value('chargingState', 11, True)
                res['success'] = 1
                res['data'] = 11
                res['msg'] = "充电已启动"
            elif (typeDone == "停止"):
                gol._Set_Value('chargingState', -1, True)
                res['success'] = 1
                res['data'] = -1
                res['msg'] = "充电已停止"
        return myData_Json.Trans_ToJson_str(res)
Exemple #2
0
def mainStart():
    #线程执行
    pQuote = gol._Get_Value('quoteSource')
    if (pQuote == None):
        pQuote = mainSource()

    thrdQuote = gol._Get_Value('quoteSourceThread', None)
    if (pQuote != None
            and (thrdQuote == None or thrdQuote.threadRunning == False)):
        myDebug.Print("Quote thread start...")
        thrdQuote = Quote_Thread(pQuote)
        thrdQuote.setDaemon(True)
        thrdQuote.start()
        gol._Set_Value('quoteSourceThread', thrdQuote)
Exemple #3
0
 def chargingStop():
     # 模拟停
     res = {"success": 1, "data": "", "msg": ""}
     state = gol._Get_Value('chargingState', 0)
     typeDone = gol._Get_Value('chargingDone', '')
     if (typeDone == '启动'):
         res['success'] = 0
         res['msg'] = "充电停止中"
     elif (state > 0):
         res['msg'] = "尝试停止充电"
         gol._Set_Value('chargingDone', '停止', True)
     else:
         res['success'] = 0
         res['msg'] = "错误"
     return myData_Json.Trans_ToJson_str(res)
Exemple #4
0
    def getCompanys(self,
                    param="",
                    isDel=False,
                    page=1,
                    per_page=10,
                    dataDB=None):
        # 组装查询条件
        strFilter = F"isDel=={str(isDel)}"
        if (param != ""):
            strFilter += F" && {param}"

        # 查询数据
        if (dataDB == None):
            dataDB = gol._Get_Value('dbCompany')
        dictData = dataDB.Query(strFilter, "", True)
        lstData = list(dictData.values())

        # 提取及返回
        numData = len(lstData)
        start = page * per_page - per_page
        end = page * per_page
        end = myData.iif(end < numData, end, numData)
        values = []
        if (numData > start):
            for x in range(start, end):
                values.append(lstData[x])
        return len(lstData), values
    def Init_CheckInfo(self, usrOrderType, tradeType="", tradeType_sub=""):
        # 基础信息修正
        self.usrOrderType = myData.iif(
            usrOrderType == "" or usrOrderType.count("买") == 1, myOrderType.买入,
            usrOrderType)
        self.usrOrderType = myData.iif(
            usrOrderType == "" or usrOrderType.count("卖") == 1, myOrderType.卖出,
            usrOrderType)
        self.tradeType = myData.iif(
            tradeType == "" or tradeType in myTradeType_投资, "投资", tradeType)
        self.tradeType_sub = myData.iif(tradeType_sub == "", "股票",
                                        tradeType_sub)
        self.tradeTime = myData.iif(self.tradeTime == None,
                                    datetime.datetime.now(), self.tradeTime)

        # 股票信息补全
        targets = myData.iif(
            self.targetID.count('.') == 0, ("." + self.targetID).split('.'),
            self.targetID.split('.'))
        pStocks = gol._Get_Value('setsStock', None)
        stocks = pStocks._Find(targets[1], exType=targets[0])
        if (len(stocks) != 1):
            stocks = pStocks._Find(self.targetName)
            if (len(stocks) != 1): return False

        pStock = stocks[0]
        self.tradeType_sub = myQuote.stockTypes.get(pStock.type.lower(), '股票')
        self.targetID = pStock.code_id
        self.targetName = pStock.code_name
        self.targetMarket = pStock.exName
        self.targetMarketBoard = pStock.getMarketBoard()
        self.targetIndustries = pStock.getIndustries()
        self.targetConcepts = pStock.getConcepts()
        return True
Exemple #6
0
    def get(self):
        pMsg = copy.deepcopy(gol._Get_Setting('Return_strFormat', {}))
        usrID = request.args.get('usrID', '')
        usrTag = request.args.get('usrTag', '')
        code_id = request.args.get('code_id', "")
        code_name = request.args.get('code_name', "")

        #初始返回组
        lstDate_Tag = []
        lstInfos = {}

        #查询及组装
        pRisks = gol._Get_Value('zxcRisk_Control', None)
        dictRisks = pRisks.getRisks(usrID,
                                    usrTag,
                                    code_id,
                                    code_name,
                                    bCheck=True)
        if (dictRisks != None):
            for x in dictRisks:
                pRisk = dictRisks[x]
                if (pRisk.setRisk.valid):
                    lstDate_Tag.append(x)
                    dictSet = pRisk.setRisk.Trans_ToDict().copy()
                    dictSet['操作时间'] = myData_Trans.Tran_ToDatetime_str(
                        dictSet['操作时间'], "%Y-%m-%d %H:%M:%S")
                    lstInfos[x] = dictSet

        jsonSetinfo = {}
        jsonSetinfo["dataTags"] = lstDate_Tag
        jsonSetinfo["setInfos"] = lstInfos

        pMsg['result'] = len(lstDate_Tag) > 0
        pMsg['text'] = jsonSetinfo
        return pMsg
Exemple #7
0
    def get(self):
        usrID = request.args.get('usrID', "")
        pMsg = copy.deepcopy(gol._Get_Setting('Return_strFormat', {}))

        #初始返回组
        lstExtypes = []
        lstCode_id = []
        lstCode_Name = []
        lstCode_NameEN = []

        #查询及组装
        pSets = gol._Get_Value('setsQuote', None)
        if (pSets != None and usrID != ""):
            lstStock = pSets._Find_Sets(usrID)
            for x in lstStock:
                lstExtypes.append(x.extype)
                lstCode_id.append(x.code_id)
                lstCode_Name.append(x.code_name)
                lstCode_NameEN.append(x.code_name_En)

        jsonStocks = {}
        jsonStocks["extypes"] = lstExtypes
        jsonStocks["code_ids"] = lstCode_id
        jsonStocks["code_names"] = lstCode_Name
        jsonStocks["code_namesEN"] = lstCode_NameEN

        pMsg['result'] = len(lstExtypes) > 0
        pMsg['text'] = jsonStocks
        return pMsg
def _Find(setName, bCreatAuto = False):
    pSets = gol._Get_Value('setsSpider')
    if(pSets != None):
        pSet = pSets._Find(setName)
        if(pSet == None and bCreatAuto):
            pSet = mySpider_Setting(setName, "", "", "")
        return pSet
    return None
Exemple #9
0
 def __init__(self, params=""):
     myQuote_Source.Quote_Source.__init__(self, params, 'JqDataAPI')  #设置类型
     self.pSource = gol._Get_Value('quoteSource_API_JqData', None)
     self.setsStock = gol._Get_Value('setsStock', myQuote.myStocks())  #标的信息
     self.quoteTimes = {
         "1m": "m1",
         "5m": "m5",
         "15m": "m15",
         "30m": "m30",
         "60m": "m60",
         "120m": "m120",
         "1d": "day",
         "1w": "week",
         "1M": "month",
         "1Y": "year"
     }
     pass
def _Find(setName, setTag='', bCreatAuto=False):
    pSets = gol._Get_Value('setsQuote')
    if (pSets != None):
        pSet = pSets._Find(setName, setTag)
        if (pSet == None and bCreatAuto):
            pSet = myQuote_Setting(setTag, setName)
        return pSet
    return None
Exemple #11
0
    def get(self):
        #提取股票信息
        extype = request.args.get('extype', "")
        code_id = request.args.get('code_id', "")
        code_name = request.args.get('code_name', "")
        removeSet = myData_Trans.To_Bool(request.args.get('removeSet', ''))

        pMsg = copy.deepcopy(gol._Get_Setting('Return_strFormat', {}))
        pStocks = gol._Get_Value('setsStock', None)
        lstStock = pStocks._Find(code_id, "", exType=extype)
        if (len(lstStock) != 1):
            pMsg['text'] = "股票代码或名称错误!"
            return pMsg
        pStock = lstStock[0]
        strTag = "股票设置:" + pStock.code_name + "\n      "

        #解析参数
        bResult = False
        if (bResult == False):
            #提取行情对象
            pSource = gol._Get_Value('quoteSource', None)
            pSets = gol._Get_Value('setsQuote', None)
            if (pSource != None and pSets != None):
                if (removeSet == False):
                    editInfo = myData_Trans.Tran_ToDict(
                        request.args.get('editInfo', "{}"))
                    if (pSets._Edit(pStock.extype, pStock.code_id,
                                    pStock.code_name, editInfo)):
                        pSource.params = pSource._getDefault_Param()
                        pMsg['text'] = strTag + " --设置已成功修改。"
                        bResult = True
                        print(pSource.params)
                else:
                    usrID = request.args.get('usrID', '')
                    usrPlat = request.args.get('usrPlat', 'wx')
                    if (pSets._Remove(pStock.extype, pStock.code_id,
                                      pStock.code_name, usrID)):
                        pSource.params = pSource._getDefault_Param()
                        pMsg['text'] = strTag + " --设置已成功移除。"
                        bResult = True
                        print(pSource.params)
        pMsg['result'] = bResult
        if (bResult == ""): pMsg['text'] = strTag + "操作失败!"
        return pMsg
Exemple #12
0
def initSource(addListener=True):
    #初始全局行情对象
    pQuoteSrc = gol._Get_Value('quoteSource', None)
    if (pQuoteSrc == None):
        pQuoteSrc = Source_Control()
        gol._Set_Value('quoteSource', pQuoteSrc)  #实例 行情对象

    #添加监听对象
    if (addListener):
        import myListener_Printer
        pQuoteSrc.addListener(myListener_Printer.Quote_Listener_Printer())
    return pQuoteSrc
Exemple #13
0
def quoteStart():
    global quoteSource
    if (quoteSource == None):
        quoteSource = initSource()

    thrdQuote = gol._Get_Value('quoteSourceThread', None)
    if (quoteSource != None
            and (thrdQuote == None or thrdQuote.threadRunning == False)):
        thrdQuote = Quote_Thread(quoteSource)
        thrdQuote.setDaemon(True)
        thrdQuote.start()
        gol._Set_Value('quoteSourceThread', thrdQuote)
Exemple #14
0
    def get(self):
        #提取股票信息
        pMsg = copy.deepcopy(gol._Get_Setting('Return_strFormat', {}))
        pRisks = gol._Get_Value('zxcRisk_Control', None)
        bResult = True

        # 组装参数并添加
        #dicParam = {"边界限制": True,"定量监测": False, "监测间隔": 0.01,"止盈线": 0.20, "止损线": -0.05, "动态止盈": True, "动态止损": True, "止盈回撤": 0.01, "止盈比例": 0.20, "止损回撤": 0.01, "止损比例": 0.20 }
        usrID = request.args.get('usrID', '')
        usrTag = request.args.get('usrTag', '')
        code_id = request.args.get('code_id', "")
        code_name = request.args.get('code_name', "")
        removeSet = myData_Trans.To_Bool(request.args.get('removeSet', False))
        paramInfo = myData_Trans.Tran_ToDict(request.args.get('setInfo', "{}"))
        paramInfo['removeSet'] = removeSet

        dtTrade = request.args.get('time', "")
        dateTag = request.args.get('dateTag', "")
        stockPrice = myData_Trans.To_Float(
            str(request.args.get('stockPrice', 0)))
        stockNum = myData_Trans.To_Int(str(request.args.get('stockNum', 0)))
        if (removeSet == False and (stockPrice == 0 or stockNum == 0)):
            bResult = False
            pMsg['text'] = "股价、数量不能为0."
        if (usrID == "" and usrTag == ""):
            bResult = False
            pMsg['text'] = "用户信息不能为空."
        if (bResult):
            strR = pRisks.addRiskSet(usrID, usrTag, code_id, code_name,
                                     stockPrice, stockNum, dtTrade, dateTag,
                                     paramInfo)

        #解析参数
        strTag = "风控设置:" + code_name + "\n"
        if (bResult):
            if (removeSet == False):
                if (stockPrice == 0 or stockNum == 0):
                    pMsg['text'] = strTag + " --已成功修改参数信息."
                else:
                    trade = myData.iif(stockNum > 0, "买入", "卖出")
                    if (stockNum % 100 == 0):
                        pMsg[
                            'text'] = strTag + F"新增{trade}:{str(abs(stockNum))} 股.\n{trade}均价:{stockPrice} 元/股)."
                    else:
                        pMsg[
                            'text'] = strTag + F"新增{trade}:{str(abs(stockNum))} 张.\n{trade}均价:{stockPrice} 元/张."
                bResult = True
            else:
                pMsg['text'] = strTag + " --设置已成功移除."
                bResult = True
        pMsg['result'] = bResult
        if (bResult == ""): pMsg['text'] = strTag + "操作失败!"
        return pMsg
Exemple #15
0
    def _Find(self,
              usrID,
              usrName,
              usrName_Nick,
              usrID_sys="",
              usrType="",
              bCreate_Auto=False,
              bUpdataSys=True,
              bUpdata=False):
        pUser = None

        #按名称查找
        if (pUser == None):
            pUser = self._Find_ByName(usrName.lower())
        if (pUser == None):
            pUser = self._Find_ByName_Nick(usrName_Nick.lower())

        #按ID查找
        if (pUser == None):
            pUser = self._Find_ByID(usrID.lower())
        if (pUser == None):
            pUser = self._Find_ByID_sys(usrID_sys.lower())

        #同步信息
        if (bUpdata == True and pUser != None):
            pUser.usrID = usrID
            pUser.usrName = usrName
            pUser.usrName_Nick = usrName_Nick

        # 不存在
        pUser_sys = None
        if (bCreate_Auto and pUser == None):
            #查找默认用户库
            if (bUpdataSys == True):
                usrInfos_sys = gol._Get_Value('rootRobot_usrInfos_sys')
                if (usrInfos_sys != None):
                    pUser_sys = usrInfos_sys._Find(usrID, usrName,
                                                   usrName_Nick, "", usrType,
                                                   False, False)

            #实力新用户信息
            if (pUser_sys != None):
                pUser = copy.deepcopy(pUser_sys)
                pUser.usrID = usrID
                pUser.usrName = usrName
                pUser.usrName_Nick = usrName_Nick
            else:
                pUser = myRoot_Usr(usrID, usrName, usrName_Nick, usrType)
            self._Index(pUser)

        # 信息更新, 并返回
        self._Refresh(pUser)
        return pUser
    def Init_Swap(self, bStart=False):
        #初始消息接收-Swap
        self.swapName = 'zxcSwap_wx'
        if (self.swapRecv == None):
            self.swapRecv = gol._Get_Value('dataSwap_msgWx')
            self.swapOut = gol._Get_Value('dataSwap_msgWx_out')

            @self.swapRecv.changeDataSwap()
            def Reply(lstData):
                for x in lstData:
                    if (self.Done_Swap(x)):
                        self.swapRecv.ackDataSwap(x)
                    pass

            myDebug.Print("消息Swap(" + self.swapName + ")创建成功...")

        #接收消息
        if (bStart):
            self.swapOut.startSwap()
            self.swapRecv.startSwap()
            self.mqTimeNow = myData_Trans.Tran_ToTime_int()  #接收开始时间
Exemple #17
0
    def getCompany(self, idCompany, nameCompany, isDel=False, dataDB=None):
        # 组装查询条件
        strFilter = F"isDel=={str(isDel)} && companyID=={idCompany} && companyName=={nameCompany}"

        # 查询数据
        if (dataDB == None):
            dataDB = gol._Get_Value('dbCompany')
        dictData = dataDB.Query(strFilter, "", True)

        # 提取及返回
        lstData = list(dictData.values())
        if (len(lstData) == 1):
            return lstData[0]
        return None
Exemple #18
0
    def _Init(self):
        #初始用户全局功能权限对象
        self.root = gol._Get_Value('rootRobot')  #权限信息
        if (self.root != None):
            self.usrName = self.root.usrName
            self.usrNameNick = self.root.usrNameNick
            self.usrTag = self.root.usrID
            self.usrReplys = myRoot_Usr.myRoot_Usrs("", "")  #消息用户集

        #初始根目录信息
        strDir, strName = myIO.getPath_ByFile(__file__)
        self.Dir_Base = os.path.abspath(os.path.join(strDir, "../.."))
        self.Dir_LogMsg = self.Dir_Base + "/Log/Msgs/"
        self.usrMMsg.Init_LogDir(self.Dir_LogMsg)  #初始日志路径
Exemple #19
0
 def CheckDays_MaxMin(self, dValue, key, bMax=True):
     pDatas_S = gol._Get_Value('datas_Stics_D_' + key, None)  #全局统计信息
     if (pDatas_S == None): return ""
     nDay = 0
     if (bMax):
         for x in range(1, len(pDatas_S)):
             if (dValue < pDatas_S[x].high):
                 nDay = x
                 break
     else:
         for x in range(1, len(pDatas_S)):
             if (dValue > pDatas_S[x].low):
                 nDay = x
                 break
     if (nDay == 0): return ""
     return "(" + str(nDay) + "天)"
    def Init_MQ(self, bStart=False):
        if (gol._Get_Value("msgSet_usrMQ", False) == False):
            self.Init_Swap(bStart)
            return

        #初始消息接收队列
        self.mqName = 'zxcMQ_wx'
        if (self.mqRecv == None):
            self.mqRecv = myMQ_Rabbit.myMQ_Rabbit(False)
            self.mqRecv.Init_Queue(self.mqName, True)
            self.mqRecv.Init_callback_RecvMsg(self.callback_RecvMsg)  #消息接收回调
            myDebug.Print("消息队列(" + self.mqName + ")创建成功...")

        #接收消息
        if (bStart):
            self.mqRecv.Start()
            self.mqTimeNow = myData_Trans.Tran_ToTime_int()  #接收开始时间
Exemple #21
0
    def get(self, usrName, usrID, PlatName):
        pMsg = copy.deepcopy(gol._Get_Setting('Return_strFormat', {}))
        if (PlatName == ""): return pMsg

        #提取平台集
        pRoot = gol._Get_Value('rootRobot')
        pPlats = pRoot.usrPlats
        pPlat = pPlats.Find(PlatName)
        if (pPlat == None):
            pPlat = pPlats.Regist(usrName, usrID, PlatName)

        pMsg['result'] = True
        pMsg['toke'] = pPlat.usrToken

        #初始消息处理对象
        init_Reply()._Init()
        return pMsg
Exemple #22
0
    def getCompany(self, idCompany, nameCompany, isDel = False, dataDB = None): 
        # 组装查询条件
        strFilter = F"isDel=={str(isDel)}" 
        if(idCompany != ""): strFilter += F" && companyID=='{idCompany}'"
        if(nameCompany != ""): strFilter += F" && companyName=='{nameCompany}'"

        # 查询数据
        if(dataDB == None):
            dataDB = gol._Get_Value('dbCompany_fb')
        lstData = dataDB.Query(strFilter, "", True, "Task_OrderCompany")
        #dictData = dataDB.Query(strFilter, "", True, "Task_OrderCompany")

        # 提取及返回
        #lstData = list(dictData.values())
        if(len(lstData) == 1):
            return lstData[0]
        return None
Exemple #23
0
def mainSource():
    #初始全局行情对象
    import mySource_Control
    from myGlobal import gol
    pQuote = gol._Get_Value('quoteSource', None)
    if (pQuote != None):
        #添加监听对象
        import myListener_Printer, myListener_Rise_Fall_asInt, myListener_Hourly, myListener_FixedMonitor, myListener_Risk_Control
        pQuote.addListener(myListener_Printer.Quote_Listener_Printer())
        pQuote.addListener(myListener_Hourly.Quote_Listener_Hourly())
        pQuote.addListener(
            myListener_Rise_Fall_asInt.Quote_Listener_Rise_Fall_asInt())
        pQuote.addListener(
            myListener_Risk_Control.Quote_Listener_Risk_Control())
        #for x in pSets.setUsers:
        #    pQuote.addListener(myListener_FixedMonitor.Quote_Listener_FixedMonitor(x))

        gol._Set_Value('quoteSource', pQuote)  #实例 行情对象
    return pQuote
Exemple #24
0
    def _Init(self):
        self.isEnable = True  #是否可用
        self.isRootUse = False  #是否为系统级使用(系统内置功能)
        self.isSingleUse = True  #是否为单例使用(非单例时每个用户专属)
        self.isBackUse = False  #是否为后台使用(后台可运行多个,一般为系统级功能,如日志)
        self.isNoOwner = False  #是否为所有者除外不回复
        self.Init()  #初始时间信息

        # 基础信息--必须设置,自动提取作为配置信息
        self.prjName = "消息处理功能"  #功能名
        self.fileName = "myRobot"  #文件名
        self.className = "myRobot"  #类名
        self.isNoReply = True  #是否无回复操作--功能自带
        self.enableGroups = {}  #可用群组

        # 初始返回消息
        self.usrMMsg = gol._Get_Setting('manageMsgs')  #消息管理器
        self.usrInfos = gol._Get_Value('rootRobot_usrInfos', None)  #用户信息集
        self.msg = {}
        self.maxTime = 60 * 6  #有效时常