def get_datas(request):
        name = request.GET.get('participant_name', '')
        webapp_id = request.user_profile.webapp_id
        member_ids = []
        if name:
            hexstr = byte_to_hex(name)
            members = member_models.Member.objects.filter(
                webapp_id=webapp_id, username_hexstr__contains=hexstr)
            temp_ids = [member.id for member in members]
            member_ids = temp_ids if temp_ids else [-1]
        # webapp_user_ids = [webapp_user.id for webapp_user in member_models.WebAppUser.objects.filter(member_id__in=member_ids)]
        start_time = request.GET.get('start_time', '')
        end_time = request.GET.get('end_time', '')
        params = {'belong_to': request.GET['id']}
        if member_ids:
            params['member_id__in'] = member_ids
        if start_time:
            params['created_at__gte'] = start_time
        if end_time:
            params['created_at__lte'] = end_time
        datas = app_models.exsurveyParticipance.objects(
            **params).order_by('-id')

        #进行分页
        count_per_page = int(request.GET.get('count_per_page', COUNT_PER_PAGE))
        cur_page = int(request.GET.get('page', '1'))
        pageinfo, datas = paginator.paginate(
            datas,
            cur_page,
            count_per_page,
            query_string=request.META['QUERY_STRING'])

        return pageinfo, datas
Example #2
0
def step_impl(context, webapp_owner_name, webapp_user_name, webapp_name):

    member = Member.objects.get(username_hexstr=byte_to_hex(webapp_user_name))
    exsign = exSign.objects.get(name=webapp_name)
    data = {
        'id': member.id,
        'design_mode': 0,
        'project_id': 'new_app:exsign:%s' % exsign.related_page_id,
    }
    if hasattr(context, 'filter_dict'):
        # logging.info('------set filter_dict____')
        data = dict(data, **context.filter_dict)

    response = context.client.get('/member/api/member_coupon/', data)
    response_data = json.loads(response.content)['data']['items']
    actual = []
    # logging.info('..............123')
    # logging.info("%s"%response_data)
    for item in response_data:  # 格式化得到的数据
        provided_time = item['provided_time']

        collection_time = provided_time.split()[0]
        actual.append({
            'collection_time': collection_time.replace('/', '-'),
            'name': item['coupon_name'],
            'coupon_id': item['coupon_id'],
            'type': item['coupon_detail'].split()[1],
            'status': item['coupon_state'],
        })

    expected = json.loads(context.text)
    for item in expected:
        item['collection_time'] = __date2time(item['collection_time'])

    bdd_util.assert_list(expected, actual)
Example #3
0
def step_impl(context, webapp_user_name, webapp_owner_name, count):
    username = byte_to_hex(webapp_user_name)
    webapp_id = bdd_util.get_webapp_id_for(webapp_owner_name)
    member = Member.objects.get(username_hexstr=username, webapp_id=webapp_id)
    webapp_user_count = WebAppUser.objects.filter(member_id=member.id).count()

    bdd_util.tc.assertEquals(int(count), webapp_user_count)
def create_issuing_coupons_record(context):
    url = "/mall2/api/issuing_coupons_record/?_method=put"
    data = json.loads(context.text)
    coupon_rule_name = data['name']
    pre_person_count = data['count']
    members = data['members']

    member_ids = []
    for name in members:
        member_ids.append(
            Member.objects.get(username_hexstr=byte_to_hex(name)).id)

    coupon_rule_id = promotion_models.CouponRule.objects.get(
        name=coupon_rule_name).id
    post_data = {
        'member_id': json.dumps(member_ids),
        'coupon_rule_id': coupon_rule_id,
        'pre_person_count': pre_person_count
    }
    response = context.client.post(url, post_data)
    try:
        bdd_util.assert_api_call_success(response)
        return True
    except:
        context.response = response
        return False
Example #5
0
def belong_to(webapp_id, mpuser, query):
	query_hex = byte_to_hex(query)
	data_before_tow_days =  time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()-2*24*60*60))
	weixin_user_usernames = [weixin_user.username for weixin_user in WeixinUser.objects.filter(webapp_id=webapp_id, is_subscribed=True, nick_name__contains=query_hex)]
	session_ids = [session.id for session in Session.objects.filter(weixin_user__in=weixin_user_usernames,mpuser=mpuser)]
	
	return Message.objects.filter(mpuser=mpuser).filter(~Q(from_weixin_user_username=webapp_id),created_at__gt=data_before_tow_days).filter(Q(session_id__in=session_ids)|Q(content__icontains=query)).order_by('-created_at')
Example #6
0
def get_weixin_user_names_from(webapp_id, weixin_user_usernames, tag_id,
                               grade_id, nick_name):
    accounts = SocialAccount.objects.filter(webapp_id=webapp_id,
                                            openid__in=weixin_user_usernames)
    username2weixin_account = dict([(a.webapp_id + '_' + a.openid, a)
                                    for a in accounts])
    filter_data = {}
    filter_data['webapp_id'] = webapp_id
    if accounts:
        filter_data['account__in'] = accounts

    if grade_id != '-1':
        filter_data['member__grade_id'] = grade_id
    if tag_id != '-1':
        member_ids = [
            member_tag.member_id
            for member_tag in MemberHasTag.objects.filter(member_tag_id=tag_id)
        ]
        filter_data['member_id__in'] = member_ids
    if nick_name:
        query_hex = byte_to_hex(nick_name)
        filter_data['member__username_hexstr__icontains'] = query_hex

    member_has_accounts = MemberHasSocialAccount.objects.filter(**filter_data)
    now_weixin_user_usernames = [
        member_has_account.account.openid
        for member_has_account in member_has_accounts
    ]
    return now_weixin_user_usernames
Example #7
0
def step_impl(context, user):
    context.member_ids = []
    for raw in context.table:
        query_hex = byte_to_hex(raw['member_name'])
        member = Member.objects.get(webapp_id=context.webapp_id,
                                    username_hexstr=query_hex)
        context.member_ids.append(str(member.id))
Example #8
0
def update_member_from_weixin_api(member_id, webapp_id):
    social_account = MemberHasSocialAccount.objects.filter(
        member_id=member_id)[0].account
    #SocialAccount.objects.get(id=social_account_id)
    user_profile = account_models.UserProfile.objects.get(
        webapp_id=social_account.webapp_id)
    social_account_info = get_social_account_info(social_account, user_profile)
    #member_grade = MemberGrade.get_default_grade(social_account.webapp_id)
    sex = 0
    if social_account_info:
        member_nickname = social_account_info.nickname if social_account_info else ''
        if isinstance(member_nickname, unicode):
            member_nickname_str = member_nickname.encode('utf-8')
        else:
            member_nickname_str = member_nickname
        username_hexstr = byte_to_hex(member_nickname_str)

        if not username_hexstr:
            username_hexstr = ''
        sex = social_account_info.sex
        if sex == '' or sex == None:
            sex = 0
        Member.objects.filter(id=member_id).update(
            user_icon=social_account_info.head_img,
            update_time=datetime.now(),
            username_hexstr=username_hexstr,
            #is_subscribed=social_account_info.is_subscribed,
            city=social_account_info.city,
            province=social_account_info.province,
            country=social_account_info.country,
            sex=sex,
        )

    create_member_info(member_id, '', sex)
	def get_datas(request):
		name = request.GET.get('participant_name', '')
		webapp_id = request.user_profile.webapp_id
		member_ids = []
		if name:
			hexstr = byte_to_hex(name)
			members = member_models.Member.objects.filter(webapp_id=webapp_id,username_hexstr__contains=hexstr)
			member_ids = [member.id for member in members]

		start_time = request.GET.get('start_time', '')
		end_time = request.GET.get('end_time', '')
		__STRIPPER_TAG__
		params = {'belong_to':request.GET['id']}
		if name:
			params['webapp_user_id__in'] = member_ids
		if start_time:
			params['created_at__gte'] = start_time
		if end_time:
			params['created_at__lte'] = end_time
		datas = app_models.{{resource.item_class_name}}.objects(**params).order_by('-id')	
		__STRIPPER_TAG__
		#进行分页
		count_per_page = int(request.GET.get('count_per_page', COUNT_PER_PAGE))
		cur_page = int(request.GET.get('page', '1'))
		pageinfo, datas = paginator.paginate(datas, cur_page, count_per_page, query_string=request.META['QUERY_STRING'])
		__STRIPPER_TAG__
		return pageinfo, datas
def step_impl(context, webapp_user_name, shared_webapp_user_name):
    webapp_owner_id = context.webapp_owner_id
    user = User.objects.get(id=webapp_owner_id)
    openid = "%s_%s" % (webapp_user_name, user.username)
    member = member_api.get_member_by_openid(openid, context.webapp_id)
    followed_member = Member.objects.get(
        username_hexstr=byte_to_hex(shared_webapp_user_name))
    if member:
        new_url = url_helper.remove_querystr_filed_from_request_path(
            context.shared_url, 'fmt')
        new_url = url_helper.remove_querystr_filed_from_request_path(
            new_url, 'opid')
        context.shared_url = "%s&fmt=%s" % (new_url, followed_member.token)
    response = context.client.get(context.shared_url)
    if response.status_code == 302:
        print('[info] redirect by change fmt in shared_url')
        redirect_url = bdd_util.nginx(response['Location'])
        context.last_url = redirect_url
        response = context.client.get(bdd_util.nginx(redirect_url))
    else:
        print('[info] not redirect')
        context.last_url = context.shared_url
    context.api_response = __get_red_packet_informations(
        context, webapp_owner_id, context.red_packet_rule_id, openid,
        context.page_owner_member_id).content
    print('context.api_response')
    print(context.api_response)
Example #11
0
def __fill_member_info(context, username, openid):
	context.webapp_user = None
	context.member = None
	context.social_account = None

	#获得social_account
	social_account = SocialAccount.objects.get(openid=openid)
	relation = MemberHasSocialAccount.objects.get(account_id=social_account.id, webapp_id=context.webapp_id)

	#获得member
	member = Member.objects.get(id=relation.member_id)
	#由于mode=='develop'或者social account的is_for_test=True,导致member中的username都是'预览'
	#这里要修复username_hexstr
	from utils.string_util import byte_to_hex
	if isinstance(username, unicode):
		member_nickname_str = username.encode('utf-8')
	else:
		member_nickname_str = username
	username_hexstr = byte_to_hex(member_nickname_str)
	if member.username_hexstr != username_hexstr:
		Member.objects.filter(id=member.id).update(username_hexstr=username_hexstr)
		member.username_hexstr = username_hexstr

	#获得webapp_user
	if WebAppUser.objects.filter(member_id=member.id, webapp_id=context.webapp_id).filter(~Q(member_id=0)).count() > 0:
		webapp_user = WebAppUser.objects.filter(member_id=member.id, webapp_id=context.webapp_id).filter(~Q(member_id=0))[0]

	webapp_user = WebAppUser.objects.filter(member_id=member.id, webapp_id=context.webapp_id)[0]

	#填充context
	context.webapp_user = webapp_user
	context.member = member
	context.social_account = social_account
Example #12
0
def _get_member_info(context, member):
    query_hex = byte_to_hex(member)
    member_id = Member.objects.get(webapp_id=context.webapp_id,
                                   username_hexstr=query_hex).id
    context.member_id = member_id
    url = "/member/detail/?id=%s" % str(member_id)
    response = context.client.get(url)
    return response
def step_impl(context, user, vip_name, status):
    member_name = byte_to_hex(vip_name)
    bing_member_id = Member.objects.filter(
        username_hexstr__contains=member_name)[0].id
    qrcode = ChannelDistributionQrcodeSettings.objects.filter(
        bing_member_id=bing_member_id)
    if status == u"正在返现":
        qrcode.update(status=2)
def step_impl(context, user, member_A, member_B):
	user =  __get_user(user)
	user_profile = user.get_profile()

	try:
		member_nickname_str_a = member_A.encode('utf-8')
		member_nickname_str_b = member_B.encode('utf-8')
	except:
		member_nickname_str_a = member_A
		member_nickname_str_b = member_B

	username_hexstr_a = byte_to_hex(member_nickname_str_a)
	username_hexstr_b = byte_to_hex(member_nickname_str_b)

	member_a = Member.objects.filter(username_hexstr=username_hexstr_a, webapp_id=user_profile.webapp_id)[0]
	account_a  = MemberHasSocialAccount.objects.filter(member=member_a)[0].account

	member_b = Member.objects.filter(username_hexstr=username_hexstr_b, webapp_id=user_profile.webapp_id)[0]
	account_b  = MemberHasSocialAccount.objects.filter(member=member_b)[0].account

	content = json.loads(context.text)

	data_a = content['member_a']
	data_b = content['member_b']

	post_data_a = {
		'number': data_a['number'],
		'captcha': data_a['captcha'],
		'member_id': member_a.id
	}

	post_data_b = {
		'number': data_b['number'],
		'captcha': data_b['captcha'],
		'member_id': member_b.id
	}

	response = context.client.post('/apps/shengjing/user_center/api/record_binding_phone/', post_data_a)
	context.tc.assertEquals(1, ShengjingBindingMember.objects.filter(member_id=member_a.id, phone_number=post_data_a['number'], captcha=post_data_a['captcha'], webapp_id=user_profile.webapp_id).count())
	if ShengjingBindingMember.objects.filter(member_id=member_a.id, phone_number=post_data_a['number'], captcha=post_data_a['captcha'], webapp_id=user_profile.webapp_id).count() > 0:
		binding_memnber = ShengjingBindingMember.objects.filter(member_id=member_a.id, phone_number=post_data_a['number'], captcha=post_data_a['captcha'], webapp_id=user_profile.webapp_id)[0]
		ShengjingBindingMemberInfo.objects.create(binding=binding_memnber,name=member_a.username_hexstr,status=1)

	context.client.post('/apps/shengjing/user_center/api/record_binding_phone/', post_data_b)
	context.tc.assertEquals(1, ShengjingBindingMember.objects.filter(member_id=member_b.id, phone_number=post_data_b['number'], captcha=post_data_b['captcha'], webapp_id=user_profile.webapp_id).count())
def step_impl(context, user, time):
    user = byte_to_hex(user)
    member_id = Member.objects.filter(username_hexstr__contains=user)[0].id
    qrcode = ChannelDistributionQrcodeSettings.objects.filter(
        bing_member_id=member_id)
    if qrcode[0].commission_return_standard  <= qrcode[0].will_return_reward \
     and  not qrcode[0].extraction_money :
        qrcode.update(status=1,
                      commit_time=time,
                      extraction_money=F('will_return_reward'),
                      is_new=True)
Example #16
0
def get_records(request):
    """
	获取中奖记录

	举例:http://weapp.weizoom.com/market_tools/lottery/api/records/get/?version=1&sort_attr=-created_at&count_per_page=15&page=1&enable_paginate=1&timestamp=1434434567924

	"""
    user = request.user.get_profile()
    lotteries = Lottery.objects.filter(owner=request.user, is_deleted=False)
    lottery_ids = [l.id for l in lotteries]

    #处理搜索
    query = request.GET.get('query', None)
    if query:
        query_hex = byte_to_hex(query)
        records = LotteryRecord.objects.filter(lottery_id__in=lottery_ids,
                                               prize_level__gt=0,
                                               prize_number=query_hex)
    else:
        records = LotteryRecord.objects.filter(lottery_id__in=lottery_ids,
                                               prize_level__gt=0)

    #进行分页
    count_per_page = int(request.GET.get('count_per_page', 15))
    cur_page = int(request.GET.get('page', '1'))
    pageinfo, records = paginator.paginate(
        records,
        cur_page,
        count_per_page,
        query_string=request.META['QUERY_STRING'])

    response = create_response(200)

    response.data.items = []
    for record in records:
        one_record = JsonResponse()
        one_record.username = record.member.username_for_html
        one_record.user_id = record.member.id
        one_record.prize_number = record.prize_number
        one_record.prize_money = str(record.prize_money)
        one_record.lottery_name = record.lottery_name
        one_record.prize_name = record.prize_name
        one_record.prize_type = record.prize_type
        one_record.prize_detail = record.prize_detail
        one_record.created_at = record.created_at.strftime('%Y-%m-%d')
        one_record.awarded_at = record.awarded_at.strftime('%Y-%m-%d')
        one_record.is_awarded = record.is_awarded
        one_record.id = record.id
        response.data.items.append(one_record)

    response.data.pageinfo = paginator.to_dict(pageinfo)
    response.data.sortAttr = request.GET.get('sort_attr', '-created_at')

    return response.get_response()
Example #17
0
def update_member_basic_info(user_profile, member, oauth_create=False):
    if member.is_for_test:
        return
    #系统网络问题会员信息更新不下了 改正
    today = datetime.now()
    # today_str = datetime.today().strftime('%Y-%m-%d')
    # if member.update_time.strftime("%Y-%m-%d") == today_str:
    # 	return None

    if user_profile is None:
        return None

    social_account = get_member_binded_social_account(member)
    social_account_info = get_social_account_info(social_account, user_profile,
                                                  False)
    if social_account_info:
        member.user_icon = social_account_info.head_img

        if settings.MODE == 'develop' and social_account_info.nickname == u'预览':
            pass
        else:
            if social_account_info.nickname:
                member.username = social_account_info.nickname

        member_nickname = social_account_info.nickname if social_account_info else ''
        if member_nickname:
            if isinstance(member_nickname, unicode):
                member_nickname_str = member_nickname.encode('utf-8')
            else:
                member_nickname_str = member_nickname
            username_hexstr = byte_to_hex(member_nickname_str)
        else:
            username_hexstr = member.username_hexstr

        if social_account_info.is_subscribed:
            Member.objects.filter(id=member.id).update(
                user_icon=member.user_icon,
                update_time=today,
                username_hexstr=username_hexstr,
                is_subscribed=social_account_info.is_subscribed,
                city=social_account_info.city,
                province=social_account_info.province,
                country=social_account_info.country,
                sex=social_account_info.sex,
                status=1)
        else:
            if oauth_create:
                status = NOT_SUBSCRIBED  #未关注
            else:
                status = CANCEL_SUBSCRIBED  #取消关注
            Member.objects.filter(id=member.id).update(
                update_time=today,
                is_subscribed=social_account_info.is_subscribed,
                status=status)
Example #18
0
def get_records(request):
    user = request.user.get_profile()
    red_envelopes = RedEnvelope.objects.filter(owner=request.user,
                                               is_deleted=False)
    red_envelope_ids = [r.id for r in red_envelopes]

    #处理搜索
    query = request.GET.get('query', None)
    if query:
        query_hex = byte_to_hex(query)
        records = RedEnvelopeRecord.objects.filter(
            red_envelope_id__in=red_envelope_ids,
            prize_level__gt=0,
            prize_number=query_hex)
    else:
        records = RedEnvelopeRecord.objects.filter(
            red_envelope_id__in=red_envelope_ids, prize_level__gt=0)
    #进行分页
    count_per_page = int(request.GET.get('count_per_page', 15))
    cur_page = int(request.GET.get('page', '1'))
    pageinfo, records = paginator.paginate(
        records,
        cur_page,
        count_per_page,
        query_string=request.META['QUERY_STRING'])

    response = create_response(200)

    response.data.items = []
    for record in records:
        member = WebAppUser.get_member_by_webapp_user_id(record.webapp_user_id)
        one_record = JsonResponse()
        if member:
            one_record.username = member.username_for_html
            one_record.user_id = member.id
        else:
            one_record.username = u'未知'
            one_record.user_id = 0
        one_record.prize_number = record.prize_number
        one_record.red_envelope_name = record.red_envelope_name
        one_record.prize_money = str(record.prize_money)
        one_record.prize_name = record.prize_name
        one_record.prize_type = record.prize_type
        one_record.prize_detail = record.prize_detail
        one_record.created_at = record.created_at.strftime('%Y-%m-%d')
        one_record.awarded_at = record.awarded_at.strftime('%Y-%m-%d')
        one_record.is_awarded = record.is_awarded
        one_record.id = record.id
        response.data.items.append(one_record)

    response.data.pageinfo = paginator.to_dict(pageinfo)
    response.data.sortAttr = request.GET.get('sort_attr', '-created_at')

    return response.get_response()
Example #19
0
def contains_emojicons(unicode_or_utf8str_with_decoded_emojicons,
                       is_hex_str=False):
    global ALL_EMOJICONS_UTF8_PRREFIX_SET

    if unicode_or_utf8str_with_decoded_emojicons is None:
        return False

    if isinstance(unicode_or_utf8str_with_decoded_emojicons, unicode):
        utf8str_with_decoded_emojicons = unicode_or_utf8str_with_decoded_emojicons.encode(
            'utf-8')
    else:
        utf8str_with_decoded_emojicons = unicode_or_utf8str_with_decoded_emojicons

    __build_all_emojicons_utf8_prefix_set()

    if is_hex_str:
        hex_str = utf8str_with_decoded_emojicons  #E59388681020
    else:
        hex_str = byte_to_hex(utf8str_with_decoded_emojicons)  #E59388681020

    if len(utf8str_with_decoded_emojicons) <= 2:
        return False

    if len(hex_str) % 2 != 0:
        watchdog_warning(u"hex_str长度不正确,hex_str:{}".format(hex_str))

        return False

    max_index = len(hex_str)

    part_start_index = 0
    emojicon_utf8_part_index = -1
    for index in xrange(0, max_index, 2):
        if emojicon_utf8_part_index == -1:
            maybe_prefix = hex_str[index:index + 2]
        else:
            maybe_prefix = hex_str[emojicon_utf8_part_index:index + 2]

        if not ALL_EMOJICONS_UTF8_PRREFIX_SET.has_key(maybe_prefix):
            if index > 2 and emojicon_utf8_part_index >= 0:
                maybe_emojiconutf8 = hex_str[emojicon_utf8_part_index:index]
                if UTF82EMOJIICONS.has_key(maybe_emojiconutf8):
                    return True
        else:
            if emojicon_utf8_part_index == -1:
                emojicon_utf8_part_index = index

    if emojicon_utf8_part_index != -1:
        maybe_emojiconutf8 = hex_str[emojicon_utf8_part_index:]
        if UTF82EMOJIICONS.has_key(maybe_emojiconutf8):
            return True

    return False
Example #20
0
def step_impl(context, user, phone_number):
    username_hexstr = byte_to_hex(user)
    member_id = Member.objects.get(username_hexstr=username_hexstr).id
    member_info = MemberInfo.objects.filter(member_id=member_id)
    if member_info.count() > 0:
        member_info[0].update(phone_number=phone_number, is_binded=True)
    else:
        MemberInfo.objects.create(member_id=member_id,
                                  phone_number=phone_number,
                                  is_binded=True,
                                  sex=0,
                                  name=user)
def step_tmpl(context, webapp_user_name, group_owner_name, group_record_name):
    webapp_owner_id = context.webapp_owner_id
    activity_id = __get_group_rule_id(group_record_name)
    user = User.objects.get(id=webapp_owner_id)
    openid = "%s_%s" % (webapp_user_name, user.username)
    fid = Member.objects.get(username_hexstr=byte_to_hex(group_owner_name)).id
    response = __get_into_group_pages(context, webapp_owner_id, activity_id,
                                      openid, fid)
    product_id = response.context['product_id']
    group_relation_id = __get_group_relation_id(activity_id, fid)
    __join_group(context, activity_id, fid, product_id, group_relation_id,
                 openid)
def step_impl(context, user, qrcode_name):
    expected = json.loads(context.text)
    qrcode = ChannelDistributionQrcodeSettings.objects.get(
        bing_member_title=qrcode_name)

    distribution_rewards_type = {u'无': 0, u'佣金': 1}

    name = expected['relation_member']
    name = byte_to_hex(name)
    bing_member_id = Member.objects.filter(
        username_hexstr__contains=name)[0].id
    group_id = MemberTag.objects.get(webapp_id=context.webapp_id,
                                     name=expected['tags']).id
    if expected['prize_type'] == u"无":
        prize_info = '{"id":-1,"name":"non-prize","type":"无奖励"}'
    elif expected['prize_type'] == u'优惠券':
        coupon_rule_id = CouponRule.objects.filter(
            name=expected['coupon']).order_by('-id')[0].id
        prize_info = '{"id":%s,"name":"%s","type":"优惠券"}' % (
            coupon_rule_id, expected['coupon'])
    elif expected['prize_type'] == u'积分':
        prize_info = '{"id":%s,"name":"_score-prize_","type":"积分"}' % expected[
            'integral']

    reply_type_type = {u'文字': 1, u'图文': 2}
    # 图文
    reply_detail = ''
    reply_material_id = 0
    if reply_type_type[expected['reply_type']] == 1:
        reply_detail = expected['scan_code_reply']
    elif reply_type_type[expected['reply_type']] == 2:
        reply_material_id = 1

    params = {}
    params['qrcode_id'] = qrcode.id
    params['bing_member_title'] = expected['code_name']
    params['bing_member_id'] = bing_member_id
    params['distribution_rewards'] = distribution_rewards_type[
        expected['distribution_prize_type']]
    params['commission_rate'] = expected['commission_return_rate']
    params['minimun_return_rate'] = expected['minimum_cash_discount']
    params['commission_return_standard'] = expected[
        'commission_return_standard']
    params['return_standard'] = expected['setlement_time']
    params['group_id'] = group_id
    params['prize_info'] = prize_info
    params['reply_type'] = reply_type_type[expected['reply_type']]
    params['reply_material_id'] = reply_material_id
    params['reply_detail'] = reply_detail
    params['create_time'] = expected['create_time']

    response = context.client.post('/new_weixin/api/channel_distribution/',
                                   params)
Example #23
0
def step_impl(context, webapp_user_name, webapp_owner_name, token):
    if token == 'uuid':
        uuid = context.client.cookies['uuid'].value
        webapp_user_count = WebAppUser.objects.filter(token=uuid).count()
    elif token == 'mt':
        username = byte_to_hex(webapp_user_name)
        webapp_id = bdd_util.get_webapp_id_for(webapp_owner_name)
        member = Member.objects.get(username_hexstr=username,
                                    webapp_id=webapp_id)
        webapp_user_count = WebAppUser.objects.filter(
            token=member.token).count()

    bdd_util.tc.assertEquals(1, webapp_user_count)
Example #24
0
def step_impl(context, webapp_user, member):
    url = '/member/api/update_member_tag_or_grade/'
    query_hex = byte_to_hex(member)
    member_id = Member.objects.get(webapp_id=context.webapp_id,
                                   username_hexstr=query_hex).id
    data = json.loads(context.text)
    grade_name = data['member_rank']
    grade_id = MemberGrade.objects.get(webapp_id=context.webapp_id,
                                       name=grade_name).id

    args = {'type': 'grade', 'checked_ids': grade_id, 'member_id': member_id}
    response = context.client.post(url, args)
    bdd_util.assert_api_call_success(response)
def step_impl(context, user, member_A, member_B):
	context.client = bdd_util.login(user)
	client = context.client

	user_profile = __get_user(user).get_profile()

	try:
		member_nickname_str_a = member_A.encode('utf-8')
		member_nickname_str_b = member_B.encode('utf-8')
	except:
		member_nickname_str_a = member_A
		member_nickname_str_b = member_B

	username_hexstr_a = byte_to_hex(member_nickname_str_a)
	username_hexstr_b = byte_to_hex(member_nickname_str_b)
	context.tc.assertEquals(1,  Member.objects.filter(username_hexstr=username_hexstr_a, webapp_id=user_profile.webapp_id).count())
	context.tc.assertEquals(1,  Member.objects.filter(username_hexstr=username_hexstr_b, webapp_id=user_profile.webapp_id).count())
	member_A = Member.objects.filter(username_hexstr=username_hexstr_a, webapp_id=user_profile.webapp_id)[0]
	member_B = Member.objects.filter(username_hexstr=username_hexstr_b, webapp_id=user_profile.webapp_id)[0]
	if MemberFollowRelation.objects.filter(member_id=member_A.id, follower_member_id=member_B.id, is_fans=True).count() == 0:
		MemberFollowRelation.objects.create(member_id=member_A.id, follower_member_id=member_B.id, is_fans=True)
		Member.objects.filter(id=member_A.id).update(fans_count=F(fans_count)+1)
def step_impl(context, user, member_name, money):

    logging.info(
        serialize('json', ChannelDistributionQrcodeHasMember.objects.all()))
    member_name = byte_to_hex(member_name)
    bing_member_id = Member.objects.filter(
        username_hexstr__contains=member_name)[0].id
    qrcode = ChannelDistributionQrcodeSettings.objects.get(
        bing_member_id=bing_member_id)

    data = {'status': 3, 'qrcode_id': qrcode.id}
    response = context.client.post(
        '/new_weixin/api/channel_distribution_change_status/', data)
    print(response)
Example #27
0
def step_impl(context, webapp_user, member):
    url = '/member/api/integral/'
    query_hex = byte_to_hex(member)
    member_id = Member.objects.get(webapp_id=context.webapp_id,
                                   username_hexstr=query_hex).id
    data = json.loads(context.text)

    args = {
        'integral': data['integral'],
        'reason': data['reason'],
        'member_id': member_id
    }
    response = context.client.post(url, args)
    bdd_util.assert_api_call_success(response)
def step_impl(context, user,member_B):
	user =  __get_user(user)
	user_profile = user.get_profile()
	content = json.loads(context.text)
	member_A = 'A'
	try:
		member_nickname_str_a = member_A.encode('utf-8')
		member_nickname_str_b = member_B.encode('utf-8')
	except:
		member_nickname_str_a = member_A
		member_nickname_str_b = member_B

	username_hexstr_a = byte_to_hex(member_nickname_str_a)
	username_hexstr_b = byte_to_hex(member_nickname_str_b)

	member_a = Member.objects.filter(username_hexstr=username_hexstr_a, webapp_id=user_profile.webapp_id)[0]
	account_a  = MemberHasSocialAccount.objects.filter(member=member_a)[0].account

	member_b = Member.objects.filter(username_hexstr=username_hexstr_b, webapp_id=user_profile.webapp_id)[0]
	account_b  = MemberHasSocialAccount.objects.filter(member=member_b)[0].account

	member_b = Member.objects.filter(username_hexstr=username_hexstr_b, webapp_id=user_profile.webapp_id)[0]
	account_b  = MemberHasSocialAccount.objects.filter(member=member_b)[0].account
	binding_member = ShengjingBindingMember.objects.filter(member_id=member_b.id)[0]

	name = content['name']
	position = content['position']
	company = content['company']
	post_data = {
		'name': name,
		'position': position,
		'company': company,
		'binding_member_id': binding_member.id
	}

	url = '/workbench/jqm/preview/?module=customerized_apps:shengjing:user_center&model=bingding_info&action=get&workspace_id=mall&webapp_owner_id=%s&sct=%s' % (user.id, account_b.token)
	response =  context.client.post(bdd_util.nginx(url), post_data)
Example #29
0
    def _handle_weixin_user(self, user_profile, weixin_user_name,
                            is_from_simulator):
        weixin_account_token = get_token_for(user_profile.webapp_id,
                                             weixin_user_name,
                                             is_from_simulator)
        existed_weixin_users = WeixinUser.objects.filter(
            username=weixin_user_name)

        if existed_weixin_users.count() == 0:  #不存在时创建
            weixin_user_icon = ''
            weixin_user_nick_name = ''
            if weixin_user_name == 'zhouxun':
                weixin_user_nick_name = u'周迅'
                weixin_user_icon = '/static/img/zhouxun_43.jpg'
            elif weixin_user_name == 'yangmi':
                weixin_user_nick_name = u'杨幂'
                weixin_user_icon = '/static/img/yangmi_43.jpg'
            else:
                pass
            try:
                return WeixinUser.objects.create(
                    username=weixin_user_name,
                    webapp_id=user_profile.webapp_id,
                    nick_name=byte_to_hex(weixin_user_nick_name),
                    weixin_user_icon=weixin_user_icon)
            except:
                try:
                    return WeixinUser.objects.get(username=weixin_user_name)
                except:
                    return WeixinUser.objects.create(
                        username=weixin_user_name,
                        webapp_id=user_profile.webapp_id,
                        nick_name=byte_to_hex(weixin_user_nick_name),
                        weixin_user_icon=weixin_user_icon)

        else:
            return existed_weixin_users[0]
Example #30
0
def get_member_by_username(username, webapp_id):
    """
	获取username对应的会员
	"""
    from utils.string_util import byte_to_hex
    if isinstance(username, unicode):
        member_nickname_str = username.encode('utf-8')
    else:
        member_nickname_str = username
    username_hexstr = byte_to_hex(member_nickname_str)
    try:
        return member_models.Member.objects.get(
            webapp_id=webapp_id, username_hexstr=username_hexstr)
    except:
        return None