Пример #1
0
    def post(self, request):
        medlist = request.data.get('list')
        userph = request.data.get('phone')
        user = User.objects.get(phone=userph)
        user_id = user.id
        store_id = medlist[0]['drugstore']

        if request.data.get('pay_method'):
            pay_method = request.data.get('pay_method')

            med_price = 0
            count = 0
            ordergoods = []
            for med in medlist:
                price = med['price'] * med['num']

                context = {
                    'med_name': med['name'],
                    'med_price': price,
                    'med_count': med['num'],
                }
                ordergoods.append(context)
                med_price += price
                count += med['num']

            order = Orders()
            order.order_id = datetime.now().strftime('%Y%m%d%H%M%S') + str(
                store_id) + str(user_id)
            order.customer_id = user_id
            order.drugstore_id = store_id
            order.med_price = med_price
            order.transit_price = 2
            order.total_price = med_price + order.transit_price
            order.total_count = count
            order.order_status = 1
            order.pay_method = pay_method
            order.staff_id = 999
            order.save()

            paymethod = ['现金支付', '微信支付', '支付宝']
            orderstatus = ['待支付', '待配送', '已送达', '待评价', '已完成']

            order_ = {
                'order_id': order.order_id,
                'user': User.objects.get(id=user_id).name,
                'address': order.customer.addr,
                'receiver': order.customer.name,
                'phone': order.customer.phone,
                'drugstore': order.drugstore.name,
                'med_price': order.med_price,
                'total_count': order.total_count,
                'total_price': order.total_price,
                'transit_price': order.transit_price,
                'order_status': orderstatus[order.order_status],
                'pay_method': paymethod[order.pay_method],
            }

            for med in medlist:
                price = med['price'] * med['num']

                ordergood = OrderGoods()
                ordergood.sku_id = med['id']
                ordergood.order_id = order.order_id
                ordergood.count = med['num']
                ordergood.price = price
                ordergood.save()
                med_ = Medicine.objects.get(id=med['id'])
                med_.stock -= med['num']
                med_.sales += med['num']
                med_.save()

            return Response({'status': 1})
        else:

            med_price = 0
            count = 0
            ordergoods = []
            for med in medlist:
                price = med['price'] * med['num']

                context = {
                    'med_name': med['name'],
                    'med_price': price,
                    'med_count': med['num'],
                }
                ordergoods.append(context)
                med_price += price
                count += med['num']

            order = Orders()
            order.order_id = datetime.now().strftime('%Y%m%d%H%M%S') + str(
                store_id) + str(user_id)
            order.customer_id = user_id
            order.drugstore_id = store_id
            order.med_price = med_price
            order.transit_price = 2
            order.total_price = med_price + order.transit_price
            order.total_count = count
            order.order_status = 1

            paymethod = ['现金支付', '微信支付', '支付宝']
            orderstatus = ['待支付', '待配送', '已送达', '待评价', '已完成']

            order_ = {
                'order_id': order.order_id,
                'user': User.objects.get(id=user_id).name,
                'address': order.customer.addr,
                'receiver': order.customer.name,
                'phone': order.customer.phone,
                'drugstore': order.drugstore.name,
                'med_price': order.med_price,
                'total_count': order.total_count,
                'total_price': order.total_price,
                'transit_price': order.transit_price,
                'order_status': orderstatus[order.order_status],
            }

            return Response({'ordergoods': ordergoods, 'order': order_})