def LoginClose(request, *args, **kwargs): if request.method == 'POST': log.i(globals(), '设置登录失效方式: get', request.POST.get('keepcheckbox')) if not request.POST.get('keepcheckbox'): request.session.set_expiry(0) log.i(globals(), '设置登录失效方式: 浏览器关闭失效') return func(request, *args, **kwargs)
def get_UnitInfo(self): log.i(globals(), 'TOKEN', self.access_token) data = {'access_token': self.access_token} response = requests.post(url=self.unitinfo_url, data=data) log.i(globals(), 'get_UnitInfo ---- ', json.loads(response.text)) return json.loads(response.text) pass
def ip(request, *args, **kwargs): if 'HTTP_X_FORWARDED_FOR' in request.META: ip = request.META['HTTP_X_FORWARDED_FOR'] else: ip = request.META['REMOTE_ADDR'] log.i(globals(), 'IP: ', ip) return func(request, *args, **kwargs)
def __init__(self, usercode, orderid): self.ApiUrl = 'http://mall-api.zycg.gov.cn' self.priKey = '''-----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQCsAiCNz0SMIhMoQtxmgphUqxYSW+wXz9Ub9EuRKXrFVPUc0Dm9 6Mn/zwNkmsiqfjw1UOVhnm6lKERSXUZ/1y+Xfhn16zsj6uBVtRa+G4g+S/sDNBvM GjHxqba7AtihEVslmrNfEmb0T6T0QbV80gqnb9idCCFpsMroGJtDCMXFrQIDAQAB AoGAS0avCoCfxhgPfDoujGow0jUBds1luFILOK2j+IZHpV512sNB0duzs1DcckXO 9dZC8S5TBHK6h2rk44rQlJgOyi0GvIpaIKKPDii7PcOIm8ortmuKvDb/9iNonSsX QqAVr/aSHstE2TWgx5r1rVQC3UDqSNAKJJZvyWMq13o16wECQQDT6jmY7rnDxiex lB7HQiLhe+6PAuR1bqyu6rAsuNJ1yCv1sMJOAh/kLU83gn5Bu46urOoZtF1nBMmZ vhaL8IpBAkEAz8qg3XH+BRR6i4/q19z3snFLQmmfbXUGYURf2RxNQJvbG3IMHyCk O/bqR4RHX7388+itgrE8O3Qg6jQGUhDobQJASc7opLVxChj4NkdquOf2EicCHdla DPSxPHMNTWZKFy/S783SvyzKQsTtNF5E70wOFBSxrKY/aeQm+19TpwXugQJBAIfY I7TCGlx91+O3scNvzWuWT6paXQT1FbevOK46p3KOsf7OX4hWEai2MtGQdAzuqxlW S2D+t67yq7YRTvSF4z0CQALqqK/SArm3qsAc4XcAhoIPzgELzcqBF2Xsqlp0pEx2 IivDCEwCkCL6CXwa5qoEHXrskarZuhDe3yZhRnuKj80= -----END RSA PRIVATE KEY-----''' self.time = datetimenowS() self.username = '******' self.passwd = '6i2hvvpvv2wmrvt9' self.passwd = '{}{}'.format(self.passwd, self.time).encode(encoding="utf-8") self.datatime = str(datetimenow()).split('.')[0] self.headers = {'Content-Type': 'application/json;charset=utf-8'} self.usercode = usercode self.orderid = orderid # 订单ID ''' 订单基本信息 :return: ''' try: self.orderModel = Order.objects.get(orderid=self.orderid) self.total = float(self.orderModel.total) # '总订单 成交总价' self.province = self.orderModel.province # '北京' self.city = self.orderModel.city # '北京' self.deliveryaddress = self.orderModel.deliveryaddress # '详细地址' self.name = self.orderModel.linkman # '名字' self.phone = self.orderModel.linkmobile # '电话号' self.remark = self.orderModel.remark # '订单备注' self.paymethod = int(self.orderModel.paymethod) # 付款方式 self.ispaid = int(self.orderModel.ispaid) # 是否完成支付、结清账期 self.ordispaid = int(self.orderModel.ordispaid) self.suborder = Suborderlist.objects.get(key=self.orderModel) self.subtotal = float(self.suborder.total) # '子订单总金额 不可大于总订单金额' ''' 子订单基本信息 ''' self.good = Goodslist.objects.filter(key=self.suborder) '''物流订单信息''' self.istics = Logistics.objects.filter(key=self.orderModel) except: log.i(globals(), '没有获取到Order订单信息,跳过') pass
def order_PaymentCompletion(self): ''' 更新订单-更新支付信息 以完成支付 0 没付款 1 款结了 :return: ''' if not self.usercode or self.usercode == '': log.i(globals(), '非国采用户,跳过更新订单-更新支付信息 以完成支付') return False if self.ispaid == 0: # 没付款 data = { 'user': { 'username': self.username, 'code': self.sign() }, 'param': { 'orderid': self.orderid, 'type': 2, # 更新支付信息,需附带paymethod、ispaid参数 'paymethod': self.paymethod, 'ispaid': 1 # 款结了 } } html = requests.post(url='{}/api/order_update'.format(self.ApiUrl), data=json.dumps(data), headers=self.headers) if html: self.orderModel.ispaid = 1 self.orderModel.save() pass dicts = json.loads(html.text) if dicts['returnmessage']['code'] == 1: log.i(globals(), '国采用户,更新订单-更新支付信息 以完成支付', json.loads(html.text)) else: # 验收单创建失败 # 后续处理 models.Error_Order( info=1, mess='[orderid={}],[total={}],[return={}]'.format( self.orderid, self.total, dicts), key=self.orderModel, time=datetimenow()).save() log.i(globals(), '【失败】国采用户,更新订单-更新支付信息 以完成支付 ', json.loads(html.text)) pass return dicts pass else: # 以付款 log.i(globals(), '国采用户,以付款,不更新订单信息', self.ispaid) pass return False pass
def order_delete(self, stype=0): ''' 取消整个订单(生成验收单之前) 根据验收单是否生成 而采取 取消验收单还是作废验收单操作 :return: ''' if not self.usercode or self.usercode == '': log.i(globals(), '非国采用户,跳过取消整个订单(生成验收单之前)') return False if self.ordispaid == 0: data = { 'user': { 'username': self.username, 'code': self.sign() }, 'param': { 'orderid': self.orderid, 'type': stype # '请求类型' } } html = requests.post(url='{}/api/order_update'.format(self.ApiUrl), data=json.dumps(data), headers=self.headers) dicts = json.loads(html.text) log.i(globals(), '国采用户,取消整个订单(生成验收单之前)', json.loads(html.text)) elif self.ordispaid == 2: data = { 'user': { 'username': self.username, 'code': self.sign() }, 'param': { 'orderid': self.orderid, 'type': 7 # 作废整个订单(退货,生成验收单之后) } } html = requests.post(url='{}/api/order_update'.format(self.ApiUrl), data=json.dumps(data), headers=self.headers) dicts = json.loads(html.text) if dicts['returnmessage']['code'] == 1: log.i(globals(), '国采用户,取消整个订单(生成验收单之前)', json.loads(html.text)) else: # 验收单创建失败 # 后续处理 models.Error_Order( info=1, mess='[orderid={}],[total={}],[return={}]'.format( self.orderid, self.total, json.loads(html.text)), key=self.orderModel, time=datetimenow()).save() log.i(globals(), '【失败】国采用户,取消整个订单(生成验收单之前) ', json.loads(html.text)) pass return dicts pass
def AuthToken(self, code): data = { 'type': 'cgr', 'grant_type': 'authorization_code', 'code': code, 'redirect_uri': self.redirect_uri, } RegisterState.objects.get(code=code) html = self.service.get_raw_access_token(data=data) log.i(globals(), 'AuthToken_POST', html.text) if 'refresh' in html.text: html = self.service.get_raw_access_token(data=data) log.i(globals(), 'AuthToken_POST', html.text, '刷新页面') pass jso = json.loads(html.text) try: self.access_token = jso['access_token'] except: from managestage.utli.datetimenow import datetime_unix error = jso['error'] if error == 'invalid_grant': state = str(datetime_unix()).split('.')[0] params = { 'redirect_uri': self.redirect_uri, 'response_type': 'code', 'scope': 'read', 'state': str(state), 'type': 'cgr', } response = requests.post(url=self.userinfo_url, data=params) print(response.text) pass print(jso) print( '-------------------------------------------------------------' ) print('KeyError 错误,重新登录') return None print('GET获取') return self.access_token
def order_delete_on(self): ''' 作废整个订单(生成验收单之后) :return: ''' # if not self.usercode or self.usercode == '': # log.i(globals(), '非国采用户,跳过作废整个订单(生成验收单之后)') # return False data = { 'user': { 'username': self.username, 'code': self.sign() }, 'param': { 'orderid': self.orderid, 'type': 7 # 作废整个订单(退货,生成验收单之后) } } html = requests.post(url='{}/api/order_update'.format(self.ApiUrl), data=json.dumps(data), headers=self.headers) dicts = json.loads(html.text) if dicts['returnmessage']['code'] == 1: log.i(globals(), '国采用户,作废整个订单(生成验收单之前)', json.loads(html.text)) acc = Acceptance.objects.get(orderid=self.orderid) acc.state = -1 acc.save() # 订单中的验收单状态 self.orderModel.ordispaid = -1 self.orderModel.save() else: # 验收单创建失败 # 后续处理 models.Error_Order( info=1, mess='[orderid={}],[total={}],[return={}]'.format( self.orderid, self.total, json.loads(html.text)), key=self.orderModel, time=datetimenow()).save() log.i(globals(), '【失败】国采用户,作废整个订单(生成验收单之前) ', json.loads(html.text)) return False pass return dicts pass
def order_knot(self): ''' 更新订单-如果数据库ispaid为1 则申请生成验收单 0 没付款 1 款结了 :return: ''' if not self.usercode or self.usercode == '': log.i(globals(), '非国采用户,跳过更新订单-如果数据库ispaid为1 则申请生成验收单') return False if self.ispaid == 1: # 款结了 申请生成验收单 data = { 'user': { 'username': self.username, 'code': self.sign() }, 'param': { 'orderid': self.orderid, 'type': 1, # 已验收完成(申请生成验收单) 'paymethod': self.paymethod, 'ispaid': self.ispaid } } html = requests.post(url='{}/api/order_update'.format(self.ApiUrl), data=json.dumps(data), headers=self.headers) dicts = json.loads(html.text) if dicts['returnmessage']['code'] == 1: log.i(globals(), '国采用户,款结了 申请生成验收单', dicts, dicts['returnmessage']['ysd_code']) acc = Acceptance.objects.get(orderid=self.orderid) acc.state = 0 acc.ysd_code = dicts['returnmessage']['ysd_code'] acc.save() else: # 验收单创建失败 # 后续处理 models.Error_Order( info=1, mess='[orderid={}],[total={}],[return={}]'.format( self.orderid, self.total, dicts), key=self.orderModel, time=datetimenow()).save() log.i(globals(), '【失败】国采用户,款结了 申请生成验收单 ', json.loads(html.text)) pass return json.loads(html.text) pass else: # 没付款 log.i(globals(), '国采用户,没付款,不更新订单信息', self.ispaid) pass return False pass
def dirHead(self, dirc, disUrl, path_image): ''' 商品展示图 :param url: :param dirc: :return: ''' name = '' for i in '{}-{}.{}'.format( str(datetimenow.datetimenow()).split('.')[0], random.randint(1000, 9000), str(dirc).split('.')[1]).split(':'): name += i pass a = self.get_absloute_url(BASE_DIR, self.url, dirc) b = self.get_absloute_url(disUrl, 'head', name) path_image_b = self.get_absloute_url(path_image, 'head', name) log.i(globals(), '商品展示图: ', dirc.split('.')[0], '->', path_image_b) if not self.images: self.images = self.get_absloute_url('/', path_image_b) print('商品展示图 self.images', self.images) self.HeadList.append( (dirc.split('.')[0], self.get_absloute_url('/', path_image_b))) self.HeadList.sort(key=lambda k: k[0]) log.i(globals(), 'HeadList', self.HeadList) b = self.get_absloute_url(BASE_DIR, b) shutil.copyfile(a, b) pass
def mail(email_user, email_title=None, email_body=None): ''' 发送邮件 :param email_user: :param code: :param args: :return: ''' send_status = False try: if email_user: send_status = send_mail(email_title, email_body, settings.EMAIL_HOST_USER, [email_user]) if send_status: log.i(globals(), '发送邮件成功') pass except Exception as e: log.i(globals(), '发送邮件失败,抛出异常', e.args) pass return send_status
def addModelsObjects(self): c = self.content for i in c: head = i['a'] cont = i['b'] name = i['n'] money = i['m'] unix = i['u'] text = '' for i in cont: text += ''' <p> <img src="{}"/> </p> '''.format(i[1]) log.i(globals(), '类型cont', i, i[1], unix, text) pass t = datetimenow.datetimenow() ware = models.WareApp(name=name, money=money, connet=text, image=self.images, unix=unix, time_add=t, time_now=t) ware.save() for image in head: log.i(globals(), '类型head', image, image[1]) models.images(image=image[1], key=ware).save() models.parameter(model=name, key=ware).save() pass
def dirList(self): dirHeadList = [] dirContentList = [] log.i( globals(), '--------------------------------Start--------------------------------' ) if os.path.exists(self.url): dirs = os.listdir(self.url) print('sort', dirs.sort()) for dis in dirs: url = self.get_absloute_url(self.url, dis) disUrl = self.get_absloute_url('media', 'images', ''.join(self.unix)) path_image = self.get_absloute_url('images', ''.join(self.unix)) Urls = self.get_absloute_url(BASE_DIR, disUrl) if not 'Thumbs.db' in dis: h, c = None, None if not pathlib.Path(Urls).exists(): os.makedirs(Urls) if not pathlib.Path(self.get_absloute_url( Urls, 'head')).exists(): os.makedirs(self.get_absloute_url(Urls, 'head')) if os.path.isfile(url): self.dirHead(dis, disUrl, path_image) # 商品展示图 elif os.path.isdir(url): self.dirContent(dis, disUrl) # 商品详情页 self.name = dis else: log.i(globals(), '导入商品失败', url) self.log_ware.append({'url': url, 'name': self.name}) pass self.log_ware.append({'name': '商品导入成功 {}'.format(Urls)}) pass self.content.append({ 'a': self.HeadList, 'b': self.ConList, 'u': self.unix, 'n': self.name, 'm': 0 }) log.i(globals(), self.content)
def order_logistics(self): ''' 物流推送接口, 全量推送 只推送数据库里面的物流信息 :return: ''' if not self.usercode or self.usercode == '': log.i(globals(), '非国采用户,跳过物流推送接口, 全量推送') return False logisticslist = [] for i in self.istics: logisticslist.append({ 'time': str(i.time.astimezone()).split('+')[0], 'info': i.info, 'username': i.username }) pass data = { 'user': { 'username': self.username, 'code': self.sign() }, 'param': { 'orderid': self.orderid, 'suborderid': self.orderid, # '子订单号(卖场)', 'logisticslist': logisticslist } } html = requests.post(url='{}/api/order_logistics'.format(self.ApiUrl), data=json.dumps(data), headers=self.headers) dicts = json.loads(html.text) if dicts['returnmessage']['code'] == 1: log.i(globals(), '国采用户,物流推送接口, 全量推送', json.loads(html.text)) else: # 验收单创建失败 # 后续处理 models.Error_Order( info=1, mess='[orderid={}],[total={}],[return={}]'.format( self.orderid, self.total, json.loads(html.text)), key=self.orderModel, time=datetimenow()).save() log.i(globals(), '【失败】国采用户,物流推送接口, 全量推送 ', json.loads(html.text)) pass return json.loads(html.text) pass
def order_create(self): ''' 创建订单 :return: ''' if not self.usercode or self.usercode == '': log.i(globals(), '非国采用户,跳过创建订单') return False url = settings.HTTP_HOST goodslist = [] for i in self.good: goodslist.append({ 'goodsname': i.goodsname, 'goodsid': i.goodsid, 'spu': i.spu, 'sku': i.sku, 'model': i.model, 'goodsclassguid': int(i.goodsclassguid), 'goodsclassname': i.goodsclassname, 'goodsbrandname': i.goodsbrandname, 'qty': int(i.qty), 'total': float(i.total), 'price': float(i.price), 'originalprice': float(i.originalprice), 'imgurl': i.get_image_url(), 'goodsurl': '{}{}'.format(url, i.goodsurl) }) pass data = { 'user': { 'username': self.username, 'code': self.sign() }, 'param': { 'orderid': self.orderid, 'province': self.province, 'city': self.city, 'total': float(self.total), 'linkman': self.name, 'linkmobile': self.phone, 'deliveryaddress': self.deliveryaddress, 'paymethod': self.paymethod, 'ispaid': self.ispaid, 'remark': self.remark, 'usercode': self.usercode, 'createtime': self.datatime, 'suborderlist': [{ 'suborderid': self.orderid, # 后期可能需要修改 'total': float(self.subtotal), 'goodslist': goodslist }] } } log.i(globals(), 'DATE ', data) html = requests.post(url='{}/api/order_create'.format(self.ApiUrl), data=json.dumps(data), headers=self.headers) dicts = json.loads(html.text) if dicts['returnmessage']['code'] == 1: log.i(globals(), '国采用户,创建订单', json.loads(html.text)) Acceptance(orderid=self.orderid, usercode=self.usercode, time=datetimenow()).save() else: # 验收单创建失败 # 后续处理 models.Error_Order( info=1, mess='[orderid={}],[total={}],[return={}]'.format( self.orderid, self.total, dicts), key=self.orderModel, time=datetimenow()).save() log.i(globals(), '【失败】国采用户,创建订单 ', json.loads(html.text)) pass return dicts pass
def post(self, request): ''' 增加数量,减少数量,批量删除,单个删除 :param request: :return: ''' id = request.POST.get('id') stype = request.POST.get('type') self.data = [] wcart = WareCartJson.cart(self.request) if stype == '-' or stype == '+': carts = models.Cart.objects.get(id=id) '''商品数量增加或减少''' if stype == '-': carts.numb -= 1 pass if stype == '+': carts.numb += 1 pass carts.money = carts.numb * carts.price carts.save() wcart.cancelCartTotal(carts) # 计算商品优惠率等信息,将其写入购物车商品信息 wcart.setListRate(carts) ca = cart(request) self.data = ca.getPrice(raw=carts) pass if stype == 'del': list_id = str(id).split('&') try: for i in list_id: ''' 添加被删除商品ID到list : 用于前端Js删除商品DIV块 ''' ids = i.split('=')[1] self.data.append(ids) del_cart = models.Cart.objects.get(id=ids).delete() wcart.setListRate(del_cart, request=request) pass except: ''' 添加被删除商品ID到list : 用于前端Js删除商品DIV块 ''' del_cart = models.Cart.objects.get(id=id).delete() wcart.setListRate(del_cart, request=request) self.data.append(id) pass pass try: content = { 'state': 'success', 'data': json.loads(json.dumps(self.data)), 'code': 200 } except: content = {'state': 'success', 'data': self.data, 'code': 200} log.i(globals(), json.dumps(content)) return HttpResponse(json.dumps(content)) pass
def dirContent(self, dirc, disUrl): ''' 商品详情页 :param url: :param dirc: :return: ''' urls = self.get_absloute_url(self.url, dirc) if os.path.exists(urls): for dircs in os.listdir(urls): if not 'Thumbs.db' in dircs: a = self.get_absloute_url(BASE_DIR, self.url, dirc, dircs) if os.path.isdir(a): for root, dirnames, filenames in os.walk(a): for filepath in filenames: name = '' for i in '{}-{}.{}'.format( str(datetimenow.datetimenow()).split( '.')[0], random.randint(1000, 9000), str(filepath).split('.')[1]).split( ':'): name += i pass b = self.get_absloute_url(disUrl, name) self.ConList.append( (filepath.split('.')[0], self.get_absloute_url('/', b))) self.ConList.sort(key=lambda k: k[0]) log.i(globals(), 'ConList', self.ConList) b = self.get_absloute_url(BASE_DIR, b) shutil.copyfile( self.get_absloute_url(a, filepath), b) # log.i(globals(), '商品详情页: ', os.path.join(a, filepath), '->', b) pass pass else: name = '' for i in '{}-{}.{}'.format( str(datetimenow.datetimenow()).split('.')[0], random.randint(1000, 9000), str(dircs).split('.')[1]).split(':'): name += i pass b = self.get_absloute_url(disUrl, name) self.ConList.append((dircs.split('.')[0], self.get_absloute_url('/', b))) self.ConList.sort(key=lambda k: k[0]) log.i(globals(), 'ConList', self.ConList) b = self.get_absloute_url(BASE_DIR, b) shutil.copyfile(a, b) log.i(globals(), '商品详情页: ', a, '->', b) pass pass pass pass
def app_Search(request, lend): from managestage.models import SearchStatistics search = request.GET.get('search') if not search: search = '' Newsearch = request.GET.get('searback') classify = models.Classification.objects.filter() # 全部分类 nav = models.Navigation.objects.filter() # 导航 navtwo = models.Navigation_Two.objects.filter() # 子导航 t1 = request.GET.get('t1') # 品牌 t2 = request.GET.get('t2') # 类型 t3 = request.GET.get('t3') # 技术类型 t4 = request.GET.get('t4') # 使用场景 t5 = request.GET.get('t5') # 价钱 if t1: t1 = str(t1).split('.')[1] # 品牌 else: t1 = '' if t2: t2 = str(t2).split('.')[1] # 类型 else: t2 = '' if t3: t3 = str(t3).split('.')[1] # 技术类型 else: t3 = '' if t4: t4 = str(t4).split('.')[1] # 使用场景 else: t4 = '' if t5: t5 = str(t5).split('.')[1] # 价钱 else: t5 = '' Qst = Q() Qst.connector = 'AND' Qst.children.append(('brand_key__name__icontains', t1)) Qst.children.append(('producttype_key__name__icontains', t2)) Qst.children.append(('technology_key__name__icontains', t3)) Qst.children.append(('scene_key__name__icontains', t4)) Qst.children.append(('pricerange_key__name__icontains', t5)) '''搜索商品''' qs = Q() qs.children.append(('wareApp_key__name__icontains', search)) A = models.WareAppPrefix.objects.filter(Q(qs)) B = [] C = [] Ds = None if not A: '''通过商品搜索器搜索商品''' qs = Q() qs.connector = 'OR' qs.children.append(('classifythere_key__name__icontains', search)) B = models.WareAppPrefix.objects.filter(Q(qs, )) if not B: '''通过商品的详细配置参数搜索商品''' qs = Q() qs.connector = 'OR' qs.children.append(('brand__name__icontains', search)) qs.children.append(('model__icontains', search)) qs.children.append(('brands__icontains', search)) qs.children.append(('brands__icontains', search)) C = models.parameter.objects.filter(qs) if C: Ds = models.WareAppPrefix.objects.filter(Qst, wareApp_key=C[0].key) D = [] for i in A: try: ware = i.wareApp_key if ware.release == True: try: image = models.images.objects.filter(key=ware)[:1].get().image except: image = '/static/images/ware/404.png' log.i(globals(), 'A', image) D.append({ 'id': ware.id, 'name': ware.name, 'money': ware.money, 'connet': ware.connet, 'characteristic': ware.characteristic, 'commodity_description': ware.commodity_description, 'unix': ware.unix, 'image': '{}{}'.format(settings.HTTP_HOST, image) }) pass log.i(globals(), 'A', i.wareApp_key.name) except: log.i(globals(), 'A', '通过商品的详细配置参数没有搜索商品') pass pass for i in B: try: ware = i.wareApp_key if ware.release == True: try: image = models.images.objects.filter(key=ware)[:1].get().image except: image = '/static/images/ware/404.png' log.i(globals(), 'B', image) D.append({ 'id': ware.id, 'name': ware.name, 'money': ware.money, 'connet': ware.connet, 'characteristic': ware.characteristic, 'commodity_description': ware.commodity_description, 'unix': ware.unix, 'image': '{}{}'.format(settings.HTTP_HOST, image) }) pass log.i(globals(), 'B', i.wareApp_key.name) except: log.i(globals(), 'B', '通过商品的详细配置参数没有搜索商品') pass pass for i in C: try: ware = i.key if ware.release == True: try: image = models.images.objects.filter(key=ware)[:1].get().image except: image = '/static/images/ware/404.png' log.i(globals(), 'C', image) D.append({ 'id': ware.id, 'name': ware.name, 'money': ware.money, 'connet': ware.connet, 'characteristic': ware.characteristic, 'commodity_description': ware.commodity_description, 'unix': ware.unix, 'image': '{}{}'.format(settings.HTTP_HOST, image) }) pass log.i(globals(), 'C', i.key.name) except: log.i(globals(), 'C', '通过商品的详细配置参数没有搜索商品') pass pass log.i(globals(), 'ASD ', t1, t2, t3, t4, t5) ts1, ts2, ts3, ts4, ts5 = None, None, None, None, None WarePrefix = None ''' 获取第一个商品的 搜索筛选器 ''' filter_error = {} if A: A1 = A[0] WarePrefix = WareSetupPrefix.objects.filter(key=A1.classifythere_key) log.i(globals(), 'A1', WarePrefix, A1.classifythere_key.id) elif B: B1 = B[0] WarePrefix = WareSetupPrefix.objects.filter(key=B1.classifythere_key) log.i(globals(), 'B1', WarePrefix, B1.wareApp_key.id) elif Ds: C1 = Ds[0] WarePrefix = WareSetupPrefix.objects.filter(key=C1.classifythere_key) log.i(globals(), 'C1', WarePrefix, C1.wareApp_key.id) pass else: '''未搜索到商品''' WarePrefix = WareSetupPrefix.objects.filter() filter_error = { 'error': '没有搜索到商品' } pass if WarePrefix: ts1 = WarePrefix.filter(filter_id='0')[:1].get() ts2 = WarePrefix.filter(filter_id='1')[:1].get() ts3 = WarePrefix.filter(filter_id='2')[:1].get() ts4 = WarePrefix.filter(filter_id='3')[:1].get() ts5 = WarePrefix.filter(filter_id='4')[:1].get() E = [] log.i(globals(), 'AAAAAAAAAA ', WarePrefix) brand = [] if ts1: # Q(('name__icontains', t1)) , for i in models.Brand.objects.filter(PrefixKey=ts1): brand.append({ 'id': i.id, 'name': i.name }) pass E.append( { 'name': ts1.t1, 'data': brand } ) producttype = [] if ts2: # Q(('name__icontains', t2)), for i in models.ProductType.objects.filter(PrefixKey=ts2): producttype.append({ 'id': i.id, 'name': i.name }) pass E.append( { 'name': ts1.t1, 'data': brand } ) technology = [] if ts3: # Q(('name__icontains', t3)), for i in models.Technology.objects.filter(PrefixKey=ts3): technology.append({ 'id': i.id, 'name': i.name }) pass E.append( { 'name': ts1.t1, 'data': brand } ) scene = [] if ts4: # Q(('name__icontains', t4)), for i in models.Scene.objects.filter(PrefixKey=ts4): scene.append({ 'id': i.id, 'name': i.name }) pass E.append( { 'name': ts1.t1, 'data': brand } ) pricerange = [] if ts5: # Q(('name__icontains', t5)), for i in models.PriceRange.objects.filter(PrefixKey=ts5): pricerange.append({ 'id': i.id, 'name': i.name }) pass E.append( { 'name': ts1.t1, 'data': brand } ) try: filters = { 't1': ts1.t1, 't2': ts2.t2, 't3': ts3.t3, 't4': ts4.t4, 't5': ts5.t5 } except: filters = { } content = { 'search_ok': Newsearch, 'search': search, 'wareapp': D, 'auth_search': '', 'E': E, 'brand': brand, 'productType': producttype, 'technology': technology, 'scene': scene, 'priceRange': pricerange, 'Classifications': classify, 'navigation': nav, 'navigation_two': navtwo, 'filter': filters, 'filter_error': filter_error } # log.i(globals(), content) return render(request, 'defaule/app/search.html', content)
def app_Searchs(request, lend): from managestage.models import SearchStatistics searchs = request.GET.get('search') search_ok = request.GET.get('searback') evp = request.GET.get('evp') # 品牌 evs = request.GET.get('evs') # 类型 evj = request.GET.get('evj') # 技术类型 evf = request.GET.get('evf') # 使用场景 evq = request.GET.get('evq') # 价钱 classifications = models.Classification.objects.filter() # 全部分类 navigation_two = models.Navigation_Two.objects.filter() # 子导航 navigation = models.Navigation.objects.filter() # 导航 wareapp = search(searchs, search_ok, lend, evp, evs, evj, evf, evq) search_new, warePrefix = wareapp.getOjbectsModels() auth_search = False # 搜索到结果为 True key = None if len(search_new) > 0 and classifications[0]: print('用户搜索到商品', warePrefix.filter()[:1].get()) auth_search = True search_filter = warePrefix.filter()[:1].get() aaa = search_filter.classifythere_key print('aaa ------ ', aaa) key = models.Classification_There.objects.filter(id=search_filter.classifythere_key_id)[0] print('key-----------------', key) ''' 统计用户搜索关键字习惯 ''' if searchs: try: Statistics = SearchStatistics.objects.get(name__icontains=searchs) Statistics.number += 1 Statistics.save() except: SearchStatistics( name=searchs, number=1 ).save() pass print('SEARCH ---- ', search_ok, search_new, key) if search_ok: keys = models.Classification_There.objects.filter(name=search_ok) print('name--------', keys[0].id) if keys: key = keys[0] pass else: if key: search_ok = key.name else: search_ok = models.Classification_There.objects.filter()[:1] if search_ok: search_ok = search_ok.get() else: search_ok = '' pass pass WarePrefix = models.WareSetupPrefix.objects.filter(key=key) log.i(globals(), WarePrefix) pricerange = models.PriceRange.objects.filter(key=WarePrefix.get(filter_id='4')) # 价格范围 producttype = models.ProductType.objects.filter(key=WarePrefix.get(filter_id='1')[:1].get()) # 产品类型 technology = models.Technology.objects.filter(key=WarePrefix.get(filter_id='2')[:1].get()) # 技术类型 scene = models.Scene.objects.filter(key=WarePrefix.get(filter_id='3')[:1].get()) # 使用场景 brand = models.Brand.objects.filter(key=WarePrefix.get(filter_id='0')[:1].get()) # 品牌 content = { 'search_ok': search_ok, 'search': searchs, 'wareapp': search_new, 'auth_search': auth_search, 'brand': brand, 'productType': producttype, 'technology': technology, 'scene': scene, 'priceRange': pricerange, 'Classifications': classifications, 'navigation': navigation, 'navigation_two': navigation_two } log.i(globals(), content) return render(request, 'defaule/app/search.html', content)