def get_product2group(pids, woid='3'): #例子 #pids为list,里面的每一项都是商品id的str # pids_url = "http://{}/mall2/api/test/".format(settings.MARKETTOOLS_HOST) if not pids: return {} params = { 'woid': woid, 'pids': "_".join(pids) } resp = Resource.use('marketapp_apiserver').get({ 'resource':'group.group_buy_products', 'data':params }) if resp and resp['code']: data = resp['data'] product_groups = data['pid2is_in_group_buy'] product2group = {} for product_group in product_groups: product2group[product_group["pid"]] = product_group["is_in_group_buy"] else: product2group = {} return product2group
def process(data, recv_msg=None): corp_id = data['corp_id'] delivery_item_id = data['delivery_item_id'] data = {'corp_id': corp_id, 'delivery_item_id': delivery_item_id} result = Resource.use('gaia').put({ 'resource': 'delivery_item.notify_kuaidi', 'data': data })
def __sync_zeus_get(params, resource): resp = Resource.use(ZEUS_SERVICE_NAME, EAGLET_CLIENT_ZEUS_HOST).get({ 'resource': resource, 'data': params }) if resp and resp.get('code') == 200: return True, resp.get('data') else: return False, None
def api_delete(request): model_id = request.POST.get('model_id', 0) response = create_response(500) try: if model_id != 0: models.ProductModelProperty.objects.filter(id=model_id).update( is_deleted=True) models.ProductModelPropertyValue.objects.filter( property_id=model_id).update(is_deleted=True) has_properrty_values = models.ProductModelHasPropertyValue.objects.filter( property_id=model_id, is_deleted=False) model_ids = [ has_properrty_value.model_id for has_properrty_value in has_properrty_values ] product_models = models.ProductModel.objects.filter( id__in=model_ids, is_deleted=False) product_ids = [ product_model.product_id for product_model in product_models ] product_models.update(stocks=0, price=0, market_price=0, weight=0, limit_clear_price=0, is_deleted=True) models.Product.objects.filter(id__in=product_ids).update( product_price=0, clear_price=0, product_store=0, product_weight=0) has_properrty_values.delete() response = create_response(200) # 调用zeus接口 db_model = models.ProductModelPropertyRelation.objects.filter( model_property_id=model_id).first() if db_model: params = { "id": db_model.weapp_property_id, } resp = Resource.use(ZEUS_SERVICE_NAME, EAGLET_CLIENT_ZEUS_HOST).delete({ 'resource': 'mall.product_model_property', 'data': params }) if not resp or resp.get('code') != 200: response = create_response(500) except: msg = unicode_full_stack() watchdog.error(msg) response.innerErrMsg = msg return response.get_response()
def sync_add_product(params, product, weapp_catalog_id=None, user_id=None): """ 同步新增加商品 """ if product.catalog_id: weapp_catalog_id = catalog_models.ProductCatalogRelation.objects\ .filter(catalog_id=product.catalog_id).first().weapp_catalog_id resp = Resource.use(ZEUS_SERVICE_NAME, EAGLET_CLIENT_ZEUS_HOST).put({ 'resource': 'mall.sync_product', 'data': params }) # 同步到商品中间关系表 if resp: if resp.get('code') == 200 and resp.get('data').get('product'): weapp_product_id = resp.get('data').get('product').get('id') models.ProductHasRelationWeapp.objects.create( product_id=product.id, weapp_product_id=weapp_product_id, self_user_name=user_id) # 同步类目 if weapp_catalog_id: catalog_params = { 'classification_id': weapp_catalog_id, 'product_id': weapp_product_id } resp = Resource.use(ZEUS_SERVICE_NAME, EAGLET_CLIENT_ZEUS_HOST).put({ 'resource': 'mall.classification_product', 'data': catalog_params }) if not resp or resp.get('code') != 200: watchdog.error({ 'errorMsg': 'Panda product: %s sync catalog failed!' % product.id }) # 同步标签 sync_product_label(weapp_product_id=weapp_product_id, product=product)
def _handle_keyword(self, context, from_weixin_user, is_from_simulator): user_id = context.user_profile.user_id username = User.objects.get(id=user_id).username if username != 'weshop': # request = context.request message = context.message response = None response_rule = None response_content = None try: webapp_owner_id = context.user_profile.user_id keyword = message.content openid = message.fromUserName webapp_id = context.user_profile.webapp_id response_content = Resource.use('marketapp_apiserver').post({ 'resource': 'sign.do_auto_signment', 'data': { 'webapp_owner_id': webapp_owner_id, 'keyword': keyword, 'openid': openid, 'webapp_id': webapp_id } }) response_content = response_content['data'] if response_content: response = generator.get_text_response( message.fromUserName, message.toUserName, response_content, message.fromUserName, context.user_profile) try: self._process_recorde_message(context, response_rule, from_weixin_user, is_from_simulator) except: notify_message = u"_process_recorde_message, cause:\n{}".format( unicode_full_stack()) message_tail = '\nanswer:%s,patterns:%s,owner_id:%d,id:%d' % ( response_rule.answer, response_rule.patterns, response_rule.owner_id, response_rule.id) notify_message += message_tail watchdog_error(notify_message) return response except: return None else: return None