def post(self, request, *args, **kwargs): task_id = request.POST.get('id') task = get_object_or_404(CashbackTask, id=task_id) form = TaskForm(request.POST, instance=task) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } return render(request, self.template_name, { 'error': errors, 'form': form }) # 保存 try: with transaction.atomic(): form.save() CashbackTaskGoods.objects.filter(seller_id=request.user.id, task_id=task_id).delete() products = json.loads(request.POST.get('products')) TaskService().save_task_goods(task_id, request.user.id, products) except Exception as ex: errors = dict(name=invalid_msg.format('保存失败!')) return render(request, self.template_name, { 'error': errors, 'form': form }) return redirect('cashback:task_index')
def post(self, request, *args, **kwargs): form = TaskForm(request.POST) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } return render(request, self.template_name, { 'error': errors, 'form': form }) try: with transaction.atomic(): task = form.save(commit=False) task.seller_id = request.user.id task.save() products = json.loads(request.POST.get('products')) TaskService().save_task_goods(task.id, request.user.id, products) except Exception as ex: errors = dict(name=invalid_msg.format('保存失败!')) return render(request, self.template_name, { 'error': errors, 'form': form }) return redirect('cashback:task_index')
def post(self, request, *args, **kwargs): form = SmsForm(request.POST) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } return render(request, self.template_name, { 'error': errors, 'form': form }) customer_ids = form.cleaned_data.get('customers') customer_ids = customer_ids.split(',') customers = Customer.objects.filter(id__in=customer_ids).values( 'id', 'mobile') mobiles = list(map(lambda m: m['mobile'], customers)) mobiles = ','.join(mobiles) content = form.cleaned_data.get('content') result = send_sms(mobiles, form.cleaned_data.get('content')) sms = [ Sendsms(seller_id=request.user.id, mobile=item['mobile'], customer_id=item['id'], content=content) for item in customers ] Sendsms.objects.bulk_create(sms) return redirect('cashback:sms_index')
def post(self, request, *args, **kwargs): cashback_id = request.POST.get('id') cashback = get_object_or_404(Cashback, id=cashback_id) service = CashbackService(cashback) cashback.task_name = service.get_taskname(cashback) cashback.customer_name = service.get_customername(cashback) form = CashbackForm(request.POST, instance=cashback, seller=request.user) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } return render(request, self.template_name, { 'error': errors, 'form': form, 'model': cashback }) status = form.cleaned_data.get('status') result = service.audit(request.user.id, status) if not result: return render(request, self.template_name, { 'error': { 'status': '保存失败' }, 'form': form, 'model': cashback }) return redirect('cashback:index')
def post(self, request, *args, **kwargs): form = OrderForm(request.POST) if not form.is_valid(): errors = {key: invalid_msg.format(value[0]) for key, value in form.errors.items()} return render(request, self.template_name, {'error': errors, 'form': form}) # 保存 form.save(request.user.id) return redirect('order:index')
def post(self, request, *args, **kwargs): order_id = request.POST.get('id') order = get_object_or_404(Order, id=order_id) form = OrderForm(request.POST, instance=order) if not form.is_valid(): errors = {key: invalid_msg.format(value[0]) for key, value in form.errors.items()} return render(request, self.template_name, {'error': errors, 'form': form}) # 保存 form.save(request.user.id) return redirect('order:index')
def post(self, request, *args, **kwargs): form = WithdrawForm(data=request.POST, user=request.user) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } return render(request, self.template_name, { 'error': errors, 'form': form }) service = FinanceService(form.save(commit=False)) result = service.withdraw(request.user.id) if not result: return render(request, self.template_name, { 'error': { 'amount': invalid_msg.format('保存失败!') }, 'form': form }) return redirect('finance:account_index')
def post(self, request, *args, **kwargs): file = request.FILES.get('certificate') errors = {} form = InpourForm(request.POST) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } error_msg = None if not file: error_msg = '文件上传出错' else: extensions = os.path.splitext(file.name)[1].lower() if extensions not in ['.png', '.jpg', '.bmp']: error_msg = '文件格式错误' if error_msg: errors['certificate'] = invalid_msg.format(error_msg) if len(errors.keys()) > 0: return render(request, self.template_name, { 'error': errors, 'form': form }) filename = save_file(file) # 保存文件 service = FinanceService(form.save(commit=False)) result = service.inpour(request.user.id, filename) if not result: return render(request, self.template_name, { 'error': { 'amount': invalid_msg.format('保存失败!') }, 'form': form }) return redirect('finance:account_index')
def post(self, request, *args, **kwargs): errors = {} form = WithdrawForm(data=request.POST, user=request.user) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } return render(request, self.template_name, { 'error': errors, 'form': form }) try: with transaction.atomic(): # 启用事务提交 transfer = form.save(commit=False) transfer.transfertype = 'withdraw' transfer.seller_id = request.user.id transfer.status = AuditStatus.Processing.value transfer.save() order = FOrder() order.id = datetime.now().strftime('%Y%m%d') + str( int(datetime.utcnow().timestamp())) order.user_id = request.user.id order.relateobj = transfer.transfertype order.transfer_id = transfer.id order.total_amount = transfer.amount order.orderstatus = OrderStatus.UnPaid.value order.save() except Exception as ex: errors['amount'] = invalid_msg.format('保存失败!') return render(request, self.template_name, { 'error': errors, 'form': form }) return redirect('finance:account_index')
def post(self, request, *args, **kwargs): form = TaskIntervalForm(request.POST) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } return render(request, self.template_name, { 'error': errors, 'form': form }) request.user.task_interval = form.cleaned_data.get('interval') request.user.save() return redirect('cashback:task_index')
def post(self, request, *args, **kwargs): shop_id = request.POST.get('id') shop = get_object_or_404(Shop, id=shop_id) form = ShopForm(request.POST, instance=shop) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } return render(request, self.template_name, { 'error': errors, 'form': form }) form.save() return redirect('goods:shop_index')
def post(self, request, *args, **kwargs): form = ShopForm(request.POST) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } return render(request, self.template_name, { 'error': errors, 'form': form }) shop = form.save(commit=False) shop.seller_id = request.user.id shop.save() return redirect('goods:shop_index')
def post(self, request, *args, **kwargs): file = request.FILES.get('certificate') errors = {} form = InpourForm(request.POST) if not form.is_valid(): errors = { key: invalid_msg.format(value[0]) for key, value in form.errors.items() } error_msg = None if not file: error_msg = '文件上传出错' else: extensions = os.path.splitext(file.name)[1].lower() if extensions not in ['.png', '.jpg', '.bmp']: error_msg = '文件格式错误' if error_msg: errors['certificate'] = invalid_msg.format(error_msg) if len(errors.keys()) > 0: return render(request, self.template_name, { 'error': errors, 'form': form }) now = datetime.now() relate_path = os.path.join(str(now.year), str(now.month), str(now.day)) filename = str(int(time.time())) + extensions filedir = os.path.join(settings.MEDIA_ROOT, relate_path) if not os.path.exists(filedir): os.makedirs(filedir) with open(os.path.join(filedir, filename), 'wb+') as f: for chunk in file.chunks(): f.write(chunk) filename = (settings.MEDIA_URL + relate_path + filename).replace( '\\', '/') try: with transaction.atomic(): # 启用事务提交 transfer = form.save(commit=False) transfer.transfertype = 'inpour' transfer.certificate = filename transfer.seller_id = request.user.id transfer.status = AuditStatus.Processing.value transfer.save() order = FOrder() order.id = datetime.now().strftime('%Y%m%d') + str( int(datetime.utcnow().timestamp())) order.user_id = request.user.id order.relateobj = transfer.transfertype order.transfer_id = transfer.id order.total_amount = transfer.amount order.orderstatus = OrderStatus.UnPaid.value order.save() except Exception as ex: errors['amount'] = invalid_msg.format('保存失败!') return render(request, self.template_name, { 'error': errors, 'form': form }) return redirect('finance:account_index')