示例#1
0
    def api_post(request):
        """
        更新关键词自动回复消息
        """
        id = int(request.POST.get('id', -1))
        if id == -1:
            response = create_response(400)
            response.errMsg = u'托管消息id错误: %d,无法更新托管消息' % id
        else:
            answer = request.POST.get('answer', '')
            material_id = request.POST.get('material_id', 0)
            active_type = int(request.POST.get('active_type', 2))
            active_days = request.POST.get('active_days', '')
            start_hour = request.POST.get('start_hour', '')
            end_hour = request.POST.get('end_hour', '')

            if is_valid_time(start_hour) and is_valid_time(end_hour):
                Rule.objects.filter(id=id).update(
                    answer = answer, 
                    active_type = active_type,
                    active_days = active_days,
                    start_hour = start_hour,
                    end_hour = end_hour,
                    material_id = material_id
                )
                #清除缓存
                cache_key = 'auto_qa_message_webapp_id_%s_type_%s' % (request.user_profile.webapp_id, UNMATCH_TYPE)
                cache_util.delete_cache(cache_key)

                response = create_response(200)
            else:
                response = create_response(401)
                response.errMsg = u"非法起止时间:start_hour:%s,end_hour:%s" % (start_hour, end_hour)

        return response.get_response()
示例#2
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()
示例#3
0
    def api_post(request):
        """
		响应POST
		"""
        if request.POST.get('status', None):
            status = 1 if request.POST['status'] == 'on' else 0
            signs = app_models.Sign.objects(id=request.POST['signId'])
            signs.update(set__status=status)
            if status == 1 and signs.count() > 0:
                #将所有已签到用户的签到状态重置,作为一个新的签到
                sign = signs[0]
                app_models.SignParticipance.objects(
                    belong_to=str(sign.id)).update(set__serial_count=0,
                                                   set__latest_date=None)
                # app_models.SignControl.objects.all().delete()
            cache_key = 'apps_sign_%s_html' % str(signs[0].owner_id)
        else:
            data = export.get_sing_fields_to_save(request)
            update_data = {}
            update_fields = set(['name', 'share', 'reply', 'prize_settings'])
            for key, value in data.items():
                if key in update_fields:
                    update_data['set__' + key] = value
            sign = app_models.Sign.objects(id=request.POST['signId']).first()
            sign.update(**update_data)
            cache_key = 'apps_sign_%s_html' % sign.owner_id
        #更新后清除redis缓存
        delete_cache(cache_key)

        response = create_response(200)
        return response.get_response()
示例#4
0
def update_webapp_order_cache(instance, **kwargs):
    """
	Order.save时触发信号回调函数

	@param instance Order的实例
	@param kwargs   其他参数,包括'sender'、'created'、'signal'、'raw'、'using'

	当在Django有Order.save的操作时会触发此函数。
	如果instance是有效的Order,则取将Order.webapp_user_id对应用户的订单数据缓存删除。

	"""
    if kwargs.get('created'):
        webapp_user_id = instance.webapp_user_id
        key = get_order_stats_cache_key(webapp_user_id)
        cache_util.delete_cache(key)
    elif not isinstance(instance, Order):
        from itertools import chain
        instances = chain(instance)
        for order in instances:
            webapp_user_id = order.webapp_user_id
            if webapp_user_id:
                try:
                    key = get_order_stats_cache_key(webapp_user_id)
                    cache_util.delete_cache(key)
                except:
                    pass

    return
示例#5
0
def update_webapp_order_by_review_picture_cache(instance, **kwargs):
    if hasattr(cache, 'request'):
        webapp_user_id = cache.request.webapp_user.id
        try:
            key = get_order_stats_cache_key(webapp_user_id)
            cache_util.delete_cache(key)
        except:
            pass
示例#6
0
    def api_post(request):
        """
        更新关键词自动回复消息的规则
        """
        id = int(request.POST.get('id', -1))
        if id == -1:
            response = create_response(400)
            response.errMsg = u'关键词自动回复消息id错误: %d,无法更新关键词自动回复消息' % id
        else:
            rule_name = request.POST.get('rule_name', '')
            patterns = request.POST.get('patterns', None)
            if not patterns:
                raise Http404('invalid keywords')

            has_duplicate, duplicate_patterns = has_duplicate_pattern(
                request.manager, patterns, id)

            if has_duplicate:
                response = create_response(601)
                response.errMsg = u'下列关键词已经存在: %s' % duplicate_patterns[0]
                return response.get_response()

            answer = request.POST.get('answer', '')
            #将answer中的表情img标签转化为文字符号 by Eugene
            answers = json.loads(answer)
            for data in answers:
                if data['type'] == "text":
                    data['content'] = emotion.change_img_to_emotion(
                        data['content'])
                # 校验回复消息为图文时content不能为0 by Eugene
                if data['type'] == "news" and (data['content'] == "0"
                                               or not data["content"]):
                    response = create_response(500)
                    return response.get_response()
            answer = json.dumps(answers)
            material_id = int(request.POST.get('material_id', 0))

            if material_id == 0:
                type = TEXT_TYPE
            else:
                type = NEWS_TYPE

            Rule.objects.filter(id=id).update(rule_name=rule_name,
                                              patterns=patterns,
                                              answer=answer,
                                              material_id=material_id,
                                              type=type)

            #修改后清除缓存,解决相同的关键字修改回复内容后微信端不生效的问题  add by aix 2016.8.15
            cache_keys = [
                'auto_qa_message_webapp_id_%s_query_%s' %
                (request.user_profile.webapp_id, query['keyword'])
                for query in json.loads(patterns)
            ]
            for cache_key in cache_keys:
                cache_util.delete_cache(cache_key)
            response = create_response(200)
        return response.get_response()
示例#7
0
def delete_webapp_page_cache(**kwargs):
    if hasattr(cache, 'request') and cache.request.user_profile:
        webapp_owner_id = cache.request.user_profile.user_id
        for project in webapp_models.Project.objects.filter(
                owner_id=webapp_owner_id, type='wepage'):
            key = 'termite_webapp_page_%s_%s' % (webapp_owner_id, project.id)
            cache_util.delete_cache(key)
            purge_webapp_page_from_varnish_cache.delay(webapp_owner_id,
                                                       project.id)
示例#8
0
def get_update_cache(request):
    owner_ids = request.GET.get('owner_ids', '')
    owner_ids = owner_ids.split(',')
    # owner_id2permissions = {str(ahwp.owner_id): ahwp for ahwp in AccountHasWeizoomCardPermissions.objects.filter(owner_id__in=owner_ids)}
    for owner_id in owner_ids:
        key = 'webapp_owner_info_{wo:%s}' % owner_id
        if cache_util.get_cache(key):
            cache_util.delete_cache(key)
    response = create_response(200)
    response.data = u'success'
    return response.get_response()
示例#9
0
def update_product_cache(webapp_owner_id,
                         product_id,
                         deleteRedis=True,
                         deleteVarnish=True,
                         deleteVarnishList=True):
    if deleteRedis:
        key = 'webapp_product_detail_{wo:%s}_{pid:%s}' % (webapp_owner_id,
                                                          product_id)
        cache_util.delete_cache(key)

        # key = 'webapp_products_categories_{wo:%s}' % webapp_owner_id
        # cache_util.delete_cache(key)
        update_product_list_cache(webapp_owner_id)
示例#10
0
def update_product_list_cache(webapp_owner_id):

    # 先清缓存,以防异步任务失败
    key = 'webapp_products_categories_{wo:%s}' % webapp_owner_id
    api_key = 'api' + key
    try:
        cache_util.delete_cache(key)
        cache_util.delete_cache(api_key)
    except:
        pass

    from cache.tasks import update_product_list_cache_task
    update_product_list_cache_task.delay(webapp_owner_id)
示例#11
0
def update_red_envelope_cache(instance, **kwargs):
    if not instance:
        return
    key = None
    if len(instance):
        if isinstance(instance[0], promotion_models.RedEnvelopeRule):
            # 更新红包分享规则状态时,清空红包分享缓存
            key = 'red_envelope_{wo:%s}' % instance[0].owner_id
        elif isinstance(instance[0], promotion_models.CouponRule) and (
            instance[0].remained_count <= 0 or not instance[0].is_active):
            # 更新优惠券规则库存数量小于等于0时,清空红包分享缓存
            key = 'red_envelope_{wo:%s}' % instance[0].owner_id
    if key:
        cache_util.delete_cache(key)
示例#12
0
def update_forbidden_coupon_product_ids(instance, **kwargs):
    if hasattr(cache,
               'request') and cache.request.user_profile and not kwargs.get(
                   'created', False):
        webapp_owner_id = cache.request.user_profile.user_id
        key = 'forbidden_coupon_products_%s' % webapp_owner_id
        cache_util.delete_cache(key)

        if isinstance(instance, promotion_models.ForbiddenCouponProduct):
            product_id = instance.product_id
        else:
            product_id = instance[0].product_id

        update_product_cache(webapp_owner_id,
                             product_id,
                             False,
                             deleteVarnishList=False)
示例#13
0
def update_webapp_product_model_properties_cache(**kwargs):
    """
    更新product model缓存
    """
    if hasattr(cache, 'request') and cache.request.user_profile:
        if cache.request.user_profile:
            webapp_owner_id = cache.request.user_profile.user_id
            key = 'webapp_product_model_properties_{wo:%s}' % webapp_owner_id
            cache_util.delete_cache(key)

            for weizoom_mall in WeizoomMall.objects.filter(is_active=True):
                user_profile = UserProfile.objects.filter(
                    webapp_id=weizoom_mall.webapp_id)
                if user_profile.count() == 1:
                    key = 'webapp_product_model_properties_{wo:%s}' % user_profile[
                        0].user_id
                    cache_util.delete_cache(key)
示例#14
0
def update_webapp_category_cache(**kwargs):
    if hasattr(cache, 'request') and cache.request.user_profile:
        webapp_owner_id = cache.request.user_profile.user_id
        instance = kwargs.get('instance', None)
        sender = kwargs.get('sender', None)
        category_id = 0
        if instance and sender == mall_models.ProductCategory:
            # 删除商品分类
            if isinstance(instance, mall_models.ProductCategory):
                id = instance.id
            else:
                id = instance[0].id
            category_id = id
            categories_products_key = '{wo:%s}_{co:%s}_products' % (
                webapp_owner_id, id)
            cache_util.delete_redis_key(categories_products_key)
            categories_key = '{wo:%s}_categories' % (webapp_owner_id)
            cache_util.delete_cache(categories_key)
        elif instance and sender == mall_models.CategoryHasProduct:
            # 删除商品分类中的商品
            if isinstance(instance, mall_models.CategoryHasProduct):
                catory_id = instance.category_id
                product_id = instance.product_id
            else:
                product_id = instance[0].product_id
                catory_id = instance[0].category_id
            category_id = catory_id
            categories_products_key = '{wo:%s}_{co:%s}_products' % (
                webapp_owner_id, catory_id)
            cache_util.rem_set_member_from_redis(categories_products_key,
                                                 product_id)
        # todo zhaolei 清除对应的varnish缓存,需要重构
        # if settings.EN_VARNISH:
        #     if not settings.DEBUG:
        #         url = 'http://%s/termite/workbench/jqm/preview/?woid=%s&module=mall&model=products&action=list&category_id=%s' % \
        #                 (settings.DOMAIN, webapp_owner_id, category_id)
        #         request = urllib2.Request(url)
        #         request.get_method = lambda: 'PURGE'
        #         urllib2.urlopen(request)

        # pattern_categories = "webapp_products_categories_{wo:%s}" % webapp_owner_id
        # cache_util.delete_pattern(pattern_categories)
        update_product_list_cache(webapp_owner_id)
示例#15
0
def update_webapp_owner_info_cache_with_login(instance, **kwargs):
    if isinstance(instance, account_models.UserProfile):
        webapp_owner_id = instance.user_id
    elif isinstance(instance, AccountHasWeizoomCardPermissions):
        webapp_owner_id = instance.owner_id
    else:
        if cache.request.user_profile:
            webapp_owner_id = cache.request.user_profile.user_id
        else:
            return
    key = 'webapp_owner_info_{wo:%s}' % webapp_owner_id
    cache_util.delete_cache(key)

    key_termite_page = 'termite_webapp_page_%s_*' % webapp_owner_id
    cache_util.delete_pattern(key_termite_page)
    get_webapp_owner_info(webapp_owner_id)
    try:
        from termite2.tasks import purge_webapp_page_from_varnish_cache
        purge_webapp_page_from_varnish_cache.delay(webapp_owner_id)
    except:
        pass
示例#16
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()
示例#17
0
    def api_post(request):
        """
        更新关注自动回复消息
        """
        id = int(request.POST.get('id', -1))
        if id == -1:
            response = create_response(400)
            response.errMsg = u'关注自动回复消息id错误: %d,无法更新关注自动回复消息' % id
        else:
            answer = request.POST.get('answer', '')
            material_id = request.POST.get('material_id', 0)

            # 更新规则
            Rule.objects.filter(id=id).update(
                answer = answer,
                material_id = material_id
            )
            #清除缓存
            cache_key = 'auto_qa_message_webapp_id_%s_type_%s' % (request.user_profile.webapp_id, FOLLOW_TYPE)
            cache_util.delete_cache(cache_key)

            response = create_response(200)

        return response.get_response()
示例#18
0
def update_webapp_mall_config_cache(**kwargs):
    if hasattr(cache, 'request') and cache.request.user_profile:
        webapp_owner_id = cache.request.user_profile.user_id
        key = 'webapp_mall_config_{wo:%s}' % webapp_owner_id
        cache_util.delete_cache(key)
示例#19
0
def update_webapp_product_cache(**kwargs):
    if hasattr(cache, 'request') and cache.request.user_profile:
        webapp_owner_id = cache.request.user_profile.user_id
        instance = kwargs.get('instance', None)
        before_instance = kwargs.get('before_instance', None)
        sender = kwargs.get('sender', None)
        if instance and sender == mall_models.Product:
            if isinstance(instance, mall_models.Product):
                product_id = instance.id
                shelve_type = instance.shelve_type
                is_deleted = instance.is_deleted
                # 微众商城代码
                # weshop_status = instance.weshop_status
                # weshop_sync = instance.weshop_sync
            else:
                product_id = instance[0].id
                shelve_type = instance[0].shelve_type
                is_deleted = instance[0].is_deleted
                # 微众商城代码
                # weshop_status = instance[0].weshop_status
                # weshop_sync = instance[0].weshop_sync
            if before_instance:
                # 微众商城代码
                #微众商城下架处理 duhao 20151120
                # if before_instance.weshop_status != weshop_status and mall_models.PRODUCT_SHELVE_TYPE_OFF == weshop_status:
                #     cache_util.rem_set_member_by_patten_from_redis('{wo:216}_{co:*}_products',product_id)

                if before_instance.shelve_type != shelve_type and mall_models.PRODUCT_SHELVE_TYPE_OFF == shelve_type or is_deleted == True:
                    #下架商品,清除redis中{wo:38}_{co:*}_products的数据项,批量更新
                    # 或者删除商品时
                    categories_products_key = '{wo:%s}_{co:*}_products' % (
                        webapp_owner_id)
                    cache_util.rem_set_member_by_patten_from_redis(
                        categories_products_key, product_id)

                    # 微众商城代码
                    # if weshop_sync > 0:
                    #     #微众商城的缓存也要一起更新 duhao 20151120
                    #     cache_util.rem_set_member_by_patten_from_redis('{wo:216}_{co:*}_products',product_id)
                elif before_instance.shelve_type != shelve_type and mall_models.PRODUCT_SHELVE_TYPE_ON == shelve_type:
                    # 微众商城代码
                    # elif (before_instance.shelve_type != shelve_type or webapp_owner_id == 216) and mall_models.PRODUCT_SHELVE_TYPE_ON == shelve_type:
                    #上架商品,确定该商品原来是否有category
                    category_has_products = mall_models.CategoryHasProduct.objects.filter(
                        product_id=product_id)
                    if category_has_products:
                        for category_has_pro in category_has_products:
                            categories_products_key = '{wo:%s}_{co:%s}_products' % (
                                webapp_owner_id, category_has_pro.category.id)
                            cache_util.add_set_to_redis(
                                categories_products_key,
                                category_has_pro.product_id)
                    categories_products_key = '{wo:%s}_{co:0}_products' % (
                        webapp_owner_id)
                    cache_util.delete_cache(categories_products_key)
                    #todo zhaolei
                    # cache_util.add_set_to_redis(categories_products_key,product_id)
            update_product_cache(webapp_owner_id, product_id)

        elif instance and sender == mall_models.CategoryHasProduct:
            # 商品分组中更新商品时
            if isinstance(instance, mall_models.CategoryHasProduct):
                catory_id = instance.category_id
                product_id = instance.product_id
            else:
                catory_id = instance[0].category_id
                product_id = instance[0].product_id
            product = mall_models.Product.objects.filter(id=product_id).get()
            # 非待售添加
            if product.shelve_type != mall_models.PRODUCT_SHELVE_TYPE_OFF:
                # 微众商城代码
                # if product.shelve_type != mall_models.PRODUCT_SHELVE_TYPE_OFF and (webapp_owner_id != 216 or \
                #     (webapp_owner_id == 216 and product.weshop_status != mall_models.PRODUCT_SHELVE_TYPE_OFF)):
                #如果是微众商城过来的请求,则需要验证微众商城里的在售状态 duhao 20151120
                # if product.shelve_type != mall_models.PRODUCT_SHELVE_TYPE_OFF:
                categories_products_key = '{wo:%s}_{co:%s}_products' % (
                    webapp_owner_id, catory_id)
                # todo zhaolei 会存在多次删除的情况
                cache_util.delete_cache(categories_products_key)
                # todo zhaolei 清除对应的varnish缓存,需要重构
                # if settings.EN_VARNISH:
                #     if not settings.DEBUG:
                #         url = 'http://%s/termite/workbench/jqm/preview/?woid=%s&module=mall&model=products&action=list&category_id=%s' % \
                #                 (settings.DOMAIN, webapp_owner_id, catory_id)
                #         request = urllib2.Request(url)
                #         request.get_method = lambda: 'PURGE'
                #         urllib2.urlopen(request)
        elif instance and sender == mall_models.ProductCategory:
            categories_key = '{wo:%s}_categories' % (webapp_owner_id)
            cache_util.delete_cache(categories_key)
        elif instance and sender == mall_models.ProductModel:
            if isinstance(instance, mall_models.ProductModel):
                #暂不处理
                pass
            else:
                for ins in instance:
                    product_id = ins.product_id
                    key = 'webapp_product_detail_{wo:%s}_{pid:%s}' % (
                        webapp_owner_id, product_id)
                    cache_util.delete_pattern(key)

        # pattern_categories = "webapp_products_categories_{wo:%s}" % webapp_owner_id
        # cache_util.delete_pattern(pattern_categories)
        update_product_list_cache(webapp_owner_id)

        key_termite_page = 'termite_webapp_page_%s_*' % webapp_owner_id
        cache_util.delete_pattern(key_termite_page)
        try:
            from termite2.tasks import purge_webapp_page_from_varnish_cache
            purge_webapp_page_from_varnish_cache.delay(webapp_owner_id)
        except:
            pass
示例#20
0
def get_webapp_products_new(webapp_owner_user_profile, is_access_weizoom_mall,
                            category_id):
    # 商城下分类对应的商品id
    categories_products_key = '{wo:%s}_{co:%s}_products' % (
        webapp_owner_user_profile.user_id, category_id)
    category_pros_data = cache_util.get_set_from_redis(categories_products_key)
    if len(category_pros_data) == 0:
        # product.id,display_index
        productid_display_list = []
        products = get_webapp_product_ids_from_db_new(
            webapp_owner_user_profile, is_access_weizoom_mall, category_id)
        if products:
            for product in products:
                productid_display_list.append(product.id)
                product.promotion = None
                # 添加promation
            cache_util.add_set_to_redis(categories_products_key,
                                        *productid_display_list)
        cache_products = products
    else:
        cache_products = get_webapp_products_detail(
            webapp_owner_user_profile.user_id, category_pros_data)

        products = get_webapp_product_ids_from_db_new(
            webapp_owner_user_profile, is_access_weizoom_mall, category_id)
        if products:
            if len(cache_products) == len(products):
                pass
            else:
                productid_display_list = []
                if products:
                    for product in products:
                        productid_display_list.append(product.id)
                        product.promotion = None
                        # 添加promation
                    cache_util.delete_cache(categories_products_key)
                    cache_util.add_set_to_redis(categories_products_key,
                                                *productid_display_list)
                cache_products = products

    if category_id == 0:
        category = mall_models.ProductCategory()
        category.name = u'全部'
    else:
        categories_data = get_webapp_categories_from_cache(
            webapp_owner_user_profile)
        id2category_name = dict([(c["id"], c["name"])
                                 for c in categories_data])
        if category_id in id2category_name:
            category = mall_models.ProductCategory()
            category.id = category_id
            category.name = id2category_name[category_id]
        else:
            category = mall_models.ProductCategory()
            category.is_deleted = True
            category.name = u'已删除分类'
    mall_models.Product.fill_display_price(cache_products)

    # 分组商品排序,有商品分类和无商品分类的排序规则不同
    if category_id != 0:
        products_id = map(lambda p: p.id, cache_products)
        chp_list = mall_models.CategoryHasProduct.objects.filter(
            category_id=category_id, product_id__in=products_id)
        product_id2chp = dict(map(lambda chp: (chp.product_id, chp), chp_list))
        for product in cache_products:
            product.display_index = product_id2chp[product.id].display_index
            product.join_category_time = product_id2chp[product.id].created_at
        # 1.shelve_type, 2.display_index, 3.id
        products_is_0 = filter(lambda p: p.display_index == 0, cache_products)
        products_not_0 = filter(lambda p: p.display_index != 0, cache_products)
        products_is_0 = sorted(products_is_0,
                               key=attrgetter('join_category_time', 'id'),
                               reverse=True)
        products_not_0 = sorted(products_not_0,
                                key=attrgetter('display_index'))
        cache_products = products_not_0 + products_is_0
    else:
        products_is_0 = filter(lambda p: p.display_index == 0, cache_products)
        products_not_0 = filter(lambda p: p.display_index != 0, cache_products)
        products_is_0 = sorted(products_is_0,
                               key=attrgetter('id'),
                               reverse=True)
        products_not_0 = sorted(products_not_0,
                                key=attrgetter('display_index'))
        cache_products = products_not_0 + products_is_0

    return category, cache_products
示例#21
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()
示例#22
0
	def delete_webapp_page_cache(webapp_owner_id, project_id):
		key = 'termite_webapp_page_%s_%s' % (webapp_owner_id, project_id)
		cache_util.delete_cache(key)

		purge_webapp_page_from_varnish_cache.delay(webapp_owner_id, project_id)
示例#23
0
def delete_component_auth_cache(appid):
	today = datetime.today()
	date_str = datetime.today().strftime('%Y-%m-%d') 

	key = 'component_{appid:%s}' % appid
	cache_util.delete_cache(key)
示例#24
0
def update_unship_order_count(webapp_id):
    key = 'webapp_unread_order_count_{wa:%s}' % webapp_id
    cache_util.delete_cache(key)