예제 #1
0
def newOrder(stamp10, secondsDelay):
    msgDict_array = []
    pro_id_array = md_init(setting.pro_id())
    for pro_id_dict in pro_id_array:
        newOrders = []
        # 获取一次订单信息,返回一个dictionary
        orderDict = sorted_orders(pro_id_dict['pro_id'], 1)
        # 查询失败则返回错误信息
        if int(orderDict['status']) == 2:
            WARN("modian newOrder error", "获取订单错误", orderDict['message'])
            return orderDict['message']
        # 20180319,防止空订单,循环查询五次
        retry = 0
        while not len(orderDict['data']):
            INFO("modian newOrder info", "疑似空订单")
            orderDict = sorted_orders(pro_id_dict['pro_id'], 1)
            retry += 1
            if retry > 5:
                INFO("modian newOrder info", "订单5次为空,判断为无人集资")
                break
        # 查询成功,遍历data
        for data in orderDict['data']:
            pay_success_time = data['pay_success_time']
            # 将字符串时间转换为unix时间戳
            data['pay_success_time'] = int(time.mktime(time.strptime(pay_success_time, '%Y-%m-%d %H:%M:%S')))
            # 筛选订单时间在查询时间前的设定时间段之间的订单
            if data['pay_success_time'] >= stamp10 - secondsDelay and data['pay_success_time'] < stamp10:
                newOrders.append(data)
        msgDict = {}
        # 有新订单
        if newOrders:
            # 获取项目信息
            detail = getDetail(pro_id_dict['pro_id'])
            # 查询失败则返回错误信息
            if int(detail['status']) == 2:
                WARN("modian newOrder error", "获取项目信息错误", detail['message'])
                return detail['message']
            # 查询成功,初始化消息
            msgDict['msg'] = []
            msg = ''
            for newOrder in newOrders:
                msg = "ID: " + newOrder['nickname'] +\
                    " 的聚聚刚刚在【" + pro_id_dict['name'] + "】中支持了 ¥" +\
                    str(newOrder['backer_money']) + '\n' + "感谢这位聚聚对" +\
                    setting.idol_name() + "的支持" + '\n'
                msgDict['msg'].append(msg)
            msgDict['end'] = '【摩点】:' + pro_id_dict['url_short'] + '\n目前集资进度:¥' +\
                str(detail['data'][0]['already_raised']) + '\n目标:¥' +\
                str(detail['data'][0]['goal'])
            msgDict_array.append(msgDict)
    msgDict_array.append(orderDict)
    return msgDict_array
예제 #2
0
def diff(num):
    detail = getDetail(str(setting.pro_id()))
    msg = ''
    if num > 20:
        num = 20
    order = getOrders(setting.pro_id(), 1)
    if int(order['status']) == 2:
        return order['message']
    for i in range(0, num):
        msg += "ID: " + order['data'][i]['nickname'] +\
            " 的聚聚刚刚在【" + setting.wds_name() + "】中支持了 ¥" +\
            str(order['data'][i]['backer_money']) + '\n' + "感谢这位聚聚对" +\
            setting.idol_name() + "的支持" + '\n'
    msg += '【摩点】:' + setting.wds_url() + '\n目前集资进度:¥' +\
        str(detail['data'][0]['already_raised']) + '\n目标:¥' +\
        str(detail['data'][0]['goal'])
    return msg
예제 #3
0
def newOrder(stamp10, secondsDelay):
    newOrders = []
    # 获取一次订单信息,返回一个dictionary
    orderDict = getOrders(setting.pro_id(), 1)
    # 查询失败则返回错误信息
    if int(orderDict['status']) == 2:
        return orderDict['message']
    # 查询成功,遍历data
    for data in orderDict['data']:
        pay_time = data['pay_time']
        # 将字符串时间转换为unix时间戳
        data['pay_time'] = int(
            time.mktime(time.strptime(pay_time, '%Y-%m-%d %H:%M:%S')))
        # 筛选订单时间在查询时间前的设定时间段之间的订单
        if data['pay_time'] >= stamp10 - secondsDelay and data[
                'pay_time'] < stamp10:
            newOrders.append(data)
    msgDict = {}
    # 有新订单
    if newOrders:
        # 获取项目信息
        detail = getDetail(setting.pro_id())
        # 查询失败则返回错误信息
        if int(detail['status']) == 2:
            return detail['message']
        # 查询成功,初始化消息
        msgDict['msg'] = []
        msg = ''
        for newOrder in newOrders:
            msg = "ID: " + newOrder['nickname'] +\
                " 的聚聚刚刚在【" + setting.wds_name() + "】中支持了 ¥" +\
                str(newOrder['backer_money']) + '\n' + "感谢这位聚聚对" +\
                setting.idol_name() + "的支持" + '\n'
            msgDict['msg'].append(msg)
        msgDict['end'] = '【摩点】:' + setting.wds_url() + '\n目前集资进度:¥' +\
            str(detail['data'][0]['already_raised']) + '\n目标:¥' +\
            str(detail['data'][0]['goal'])
    return msgDict
예제 #4
0
파일: modian.py 프로젝트: CM-unit/qqbot_hzx
def newOrder(stamp10, secondsDelay):
    newOrders = []
    # 获取一次订单信息,返回一个dictionary
    orderDict = getOrders(setting.pro_id(), 1)
    # 查询失败则返回错误信息
    if int(orderDict['status']) == 2:
        return orderDict['message']
    # 查询成功,遍历data
    for data in orderDict['data']:
        pay_time = data['pay_time']
        # 将字符串时间转换为unix时间戳
        data['pay_time'] = int(time.mktime(time.strptime(pay_time, '%Y-%m-%d %H:%M:%S')))
        # 筛选订单时间在查询时间前的设定时间段之间的订单
        if data['pay_time'] >= stamp10 - secondsDelay and data['pay_time'] < stamp10:
            newOrders.append(data)
    msgDict = {}
    # 有新订单
    if newOrders:
        # 获取项目信息
        detail = getDetail(setting.pro_id())
        # 查询失败则返回错误信息
        if int(detail['status']) == 2:
            return detail['message']
        # 查询成功,初始化消息
        msgDict['msg'] = []
        msg = ''
        for newOrder in newOrders:
            msg = "ID: " + newOrder['nickname'] +\
                " 的聚聚刚刚在【" + setting.wds_name() + "】中支持了 ¥" +\
                str(newOrder['backer_money']) + '\n' + "感谢这位聚聚对" +\
                setting.idol_name() + "的支持" + '\n'
            msgDict['msg'].append(msg)
        msgDict['end'] = '【摩点】:' + setting.wds_url() + '\n目前集资进度:¥' +\
            str(detail['data'][0]['already_raised']) + '\n目标:¥' +\
            str(detail['data'][0]['goal'])
    return msgDict
예제 #5
0
def newOrder(stamp10, secondsDelay):
    msgDict_array = []
    pro_id_array = md_init(setting.pro_id(0))
    for pro_id_dict in pro_id_array:
        newOrders = []
        # 获取一次订单信息,返回一个dictionary
        orderDict = sorted_orders(pro_id_dict['pro_id'], 1)
        # 查询失败则返回错误信息
        if int(orderDict['status']) == 2:
            WARN("modian newOrder error", "获取订单错误", orderDict['message'])
            print(orderDict['message'])
            return msgDict_array
        # 20180319,防止空订单,循环查询五次
        retry = 0
        while not len(orderDict['data']):
            INFO("modian newOrder info", "疑似空订单")
            orderDict = sorted_orders(pro_id_dict['pro_id'], 1)
            retry += 1
            if retry > 5:
                INFO("modian newOrder info", "订单5次为空,判断为无人集资")
                break

        # 不具备本地order.josn的写法  查询成功,遍历摩点库
        # for data in orderDict['data']:
        #     pay_success_time = data['pay_success_time']
        #     # 将字符串时间转换为unix时间戳
        #     data['pay_success_time'] = int(time.mktime(time.strptime(pay_success_time, '%Y-%m-%d %H:%M:%S')))
        #     # 筛选订单时间在查询时间前的设定时间段之间的订单
        #     if data['pay_success_time'] >= stamp10 - secondsDelay and data['pay_success_time'] < stamp10:
        #         newOrders.append(data)

        # ------ 20180723具备本地order.json的写法 ------
        # 获得本地库
        data = setting.openjson("order/" + str(pro_id_dict['pro_id']))
        # 判断本地库是都为空
        if data == []:
            newOrders = orderDict["data"]
        else:
            # 获得摩点库
            alldata = orderDict["data"]
            # 对摩点库进行排序
            alldata = setting.sortOrder(alldata)
            # 与本地库对比
            if alldata[0]["pay_success_time"] == data[0]["pay_success_time"]:
                pass
            else:
                print("发现遗漏订单" + str(pro_id_dict['pro_id']))
                # 获取本地库第一个订单的时间转换为时间戳
                oneTime = int(
                    time.mktime(
                        time.strptime(data[0]["pay_success_time"],
                                      '%Y-%m-%d %H:%M:%S')))
                # 循环摩点接口所有订单
                for i in range(len(alldata)):
                    # 将摩点订单时间转换为时间戳
                    iTime = int(
                        time.mktime(
                            time.strptime(alldata[i]["pay_success_time"],
                                          '%Y-%m-%d %H:%M:%S')))
                    # 在摩点库中找到本地最新的那一个订单
                    if iTime == oneTime:
                        for j in range(i):
                            newOrders.append(alldata[j])
        data = newOrders + data
        setting.writejson(data, "order/" + str(pro_id_dict['pro_id']))

        # 有新订单
        msgDict = []
        if newOrders:
            # 获取项目信息
            detail = getDetail(pro_id_dict['pro_id'])
            # 查询失败则返回错误信息
            if int(detail['status']) == 2:
                WARN("modian newOrder error", "获取项目信息错误", detail['message'])
                # return detail['message']
            # 查询成功,初始化消息
            msg = ''
            for newOrder in newOrders:
                msg = "ID:" + newOrder['nickname'] + "\n" +\
                    "金额:¥ " + str(newOrder['backer_money']) + '\n' +\
                    "项目:" + pro_id_dict['name'] + "\n" +\
                    "链接:" + pro_id_dict['url_short'] + "\n" +\
                    "感谢"+newOrder['nickname']+"对" + setting.idol_name() + "的支持呦~" + \
                    tool.relay(newOrder['backer_money']) +\
                    card.DrawCard(newOrder["user_id"],newOrder["nickname"],newOrder["backer_money"])
                if str(pro_id_dict['pro_id']) == str(
                        setting.openjson('ini')['modian']['pk']) or (
                            setting.openjson('ini')['pk']['status']
                            and not (setting.openjson('ini')['modian']['pk'])):
                    msg += tool.showPk("\n\npk实况:")

                msgDict.append(msg)
        msgDict_array.append(msgDict)
    return msgDict_array