예제 #1
0
def updataMasterCopy():
    R = RedisClass()
    uaidList = R.RH.smembers(config.redis_master_uaid_set)
    M = MasterModel()
    for uaid in uaidList:
        datas2 = yield M.getMaterFollow(uaid)
        yield R.getRedisMaterFollow(datas2)
    return
예제 #2
0
    def post(self):
        type = self.get_argument("type", "")
        echo_dist = {}
        if type == "sign_out":
            # 退出
            self.session.delete()
            # self.session['web_uid'] = None
            # self.session['web_uaid'] = None
            # self.session['web_key_ma'] = None
            # self.session['web_account'] = None
            # self.session['web_email'] = None
            # self.session['web_uname'] = None
            echo_dist['reponse_status'] = 5
            echo_dist['echo'] = self.locale.translate("退出成功")

        else:
            #登陆
            F = LoginForm(self.request.arguments)
            if F.validate():#and F.cla.data == "SendError"
                R = RedisClass()
                mail_key = R.RH.get(config.redis_session_uaid_set + str(F.umail.data))
                R.RH.delete(config.redis_session_uaid_set + str(F.umail.data))
                # 验证码检查
                if mail_key == F.pword.data:
                    M = MasterModel()
                    m_data = yield M.checkMaterMail(F.umail.data)
                    # print(m_data)
                    if len(m_data) == 0:
                        echo_dist['reponse_status'] = 0
                        echo_dist['echo'] = self.locale.translate("策略邮箱未注册")
                    else:
                        self.session['web_uid'] = m_data[0]['uid']
                        uaid_list = ""
                        key_ma_list = ""
                        ma_list = ""
                        for data in m_data:
                            uaid_list = uaid_list + str(data['uaid']) + ","
                            key_ma_list = key_ma_list + data['key_ma'] + ","
                            ma_list = ma_list + data['account'] + ","
                        self.session['web_uaid'] = uaid_list
                        # self.session['web_key_ma'] = key_ma_list
                        # self.session['web_account'] = ma_list
                        self.session['web_email'] = F.umail.data
                        self.session['web_uname'] = m_data[0]['uname']
                        from models.public.headers_model import LogsModel
                        LogsModel.addMysqlLog("login", "loging", str(m_data[0]['uid']), self.get_user_ip())
                        echo_dist['echo'] = self.locale.translate("登陆成功")
                        echo_dist['reponse_status'] = 5
            else:
                # 表单错误
                from models.public.confrom_model import get_ErrorForm
                echo_dist['echo'] = get_ErrorForm(F)
                echo_dist['reponse_status'] = 1
        self.write(json.dumps(echo_dist))
        self.finish()
예제 #3
0
    def get(self):
        F = ErrorForm(self.request.arguments)
        if F.validate() and F.cla.data == "SendError":
            #交易失败发送提示
            ukid = F.ukid.data
            AccountNumber = F.f2.data
            md5_from = F.f5.data
            key_ma = F.f10.data
            ErrorNumber = F.f8.data
            Language = F.f7.data
            strtext = F.f9.data
            R = RedisClass()
            uaid = yield R.chick_MD5_uaid(str(AccountNumber), md5_from, ukid)
            followid = yield R.get_Mater_uaid(key_ma)
            if int(uaid) > 0 and followid != None:
                M = MasterModel()
                Master_data = yield M.getMasterEmail(followid)
                E = OrderError()
                err_text = E.getErrorText(ErrorNumber, Language)
                sendH = SendmailModel()
                tomail = []
                tomail.append(Master_data['email'])
                if Language == 0:
                    mail_text = ""#跟单账号提示:<BR>
                    mail_text = mail_text + err_text + "<BR>"
                    mail_text = mail_text + strtext + "<BR>"
                    mail_text = mail_text + "请人工检查跟单账号MT4的网络与交易平台是否正常运行.<BR>"
                    mail_text = mail_text + "-----来自[提示发送系统]<BR>"
                    mail_title = "跟单账号" + str(AccountNumber) + "的提示"
                else:
                    mail_text = "Documentary account message:<BR>"
                    mail_text = mail_text + err_text + "<BR>"
                    mail_text = mail_text + strtext + "<BR>"
                    mail_text = mail_text + "Please manually check if the MT4 network and Broker of the documentary account are running normally.<BR>"
                    mail_text = mail_text + "-----From [Prompt Sending System]<BR>"
                    mail_title = "Documentary account " + str(AccountNumber) + " message"
                send_flag = yield sendH.email_send(tomail, mail_text, mail_title)
                if send_flag == True:
                    url_text = "1,1,"
                else:
                    url_text = "0,0,"
            else:
                url_text = "0,0,"
        else:
            # 表单错误
            from models.public.confrom_model import get_ErrorForm
            echo = get_ErrorForm(F)
            logger.error("[SendOrderErrorHandler]:" + echo)
            url_text = "0,0,"

        self.write(url_text + config.StringEnd)
        self.finish()
예제 #4
0
    def post(self):
        F = SendEmailForm(self.request.arguments)
        echo_dist = {}
        if F.validate():  #and F.cla.data == "SendError"
            #邮箱验证成功
            R = RedisClass()
            sendH = SendmailModel()
            M = MasterModel()
            m_data = yield M.checkMaterMail(F.umail.data)
            logger.debug(m_data)
            if len(m_data) == 0:
                # 策略邮箱不存在
                echo_dist['reponse_status'] = 4
            else:
                # mail_key = str(random.randint(100000, 999999))
                mail_key = "".join(random.sample('123567890', 6))
                mail_text = self.locale.translate("主策略账号登陆验证码")
                mail_text = mail_text + """:
                
                """
                mail_text = mail_text + mail_key
                mail_text = mail_text + """
                
                """
                mail_text = mail_text + self.locale.translate(
                    "请不要将验证码转发或给其他人查看")
                mail_text = mail_text + """!!!!!
                
                -----"""
                mail_text = mail_text + self.locale.translate(
                    "来自[跟单交易多账户管理系统]")
                tomail = []
                tomail.append(F.umail.data)
                send_flag = yield sendH.email_send(
                    tomail, mail_text, self.locale.translate("主策略账号登陆验证码"))
                if send_flag == True:
                    R.RH.set(config.redis_session_uaid_set + str(F.umail.data),
                             mail_key,
                             ex=config.SessionsOutTime)
                    echo_dist['reponse_status'] = 5  #  发送成功
                else:
                    echo_dist['reponse_status'] = 2  # 发送失败
        else:
            # 表单错误
            from models.public.confrom_model import get_ErrorForm
            echo_dist['echo'] = get_ErrorForm(F)
            echo_dist['reponse_status'] = 0  # 输入错误

        self.write(json.dumps(echo_dist))
        self.finish()
예제 #5
0
    def CheckAccount(self, users):
        if self.R.RH.hexists(config.redis_acount_md5_dic, users['ukid']):
            datas = {}
            uaid = self.R.RH.hget(config.redis_acount_md5_dic, users['ukid'])
            datas2 = yield self.updataAccount(users, uaid)
            # pp = redis_ua_pid_endtime + str(uaid)
            # print(R.RH.get(redis_ua_pid_endtime + str(uaid)))
            # endtime = int(float(R.RH.get(config.redis_ua_pid_endtime + str(uaid))))
            from models.user.master_model import MasterModel
            M = MasterModel()
            if users['Master_flag'] != "1":
                # 非策略账号
                master_id = yield self.R.get_Mater_uaid(users['MasterKey'])
                comment = yield self.R.get_Mater_Comment(users['MasterKey'])
                if master_id == None:
                    return "-11,0,0,0,0,0,"
                # follow_parameter = yield R.getMaterParameter(master_id, users['pid'])
                follow_parameter = yield M.getMaterInfo(
                    master_id, users['pid'])
                # 加入策略参数
                datas['followParameter'] = str(
                    int(follow_parameter['position_maxnum'])
                ) + "." + follow_parameter['spsl'] + "." + follow_parameter[
                    'reverse'] + "."
                datas['endtime'] = follow_parameter['endtime']
                datas2['comment'] = comment
            else:
                Mater_parameter = yield M.getMaterInfo(uaid, users['pid'])
                datas['max_num'] = Mater_parameter['mater_max_num']
                datas['endtime'] = Mater_parameter['endtime']
                datas2['comment'] = "fx"

            # datas['endtime'] = datetime.datetime.fromtimestamp(endtime)
            datas['pid'] = users['pid']
            datas['apflag'] = 1
            datas['zd_opentime'] = ""
            datas['zd_closetime'] = ""
            datas['qq'] = self.R.RH.get(config.redis_qq_pid +
                                        str(users['pid']))
            datas['version'] = self.R.RH.get(config.redis_version_pid +
                                             str(users['pid']))
            echotext = yield self.getOdata(datas, users['account'], uaid,
                                           users['ukid'], users['get_class'])
            echotext2 = yield self.get1data(datas2)
            # logger.info("CheckAccount:" + echotext + echotext2)
            return echotext + echotext2
        else:
            # 账户未登陆或已经失效
            return "-12,0,0,0,0,0,"
예제 #6
0
    def get(self):
        get_class = self.get_argument('class')
        ukid = self.get_argument('ukid')
        AccountNumber = self.get_argument('f2')
        md5_from = self.get_argument('f5')
        umail = self.get_argument('f11', "")
        Ckey = self.get_argument('f12', "")
        pid = self.get_argument('s0', "0")

        par = r'^[\.a-zA-Z0-9_\-]{1,30}@[a-zA-Z0-9_\-]+\.([a-zA-Z0-9_\-]{1,5})$'
        echotext = ""
        if re.match(par, umail):
            #邮箱验证成功
            R = RedisClass()
            uaid = yield R.chick_MD5_uaid(AccountNumber, md5_from, ukid)
            if uaid > 0:
                mail_key = R.RH.get(config.redis_session_uaid_set + str(uaid))
                if mail_key == Ckey:
                    #验证成功
                    M = MasterModel()
                    #检查email账号注册并登陆
                    key_ma = yield M.getVcmial(umail, uaid)
                    if key_ma != None:
                        # 提取跟单的账号列表
                        yield R.insert_master_uaid(key_ma, uaid)
                        datas = yield M.getMaterFollow(uaid)
                        echotext2 = yield R.getRedisMaterFollow(datas)
                        maxnum = yield M.getMaterCopyNum(config.PID, uaid)
                        echotext = echotext + str(maxnum) + "_" + str(
                            config.ERROR_TIME) + "," + key_ma + "," + echotext2
                    else:
                        echotext = "-2,0,"
                else:
                    echotext = "-3,0,"
            else:
                echotext = "-4,0,"
        else:
            echotext = "-5,0,"
        self.write(echotext + config.StringEnd)
        self.finish()
예제 #7
0
    def get(self):
        get_class = self.get_argument('class')
        ukid = self.get_argument('ukid')
        AccountNumber = self.get_argument('f2')
        md5_from = self.get_argument('f5')
        copy_account = self.get_argument('f11', "")
        edit_flag = self.get_argument('f12', "")
        md5_from2 = self.get_argument('f13', "")
        MasterKey = self.get_argument('f14', "")
        pid = self.get_argument('s0', 0)
        echotext = ""
        if get_class == "edit":
            # 修改授权
            # 二次较检
            md5_str = AccountNumber + copy_account + str(config.TineMd5Info)
            str_md5 = hashlib.md5(md5_str.encode(encoding='UTF-8')).hexdigest()
            if str_md5 == md5_from2:
                # 信息验证成功,进行相关操作
                R = RedisClass()
                followid = yield R.chick_MD5_uaid(AccountNumber, md5_from,
                                                  ukid)
                if followid > 0:
                    m_flag = yield R.chick_MaterAuthorize(
                        followid, copy_account)
                    if edit_flag == "1" and m_flag == True:
                        echotext = "0,0,"
                    elif edit_flag == "0" and m_flag == False:
                        echotext = "0,0,"
                    else:
                        #需要修改授权
                        M = MasterModel()
                        flag = R.RH.hget(
                            config.redis_master_uaid_Hash + str(followid),
                            str(copy_account))

                        if flag == 1 or flag == "1":
                            mflag = yield M.setMaterAuthorize(
                                followid, copy_account, 0)
                            if mflag == True:
                                R.RH.hset(
                                    config.redis_master_uaid_Hash +
                                    str(followid), str(copy_account), "0")
                                echotext = "1,0,"
                            else:
                                echotext = "-3,0,"
                        else:
                            # 判断超过授权数量
                            copy_max_num = yield M.get_copy_num(
                                R.RH.hgetall(config.redis_master_uaid_Hash +
                                             str(followid)))
                            master_max_num = yield M.getMaterCopyNum(
                                pid, followid)
                            if copy_max_num >= master_max_num:
                                # 授权数量超过
                                echotext = "-6,0,"
                            else:
                                mflag = yield M.setMaterAuthorize(
                                    followid, copy_account, 1)
                                if mflag == True:
                                    R.RH.hset(
                                        config.redis_master_uaid_Hash +
                                        str(followid), str(copy_account), "1")
                                    echotext = "1,1,"
                                else:
                                    echotext = "-3,0,"
                else:
                    echotext = "-4,0,"
            else:
                echotext = "-5,0,"
        elif get_class == "apply":
            # 申请授权
            # 二次较检
            md5_str = AccountNumber + MasterKey + str(config.TineMd5Info)
            str_md5 = hashlib.md5(md5_str.encode(encoding='UTF-8')).hexdigest()
            if str_md5 == md5_from2:
                #信息验证成功
                R = RedisClass()
                uaid = yield R.chick_MD5_uaid(AccountNumber, md5_from, ukid)
                if uaid > 0:
                    M = MasterModel()
                    followid = yield R.get_Mater_uaid(MasterKey)
                    if followid == None:
                        mflag = False
                    else:
                        mflag = yield R.chick_MaterAuthorize(followid, uaid)
                    if mflag == True:
                        #已经授权
                        echotext = "2," + str(
                            config.ERROR_TIME) + ",9947" + str(followid) + ","
                    else:
                        if followid != None:
                            # 有MasterKey的策略,进行申请操作
                            yield R.insert_master_uaid(MasterKey, followid)
                            #检查数据库
                            # print(followid,uaid)
                            yield M.checkMaterFollow(followid, uaid)
                            # 更新Redis
                            yield R.set_MaterFollow(followid, uaid, 0)
                            echotext = "1,0,"
                        else:
                            #无效MasterKey,找不到相关策略
                            echotext = "-3,0,"
                else:
                    echotext = "-4,0,"
            else:
                echotext = "-5,0,"

        self.write(echotext + config.StringEnd)
        self.finish()
예제 #8
0
    def GetAccount(self, users):
        # 查交易账号存在与否,并返回有效连接MD5—KEY
        with (yield pool.Connection()) as conn:
            with conn.cursor() as cursor:
                # users['ptname']db.cursor(MySQLdb.cursors.DictCursor)
                sql = "SELECT uaid,pid,account FROM usercode WHERE ptname='%s' AND account=%s AND accountserver='%s' AND vipid=1" % (
                    users['ptname'], users['account'], users['accountserver'])
                # print(sql)
                yield cursor.execute(sql)
                datas = cursor.fetchone()
                # print(datas)
                if datas != None:
                    # 账号存在
                    # print(datas)
                    # 验证产品,生成回复
                    account_arr = yield self.GetAcountPinfo(
                        conn, users, datas['uaid'])
                    if account_arr != None:
                        # 查询策略的参数等

                        M = MasterModel()
                        if users['Master_flag'] == "1":
                            Mater_parameter = yield M.getMaterInfo(
                                datas['uaid'], users['pid'])
                            account_arr['max_num'] = Mater_parameter[
                                'mater_max_num']
                            account_arr['endtime'] = Mater_parameter['endtime']
                        else:
                            account_arr['max_num'] = 0
                            account_arr['endtime'] = None
                        # print(account_arr)
                        echotext = yield self.getOdata(account_arr,
                                                       users['account'],
                                                       datas['uaid'],
                                                       users['ukid'],
                                                       users['get_class'])
                    else:
                        echotext = "-9,0,0,0,0,0"
                else:
                    #账号不存在,新增账号
                    # 先验证平台与服务器
                    pt_id = yield self.GetPlatfrom(conn, users['ptname'])
                    # print(pt_id)
                    if pt_id != 0:
                        # 验证服务器
                        pfuid = yield self.GetAccountsServer(
                            conn, users['accountserver'], pt_id)
                        if pfuid != 0:
                            # 新增交易账户users_account
                            up_date = datetime.datetime.now().strftime(
                                '%Y-%m-%d %H:%M:%S')
                            user_url = users['accountserver'] + users['ptname']
                            try:
                                sql3 = "INSERT INTO users_account(uid,pt_id,pfuid,account,allname,balance,credit,quity," \
                                       "profit,margin,xs,ea,moni,gangan,huobi,huibimodel,stopoutlevel,stopoutmode,minlot,maxlot,user_url," \
                                       "ibpt1,adminstate,agent_time,user_update,onlinetime,start_balance) VALUES " \
                                       "(%s,%s,%s,%s,'%s',%s,%s,%s,%s,%s,%s,%s,%s,%s,'%s','%s',%s,%s,%s,%s,'%s',%s,%s,'%s','%s','%s',%s)"\
                                        % (1, pt_id, pfuid, users['account'], users['allname'], users['balance'],
                                          users['credit'], users['quity'], users['profit'], users['margin'],
                                          users['xs'], users['ea'], users['moni'], users['gangan'], users['huobi'],
                                          users['huibimodel'], users['stopoutlevel'], users['stopoutmode'], users['minlot'], users['maxlot'],
                                          user_url, 1, 0, up_date, up_date, up_date, users['balance'])
                                # print(sql3)
                                yield cursor.execute(sql3)
                                yield conn.commit()
                                uaid = cursor.lastrowid
                            except Exception as err:
                                yield conn.rollback()
                                logger.error(
                                    "[user_model:GetAccount:INSERT]: %s" % err)
                                return None
                            # 验证产品,生成回复
                            account_arr = yield self.GetAcountPinfo(
                                conn, users, uaid)
                            if account_arr != None:
                                echotext = yield self.getOdata(
                                    account_arr, users['account'], uaid,
                                    users['ukid'], users['get_class'])
                                if users['Master_flag'] == "1":
                                    # 加载策略到Redis
                                    O = OrderModel()
                                    # 得到账户的持仓订单
                                    datas2 = yield O.get_PositionOrder(uaid)
                                    # 进行更新redis持仓
                                    yield self.R.set_Master_order(uaid, datas2)
                                    M = MasterModel()
                                    datas3 = yield M.getMaterFollow(uaid)
                                    yield self.R.getRedisMaterFollow(datas3)
                            else:
                                echotext = "-6,0,0,0,0,0,"
                        else:
                            echotext = "-7,0,0,0,0,0,"
                    else:
                        echotext = "-8,0,0,0,0,0,"
        # print(echotext)
        # yield pool.close()
        return echotext
예제 #9
0
    def get(self):
        echo_dist = {}
        page_main = {}
        page_main['lang'] = self.get_lang()
        page_main['title_website'] = config.WEBSITE_NAME
        if self.session['web_uid'] == None:
            # self.redirect("/index")
            echo_dist['reponse_status'] = -1
        else:
            cookie_dist = self.getCookie()
            if cookie_dist['current_strategy'] == None:
                echo_dist['reponse_status'] = -1
            else:
                F = AccountsForm(self.request.arguments)
                # print(F.fx_type.data)
                if F.validate():
                    echo_dist['reponse_status'] = 5
                    # logger.debug(F.fx_type.data)
                    # logger.debug(self.get_secure_cookie("current_strategy"))
                    if F.fx_type.data == "list":
                        # 列出所有策略的账号并返回
                        S = StrategyModel()
                        s_data = yield S.getStrategyList(
                            self.session['web_uid'])
                        if len(s_data) == 0:
                            echo_dist['reponse_status'] = 0
                        else:
                            echo_dist['s_data'] = s_data
                            # print(s_data)
                            if len(s_data) == 1:
                                self.set_secure_cookie(
                                    "current_strategy" +
                                    self.session['web_uid'],
                                    str(s_data[0]['uaid']))
                                self.set_secure_cookie(
                                    "current_ma_name" +
                                    self.session['web_uid'],
                                    "null" if s_data[0]['ma_name'] == None else
                                    s_data[0]['ma_name'])
                                self.set_secure_cookie(
                                    "current_account" +
                                    self.session['web_uid'],
                                    "null" if s_data[0]['account'] == None else
                                    s_data[0]['account'])
                                self.set_secure_cookie(
                                    "current_key_ma" + self.session['web_uid'],
                                    "null" if s_data[0]['key_ma'] == None else
                                    s_data[0]['key_ma'])
                                self.set_secure_cookie(
                                    "current_logo_url" +
                                    self.session['web_uid'],
                                    "null" if s_data[0]['logo_url'] == None
                                    else s_data[0]['logo_url'])
                                echo_dist['strategy'] = str(s_data[0]['uaid'])
                            else:
                                echo_dist['strategy'] = cookie_dist[
                                    'current_strategy']
                            # 策略详情,包括到期时间,可用账户数量
                            M = MasterModel()
                            # 获得购买授权数量
                            echo_dist[
                                'master_max_num'] = yield M.getMaterCopyNum(
                                    51, echo_dist['strategy'])
                            # 获取 已用授权和总接入数量
                            master_count_list = yield M.getMaterCopyCount(
                                echo_dist['strategy'])
                            echo_dist['master_count_all'] = 0
                            echo_dist['master_count_ok'] = 0
                            if len(master_count_list) > 0:
                                for master_count in master_count_list:
                                    if master_count['follow_flag'] == 1:
                                        echo_dist[
                                            'master_count_ok'] = master_count[
                                                'follow_num']
                                    echo_dist['master_count_all'] = echo_dist[
                                        'master_count_all'] + master_count[
                                            'follow_num']
                    elif F.fx_type.data == "list_master":
                        # 列出所有策略的账号并返回
                        page_main.update(cookie_dist)
                        page_main['th_num'] = 4
                        page_main['title_type'] = self.locale.translate(
                            "编辑策略列表")
                        yield self.render("user/index_master_list.html",
                                          page_main=page_main,
                                          session=self.session)
                        return

                    elif F.fx_type.data == "count":
                        # 策略资金统计
                        S = StrategyModel()
                        echo_dist['echo'] = yield S.getStrategyCount(
                            cookie_dist['current_strategy'])
                        if echo_dist['echo'] == None:
                            echo_dist['reponse_status'] = 0
                    elif F.fx_type.data == "symbol_count":
                        # 主策略的持仓品种统计
                        S = StrategyModel()
                        echo_dist["symbol_list"], echo_dist[
                            "num_list"] = yield S.getStrategySymbol(
                                cookie_dist['current_strategy'])
                        if echo_dist['symbol_list'] == None or echo_dist[
                                'num_list'] == None:
                            echo_dist['reponse_status'] = 0
                    elif F.fx_type.data == "loging_count":
                        # 在线状态统计
                        S = StrategyModel()
                        echo_dist[
                            "loging_data"] = yield S.getStrategyLogingStatus(
                                cookie_dist['current_strategy'])

                    elif F.fx_type.data == "position_count":
                        # 持仓一致性统计
                        S = StrategyModel()
                        echo_dist[
                            "position_count_data"] = yield S.getStrategyPositionCount(
                                cookie_dist['current_strategy'])
                    elif F.fx_type.data == "net_ratio_list":
                        # 已用保证金/净值的比例
                        S = StrategyModel()
                        echo_dist["echo"], echo_dist[
                            "m_echo"] = yield S.getStrategyPositionRatio(
                                cookie_dist['current_strategy'])
                        if echo_dist["m_echo"] == None:
                            echo_dist['reponse_status'] = 0
                    elif F.fx_type.data == "master_max_num":
                        # 策略详情,包括到期时间,可用账户数量
                        M = MasterModel()
                        # 获得购买授权数量
                        echo_dist['master_max_num'] = yield M.getMaterCopyNum(
                            51, cookie_dist['current_strategy'])
                        # 获取 已用授权和总接入数量
                        master_count_list = yield M.getMaterCopyCount(
                            cookie_dist['current_strategy'])
                        echo_dist['master_count_all'] = 0
                        echo_dist['master_count_ok'] = 0
                        if len(master_count_list) > 0:
                            for master_count in master_count_list:
                                if master_count['follow_flag'] == 1:
                                    echo_dist[
                                        'master_count_ok'] = master_count[
                                            'follow_num']
                                echo_dist['master_count_all'] = echo_dist[
                                    'master_count_all'] + master_count[
                                        'follow_num']
                    elif F.fx_type.data == "get_parameter":
                        S = StrategyModel()
                        row = yield S.getParameter(
                            cookie_dist['current_strategy'], F.fx_id.data)
                        from models.user.order_model import OrderModel
                        O = OrderModel()
                        echo_dist['pnum'] = yield O.get_PositionOrderNum2(
                            cookie_dist['current_strategy'], F.fx_id.data)
                        logger.debug("get_parameter:%s" % row)
                        if row == None:
                            echo_dist['reponse_status'] = 0
                        else:
                            echo_dist.update(row)
                    else:
                        yield self.redirect("/user/index")
                        return
                else:
                    # 表单错误
                    from models.public.confrom_model import get_ErrorForm
                    echo_dist['echo'] = get_ErrorForm(F)
                    echo_dist['reponse_status'] = 1
            # print(self.request.host)
            # B  = BaseHandler()
            # tornado.locale.set_default_locale("en_US")
            # self.session["uname"] = "12345"
        logger.debug(echo_dist)
        from models.public.headers_model import DateEncoder
        yield self.write(json.dumps(echo_dist, cls=DateEncoder))
        # self.write(json.dumps(echo_dist))
        self.finish()
예제 #10
0
 def post(self):
     echo_dist = {}
     if self.session['web_uid'] == None:
         # 退出
         echo_dist['reponse_status'] = -1
     else:
         # print("SS:", self.request.arguments)
         F = ParameterForm(self.request.arguments)
         if F.validate():  #and F.cla.data == "SendError"
             cookie_dist = self.getCookie(1)
             echo_dist['reponse_status'] = 5
             page_papa = {}
             page_papa[
                 'maxtime'] = 10 if F.maxtime.data == None else F.maxtime.data
             page_papa[
                 'maxloss'] = 10 if F.maxloss.data == None else F.maxloss.data
             page_papa[
                 'maxnum'] = 5 if F.maxnum.data == None else F.maxnum.data
             page_papa[
                 'reflex'] = 0 if F.reflex.data == None else F.reflex.data
             page_papa[
                 'fixed'] = 0 if F.fixed.data == None else F.fixed.data
             page_papa[
                 'percent'] = 0 if F.percent.data == None else F.percent.data
             page_papa[
                 'rate_min'] = 0.01 if F.rate_min.data == None else F.rate_min.data
             page_papa[
                 'rate_max'] = 0.5 if F.rate_max.data == None else F.rate_max.data
             page_papa['rate'] = 0 if F.rate.data == None else F.rate.data
             page_papa[
                 'tpsl_flag'] = 0 if F.tpsl_flag.data == None else F.tpsl_flag.data
             page_papa['allowed_sign'] = -1
             page_papa['uid'] = self.session['web_uid']
             page_papa['ip'] = self.get_user_ip()
             page_papa['balance'] = -100000
             page_papa['credit'] = -100000
             page_papa['quity'] = -100000
             page_papa['profit'] = -100000
             page_papa['margin'] = -100000
             U = UserModel()
             if F.fx_type.data == "edit":
                 #
                 from models.user.master_model import MasterModel
                 M = MasterModel()
                 m_dist = yield M.getMasterKEY(
                     cookie_dist["current_strategy"])
                 if m_dist != None:
                     page_papa['MasterKey'] = m_dist['key_ma']
                     page_papa['pid'] = config.PID
                     # page_papa.update(m_dist)
                     page_papa['parameter_time'] = int(time.time())
                     logger.debug("BB:%s" % page_papa)
                     echo_dist['data'] = yield U.updataAccount(
                         page_papa, F.fx_id.data)
                     if echo_dist['data'] != None:
                         # if echo_dist['data']['@flag'] == 0:
                         echo_dist['reponse_status'] = echo_dist['data'][
                             '@flag']
                         echo_dist['echo'] = self.locale.translate("保存失败!")
                     else:
                         echo_dist['reponse_status'] = -2
                         echo_dist['echo'] = self.locale.translate(
                             "跟单账户资料发生意外错误!")
         else:
             # 表单错误
             from models.public.confrom_model import get_ErrorForm
             echo_dist['echo'] = get_ErrorForm(F)
             echo_dist['reponse_status'] = 1
     # from models.public.headers_model import DateEncoder
     # yield self.write(json.dumps(echo_dist, cls=DateEncoder))
     self.write(json.dumps(echo_dist))
     self.finish()
예제 #11
0
    def get(self):
        echo_dist = {}
        page_main = {}
        page_main['lang'] = self.get_lang()
        page_main['title_website'] = config.WEBSITE_NAME
        if self.session['web_uid'] == None:
            yield self.redirect("/index")
            return
        else:
            F = CopySelectForm(self.request.arguments)
            # print(F.fx_type.data)
            if F.validate():
                page_main['prc_type'] = F.fx_type.data
                page_main['time_type'] = F.time_type.data
                page_main[
                    'fx_flag'] = 9 if F.fx_flag.data == None else F.fx_flag.data
                cookie_dist = self.getCookie()
                page_main.update(cookie_dist)
                if F.fx_type.data == "list_loging":
                    # 列出所有的账号 的在线情况
                    page_main['title_type'] = self.locale.translate("在线状态")
                    page_main['fx_flag_text1'] = self.locale.translate("已授权")
                    page_main['fx_flag_text0'] = self.locale.translate("未授权")
                    page_main['th_num'] = 3
                    yield self.render("user/index_copy_list.html",
                                      page_main=page_main,
                                      session=self.session)
                    return
                elif F.fx_type.data == "list_position":
                    # 持仓统计
                    page_main['title_type'] = self.locale.translate("持仓监控")
                    page_main['th_num'] = 10
                    yield self.render("user/index_position_list.html",
                                      page_main=page_main,
                                      session=self.session)
                    return
                elif F.fx_type.data == "list_account":
                    # 账户管理
                    # print("ip:",self.ip)
                    # self.get_user_ip()
                    page_main['title_type'] = self.locale.translate("账户管理")
                    page_main['th_num'] = 6
                    R = RedisClass()
                    endtime = None  #R.RH.get(config.redis_ua_pid_endtime + cookie_dist["current_strategy"])
                    import time
                    # print(endtime)
                    if endtime == None or endtime == "null":
                        M = MasterModel()
                        mdata = yield M.getMaterInfo(
                            cookie_dist["current_strategy"], config.PID)
                        # print(mdata)
                        if mdata['endtime'] == None:
                            page_main['endtime'] = "1970-01-01"
                        else:
                            # page_main['endtime'] = time.strftime("%Y-%m-%d", mdata['endtime'])
                            page_main['endtime'] = mdata['endtime'].strftime(
                                "%Y-%m-%d")
                    else:
                        page_main['endtime'] = time.strftime(
                            "%Y-%m-%d", time.localtime(int(float(endtime))))
                    yield self.render("user/index_account_list.html",
                                      page_main=page_main,
                                      session=self.session)
                    return
                elif F.fx_type.data == "list_net_ratio":
                    # 资料风控
                    page_main['title_type'] = self.locale.translate("账户资金")
                    page_main['th_num'] = 8
                    yield self.render("user/index_net_ratio_list.html",
                                      page_main=page_main,
                                      session=self.session)
                    return
                elif F.fx_type.data == "list_order_count":
                    # 统计手数与单量
                    page_main['time_str'] = self.timeType(
                        page_main['time_type'])
                    page_main['title_type'] = self.locale.translate("订单统计")
                    page_main['th_num'] = 8
                    yield self.render("user/index_order_count_list.html",
                                      page_main=page_main,
                                      session=self.session)
                    return
                else:
                    yield self.redirect("/index")
                    return

            else:
                # 表单错误
                from models.public.confrom_model import get_ErrorForm
                echo_dist['echo'] = get_ErrorForm(F)
                echo_dist['reponse_status'] = 1
                self.redirect("/index")
                return