コード例 #1
0
    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
コード例 #2
0
    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
コード例 #3
0
    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
コード例 #4
0
    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
コード例 #5
0
    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
コード例 #6
0
    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