|
@@ -67,24 +67,28 @@ class OrderViewSet(CustomModelViewSet):
|
|
|
commodity_id = request.POST.get('commodity')
|
|
|
openid = request.POST.get('openid')
|
|
|
appid = request.POST.get('appid')
|
|
|
- balance = request.POST.get('balance')
|
|
|
+ coupon = request.POST.get('coupon')
|
|
|
+ count = request.POST.get('count')
|
|
|
|
|
|
try:
|
|
|
# if request.user.id != 17 and request.user.id != 18:
|
|
|
# raise CustomError(u'系统升级中,请稍后再试!')
|
|
|
- commodity = Commodity.objects.filter(id=commodity_id, status=settings.ONLINE).first()
|
|
|
+ count = int(count)
|
|
|
+ commodity = Commodity.objects.filter(id=commodity_id, status=settings.ONLINE, stock__gte=count).first()
|
|
|
if not commodity:
|
|
|
- raise CustomError(u'当前商品信息有误,请退出重试!')
|
|
|
+ raise CustomError(u'当前商品库存不足!')
|
|
|
|
|
|
with transaction.atomic():
|
|
|
serializer = self.get_serializer(data=request.data)
|
|
|
if serializer.is_valid(raise_exception=True):
|
|
|
instance = serializer.save()
|
|
|
|
|
|
- instance.name = commodity.name
|
|
|
- instance.price = commodity.price
|
|
|
- instance.total_amount = commodity.amount
|
|
|
- actual_amount = commodity.amount
|
|
|
+ instance.total_amount = count * commodity.price * commodity.discount/100
|
|
|
+ actual_amount = instance.total_amount
|
|
|
+ if coupon:
|
|
|
+ coupon = Coupon.objects.filter(id=coupon).first()
|
|
|
+ actual_amount -= coupon.amount
|
|
|
+ instance.coupon = coupon
|
|
|
|
|
|
data = ''
|
|
|
if actual_amount:
|
|
@@ -95,6 +99,8 @@ class OrderViewSet(CustomModelViewSet):
|
|
|
Formater.formatPriceShow(actual_amount))
|
|
|
instance.pay = pay
|
|
|
instance.save()
|
|
|
+ commodity.stock -= count
|
|
|
+ commodity.save()
|
|
|
BizLog.objects.addnew(self.request.user, BizLog.INSERT,
|
|
|
u'添加订单[%s],id=%d' % (instance.no, instance.id), request.data)
|
|
|
return response_ok(data)
|