Пример #1
0
def get_exchange_goods():
    '''get the goods participated in exchange
    '''
    codis_client = get_codis_connect()
    exchange_goods_list = []
    result = codis_client.get_all_content(settings.GOODS_HASH_NAME)
    for one in result.keys():
        one_good = goods_manage.Goods(result[one])
        if one_good.is_credit_exchange == 1:
            exchange_goods_list.append(one_good.object_to_dict())
    return exchange_goods_list
Пример #2
0
def get_like_goods(user_name):
    like_goods = []
    redis_client = get_codis_connect()
    user_obj = redis_client.get_one_content(settings.USERS_HASH_NAME,
                                            user_name)
    user = user_manage.User(user_obj)
    for i in user.like_goods:
        goods_obj = redis_client.get_one_content(settings.GOODS_HASH_NAME, i)
        if goods_obj:
            goods = goods_manage.Goods(goods_obj)
            like_goods.append(goods.object_to_dict())
    return like_goods
Пример #3
0
def get_lucky_draw_goods():
    '''get lucky draw goods
    '''
    codis_client = get_codis_connect()
    lucky_draw_goods_list = []
    result = codis_client.get_all_content(settings.GOODS_HASH_NAME)
    #print result
    for one in result.keys():
        one_good = goods_manage.Goods(result[one])
        if one_good.is_lucky_goods == 1:
            lucky_draw_goods_list.append(one_good.object_to_dict())
    return lucky_draw_goods_list
Пример #4
0
def get_new_goods(request):
    '''get the new goods information
    '''
    redis_client = function_manage.get_codis_connect()
    new_goods_list = []
    result = redis_client.get_all_content(settings.GOODS_HASH_NAME)
    #print result
    for one in result.keys():
        one_good = goods_manage.Goods(result[one])
        if one_good.is_new_goods == 1:
            new_goods_list.append(one_good.object_to_dict())
    result = {'code': 0, 'msg': 'ok', 'new_goods': new_goods_list}
    return HttpResponse(
        json.dumps(result, ensure_ascii=False, encoding='utf-8'))
Пример #5
0
def credit_exchange(request):
    '''credit_exchange function
    '''
    redis_client = function_manage.get_codis_connect()
    goods_id = request.POST.get('goodsid')
    username = request.POST.get('username')
    if not goods_id or not username:
        result = {'code': 300, 'msg': 'input parameter error'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    username = username.lower()
    goods_obj = redis_client.get_one_content(settings.GOODS_HASH_NAME,
                                             goods_id)
    user_obj = redis_client.get_one_content(settings.USERS_HASH_NAME, username)
    user = user_manage.User(user_obj)
    goods = goods_manage.Goods(goods_obj)
    if user.status != 1:
        result = {'code': 301, 'msg': 'the user have not login'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    if user.credits < goods.credit_exchange:
        result = {'code': 302, 'msg': 'the credits not enough'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    else:
        user.credits = user.credits - goods.credit_exchange
        goods.credit_exchange_people_num += 1
        redis_client.set_one_content(settings.USERS_HASH_NAME, username,
                                     user.object_to_json())
        redis_client.set_one_content(settings.GOODS_HASH_NAME, goods.id,
                                     goods.object_to_json())
        time_temp = str(datetime.datetime.now())
        exchange_log = {
            'username': user.name,
            'time': time_temp,
            'goods_name': goods.name,
            'image': goods.large_image,
            'introduction': goods.introduction,
            'type': 1,  #0 is lucky draw,1 is exchange
            'credits': goods.credit_exchange,
        }
        redis_client.set_one_content(
            settings.RECORD_HASH_NAME, time_temp,
            json.dumps(exchange_log, ensure_ascii=False, encoding='utf-8'))
        result = {'code': 0, 'msg': 'ok', 'user': user.object_to_dict()}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
Пример #6
0
def lucky_draw(request):
    '''lucky draw function
    
    '''
    redis_client = function_manage.get_codis_connect()
    if not request.POST:
        result = {'code': 400, 'msg': 'not input username and goodsid'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    goods_id = request.POST.get('goodsid')
    username = request.POST.get('username')
    if not goods_id or not username:
        result = {'code': 401, 'msg': 'input parameter error'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    username = username.lower()
    goods_obj = redis_client.get_one_content(settings.GOODS_HASH_NAME,
                                             goods_id)
    user_obj = redis_client.get_one_content(settings.USERS_HASH_NAME, username)
    user = user_manage.User(user_obj)
    if user.status != 1:
        result = {'code': 402, 'msg': 'the user have not login'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    goods = goods_manage.Goods(goods_obj)
    if user.credits < goods.lucky_draw_credits:
        result = {'code': 403, 'msg': 'the credits not enough'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    else:
        user.credits = user.credits - goods.lucky_draw_credits
        goods.lucky_people_num += 1
        time_temp = str(datetime.datetime.now())
        redis_client.set_one_content(settings.GOODS_HASH_NAME, goods.id,
                                     goods.object_to_json())
        redis_client.set_one_content(settings.USERS_HASH_NAME, username,
                                     user.object_to_json())
        lucky_draw_items = function_manage.get_lucky_draw_items()
        inums = [len(v) for v in lucky_draw_items]
        prize, _ = function_manage.lucky_draw(random.Random(), goods.priceseg,
                                              inums)
        #lucky=function_manage.lucky_draw(random.Random())
        if prize != 0:
            prize = 1
            lucky_drawl_log = {
                'username': user.name,
                'time': time_temp,
                'goods_name': goods.name,
                'image': goods.large_image,
                'introduction': goods.introduction,
                'type': 0,
                'credits': goods.lucky_draw_credits,
            }
            redis_client.set_one_content(
                settings.RECORD_HASH_NAME, time_temp,
                json.dumps(lucky_drawl_log,
                           ensure_ascii=False,
                           encoding='utf-8'))

        result = {
            'code': 0,
            'msg': 'ok',
            'lucky': prize,
            'user': user.object_to_dict()
        }
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
Пример #7
0
def routette(request):
    '''routette function
    retrun get the prize of level
    '''
    redis_client = function_manage.get_codis_connect()
    if not request.POST:
        result = {'code': 500, 'msg': 'not input post parmameters'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    username = request.POST.get('username')
    if not username:
        result = {'code': 501, 'msg': 'not input username'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    username = username.lower()
    user_obj = redis_client.get_one_content(settings.USERS_HASH_NAME, username)
    if not user_obj:
        result = {'code': 502, 'msg': 'the user not exist'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    user = user_manage.User(user_obj)
    if user.status != 1:
        result = {'code': 504, 'msg': 'the user have not login'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    #print user.object_to_json()
    if user.credits < settings.LUCKY_DRAW_CREDITS:
        result = {'code': 503, 'msg': 'the credits not enough'}
        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))
    else:
        user.credits = user.credits - settings.LUCKY_DRAW_CREDITS
        redis_client.set_one_content(settings.USERS_HASH_NAME, username,
                                     user.object_to_json())
        lucky_draw_goods = function_manage.get_lucky_draw_items()
        prize_level, goods_id = function_manage.lucky_draw(
            random.Random(), lucky_draw_goods)
        if goods_id:
            goods_obj = redis_client.get_one_content(settings.GOODS_HASH_NAME,
                                                     goods_id)
            goods = goods_manage.Goods(goods_obj)
            prize = goods.object_to_dict()
        else:
            prize = {}
        result = {
            'code': 0,
            'msg': 'ok',
            'prizelevel': prize_level,
            'user': user.object_to_dict(),
            'prize': prize
        }
        #需要保存记录
        if prize_level != 0:
            time_temp = str(datetime.datetime.now())
            routette_log = {
                'username': user.name,
                'time': time_temp,
                'goods_name': goods.name,
                #'goods_name':'%d level prize'%prize_level,
                'image': goods.large_image,
                'introduction': '%d level prize' % prize_level,
                'type': 2,  #0 is lucky draw,1 is exchange,2 is routette
                'credits': settings.LUCKY_DRAW_CREDITS,
            }
            redis_client.set_one_content(
                settings.RECORD_HASH_NAME, time_temp,
                json.dumps(routette_log, ensure_ascii=False, encoding='utf-8'))

        return HttpResponse(
            json.dumps(result, ensure_ascii=False, encoding='utf-8'))