Exemple #1
0
def my_list():
    criteria = {}
    # 支持表格字段里的任何搜索
    access_status = judging_permissions('2_3_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    for item in default_values:
        req_value = request.args.get(item)
        if req_value:
            req_value = req_value.strip()
            if item in int_key:
                try:
                    req_value = int(req_value)
                except:
                    return jsonify({'code': 201, 'msg': u'参数错误'})
                criteria.update({item: req_value})
            else:
                criteria.update({item: {'$regex': req_value}})

    try:
        page_num = int(request.args.get('page_num', 1)) - 1
        limit = int(request.args.get('limit', 20))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})

    _cur = planet_img.find(criteria)
    _count = _cur.count()
    if _count % limit:
        num = _count / limit + 1
    else:
        num = _count / limit
    if _count > (page_num * limit):
        _list = []
        cur_list = _cur.sort([('_id', -1)]).skip(page_num * limit).limit(limit)
        for _obj in cur_list:
            try:
                _obj['_id'] = str(_obj['_id'])

                _list.append(_obj)
            except Exception as e:
                print(e)
        return jsonify({
            'code': 200,
            'data': {
                'num': num,
                'count': _count,
                'page': page_num + 1,
                'list': _list
            }
        })
    else:
        return jsonify({
            'code': 200,
            'data': {
                'num': num,
                'count': _count,
                'page': page_num + 1,
                'list': []
            }
        })
Exemple #2
0
def detail_list():
    access_status = judging_permissions('0_7_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)

    guess_red_id = request.args.get('guess_red_id', '')

    criteria = {'number_of_periods': int(guess_red_id)}

    try:
        page_num = int(request.args.get('page_num', 1)) - 1
        limit = int(request.args.get('limit', 20))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})

    _cur = guess_red_detail.find(criteria)
    _count = _cur.count()
    if _count % limit:
        num = _count / limit + 1
    else:
        num = _count / limit
    if _count > (page_num * limit):
        _list = []
        cur_list = _cur.skip(page_num * limit).limit(limit)
        for _obj in cur_list:
            try:
                _obj['_id'] = str(_obj['_id'])
                _list.append(_obj)
            except Exception as e:
                print(e)
        return jsonify({'code': 200, 'data': {'num': num, 'count': _count, 'page': page_num + 1, 'list': _list}})
    else:
        return jsonify({'code': 200, 'data': {'num': num, 'count': _count, 'page': page_num + 1, 'list': []}})
Exemple #3
0
def add():
    access_status = judging_permissions('5_0_0')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    data = get_request_params()
    _insert(data)
    return jsonify({'code': 200, 'msg': u'success'})
Exemple #4
0
def update():
    data = {key: dict(request.form)[key][0] for key in dict(request.form)}
    if not data:
        data = request.get_json()
    _id = data.get('_id')

    if not _id:
        return jsonify({'code': 201, 'msg': u'缺少参数'})
    _obj = user.find_one({'_id': ObjectId(_id)})
    if not _obj:
        return jsonify({'code': 202, 'msg': u'不存在'})
    invite_code = data.get('invite_code', '').lower()
    data.update({'invite_code': invite_code})
    access_status = judging_permissions('1_0_2')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    _update = {}

    for key in default_values:
        if key in data:
            _values = data.get(key)
            if _values:
                # if isinstance(_values, str) or isinstance(_values, unicode):
                if isinstance(_values, str):
                    _values = _values.strip()
                if key in int_keys:
                    try:
                        _values = int(_values)
                    except:
                        return jsonify({'code': 201, 'msg': u'参数错误'})
                if _obj.get(key) != _values:
                    _update.update({key: _values})
    new_update = {}
    if 'status' in _update:
        new_update['status'] = _update.get('status')
    if 'verified_status' in _update:
        new_update['verified_status'] = _update.get('verified_status')
    if 'invite_code' in _update:
        invite_code = _update.get('invite_code')
        invite_code_obj = invite_code_data.find_one({'invite_code': invite_code})
        user_obj = user.find_one({'invite_code': invite_code})
        earth_code_obj = earth_code.find_one({'invite_code': invite_code})
        if invite_code_obj or user_obj or earth_code_obj:
            return jsonify({'code': 201, 'msg': u'邀请码已被使用'})
        invite_url_short = generate_dwz(
            '{0}/h5/reg?invite_code={1}&source=invite'.format(conf.api_url, invite_code))
        new_update['invite_code'] = invite_code
        new_update['invite_url_short'] = invite_url_short
    if new_update:
        try:

            user.update_one({'_id': ObjectId(_id)}, {'$set': new_update})
            return jsonify({'code': 200, 'msg': u'成功'})
        except:
            pass
    else:
        return jsonify({'code': 203, 'msg': u'无更新数据'})
    return jsonify({'code': 204, 'msg': u'失败'})
Exemple #5
0
def detail():
    access_status = judging_permissions('operation:get')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    _obj = operation.find_one({})
    if not _obj:
        return jsonify({'code': 202, 'msg': u'不存在'})

    _obj['_id'] = str(_obj['_id'])
    return jsonify({'code': 200, 'data': _obj})
Exemple #6
0
def delete():
    access_status = judging_permissions('5_0_1')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    data = get_request_params()
    _id = data.get('_id', '')
    if not _id or not ObjectId.is_valid(_id):
        return jsonify({'code': 202, 'msg': u'参数错误'})
    heat_task.remove({'_id': ObjectId(_id)})
    return jsonify({'code': 200, 'msg': u'success'})
Exemple #7
0
def detail():
    access_status = judging_permissions('5_0_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    _id = request.args.get('_id', '')
    if not _id or not ObjectId.is_valid(_id):
        return jsonify({'code': 201, 'msg': u'缺少参数'})
    _obj = heat_task.find_one({'_id': ObjectId(_id)})
    if not _obj:
        return jsonify({'code': 202, 'msg': u'参数错误'})
    _obj['_id'] = str(_obj.get('_id'))
    return jsonify({'code': 200, 'data': _obj})
Exemple #8
0
def delete():
    access_status = judging_permissions('1_2_1')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    data = {key: dict(request.form)[key][0] for key in dict(request.form)}
    if not data:
        data = request.get_json()
    _id = data.get('_id')
    if not _id:
        return jsonify({'code': 201, 'msg': u'参数错误'})
    feedback.remove({'_id': ObjectId(_id)})
    return jsonify({'code': 200, 'msg': u'成功'})
Exemple #9
0
def my_list():
    criteria = {}
    # 支持表格字段里的任何搜索
    access_status = judging_permissions('2_6_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    for item in default_values:
        req_value = request.args.get(item)
        if req_value:
            req_value = req_value.strip()
            if item in int_key:
                try:
                    req_value = int(req_value)
                except:
                    return jsonify({'code': 201, 'msg': u'参数错误'})
                criteria.update({item: req_value})
            else:
                criteria.update({item: {'$regex': req_value}})

    try:
        page_num = int(request.args.get('page_num', 1)) - 1
        limit = int(request.args.get('limit', 20))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})

    _cur = home_ad.find(criteria)
    _count = _cur.count()
    if _count % limit:
        num = _count / limit + 1
    else:
        num = _count / limit
    if _count > (page_num * limit):
        _list = []
        cur_list = _cur.sort([('status', -1), ('sort_id', 1)]).skip(page_num * limit).limit(limit)
        for _obj in cur_list:
            try:
                _obj['_id'] = str(_obj['_id'])
                _obj['status_name'] = status_values.get(_obj.get('status', 0), '-')
                _obj['type_num_name'] = type_num_values.get(_obj.get('type_num', 0), u'帮助文档')
                _obj['associated_name'] = '-'
                if _obj.get('associated_id', ''):
                    try:
                        task_obj = app_wake_task.find_one({'_id': ObjectId(_obj.get('associated_id', ''))})
                        _obj['associated_name'] = task_obj.get('name', '')
                    except:
                        pass
                _list.append(_obj)
            except Exception as e:
                print (e)
        return jsonify({'code': 200, 'data': {'num': num, 'count': _count, 'page': page_num + 1, 'list': _list}})
    else:
        return jsonify({'code': 200, 'data': {'num': num, 'count': _count, 'page': page_num + 1, 'list': []}})
Exemple #10
0
def detail():
    access_status = judging_permissions('2_2_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    _id = request.args.get('_id')
    if not _id or not ObjectId.is_valid(_id):
        return jsonify({'code': 201, 'msg': u'参数错误'})
    _obj = help_center.find_one({'_id': ObjectId(_id)})
    if not _obj:
        return jsonify({'code': 202, 'msg': u'不存在'})

    _obj['_id'] = _id
    return jsonify({'code': 200, 'data': _obj})
Exemple #11
0
def update():
    access_status = judging_permissions('2_2_2')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    _update = {}
    data = {key: dict(request.form)[key][0] for key in dict(request.form)}
    if not data:
        data = request.get_json()
    _id = data.get('_id')
    if not _id or not ObjectId.is_valid(_id):
        return jsonify({'code': 201, 'msg': u'参数错误'})
    _obj = help_center.find_one({'_id': ObjectId(_id)})
    if not _obj:
        return jsonify({'code': 202, 'msg': u'不存在'})
    for key in default_values:
        if key in data:
            _values = data.get(key)
            if _values:
                # if isinstance(_values, str) or isinstance(_values, unicode):
                if isinstance(_values, str):
                    _values = _values.strip()
                if key in int_key:
                    try:
                        _values = int(_values)
                    except:
                        return jsonify({'code': 201, 'msg': u'参数错误'})
                if _obj.get(key) != _values:
                    if key == 'password':
                        _values = generate_password_hash(_values)
                    _update.update({key: _values})
    if 'img_url' in _update:
        del _update['img_url']
    _file = request.files
    img_url_file = _file.get('img_url')
    if img_url_file:
        result, img_url = upload_img(img_url_file)
        if not result:
            return jsonify({'code': 206, 'msg': img_url})
        _update.update({'img_url': img_url})
    if _update:
        try:
            help_center.update_one({'_id': ObjectId(_id)}, {'$set': _update})
            return jsonify({'code': 200, 'msg': u'成功'})
        except:
            pass
    else:
        return jsonify({'code': 203, 'msg': u'无更新数据'})
    return jsonify({'code': 204, 'msg': u'失败'})
Exemple #12
0
def get_detail():
    access_status = judging_permissions('1_2_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    _id = request.args.get('_id')
    if not _id:
        return jsonify({'code': 201, 'msg': u'参数错误'})
    _obj = feedback.find_one({'_id': ObjectId(_id)})
    if not _obj:
        return jsonify({'code': 202, 'msg': u'不存在'})
    _obj['_id'] = _id
    content = _obj.get('content')
    image_list = _obj.get('image_list')
    for inage_url in image_list:
        content += '<p><img src="' + inage_url + '></p>'
    return jsonify({'code': 200, 'data': _obj})
Exemple #13
0
def my_list():
    access_status = judging_permissions('0_7_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    criteria = {}
    # 支持表格字段里的任何搜索
    for item in default_values:
        req_value = request.args.get(item)
        if req_value:
            req_value = req_value.strip()
            if item in int_key:
                try:
                    req_value = int(req_value)
                except:
                    return jsonify({'code': 201, 'msg': u'参数错误'})
                criteria.update({item: req_value})
            else:
                criteria.update({item: {'$regex': req_value}})
    try:
        page_num = int(request.args.get('page_num', 1)) - 1
        limit = int(request.args.get('limit', 20))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})

    _cur = guess_red.find(criteria)
    _count = _cur.count()
    if _count % limit:
        num = _count / limit + 1
    else:
        num = _count / limit
    if _count > (page_num * limit):
        _list = []
        cur_list = _cur.sort([('today_str', -1), ('hour_int', -1), ('minute_int', -1)]).skip(page_num * limit).limit(
            limit)
        for _obj in cur_list:
            try:
                _obj['_id'] = str(_obj['_id'])
                _obj['status_name'] = status_values.get(_obj.get('status', 0), '')
                _obj['hour_int_d'] = str(_obj.get('hour_int', 0)) + u' 点'

                _obj['value'] = '%.2f' % (float(_obj.get('value')) / float(100))
                _list.append(_obj)
            except Exception as e:
                print(e)
        return jsonify({'code': 200, 'data': {'num': num, 'count': _count, 'page': page_num + 1, 'list': _list}})
    else:
        return jsonify({'code': 200, 'data': {'num': num, 'count': _count, 'page': page_num + 1, 'list': []}})
Exemple #14
0
def edit():
    _id = request.args.get('_id')
    if not _id:
        return jsonify({'code': 201, 'msg': u'参数错误'})
    _obj = user.find_one({'_id': ObjectId(_id)})
    if not _obj:
        return jsonify({'code': 202, 'msg': u'不存在'})
    access_status = judging_permissions('1_0_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    _obj['_id'] = _id
    _obj['status_name'] = status_values.get(_obj.get('status', 0))
    _obj['sex_name'] = sex_values.get(_obj.get('sex', 0))
    _obj['new_value_name'] = new_value_values.get(_obj.get('new_value'))
    _obj['grade_name'] = grade_values.get(_obj.get('grade', 1))
    _obj['verified_status_name'] = verified_status_values.get(_obj.get('verified_status'))
    return jsonify({'code': 200, 'data': _obj})
Exemple #15
0
def add():
    data = {key: dict(request.form)[key][0] for key in dict(request.form)}
    if not data:
        data = request.get_json()
    access_status = judging_permissions('2_2_0')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    _file = request.files
    img_url_file = _file.get('img_url')
    if img_url_file:
        result, img_url = upload_img(img_url_file)
        if not result:
            return jsonify({'code': 206, 'msg': img_url})
        data.update({'img_url': img_url})
    result = _insert(data)
    if result.get('status', False):
        return jsonify({'code': 200, 'msg': u'成功'})
    else:
        return jsonify({'code': 203, 'msg': result.get('msg', '')})
Exemple #16
0
def update():
    access_status = judging_permissions('5_0_2')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    _update = {}
    data = get_request_params()
    _id = data.get('_id')
    if not ObjectId.is_valid(_id):
        return jsonify({'code': 202, 'msg': u'参数错误'})
    _obj = heat_task.find_one({'_id': ObjectId(_id)})
    if not _obj:
        return jsonify({'code': 202, 'msg': u'参数错误'})

    for key in default_values:
        if key == 'user_num':
            continue
        _values = data.get(key, '')
        # if isinstance(_values, str) or isinstance(_values, unicode):
        if isinstance(_values, str):
            _values = _values.strip()

        if key in int_key:
            try:
                _values = int(_values)
            except:
                return jsonify({'code': 201, 'msg': u'参数错误'})
        if _obj.get(key) != _values:
            _update.update({key: _values})

    if _update:
        try:
            _update.update({
                'created_time':
                datetime.now().strftime(format='%Y-%m-%d %H:%M:%S')
            })
            heat_task.update({'_id': _obj.get('_id')}, {'$set': _update})
        except:
            return jsonify({'code': 203, 'msg': u'修改失败'})
    return jsonify({'code': 200, 'msg': u'success'})
Exemple #17
0
def feedback_reply():
    access_status = judging_permissions('1_2_2')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    data = {key: dict(request.form)[key][0] for key in dict(request.form)}
    if not data:
        data = request.get_json()
    _id = data.get('_id')
    notice_content = data.get('station_notice')
    if not _id or not notice_content:
        return jsonify({'code': 201, 'msg': u'参数错误'})
    feedback_obj = feedback.find_one({'_id': ObjectId(_id)})
    user_id = feedback_obj.get('user_id')
    station_notice.insert_one({
        'user_id':
        user_id,
        'title':
        u'意见反馈回复',
        'des':
        notice_content[:10] + '......',
        'type_num':
        0,
        'value':
        0,
        'content':
        notice_content,
        'status':
        0,
        'is_bulletin':
        0,
        'subsidy_des':
        '',
        'created_time':
        datetime.now().strftime(format='%Y-%m-%d %H:%M:%S'),
        'feedback_id':
        _id
    })

    return jsonify({'code': 200, 'msg': u'成功'})
Exemple #18
0
def add():
    data = {key: dict(request.form)[key][0] for key in dict(request.form)}
    if not data:
        data = request.get_json()
    access_status = judging_permissions('2_1_0')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    created_time = timestamp_to_strftime(time.time() + 24 * 60 * 60, format='%Y-%m-%d')
    income_obj = income.find_one({'created_time': created_time})
    if income_obj:
        return jsonify({'code': 202, 'msg': u'当天收益已存在请不要重复添加'})
    income_obj = income.find_one({'created_time': timestamp_to_strftime(time.time(), format='%Y-%m-%d')})
    if income_obj:
        data['historical_income'] = int(data.get('yesterday_income', 0)) + income_obj.get('historical_income')
    else:
        data['historical_income'] = data.get('yesterday_income', 0)

    result = _insert(data)
    if result.get('status', False):
        return jsonify({'code': 200, 'msg': u'成功'})
    else:
        return jsonify({'code': 203, 'msg': result.get('msg', '')})
Exemple #19
0
def update():
    access_status = judging_permissions('operation:edit')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    _update = {}
    data = {key: dict(request.form)[key][0] for key in dict(request.form)}
    if not data:
        data = request.get_json()
    _obj = operation.find_one()
    if not _obj:
        result = _insert(data)
        if result.get('status'):
            return jsonify({'code': 200, 'msg': u'成功'})
        return jsonify({'code': 200, 'msg': u'不存在'})

    try:
        red_hour_per_json = json.loads(data.get('red_hour_per_json'))
    except:
        return jsonify({'code': 201, 'msg': u'红包时间点分配比例json数据错误'})
    per_total = 0
    for hour_int in range(24):
        hour_dict = red_hour_per_json.get(str(hour_int))
        if not hour_dict:
            return jsonify({'code': 201, 'msg': u'红包时间点分配比例json数据错误'})
        per_total += hour_dict.get('per', 0)
    if per_total != 100:
        return jsonify({'code': 201, 'msg': u'红包时间点分配比例json数据错误'})
    red_hour_per_json_str = json.dumps(red_hour_per_json, ensure_ascii=False)
    data.update({'red_hour_per_json': red_hour_per_json_str})

    try:
        check_in_calorific_json = json.loads(
            data.get('check_in_calorific_json'))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})
    check_in_calorific_json_str = json.dumps(check_in_calorific_json,
                                             ensure_ascii=False)
    data.update({'check_in_calorific_json': check_in_calorific_json_str})

    try:
        calorific_cash_json = json.loads(data.get('calorific_cash_json'))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})
    calorific_cash_json_str = json.dumps(calorific_cash_json,
                                         ensure_ascii=False)
    data.update({'calorific_cash_json': calorific_cash_json_str})

    try:
        withdraw_cash_json = json.loads(data.get('withdraw_cash_json'))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})
    withdraw_cash_json_str = json.dumps(withdraw_cash_json, ensure_ascii=False)
    data.update({'withdraw_cash_json': withdraw_cash_json_str})

    try:
        withdraw_cash_json_new = json.loads(data.get('withdraw_cash_json_new'))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})
    withdraw_cash_json_new_str = json.dumps(withdraw_cash_json_new,
                                            ensure_ascii=False)
    data.update({'withdraw_cash_json_new': withdraw_cash_json_new_str})

    for key in default_values:

        if key in data:
            _values = data.get(key)
            # if isinstance(_values, str) or isinstance(_values, unicode):
            if isinstance(_values, str):
                _values = _values.strip()
            if key in int_key:
                try:
                    _values = int(_values)
                except:
                    return jsonify({'code': 201, 'msg': u'参数错误'})
            if key in float_key:
                try:
                    _values = float(_values)
                except:
                    return jsonify({'code': 201, 'msg': u'参数错误'})
            if _obj.get(key) != _values:
                _update.update({key: _values})

    if _update:
        try:
            operation.update_one({'_id': _obj.get('_id')}, {'$set': _update})
            return jsonify({'code': 200, 'msg': u'成功'})
        except:
            pass
    else:
        return jsonify({'code': 203, 'msg': u'无更新数据'})
    return jsonify({'code': 204, 'msg': u'失败'})
Exemple #20
0
def get_user_day():
    access_status = judging_permissions('3_1_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    yesterday_str = timestamp_to_strftime(int(time.time()), format='%Y-%m-%d')

    earth_code_list = earth_code.find({}).distinct('invite_code')
    earth_code_list.append('')
    user_num_invite = user.find({
        'created_time': {
            '$regex': yesterday_str
        },
        'invite_id': {
            '$nin': earth_code_list
        },
    }).count()
    user_red_record = len(
        red_record.find({
            'today': yesterday_str
        }).distinct('user_id'))

    statistical_day_obj = {
        'today_str':
        yesterday_str,
        'user_num_total':
        user.find({}).count(),
        'user_num':
        user.find({
            'created_time': {
                '$regex': yesterday_str
            }
        }).count(),
        'user_num_novice_task':
        user.find({
            'created_time': {
                '$regex': yesterday_str
            },
            'new_value': -1
        }).count(),
        'user_num_invite':
        user_num_invite,
        'user_num_invite_bind':
        reg_user.find({
            'today': yesterday_str,
            'is_bind': 1
        }).count(),
        'user_num_active':
        s_user_online_t.find({
            'today_str': yesterday_str
        }).count(),
        'user_red_record':
        user_red_record,
    }
    date_list = []

    user_num_total_list = []
    user_num_list = []
    user_num_novice_task_list = []
    user_num_invite_list = []
    user_num_invite_bind_list = []
    user_num_active_list = []
    user_red_record_list = []

    date_list.insert(0, statistical_day_obj.get('today_str'))

    user_num_total_list.insert(0, statistical_day_obj.get('user_num_total'))
    user_num_list.insert(0, statistical_day_obj.get('user_num'))
    user_num_novice_task_list.insert(
        0, statistical_day_obj.get('user_num_novice_task'))
    user_num_invite_list.insert(0, statistical_day_obj.get('user_num_invite'))
    user_num_invite_bind_list.insert(
        0, statistical_day_obj.get('user_num_invite_bind'))
    user_num_active_list.insert(0, statistical_day_obj.get('user_num_active'))
    user_red_record_list.insert(0, statistical_day_obj.get('user_red_record'))

    statistical_day_cur = statistical_day.find().sort([('today_str', -1)
                                                       ]).limit(29)

    for statistical_day_obj in statistical_day_cur:
        date_list.insert(0, statistical_day_obj.get('today_str'))
        user_num_total_list.insert(0,
                                   statistical_day_obj.get('user_num_total'))
        user_num_list.insert(0, statistical_day_obj.get('user_num'))
        user_num_novice_task_list.insert(
            0, statistical_day_obj.get('user_num_novice_task'))
        user_num_invite_list.insert(0,
                                    statistical_day_obj.get('user_num_invite'))
        user_num_invite_bind_list.insert(
            0, statistical_day_obj.get('user_num_invite_bind'))
        user_num_active_list.insert(0,
                                    statistical_day_obj.get('user_num_active'))
        user_red_record_list.insert(0,
                                    statistical_day_obj.get('user_red_record'))

    return jsonify({
        'code': 200,
        'data': {
            'date_list': date_list,
            'user_num_total_list': user_num_total_list,
            'user_num_list': user_num_list,
            'user_num_novice_task_list': user_num_novice_task_list,
            'user_num_invite_list': user_num_invite_list,
            'user_num_invite_bind_list': user_num_invite_bind_list,
            'user_num_active_list': user_num_active_list,
            'user_red_record_list': user_red_record_list
        }
    })
Exemple #21
0
def my_list():
    criteria = {}
    # 支持表格字段里的任何搜索
    access_status = judging_permissions('3_4_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)

    try:
        page_num = int(request.args.get('page_num', 1)) - 1
        limit = int(request.args.get('limit', 20))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})

    _cur = statistical_day.find(criteria)
    _count = _cur.count()
    if _count % limit:
        num = _count / limit + 1
    else:
        num = _count / limit
    if _count > (page_num * limit):
        _list = []
        if page_num == 0:
            today_str = timestamp_to_strftime(int(time.time()),
                                              format='%Y-%m-%d')
            user_num_total = user.find({}).count()

            user_num = user.find({
                'created_time': {
                    '$regex': today_str
                }
            }).count()
            user_num_active = s_user_online_t.find({
                'today_str': today_str
            }).count()
            integer_red_user_id_list = integer_red_detail.find({
                'today_str':
                today_str
            }).distinct('user_id')
            integer_red_user_num = len(integer_red_user_id_list)
            guess_red_user_id_list = guess_red_detail.find({
                'guess_time': {
                    '$regex': today_str
                }
            }).distinct('user_id')
            guess_red_user_num = len(guess_red_user_id_list)

            dict_obj = dict()

            real_user_num_active = user_num_active - user_num
            real_user_num_total = user_num_total - user_num
            dict_obj['today_str'] = today_str
            dict_obj['user_num_total'] = user_num_total
            dict_obj['user_num'] = user_num
            dict_obj['user_num_active'] = user_num_active
            dict_obj['real_user_num_active'] = real_user_num_active
            dict_obj['real_user_num_total'] = real_user_num_total
            dict_obj['user_num_active_per'] = '%.2f' % (float(
                real_user_num_active * 100) / float(real_user_num_total)) + '%'

            dict_obj['integer_red_user_num'] = integer_red_user_num
            dict_obj['guess_red_user_num'] = guess_red_user_num
            dict_obj['integer_red_user_per'] = '%.2f' % (float(
                integer_red_user_num * 100) / float(user_num_active)) + '%'
            dict_obj['guess_red_user_per'] = '%.2f' % (
                float(guess_red_user_num * 100) / float(user_num_active)) + '%'
            _list.append(dict_obj)
            cur_list = _cur.sort([('today_str', -1)
                                  ]).skip(page_num * limit).limit(limit)
        else:
            cur_list = _cur.sort([('today_str', -1)
                                  ]).skip(page_num * limit).limit(limit)
        for _obj in cur_list:
            try:
                _obj['_id'] = str(_obj['_id'])
                user_num_total = _obj.get('user_num_total')
                user_num = _obj.get('user_num')
                user_num_active = _obj.get('user_num_active')
                real_user_num_active = user_num_active - user_num
                real_user_num_total = user_num_total - user_num
                _obj['real_user_num_active'] = real_user_num_active
                _obj['real_user_num_total'] = real_user_num_total
                _obj['user_num_active_per'] = '%.2f' % (
                    float(real_user_num_active * 100) /
                    float(real_user_num_total)) + '%'
                _obj['integer_red_user_per'] = '%.2f' % (
                    float(_obj.get('integer_red_user_num', 0) * 100) /
                    float(user_num_active)) + '%'
                _obj['guess_red_user_per'] = '%.2f' % (
                    float(_obj.get('guess_red_user_num', 0) * 100) /
                    float(user_num_active)) + '%'
                _list.append(_obj)
            except Exception as e:
                print(e)
        return jsonify({
            'code': 200,
            'data': {
                'num': num,
                'count': _count,
                'page': page_num + 1,
                'list': _list
            }
        })
    else:
        return jsonify({
            'code': 200,
            'data': {
                'num': num,
                'count': _count,
                'page': page_num + 1,
                'list': []
            }
        })
Exemple #22
0
def get_heat_day():
    access_status = judging_permissions('3_2_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    yesterday_str = timestamp_to_strftime(int(time.time()), format='%Y-%m-%d')

    calorific_total_dict = calorific_record.aggregate([{
        '$match': {
            'today': yesterday_str,
            'symbol': 1
        }
    }, {
        '$group': {
            '_id': '',
            'calorific_total': {
                '$sum': '$value'
            }
        }
    }, {
        '$limit': 1
    }])
    try:
        if isinstance(calorific_total_dict, dict):

            _calorific_total_dict = calorific_total_dict.get('result')[0]
            calorific_num_obtain = int(
                _calorific_total_dict.get('calorific_total'))
        else:
            _calorific_total_dict = calorific_total_dict.next()
            calorific_num_obtain = int(
                _calorific_total_dict.get('calorific_total'))
    except:
        calorific_num_obtain = 0

    calorific_total_dict = calorific_record.aggregate([{
        '$match': {
            'today': yesterday_str,
            'symbol': -1
        }
    }, {
        '$group': {
            '_id': '',
            'calorific_total': {
                '$sum': '$value'
            }
        }
    }, {
        '$limit': 1
    }])
    try:
        if isinstance(calorific_total_dict, dict):

            _calorific_total_dict = calorific_total_dict.get('result')[0]
            calorific_num_expend = int(
                _calorific_total_dict.get('calorific_total'))
        else:
            _calorific_total_dict = calorific_total_dict.next()
            calorific_num_expend = int(
                _calorific_total_dict.get('calorific_total'))
    except:
        calorific_num_expend = 0
    calorific_num_dict = user.aggregate([{
        '$match': {}
    }, {
        '$group': {
            '_id': '',
            'available_calorific_num': {
                '$sum': '$available_calorific'
            }
        }
    }, {
        '$limit': 1
    }])
    try:
        if isinstance(calorific_num_dict, dict):

            _calorific_num_dict = calorific_num_dict.get('result')[0]
            calorific_num = int(
                _calorific_num_dict.get('available_calorific_num'))
        else:
            _calorific_num_dict = calorific_num_dict.next()
            calorific_num = int(
                _calorific_num_dict.get('available_calorific_num'))
    except:
        calorific_num = 0
    statistical_day_obj = {
        'today_str': yesterday_str,
        'calorific_num_obtain': calorific_num_obtain,
        'calorific_num_expend': calorific_num_expend,
        'calorific_num': calorific_num,
    }
    date_list = []
    calorific_num_obtain_list = []
    calorific_num_expend_list = []
    calorific_num_list = []
    date_list.insert(0, statistical_day_obj.get('today_str'))
    calorific_num_obtain_list.insert(
        0, statistical_day_obj.get('calorific_num_obtain'))
    calorific_num_expend_list.insert(
        0, statistical_day_obj.get('calorific_num_expend'))
    calorific_num_list.insert(0, statistical_day_obj.get('calorific_num'))
    statistical_day_cur = statistical_day.find().sort([('today_str', -1)
                                                       ]).limit(29)
    for statistical_day_obj in statistical_day_cur:
        date_list.insert(0, statistical_day_obj.get('today_str'))
        calorific_num_obtain_list.insert(
            0, statistical_day_obj.get('calorific_num_obtain'))
        calorific_num_expend_list.insert(
            0, statistical_day_obj.get('calorific_num_expend'))
        calorific_num_list.insert(0,
                                  statistical_day_obj.get('calorific_num', 0))

    return jsonify({
        'code': 200,
        'data': {
            'date_list': date_list,
            'calorific_num_obtain_list': calorific_num_obtain_list,
            'calorific_num_expend_list': calorific_num_expend_list,
            'calorific_num_list': calorific_num_list
        }
    })
Exemple #23
0
def get_red_day():
    access_status = judging_permissions('3_3_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    yesterday_str = timestamp_to_strftime(int(time.time()), format='%Y-%m-%d')

    red_record_num = red_record.find({
        'today': yesterday_str,
        'type_num': {
            '$in': [2, 3]
        }
    }).count()
    user_red_record = len(
        red_record.find({
            'today': yesterday_str
        }).distinct('user_id'))
    red_average_num = '%.2f' % (float(red_record_num) / float(user_red_record))

    red_num_dict = red_record.aggregate([{
        '$match': {
            'today': yesterday_str
        }
    }, {
        '$group': {
            '_id': '',
            'red_num_total': {
                '$sum': '$value'
            }
        }
    }, {
        '$limit': 1
    }])
    try:
        if isinstance(red_num_dict, dict):

            _red_num_dict = red_num_dict.get('result')[0]
            red_num = int(_red_num_dict.get('red_num_total'))
        else:
            _red_num_dict = red_num_dict.next()
            red_num = int(_red_num_dict.get('red_num_total'))
    except:
        red_num = 0

    user_balance_dict = user.aggregate([{
        '$match': {}
    }, {
        '$group': {
            '_id': '',
            'balance_total': {
                '$sum': '$balance'
            }
        }
    }, {
        '$limit': 1
    }])
    try:
        if isinstance(user_balance_dict, dict):

            _user_balance_dict = user_balance_dict.get('result')[0]
            balance_total = int(_user_balance_dict.get('balance_total'))
        else:
            _user_balance_dict = user_balance_dict.next()
            balance_total = int(_user_balance_dict.get('balance_total'))
    except:
        balance_total = 0

    withdraw_total_dict = withdraw_record.aggregate([{
        '$match': {
            'today': yesterday_str,
            'status': {
                '$ne': -1
            }
        }
    }, {
        '$group': {
            '_id': '',
            'withdraw_total': {
                '$sum': '$value'
            }
        }
    }, {
        '$limit': 1
    }])
    try:
        if isinstance(withdraw_total_dict, dict):

            _withdraw_total_dict = withdraw_total_dict.get('result')[0]
            withdraw_total = int(_withdraw_total_dict.get('withdraw_total'))
        else:
            _withdraw_total_dict = withdraw_total_dict.next()
            withdraw_total = int(_withdraw_total_dict.get('withdraw_total'))
    except:
        withdraw_total = 0
    statistical_day_obj = {
        'today_str': yesterday_str,
        'red_num': int(red_num / 100),
        'user_balance_num': int(balance_total / 100),
        'withdraw_num': int(withdraw_total / 100),
        'red_record_num': red_record_num,
        'red_average_num': red_average_num
    }
    date_list = []

    red_num_list = []
    user_balance_num_list = []
    withdraw_num_list = []
    red_record_num_list = []
    red_average_num_list = []
    date_list.insert(0, statistical_day_obj.get('today_str'))
    red_num_list.insert(0, statistical_day_obj.get('red_num'))
    user_balance_num_list.insert(0,
                                 statistical_day_obj.get('user_balance_num'))
    red_record_num_list.insert(0, statistical_day_obj.get('red_record_num'))
    red_average_num_list.insert(0, statistical_day_obj.get('red_average_num'))
    withdraw_num_list.insert(0, statistical_day_obj.get('withdraw_num'))
    statistical_day_cur = statistical_day.find().sort([('today_str', -1)
                                                       ]).limit(29)

    for statistical_day_obj in statistical_day_cur:
        date_list.insert(0, statistical_day_obj.get('today_str'))
        red_num_list.insert(0, int(statistical_day_obj.get('red_num') / 100))
        user_balance_num_list.insert(
            0, int(statistical_day_obj.get('user_balance_num') / 100))
        withdraw_num_list.insert(
            0, int(statistical_day_obj.get('withdraw_num') / 100))
        red_record_num_list.insert(0,
                                   statistical_day_obj.get('red_record_num'))
        red_average_num_list.insert(
            0, float(statistical_day_obj.get('red_average_num')))

    return jsonify({
        'code': 200,
        'data': {
            'date_list': date_list,
            'red_num_list': red_num_list,
            'user_balance_num_list': user_balance_num_list,
            'withdraw_num_list': withdraw_num_list,
            'red_record_num_list': red_record_num_list,
            'red_average_num_list': red_average_num_list
        }
    })
Exemple #24
0
def my_list():
    access_status = judging_permissions('1_2_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    criteria = dict()
    # 支持表格字段里的任何搜索
    for item in default_values:
        req_value = request.args.get(item)
        if req_value:
            req_value = req_value.strip()
            if item in int_key:
                try:
                    req_value = int(req_value)
                except:
                    return jsonify({'code': 201, 'msg': u'参数错误'})
                criteria.update({item: req_value})
            else:
                criteria.update({item: {'$regex': req_value}})
    try:
        page_num = int(request.args.get('page_num', 1)) - 1
        limit = int(request.args.get('limit', 20))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})

    _cur = feedback.find(criteria)
    _count = _cur.count()
    if _count % limit:
        num = _count / limit + 1
    else:
        num = _count / limit
    if _count > (page_num * limit):
        _list = []
        cur_list = _cur.sort([('created_time', -1)
                              ]).skip(page_num * limit).limit(limit)
        for _obj in cur_list:
            try:
                _obj['_id'] = str(_obj['_id'])
                user_id = _obj.get('user_id')
                user_obj = user.find_one({'_id': ObjectId(user_id)})
                _obj['nickname'] = user_obj.get('nickname')
                _obj['phone'] = user_obj.get('phone', u'暂未绑定手机')
                _obj['is_reply'] = u'未回复'
                if station_notice.find_one({'feedback_id': _obj.get('_id')}):
                    _obj['is_reply'] = u'已回复'
                _list.append(_obj)
            except Exception as e:
                print(e)

        return jsonify({
            'code': 200,
            'data': {
                'num': num,
                'count': _count,
                'page': page_num + 1,
                'list': _list
            }
        })
    else:
        return jsonify({
            'code': 200,
            'data': {
                'num': num,
                'count': _count,
                'page': page_num + 1,
                'list': []
            }
        })
Exemple #25
0
def detail_list():
    access_status = judging_permissions('0_6_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)

    integer_red_id = request.args.get('integer_red_id', '')
    today_str = ''
    hour_int = ''
    try:
        integer_red_obj = integer_red.find_one(
            {'_id': ObjectId(integer_red_id)})
        today_str = integer_red_obj.get('today_str', '')
        hour_int = integer_red_obj.get('hour_int', '')
    except:
        pass
    criteria = {'integer_red_id': integer_red_id}

    try:
        page_num = int(request.args.get('page_num', 1)) - 1
        limit = int(request.args.get('limit', 20))
    except:
        return jsonify({'code': 201, 'msg': u'参数错误'})

    _cur = integer_red_detail.find(criteria)
    _count = _cur.count()
    if _count % limit:
        num = _count / limit + 1
    else:
        num = _count / limit
    if _count > (page_num * limit):
        _list = []
        cur_list = _cur.skip(page_num * limit).limit(limit)
        for _obj in cur_list:
            try:
                _obj['_id'] = str(_obj['_id'])
                _obj['value'] = '%.2f' % (float(_obj.get('value')) /
                                          float(100))
                _obj['today_str'] = today_str
                _obj['hour_int'] = hour_int

                _list.append(_obj)
            except Exception as e:
                print(e)
        return jsonify({
            'code': 200,
            'data': {
                'num': num,
                'count': _count,
                'page': page_num + 1,
                'list': _list
            }
        })
    else:
        return jsonify({
            'code': 200,
            'data': {
                'num': num,
                'count': _count,
                'page': page_num + 1,
                'list': []
            }
        })
Exemple #26
0
def get_planet_day():
    access_status = judging_permissions('3_0_3')
    if access_status.get('code') != 200:
        return jsonify(access_status)
    yesterday_str = timestamp_to_strftime(int(time.time()), format='%Y-%m-%d')

    planet_commission_dict = commission_record.aggregate([{
        '$match': {
            'today': yesterday_str
        }
    }, {
        '$group': {
            '_id': '',
            'planet_commission': {
                '$sum': '$value'
            }
        }
    }, {
        '$limit': 1
    }])
    try:
        if isinstance(planet_commission_dict, dict):

            _planet_commission_dict = planet_commission_dict.get('result')[0]
            planet_commission = int(
                _planet_commission_dict.get('planet_commission'))
        else:
            _planet_commission_dict = planet_commission_dict.next()
            planet_commission = int(
                _planet_commission_dict.get('planet_commission'))
    except:
        planet_commission = 0
    planet_commission_total = system.find_one().get('planet_commission_total',
                                                    0)
    planet_commission_total_dict = user.aggregate([{
        '$match': {
            'grade': 1
        }
    }, {
        '$group': {
            '_id': '',
            'planet_commission_total': {
                '$sum': '$planet_commission_total'
            }
        }
    }, {
        '$limit': 1
    }])
    try:
        if isinstance(planet_commission_total_dict, dict):

            _planet_commission_total_dict = planet_commission_total_dict.get(
                'result')[0]
            planet_commission_total += int(
                _planet_commission_total_dict.get('planet_commission_total'))
        else:
            _planet_commission_total_dict = planet_commission_total_dict.next()
            planet_commission_total += int(
                _planet_commission_total_dict.get('planet_commission_total'))
    except:
        pass
    statistical_day_obj = {
        'today_str': yesterday_str,
        'planet_num': user.find({
            'planet_id': {
                '$ne': ''
            }
        }).count(),
        'planet_commission': int(planet_commission / 100),
        'planet_commission_total': int(planet_commission_total / 100)
    }
    date_list = []
    planet_num_list = []
    planet_commission_list = []
    planet_commission_total_list = []
    date_list.insert(0, statistical_day_obj.get('today_str'))
    planet_num_list.insert(0, statistical_day_obj.get('planet_num'))
    planet_commission_list.insert(0,
                                  statistical_day_obj.get('planet_commission'))
    planet_commission_total_list.insert(0, int(planet_commission_total / 100))

    statistical_day_cur = statistical_day.find().sort([('today_str', -1)
                                                       ]).limit(29)

    for statistical_day_obj in statistical_day_cur:
        date_list.insert(0, statistical_day_obj.get('today_str'))
        planet_num_list.insert(0, statistical_day_obj.get('planet_num'))
        planet_commission_list.insert(
            0, int(statistical_day_obj.get('planet_commission') / 100))
        planet_commission_total_list.insert(
            0,
            int(statistical_day_obj.get('planet_commission_total', 0) / 100))
    return jsonify({
        'code': 200,
        'data': {
            'date_list': date_list,
            'planet_num_list': planet_num_list,
            'planet_commission_list': planet_commission_list,
            'planet_commission_total_list': planet_commission_total_list
        }
    })