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
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)
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
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')
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
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))
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)
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
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)
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×tamp=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()
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)
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()
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
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)
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)
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)
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)
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]
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