n rel="diff-200e8d3f895d5812f8045693e044efcb3c858025L14">14
from utils.error.errno_utils import ProductModelStatusCode, ProductStatusCode, SaleclerkStatusCode
@@ -47,9 +47,52 @@ def clerk_sale_submit_api(request):
file_path = request.POST.get('file_path', '')
+ try:
+ clerk = SaleclerkInfo.objects.get(user_id=user_id)
+ except SaleclerkInfo.DoesNotExist:
+ return response(SaleclerkStatusCode.CLERK_NOT_FOUND)
+
+ # 店员提交记录
+ SaleclerkSubmitLogInfo.objects.create(
+ franchiser_id=clerk.franchiser_id,
+ clerk_id=clerk.clerk_id,
+ code=serialNo,
+ consumer_name=consumer_name,
+ consumer_phone=consumer_phone,
+ lat=lat,
+ lon=lon,
+ image=file_path,
+ )
+
+ if SaleclerkIntegralIncomeExpensesInfo.objects.filter(code=serialNo, status=True).exists():
+ return response(SaleclerkStatusCode.DUPLICATE_SUBMIT)
+
+ # 店员积分
+ # TODO: 序列号 vs. 积分
+ integral = 100
+
+ clerk.integral += integral
+ clerk.total_integral += integral
+ clerk.save()
+
+ # 店员积分记录
+ SaleclerkIntegralIncomeExpensesInfo.objects.create(
+ franchiser_id=clerk.franchiser_id,
+ clerk_id=clerk.clerk_id,
+ type=SaleclerkIntegralIncomeExpensesInfo.INCOME,
+ code=serialNo,
+ consumer_name=consumer_name,
+ consumer_phone=consumer_phone,
+ lat=lat,
+ lon=lon,
+ image=file_path,
+ integral=integral,
+ left_integral=clerk.total_integral,
+ )
+
return response(200, data={
- 'integral': 123,
- 'total_integral': 12345,
+ 'integral': integral,
+ 'total_integral': clerk.integral,
})
@@ -16,6 +16,8 @@ class SaleclerkStatusCode(BaseStatusCode): |
||
| 16 | 16 |
# 状态 |
| 17 | 17 |
CLERK_ALREADY_NOT_UNVERIFIED = StatusCodeField(500110, 'Clerk Already Not Unverified', description=u'店员帐号已激活') |
| 18 | 18 |
CLERK_NOT_ACTIVATED = StatusCodeField(500115, 'Clerk Not Activated', description=u'店员帐号未激活') |
| 19 |
+ # 上传 |
|
| 20 |
+ DUPLICATE_SUBMIT = StatusCodeField(500199, 'Duplicate Submit', description=u'重复提交') |
|
| 19 | 21 |
|
| 20 | 22 |
|
| 21 | 23 |
class ProductModelStatusCode(BaseStatusCode): |