コード例 #1
0
    def _post(self):
        if self.admin.level < 2:
            return self.render_html('admin/error.html', msg="no permission!")

        express_name = self.get_argument("express_name")
        express_no = self.get_argument("express_no")
        order_id = self.get_argument("order_id")
        if not all([express_name, express_no, order_id]):
            return self.render_html('admin/error.html',
                                    msg="fields is required!")

        ugs = UserGoodsService(UserGoods)
        ug = ugs.get(id=order_id)

        deliver_info = DeliverInfo()
        deliver_info.user_goods_id = order_id
        deliver_info.user_id = ug.user_id
        deliver_info.goods_id = ug.goods_id
        deliver_info.goods_name = ug.goods_name
        deliver_info.number = ug.number
        deliver_info.express_name = express_name
        deliver_info.express_no = express_no
        deliver_info.deliver_address_id = ug.deliver_address_id
        deliver_info.status = 0

        ugs.deliver(deliver_info, {'status': 2}, **{'id': order_id})

        self.redirect('/admin/delivered_list')
コード例 #2
0
    def _get(self):
        order_id = int(self.get_argument('order_id', 0))
        if not order_id:
            return self.render_html('app/alert.html', msg=u"请选择订单!")

        user_goods_service = UserGoodsService(UserGoods)
        order = user_goods_service.get(id=order_id)
        if not order:
            return self.render_html('app/alert.html', msg=u"该订单不存在!")

        info = {}
        info['order_id'] = order.id
        info['code'] = order.code
        info['user_id'] = order.user_id
        info['goods_id'] = order.goods_id
        info['goods_name'] = order.goods_name
        info['number'] = order.number
        info['feed_day'] = order.feed_day
        info['deliver_date'] = str(order.deliver_date).split()[0]
        info['create_date'] = order.create_date
        info['status'] = order.status

        udas = UserDeliverAddressService(UserDeliverAddress)
        address = udas.get(id=order.deliver_address_id, status=1) or udas.get(
            id=order.deliver_address_id, status=0)

        info['name'] = address.name
        info['phone'] = address.phone
        info['address'] = u'{0}{1}'.format(address.region_name,
                                           address.address)
        info['zip_code'] = address.zip_code

        goods = GoodsService(GoodsInfo).get(id=order.goods_id)
        info['type'] = goods.type

        info['avatar'] = ''
        if goods.avatar_id:
            avatar = AvatarService(AvatarInfo).get(id=goods.avatar_id)
            info['avatar'] = os.path.join(settings.AVATAR_URL,
                                          avatar.filename) if avatar else ''

        info['goods_price'] = order.goods_price
        info['amount'] = 0
        info['pay_date'] = ''
        info['discount'] = 0
        pay = UserPayService(UserPay).get(user_goods_id=order_id)
        if pay:
            info['amount'] = pay.amount
            info['pay_date'] = pay.create_date
            info['discount'] = order.goods_price * order.number - pay.amount

        info['express_name'] = ''
        info['express_no'] = ''
        if order.status != 1:
            di = DeliverService(DeliverInfo).get(user_goods_id=order_id)
            if di:
                info['deliver_date'] = str(di.create_date).split()[0]
                info['express_name'] = di.express_name
                info['express_no'] = di.express_no

        ftext, stext, after = self.get_text(order, info['deliver_date'],
                                            goods.type)
        info['ftext'] = ftext
        info['stext'] = stext
        info['after'] = after

        return self.render_html('app/order_detail.html', **info)