Esempio n. 1
0
    def api_post(request):
        """
		响应POST
		"""
        data = request_util.get_fields_to_be_save(request)
        record_id = request.POST['id']
        update_data = {}
        update_fields = set([
            'name', 'start_time', 'end_time', 'expend', 'allow_repeat',
            'lottery_code_count', 'delivery', 'chance', 'prize',
            'share_description', 'homepage_image', 'exlottery_bg_image'
        ])
        for key, value in data.items():
            if key in update_fields:
                update_data['set__' + key] = value

        record = app_models.Exlottery.objects(id=record_id)
        record.update_one(**update_data)
        if record.count() > 0:
            record = record.first()
            if u'未开始' == record.status_text:
                generate_exlottery_code(request.manager.id, record_id,
                                        data['lottery_code_count'])

        response = create_response(200)
        return response.get_response()
Esempio n. 2
0
	def api_post(request):
		"""
		响应POST
		"""
		data = request_util.get_fields_to_be_save(request)
		# request = request.POST['target']
		update_data = {}
		update_fields = set(['name',
							'start_time',
							'end_time',
							'group_dict',
							'status',
							'product_id',
							'product_img',
							'product_name',
							'product_price',
							'product_socks',
							'product_sales',
							'product_usercode',
							'product_create_at',
							'rules',
							'material_image',
							'share_description'])
		for key, value in data.items():
			# print 'key:',key
			# print 'value:',value
			if key in update_fields:
				update_data['set__'+key] = value
		app_models.Group.objects(id=request.POST['id']).update(**update_data)

		response = create_response(200)
		return response.get_response()
Esempio n. 3
0
    def api_post(request):
        """
		响应POST
		"""
        data = request_util.get_fields_to_be_save(request)
        data['qrcode'] = json.loads(request.POST['qrcode'])

        update_data = {}
        update_fields = set([
            'name', 'start_time', 'end_time', 'timing', 'desc',
            'reply_content', 'material_image', 'qrcode'
        ])
        # update_fields = data.keys()
        for key, value in data.items():
            if key in update_fields:
                if key == "timing":
                    value = bool2Bool(value)
                update_data['set__' + key] = value
                print key, value, "$$$$$$$$$"
        app_models.PowerMe.objects(id=request.POST['id']).update(**update_data)

        #更新后清除缓存
        cache_key = 'apps_powerme_%s_html' % request.POST['id']
        delete_cache(cache_key)

        response = create_response(200)
        return response.get_response()
Esempio n. 4
0
    def api_post(request):
        """
		响应POST
		"""
        data = request_util.get_fields_to_be_save(request)
        data = add_extra_data(data, request.POST)
        update_data = {}
        update_fields = set([
            'name', 'start_time', 'end_time', 'allow_repeat', 'expend',
            'delivery', 'delivery_setting', 'limitation', 'chance', 'type',
            'prize'
        ])
        for key, value in data.items():
            if key in update_fields:
                update_data['set__' + key] = value
        app_models.Egg.objects(id=request.POST['id']).update(**update_data)

        #更新后清除缓存
        # cache_key = 'apps_egg_%s_noprizecount' % request.POST['id']
        # delete_cache(cache_key)
        cache_key = "apps_egg_%s_*" % request.POST['id']
        delete_pattern(cache_key)

        response = create_response(200)
        return response.get_response()
Esempio n. 5
0
    def api_put(request):
        """
		响应PUT
		"""
        member_id = request.member.id
        record_id = request.POST['belong_to']
        eventParticipance = app_models.eventParticipance.objects.filter(
            belong_to=record_id, member_id=member_id)
        if eventParticipance.count() > 0:
            response = create_response(500)
            response.data = u"您已参加过该活动!"
            return response.get_response()
        else:
            data = request_util.get_fields_to_be_save(request)
            event_participance = app_models.eventParticipance(**data)
            event_participance.save()

            #调整参与数量
            app_models.event.objects(id=record_id).update(
                **{"inc__participant_count": 1})

            #活动奖励
            prize = data.get('prize', None)
            error_msg = None
            if prize:
                prize_type = prize['type']
                if prize_type == 'no_prize':
                    pass  #不进行奖励
                elif prize_type == 'integral':
                    if not request.member:
                        pass  #非会员,不进行积分奖励
                    else:
                        value = int(prize['data'])
                        integral_api.increase_member_integral(
                            request.member, value, u'参与活动奖励积分')
                elif prize_type == 'coupon':
                    if not request.member:
                        pass  #非会员,不进行优惠券发放
                    else:
                        coupon_rule_id = int(prize['data']['id'])
                        coupon, msg, _ = get_consume_coupon(
                            request.webapp_owner_id, 'event', record_id,
                            coupon_rule_id, request.member.id)
                        if not coupon:
                            error_msg = msg

            data = json.loads(event_participance.to_json())
            data['id'] = data['_id']['$oid']
            if error_msg:
                data['error_msg'] = error_msg
            response = create_response(200)
            response.data = data
            return response.get_response()
Esempio n. 6
0
    def api_put(request):
        """
		响应PUT
		"""
        data = request_util.get_fields_to_be_save(request)
        scanlottery = app_models.Scanlottery(**data)
        scanlottery.save()

        data = json.loads(scanlottery.to_json())
        data['id'] = data['_id']['$oid']
        response = create_response(200)
        response.data = data
        return response.get_response()
Esempio n. 7
0
    def api_put(request):
        """
		响应PUT
		"""
        data = request_util.get_fields_to_be_save(request)
        vote = app_models.vote(**data)
        vote.save()

        data = json.loads(vote.to_json())
        data['id'] = data['_id']['$oid']
        response = create_response(200)
        response.data = data
        return response.get_response()
Esempio n. 8
0
    def api_post(request):
        """
		响应POST
		"""
        data = request_util.get_fields_to_be_save(request)
        update_data = {}
        update_fields = set(['name', 'image', 'start_time', 'end_time'])
        for key, value in data.items():
            if key in update_fields:
                update_data['set__' + key] = value
        app_models.vote.objects(id=request.POST['id']).update(**update_data)

        response = create_response(200)
        return response.get_response()
Esempio n. 9
0
    def api_put(request):
        """
		响应PUT
		"""
        data = request_util.get_fields_to_be_save(request)
        survey = app_models.survey(**data)
        survey.save()

        data = json.loads(survey.to_json())
        data['id'] = data['_id']['$oid']
        # if error_msg:
        # 	data['error_msg'] = error_msg
        response = create_response(200)
        response.data = data
        return response.get_response()
Esempio n. 10
0
    def api_put(request):
        """
		响应PUT
		"""
        data = request_util.get_fields_to_be_save(request)
        feedback = app_models.feedback(**data)
        feedback.save()
        error_msg = None

        data = json.loads(feedback.to_json())
        data['id'] = data['_id']['$oid']
        if error_msg:
            data['error_msg'] = error_msg
        response = create_response(200)
        response.data = data
        return response.get_response()
Esempio n. 11
0
	def api_post(request):
		"""
		响应POST
		"""
		data = request_util.get_fields_to_be_save(request)
		data['permission'] = True if data['permission']=='1' else False
		data['is_limit_first_buy'] = True if data['is_limit_first_buy']=='1' else False
		data['is_limit_cash'] = True if data['is_limit_cash']=='1' else False

		update_data = {}
		update_fields = set(['name', 'start_time', 'end_time', 'permission', 'is_limit_first_buy', 'is_limit_cash', 'rebate_order_price', 'rebate_money', 'weizoom_card_id_from', 'weizoom_card_id_to', 'reply_type', 'reply_detail', 'reply_material_id'])
		for key, value in data.items():
			if key in update_fields:
				update_data['set__'+key] = value

		app_models.Rebate.objects(id=request.POST['id']).update(**update_data)

		weizoom_card_ids = data['weizoom_card_ids'].split(',')
		weizoom_card_passwords = data['weizoom_card_passwords'].split(',')

		cur_weizoom_cards = AppsWeizoomCard.objects(belong_to=request.POST['id'])
		cur_weizoom_card_ids = [cur_weizoom_card.weizoom_card_id for cur_weizoom_card in cur_weizoom_cards]
		need_add_weizoom_card_ids =  [ i for i in weizoom_card_ids if i not in cur_weizoom_card_ids ]

		if need_add_weizoom_card_ids != []:
			weizoom_card_id2password = {}
			index = 0
			for weizoom_card_id in weizoom_card_ids:
				if not weizoom_card_id2password.has_key(weizoom_card_id):
					weizoom_card_id2password[weizoom_card_id] = weizoom_card_passwords[index]
				else:
					weizoom_card_id2password[weizoom_card_id].append(weizoom_card_passwords[index])
				index += 1
			print(weizoom_card_id2password)
			for need_add_weizoom_card_id in need_add_weizoom_card_ids:
				weizoom_card_info = AppsWeizoomCard(
					belong_to = data['id'],
					weizoom_card_id = need_add_weizoom_card_id,
					weizoom_card_password = encrypt_password(weizoom_card_id2password[need_add_weizoom_card_id])
				)
				weizoom_card_info.save()

		#更新后清除缓存
		# cache_key = 'apps_rebate_%s_html' % request.POST['id']
		# delete_cache(cache_key)
		response = create_response(200)
		return response.get_response()
Esempio n. 12
0
    def api_post(request):
        """
		响应POST
		"""
        data = request_util.get_fields_to_be_save(request)
        update_data = {}
        update_data['set__status'] = app_models.MEMBER_STATUS['PASSED']
        if request.POST.get('ids'):
            ids = json.loads(request.POST['ids'])
            app_models.ShvoteParticipance.objects(id__in=ids).update(
                **update_data)
        elif request.POST.get('id'):
            id = request.POST['id']
            app_models.ShvoteParticipance.objects(id=id).update(**update_data)

        response = create_response(200)
        return response.get_response()
Esempio n. 13
0
    def api_put(request):
        """
		响应PUT
		"""
        data = request_util.get_fields_to_be_save(request)
        data = add_extra_data(data, request.POST)
        egg = app_models.Egg(**data)
        egg.save()
        error_msg = None

        data = json.loads(egg.to_json())
        data['id'] = data['_id']['$oid']
        if error_msg:
            data['error_msg'] = error_msg
        response = create_response(200)
        response.data = data
        return response.get_response()
Esempio n. 14
0
    def api_put(request):
        """
		响应PUT
		"""
        data = request_util.get_fields_to_be_save(request)
        scratch_participance = app_models.ScratchParticipance(**data)
        scratch_participance.save()
        error_msg = None

        #调整参与数量
        app_models.Scratch.objects(id=data['belong_to']).update(
            **{"inc__participant_count": 1})

        #活动奖励
        prize = data.get('prize', None)
        if prize:
            prize_type = prize['type']
            if prize_type == 'no_prize':
                pass  #不进行奖励
            elif prize_type == 'integral':
                if not request.member:
                    pass  #非会员,不进行积分奖励
                else:
                    value = int(prize['data'])
                    integral_api.increase_member_integral(
                        request.member, value, u'参与活动奖励积分')
            elif prize_type == 'coupon':
                if not request.member:
                    pass  #非会员,不进行优惠券发放
                else:
                    coupon_rule_id = int(prize['data']['id'])
                    # coupon, msg = mall_api.consume_coupon(request.webapp_owner_id, coupon_rule_id, request.member.id)
                    coupon, msg, _ = get_consume_coupon(
                        request.webapp_owner_id, 'scratch', data['belong_to'],
                        coupon_rule_id, request.member.id)
                    if not coupon:
                        error_msg = msg

        data = json.loads(scratch_participance.to_json())
        data['id'] = data['_id']['$oid']
        if error_msg:
            data['error_msg'] = error_msg
        response = create_response(200)
        response.data = data
        return response.get_response()
Esempio n. 15
0
    def api_put(request):
        """
		响应PUT
		"""
        data = request_util.get_fields_to_be_save(request)
        data['qrcode'] = json.loads(request.POST['qrcode'])

        powerme = app_models.PowerMe(**data)
        powerme.save()
        error_msg = None

        data = json.loads(powerme.to_json())
        data['id'] = data['_id']['$oid']
        if error_msg:
            data['error_msg'] = error_msg
        response = create_response(200)
        response.data = data
        return response.get_response()
Esempio n. 16
0
    def api_post(request):
        """
		响应POST
		"""
        data = request_util.get_fields_to_be_save(request)
        record_id = request.POST['id']
        update_data = {}
        update_fields = set(
            ['name', 'start_time', 'end_time', 'chance', 'prize'])
        for key, value in data.items():
            if key in update_fields:
                update_data['set__' + key] = value

        record = app_models.Scanlottery.objects(id=record_id)
        record.update_one(**update_data)

        response = create_response(200)
        return response.get_response()
Esempio n. 17
0
	def api_put(request):
		"""
		响应PUT
		"""
		data = request_util.get_fields_to_be_save(request)
		{{resource.lower_name}} = app_models.{{resource.class_name}}(**data)
		{{resource.lower_name}}.save()
		error_msg = None
		{% if resource.is_participance %}
		__STRIPPER_TAG__
		#调整参与数量
		app_models.{{resource.item_class_name}}.objects(id=data['belong_to']).update(**{"inc__participant_count":1})
		__STRIPPER_TAG__
		#活动奖励
		prize = data.get('prize', None)
		if prize:
			prize_type = prize['type']
			if prize_type == 'no_prize':
				pass #不进行奖励
			elif prize_type == 'integral':
				if not request.member:
					pass #非会员,不进行积分奖励
				else:
					value = int(prize['data'])
					integral_api.increase_member_integral(request.member, value, u'参与活动奖励积分')
			elif prize_type == 'coupon':
				if not request.member:
					pass #非会员,不进行优惠券发放
				else:
					coupon_rule_id = int(prize['data']['id'])
					coupon, msg = mall_api.consume_coupon(request.webapp_owner_id, coupon_rule_id, request.member.id)
					if not coupon:
						error_msg = msg
		{% endif %}
		__STRIPPER_TAG__
		data = json.loads({{resource.lower_name}}.to_json())
		data['id'] = data['_id']['$oid']
		if error_msg:
			data['error_msg'] = error_msg
		response = create_response(200)
		response.data = data
		return response.get_response()
Esempio n. 18
0
    def api_post(request):
        """
		响应POST
		"""
        data = request_util.get_fields_to_be_save(request)
        data['groups'] = json.loads(data['groups'])
        update_data = {}
        update_fields = set([
            'name', 'start_time', 'end_time', 'groups', 'description', 'rule',
            'votecount_per_one', 'share_image', 'advertisement'
        ])
        for key, value in data.items():
            if key in update_fields:
                update_data['set__' + key] = value
        app_models.Shvote.objects(id=request.POST['id']).update(**update_data)

        #更新后清除缓存
        cache_key = 'apps_shvote_%s_html' % request.POST['id']
        delete_cache(cache_key)

        response = create_response(200)
        return response.get_response()
Esempio n. 19
0
    def api_put(request):
        """
		响应PUT
		"""
        data = request_util.get_fields_to_be_save(request)
        exlottery = app_models.Exlottery(**data)
        exlottery.save()

        lottery_code_count = request.POST.get('lottery_code_count', 0)
        owner_id = request.manager.id
        generate_exlottery_code(owner_id, str(exlottery.id),
                                lottery_code_count)

        error_msg = None

        data = json.loads(exlottery.to_json())
        data['id'] = data['_id']['$oid']
        if error_msg:
            data['error_msg'] = error_msg
        response = create_response(200)
        response.data = data
        return response.get_response()
Esempio n. 20
0
    def api_put(request):
        """
		响应PUT
		"""
        data = request_util.get_fields_to_be_save(request)
        data['qrcode'] = json.loads(request.POST['qrcode'])
        if request.POST['red_packet_type'] == 'random':
            data['random_random_number_list'] = create_pop_list(
                data['random_total_money'],
                data['random_packets_number'])  #拼手气红包随机数List
            data['red_packet_remain_amount'] = data['random_packets_number']
        else:
            data['red_packet_remain_amount'] = data['regular_packets_number']
        red_packet = app_models.RedPacket(**data)
        red_packet.save()
        error_msg = None

        data = json.loads(red_packet.to_json())
        data['id'] = data['_id']['$oid']
        if error_msg:
            data['error_msg'] = error_msg

        #并发问题临时解决方案 ---start
        # control_data = {}
        # control_data['belong_to'] = data['id']
        # control_data['red_packet_amount'] = 0
        # control = app_models.RedPacketAmountControl(**control_data)
        # control.save()
        # default_data = {}
        # default_data['belong_to'] = data['id']
        # default_data['red_packet_amount'] = int(red_packet_amount) + 1
        # default = app_models.RedPacketAmountControl(**default_data)
        # default.save()
        #并发问题临时解决方案 ---end

        response = create_response(200)
        response.data = data
        return response.get_response()
Esempio n. 21
0
	def api_put(request):
		"""
		响应PUT
		"""
		data = request_util.get_fields_to_be_save(request)
		data['permission'] = True if data['permission']=='1' else False
		data['is_limit_first_buy'] = True if data['is_limit_first_buy']=='1' else False
		data['is_limit_cash'] = True if data['is_limit_cash']=='1' else False
		weizoom_card_ids = data['weizoom_card_ids'].split(',')
		weizoom_card_passwords = data['weizoom_card_passwords'].split(',')
		rebate = app_models.Rebate(**data)
		ticket_id = app_models.Rebate.objects.all().count() + 10001 #ID从1W开始计算,为了防止跟带参数二维码重复
		rebate.ticket_id = ticket_id
		rebate.save()
		data = json.loads(rebate.to_json())
		data['id'] = data['_id']['$oid']
		index = 0
		for weizoom_card_id in weizoom_card_ids:
			weizoom_card_info = AppsWeizoomCard(
				owner_id = request.manager.id,
				belong_to = data['id'],
				weizoom_card_id = weizoom_card_id,
				weizoom_card_password = encrypt_password(weizoom_card_passwords[index])
			)
			weizoom_card_info.save()
			index += 1

		if settings.MODE != 'develop':
			mp_user = get_binding_weixin_mpuser(request.manager)
			mpuser_access_token = get_mpuser_accesstoken(mp_user)
			weixin_api = get_weixin_api(mpuser_access_token)
			try:
				qrcode_ticket = weixin_api.create_qrcode_ticket(ticket_id, QrcodeTicket.PERMANENT)
				ticket = qrcode_ticket.ticket
			except Exception, e:
				print 'get qrcode_ticket fail:', e
				ticket = ''
Esempio n. 22
0
    def api_post(request):
        """
		响应POST
		"""
        data = request_util.get_fields_to_be_save(request)
        data['qrcode'] = json.loads(request.POST['qrcode'])
        pagestore = pagestore_manager.get_pagestore('mongo')
        project_id = request.GET.get('project_id', 0)
        _, app_name, real_project_id = project_id.split(':')
        page = pagestore.get_page(real_project_id, 1)
        update_data = {}
        update_fields = set([
            'name', 'start_time', 'end_time', 'timing', 'red_packet_type',
            'random_total_money', 'random_packets_number',
            'regular_packets_number', 'regular_per_money', 'money_range',
            'reply_content', 'material_image', 'share_description', 'qrcode'
        ])

        for key, value in data.items():
            if key in update_fields:
                if key == "timing":
                    value = bool2Bool(value)
                update_data['set__' + key] = value
                print key, value, "$$$$$$$$$"

            #清除红包类型选项下不需要再保存的两个字段
            if key == "red_packet_type" and value == "random":
                update_data[
                    'set__random_random_number_list'] = create_pop_list(
                        data['random_total_money'],
                        data['random_packets_number'])
                update_data['set__red_packet_remain_amount'] = int(
                    data['random_packets_number'])
                update_data['set__regular_packets_number'] = ''
                update_data['set__regular_per_money'] = ''
                page['component']['components'][0]['model'][
                    'regular_packets_number'] = ''
                page['component']['components'][0]['model'][
                    'regular_per_money'] = ''
            if key == "red_packet_type" and value == "regular":
                update_data['set__red_packet_remain_amount'] = int(
                    data['regular_packets_number'])
                update_data['set__random_total_money'] = ''
                update_data['set__random_packets_number'] = ''
                page['component']['components'][0]['model'][
                    'random_total_money'] = ''
                page['component']['components'][0]['model'][
                    'random_packets_number'] = ''

        app_models.RedPacket.objects(id=request.POST['id']).update(
            **update_data)

        #并发问题临时解决方案 ---start
        # app_models.RedPacketAmountControl.objects(belong_to=request.POST['id']).delete()
        # control_data = {}
        # control_data['belong_to'] = data['id']
        # control_data['red_packet_amount'] = 0
        # control = app_models.RedPacketAmountControl(**control_data)
        # control.save()
        # default_data = {}
        # default_data['belong_to'] = data['id']
        # default_data['red_packet_amount'] = int(red_packet_amount) + 1
        # default = app_models.RedPacketAmountControl(**default_data)
        # default.save()
        #并发问题临时解决方案 ---end

        pagestore.save_page(real_project_id, 1, page['component'])
        #更新后清除缓存
        cache_key = 'apps_red_packet_%s_html' % request.POST['id']
        delete_cache(cache_key)
        response = create_response(200)
        return response.get_response()
Esempio n. 23
0
    def api_put(request):
        """
		响应PUT
		"""
        member_id = request.member.id
        eventParticipance = app_models.surveyParticipance.objects.filter(
            belong_to=request.POST['belong_to'], member_id=member_id)

        if eventParticipance.count() > 0:
            response = create_response(500)
            response.data = u"您已参加过该活动!"
            return response.get_response()
        else:
            data = request_util.get_fields_to_be_save(request)
            survey_participance = app_models.surveyParticipance(**data)
            survey_participance.save()

            #调整参与数量
            survey_record = app_models.survey.objects(id=data['belong_to'])
            survey_record.update(**{"inc__participant_count": 1})
            add_tag_id = survey_record.first(
            ).tag_id if survey_record.first().tag_id != 0 else None

            #活动奖励
            prize = data.get('prize', None)
            error_msg = None
            if prize:
                prize_type = prize['type']
                if prize_type == 'no_prize':
                    pass  #不进行奖励
                elif prize_type == 'integral':
                    if not request.member:
                        pass  #非会员,不进行积分奖励
                    else:
                        value = int(prize['data'])
                        integral_api.increase_member_integral(
                            request.member, value, u'参与活动奖励积分')
                elif prize_type == 'coupon':
                    if not request.member:
                        pass  #非会员,不进行优惠券发放
                    else:
                        coupon_rule_id = int(prize['data']['id'])
                        coupon, msg, current_coupon_count = get_consume_coupon(
                            request.webapp_owner_id, 'survey',
                            data['belong_to'], coupon_rule_id,
                            request.member.id)
                        if not coupon:
                            error_msg = msg

            #分配到某个分组
            member = Member.objects.get(id=member_id)
            if member:
                isMember = member.is_subscribed
                if isMember and add_tag_id:
                    MemberHasTag.add_tag_member_relation(member, [add_tag_id])
                    if MemberHasTag.objects.filter(
                            member=member, member_tag__name="未分组").count() > 0:
                        MemberHasTag.objects.filter(
                            member=member, member_tag__name="未分组").delete()
                elif not isMember:
                    survey_log = app_models.surveyParticipanceLog(
                        belong_to=request.POST['belong_to'],
                        member_id=member_id)
                    survey_log.save()

            data = json.loads(survey_participance.to_json())
            data['id'] = data['_id']['$oid']
            if error_msg:
                data['error_msg'] = error_msg
            response = create_response(200)
            response.data = data
            return response.get_response()