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 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_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 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_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_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