示例#1
0
文件: task.py 项目: daasara/zss
    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')
示例#2
0
文件: task.py 项目: daasara/zss
    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')
示例#3
0
文件: sms.py 项目: zheshishi/zss
    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')
示例#4
0
文件: task.py 项目: daasara/zss
    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')
示例#5
0
文件: views.py 项目: zheshishi/zss
    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')
示例#6
0
文件: views.py 项目: zheshishi/zss
    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')
示例#7
0
文件: views.py 项目: daasara/zss
    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')
示例#8
0
文件: views.py 项目: daasara/zss
    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')
示例#9
0
    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')
示例#10
0
文件: task.py 项目: zheshishi/zss
    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')
示例#11
0
文件: views.py 项目: zheshishi/zss
    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')
示例#12
0
文件: views.py 项目: zheshishi/zss
    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')
示例#13
0
    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')