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
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)
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
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
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:
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:
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
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)