def t_tort_info_status_delete_trigger(self,sku):
     classmainsku_obj = classmainsku(self.db_conn, connRedis)
     sStatus = classmainsku_obj.get_tortstatus_by_mainsku(sku)
     result = {}
     if sStatus is None:
         result['errorcode'] = 0
         return result
     strEventKey =  '{"MainSKU":"' + sku + '","old":"' + sStatus + '","new":"","used":"0"}'
     result = self.insert_t_event('t_tort_info_tortstatus','D', strEventKey)
     return result
Ejemplo n.º 2
0
    def py_pic(self, obj):
        MainSKU = obj.MainSKU
        info = MainSKU + ' (split) ' + str(obj.id)
        defaultpic = obj.Main_Pic
        # _subskus=b_goods.objects.filter(MainSKU=MainSKU).values_list('SKU')
        # subskus=[x[0] for x in _subskus]
        # info=''
        # for subsku in subskus:
        #     info=info+str(int(obj.id))+","+'http://122.226.216.10:89/ShopElf/images/{}.jpg'.format(subsku)+","+subsku+'(*&#'
        #
        if not defaultpic and MainSKU:
            # _subskus = t_product_mainsku_sku.objects.filter(MainSKU=MainSKU).values_list('ProductSKU')
            # subskus = [x[0] for x in _subskus]
            subskus = classmainsku(connection).get_sku_by_mainsku(MainSKU)
            if subskus:
                for subsku in subskus:
                    url = 'http://122.226.216.10:89/ShopElf/images/{}.jpg'.format(
                        subsku)
                    try:
                        pic_response = requests.get(url, timeout=0.3)
                        if pic_response.status_code == 200:
                            break
                    except Exception:
                        pass
                else:
                    url = 'http://fancyqube-sv.oss-cn-shanghai.aliyuncs.com/8WDXkA6gAa/l5pyikRRWW.jpg'
            else:
                try:
                    url = 'http://122.226.216.10:89/ShopElf/images/{}.jpg'.format(
                        MainSKU)
                    pic_response = requests.get(url, timeout=0.2)
                    if pic_response.status_code != 200:
                        url = 'http://fancyqube-sv.oss-cn-shanghai.aliyuncs.com/8WDXkA6gAa/l5pyikRRWW.jpg'
                except Exception:
                    url = 'http://fancyqube-sv.oss-cn-shanghai.aliyuncs.com/8WDXkA6gAa/l5pyikRRWW.jpg'
            obj.Main_Pic = url
            obj.save()
        elif defaultpic:
            url = defaultpic
        else:
            url = 'http://fancyqube-sv.oss-cn-shanghai.aliyuncs.com/8WDXkA6gAa/l5pyikRRWW.jpg'

        rt = '<table><tr><img src="%s" width="150" height="150" alt = "%s" title="%s">' \
             '</img></tr>'%(url,url,url)

        rt = u'%s<tr><td>' \
             u'<button type="button" class="btn btn-primary btn-xs" id="edit_supply_chain_production_button" ' \
             u'onclick="gen_pic(\'%s\')">更多图片</button></td></tr></table>' % (rt,info)

        return mark_safe(rt)
Ejemplo n.º 3
0
 def save_models(self):
     obj = self.new_obj
     request = self.request
     subskus = classmainsku(connection).get_sku_by_mainsku(obj.MainSKU)
     if subskus:
         for subsku in subskus:
             py_obj = b_goods.objects.filter(
                 SKU=subsku).values('CostPrice').first()
             if py_obj:
                 obj.CostPrice = py_obj.get('CostPrice')
                 break
     obj.Lock = 1
     obj.DateTime = datetime.datetime.now()
     if not obj.Buyer:
         obj.Buyer = request.user.first_name
     obj.save()
    def __private_base_judge_tort(self,sku,platform):
        #判断子SKU状态
        classsku_obj = classsku(self.db_conn,self.redis_conn)
        goodsstatus = classsku_obj.get_goodsstatus_by_sku(sku)
        if goodsstatus is None or goodsstatus.strip() != u'正常':
            return False

        #判断是否侵权
        classmainsku_obj = classmainsku(self.db_conn,self.redis_conn)
        mainsku = classsku_obj.get_bemainsku_by_sku(sku)
        skutort = None
        if mainsku is not None and mainsku.strip() != '':
            skutort = classmainsku_obj.get_tort_by_mainsku(mainsku)
        if skutort is not None and platform in skutort:
            return False
        else:
            return True
Ejemplo n.º 5
0
def run(josnData):
    try:
        result = {}
        goodsstatus = None
        dbconnect = t_event_database()
        dbResult = dbconnect.run()
        assert dbResult['errorcode'] == 0, 'line =%s mysql connect error'%(sys._getframe().f_lineno)
        classmainsku_obj = classmainsku(dbconnect, connRedis)
        # 开启 事务
        mysqlCursor = (dbResult['db_conn']).cursor()
        mysqlCursor.execute("begin;")
        strMainSKU = josnData["mainsku"]
        strOldStatus = josnData["old"]
        strNewStatus = josnData["new"]
        strStatus = strNewStatus
        if len(strNewStatus) == 0:
            strStatus = 'N'
        if len(strMainSKU) == 0:
            result['errorcode'] = 0
            result['errortext'] = 'mainsku=%s is null' % (strMainSKU)
            return  result
        t_online_info_wish_event_function_obj = t_online_info_wish_event_function(dbResult['db_conn'])
        pResult = t_online_info_wish_event_function_obj.set_tortstatus_by_mainsku(strMainSKU,strStatus)
        assert pResult['errorcode'] == 1, 'line=%s,%s'%(sys._getframe().f_lineno,pResult['errortext'])

        if len(strNewStatus) == 0:
            connRedis.hdel(strMainSKU,'TortInfo')
        else:
            classmainsku_obj.set_tortstatus_by_mainsku(strMainSKU, strStatus)

        dbResult['db_conn'].commit()
        result['errorcode'] = 0
        result['errortext'] = 'mainsku=%s deal success' % (strMainSKU)
    except Exception, ex:
        dbResult['db_conn'].rollback()
        result['errorcode'] = -1
        result['messages'] = '%s' % (ex)
        print("{}".format(result))
        mysqlCursor.close()
        dbResult['db_conn'].close()
        return result
Ejemplo n.º 6
0
from brick.classredis.classshopsku import classshopsku
from brick.classredis.classmainsku import classmainsku
# from mymall_app.table.t_mymall_online_info import t_mymall_online_info
from mymall_app.table.t_mymall_online_info_detail import t_mymall_online_info_detail
from mymall_app.views import syndata_by_mymall_api
# from mymall_app.table.t_mymall_cutprice_log import t_mymall_cutprice_log
from skuapp.table.t_store_configuration_file import t_store_configuration_file
from brick.classredis.classsku import classsku
from brick.pricelist.calculate_price import calculate_price

redis_conn = get_redis_connection(alias='product')
py_SynRedis_tables_obj = py_SynRedis_tables()
classsku_obj = classsku()
listingobjs = classlisting(connection, redis_conn)
classshopskuobjs = classshopsku(connection, redis_conn)
classmainsku_obj = classmainsku(connection, redis_conn)


class t_online_info_amazon_listing_Admin(object):
    amazon_listing_plugin = True
    # search_box_flag = True
    # amazon_listing_secondplugin = True

    # site_left_menu_flag = True
    search_box_flag = True
    amazon_site_left_menu_tree_flag = True

    def show_SKU_list(self, obj):
        if obj.is_fba == 0:
            fba_heard_name = u'FBM'
        elif obj.is_fba == 1:
Ejemplo n.º 7
0
from django_redis import get_redis_connection

connRedis = get_redis_connection(alias='product')
# from Project.settings import connRedis
from brick.public.create_dir import mkdir_p

from storeapp.models import t_online_info_wish_store
from skuapp.table.t_product_enter_ed import t_product_enter_ed
from pyapp.models import b_goods as py_b_goods
from brick.spider.get import readAliexpress
from brick.classredis.classmainsku import classmainsku
from brick.classredis.classsku import classsku

from .t_work_flow_of_plate_house_admin import t_work_flow_of_plate_house_admin

classmainsku_obj = classmainsku(db_cnxn=connection)
classsku_obj = classsku(db_cnxn=connection)


def get_price_weight_pylink_by_mainsku(mainsku):
    price = None
    weight = None
    py_link = None
    purchaser = None
    sizelist = []
    skulist = classmainsku_obj.get_sku_by_mainsku(mainsku)
    if skulist:
        for sku in skulist:
            price = classsku_obj.get_price_by_sku(sku)
            weight = classsku_obj.get_weight_by_sku(sku)
            if price or weight:
Ejemplo n.º 8
0
 def getTortInfo(self, productSku):
     classsku_obj = classsku(connection)
     mainSKU = classsku_obj.get_bemainsku_by_sku(productSku)
     classmainsku_obj = classmainsku(connection)
     tortInfo = classmainsku_obj.get_tort_by_mainsku(mainSKU)
     return tortInfo
Ejemplo n.º 9
0
def run(params):
    # 获取需要刷新的数据
    t_online_info_objs = t_online_info(params['ShopName'], params['dbcnxn'])
    t_report_orders1days_objs = t_report_orders1days(params['dbcnxn'])
    t_store_configuration_file_obj = t_store_configuration_file(
        params['dbcnxn'])
    classlisting_obj = classlisting(params['dbcnxn'])
    classmainsku_obj = classmainsku(params['dbcnxn'])
    t_templet_wish_upload_result_obj = t_templet_wish_upload_result(
        params['dbcnxn'])
    classshopsku_obj = classshopsku(params['dbcnxn'],
                                    shopname=params['ShopName'])
    t_online_info_wish_obj = t_online_info_wish(params['dbcnxn'])
    t_distribution_product_to_store_result_obj = t_distribution_product_to_store_result(
        params['dbcnxn'])
    t_large_small_corresponding_cate_obj = t_large_small_corresponding_cate(
        params['dbcnxn'])
    t_wish_pb_campaignproductstats_obj = t_wish_pb_campaignproductstats(
        params['dbcnxn'])

    infodata = t_online_info_objs.getshopproductdata(params['ProductID'])

    for obj in infodata:
        datedict = {}
        datedict['ProductID'] = obj['ProductID']
        datedict['ShopName'] = obj['ShopName']
        datedict['Title'] = obj['Title']
        datedict['SKU'] = obj['SKU']
        datedict['ShopSKU'] = obj['ShopSKU']
        datedict['Price'] = obj['Price']
        datedict['RefreshTime'] = obj['RefreshTime']

        yyyymmdd = obj['RefreshTime'].strftime('%Y%m%d')

        datedict['SoldTheDay'] = t_report_orders1days_objs.getSoldTheDay(
            obj['ProductID'], yyyymmdd)

        datedict['SoldYesterday'] = t_report_orders1days_objs.getSoldYesterday(
            obj['ProductID'], yyyymmdd)

        datedict['Orders7Days'] = t_report_orders1days_objs.getOrders7Days(
            obj['ProductID'], yyyymmdd)  # 默认 普通仓

        # 海外仓 7天订单数,总销量 订单不足 数值偏小
        datedict[
            'Order7daysDE'] = t_report_orders1days_objs.getOrders7Days_WarehouseName(
                obj['ProductID'], yyyymmdd, 'DE')
        datedict[
            'Order7daysGB'] = t_report_orders1days_objs.getOrders7Days_WarehouseName(
                obj['ProductID'], yyyymmdd, 'GB')
        datedict[
            'Order7daysUS'] = t_report_orders1days_objs.getOrders7Days_WarehouseName(
                obj['ProductID'], yyyymmdd, 'US')
        datedict[
            'Order7daysFBW'] = t_report_orders1days_objs.getOrders7Days_WarehouseName(
                obj['ProductID'], yyyymmdd, 'FBW')

        datedict[
            'OfsalesDE'] = t_report_orders1days_objs.ofSales_Of_ProductID_WarehouseName(
                obj['ProductID'], 'DE')
        datedict[
            'OfsalesGB'] = t_report_orders1days_objs.ofSales_Of_ProductID_WarehouseName(
                obj['ProductID'], 'GB')
        datedict[
            'OfsalesUS'] = t_report_orders1days_objs.ofSales_Of_ProductID_WarehouseName(
                obj['ProductID'], 'US')
        datedict[
            'OfsalesFBW'] = t_report_orders1days_objs.ofSales_Of_ProductID_WarehouseName(
                obj['ProductID'], 'FBW')

        classlisting_obj.set_order7days_listingid(datedict['ProductID'],
                                                  datedict['Orders7Days'])

        datedict['SoldXXX'] = int(datedict['SoldTheDay']) - int(
            datedict['SoldYesterday'])

        datedict['DateOfOrder'] = None
        datedict['Image'] = obj['Image']
        datedict['Status'] = obj['Status']
        datedict['ReviewState'] = obj['ReviewState']
        datedict['DateUploaded'] = obj['DateUploaded']
        datedict['LastUpdated'] = obj['LastUpdated']
        datedict['OfSales'] = obj['OfSales']
        datedict['ParentSKU'] = obj['ParentSKU']

        datedict['is_promoted'] = obj['is_promoted']
        datedict['WishExpress'] = obj['WishExpress']

        datedict[
            'Seller'] = t_store_configuration_file_obj.getsellerbyshopcode(
                params['ShopName'][0:9])

        datedict['MainSKU'] = obj['MainSKU']

        datedict['TortInfo'] = 'N'
        mainskulist = classlisting_obj.getmainsku(obj['ProductID'])
        if mainskulist:
            tortlist = []
            for mainsku in set(mainskulist):
                tortsite = classmainsku_obj.get_tort_by_mainsku(mainsku)
                if tortsite is not None:
                    tortlist = tortlist + tortsite
            if tortlist:
                if 'Wish' in tortlist:
                    datedict['TortInfo'] = 'WY'
                else:
                    datedict['TortInfo'] = 'Y'

        datedict['DataSources'] = "NORMAL"
        if t_templet_wish_upload_result_obj.get_count_num(
                obj['ParentSKU'], obj['ShopName']) >= 1:
            datedict['DataSources'] = "UPLOAD"
        else:
            if t_distribution_product_to_store_result_obj.get_count_num(
                    obj['ParentSKU'], obj['ShopName']) >= 1:
                datedict['DataSources'] = "UPLOAD"

        datedict['OperationState'] = 'No'
        if obj['Status'] == 'Disabled':
            datedict['OperationState'] = 'Yes'

        # MainSKU,大类,小类
        datedict['MainSKULargeCate'] = None
        datedict['MainSKUSmallCate'] = None

        mlist = []
        if datedict['MainSKU']:
            mlist = re.findall(r'[0-9]+|[a-z]+|[A-Z|]+|[-]',
                               datedict['MainSKU'])
        if len(mlist) >= 1:
            datedict['MainSKUSmallCate'] = mlist[0]  # 小类
            lResult = t_large_small_corresponding_cate_obj.getLargeClassBySmallClass(
                datedict['MainSKUSmallCate'])
            if lResult['code'] == 1:
                datedict['MainSKULargeCate'] = lResult['largecode']

        datedict['SName'] = '0'  # 店铺状态 0 正常 -1 异常
        # 1 正常(在线); 0 正常(不在线); -1 api调用错误; -2 执行代码异常;
        if datedict['ReviewState'] == 'approved' and datedict[
                'Status'] == 'Enabled':
            datedict['AdStatus'] = '1'  # 1 正常(在线)
        else:
            datedict['AdStatus'] = '0'  # 0 正常(不在线)

        datedict['Published'] = None
        if obj['ShopSKU'] is not None and obj['ShopSKU'].strip() != '':
            pub = None
            for shopsku in obj['ShopSKU'].split(','):
                for each_shopsku in shopsku.split('+'):
                    pub = classshopsku_obj.getPublished(
                        each_shopsku.split('*')[0].split('\\')[0].split('/')
                        [0])  # 按照店铺SKU来抓取刊登人
                    if pub:
                        break
                if pub:
                    break
            datedict['Published'] = pub

        datedict['market_time'] = None

        # 这里是商品状态结果集
        statuslist = t_online_info_objs.get_goodsstatus_by_productid(
            params['ProductID'])
        a1 = 0
        if '1' in statuslist:
            a1 = 1
        a2 = 0
        if '2' in statuslist:
            a2 = 1
        a3 = 0
        if '3' in statuslist:
            a3 = 1
        a4 = 0
        if '4' in statuslist:
            a4 = 1
        datedict['GoodsFlag'] = a1 * 1000 + a2 * 100 + a3 * 10 + a4

        # 店铺SKU状态结果集
        sstatuslist = t_online_info_objs.get_shopskustatus_by_productid(
            params['ProductID'])
        b1 = 0
        if 'Enabled' in sstatuslist:
            b1 = 1
        b2 = 0
        if 'Disabled' in sstatuslist:
            b2 = 1
        datedict['ShopsFlag'] = b1 * 10 + b2

        # 绑定状态结果集
        datedict['BindingFlag'] = 1  # 默认全部绑定
        # anum = obj[-1] # 变体数量
        # unum = t_online_info_objs.get_binding_by_productid(params['ProductID'])
        # if int(anum) == int(unum):
        #     datedict['BindingFlag'] = 3
        # elif int(anum) > 0 and int(unum) == 0:
        #     datedict['BindingFlag'] = 1
        # elif int(anum) > 0 and int(unum) != 0:
        #     datedict['BindingFlag'] = 2
        # print datedict

        datedict['BeforeReviewState'] = obj['BeforeReviewState']  # 上一个wish查看状态

        datedict['Rating'] = 0  # 链接的评分
        if float(datedict['OfSales']) > 0:
            rResult = t_online_info_wish_obj.get_product_id_rating(
                datedict['ProductID'])
            old_rating = rResult.get('rating', 0)

            Gresult = get_rating(datedict['ProductID'])
            new_rating = Gresult.get('rating', 0)

            if new_rating == 0 and datedict[
                    'ReviewState'] == 'rejected':  # 被拒绝的连接
                datedict['Rating'] = old_rating
            elif new_rating != 0:
                datedict['Rating'] = new_rating

        datedict['ADShow'] = 0  # 是否有广告   0 没有  1  有
        adResult = t_wish_pb_campaignproductstats_obj.j_ad(
            datedict['ProductID'])
        if adResult['errorcode'] == 1:
            datedict['ADShow'] = 1

        # 周销量趋势 -1:下降 0:平稳 1:上升
        datedict['SalesTrend'] = get_salestrend(datedict['ProductID'],
                                                t_report_orders1days_objs)

        datedict['FBW_Flag'] = obj['FBW_Flag']  # fbw 标记

        print "datedict['ProductID']=============%s" % datedict['ProductID']

        t_online_info_wish_obj.refreshwishdata(datedict)