def single_view(self,request): """ 单条录入客户信息 :param request: :return: """ from .casual import single if request.method=="GET": form=SingleModelForm() return render(request,"single.html",{"form":form}) else: form=SingleModelForm(request.POST) if form.is_valid(): current_time=datetime.datetime.now().date() sale_id=single.get_sale_id() if not sale_id: return HttpResponse("分配错误,无销售顾问") try: with transaction.atomic(): form.instance.consultant_id=sale_id form.instance.recv_date=current_time form.instance. last_consult_date=current_time customer_obj=form.save() models.CustomerDistribution.objects.create(user_id=sale_id, customer=customer_obj, ctime=current_time) message.send_message("第一次发邮件","嘻嘻","*****@*****.**","小海") print("发完了") except Exception as e: single.rollback(sale_id) return HttpResponse("录入异常!!!") return HttpResponse("录入成功!") else: return render(request, "single.html", {"form": form})
def single_view(self, request): if request.method == "GET": # message.send_message('*****@*****.**', '放哨', '你别走了', '三个月工资太多了') forms = SingleModelForm() return render(request, "single_view.html", {"forms": forms}) else: # 这里是添加客户的处理机智 from utils.qndy import CNM forms = SingleModelForm(request.POST) if forms.is_valid(): sale_id = CNM.get_sale_id() #获取销售ID ctime = datetime.datetime.now().date() #获取到当前时间 if not sale_id: return HttpResponse("你没有资格添加") try: with transaction.atomic(): forms.instance.consultant_id = sale_id forms.instance.recv_date = ctime forms.instance.last_consult_date = ctime new_form = forms.save() models.CustomerDistrbution.objects.create( user_id=sale_id, customer=new_form, ctime=ctime) # 要发送的目标地址 message.send_message('*****@*****.**', '放哨', '你别走了', '三个月工资太多了') except Exception: return HttpResponse("添加数据异常") return redirect(self.get_list_url()) return render(request, "single_view.html", {"forms": forms})
def single_view(self, request): """ 单条录入客户信息 :param request: :return: """ if request.method == "GET": # 录入的信息表需要排除一些字段,在SingleModelForm中有体现 form = SingleModelForm() return render(request, "single_view.html", {'form': form}) else: # 提交录入数据 from crm05.salerole import Salerole form = SingleModelForm(request.POST) if form.is_valid(): sale_id = Salerole.get_sale_id() if not sale_id: return HttpResponse("无销售顾问,无法进行分配") # try: with transaction.atomic(): # data = form.cleaned_data # data['consultant_id'] = int(sale_id) # course_list = request.POST.getlist("course") # data.pop('course') ctime = datetime.datetime.now().date() # customer_obj = models.Customer.objects.create(**data) # customer_obj.course.add(*[models.Course.objects.get(id=i) for i in course_list]) form.instance.consultant_id = sale_id form.instance.recv_date = ctime form.instance.last_consult_date = ctime # 创建客户表 customer_obj = form.save() """客户表新增数据: - 获取该分配的课程顾问id - 当前时间 客户分配表中新增数|} - 获取新创建的客户ID - 顾问ID """ # 客户分配表 models.CustomerDistribution.objects.create(user_id=sale_id, customer=customer_obj, ctime=ctime) # 发送消息 message.send_message('*****@*****.**', '名字', '主题', '内容') # except Exception as e: # # 创建客户表和客户分配表异常 # # 回滚从iter中取出的id到失误表里 # Salerole.rollback(sale_id) # return HttpResponse("录入异常") return HttpResponse('录入成功') else: return render(request, 'single_view.html', {'form': form})
def single_view(self, request): """ 单条录入客户信息 :param request: :return: """ if request.method == "GET": form = SingleModelForm() return render(request, 'single_view.html', {'form': form}) else: """单条导入,request.POST所有导入的数据 一、数据校验 二、获取销售ID 三、写入数据库 """ form = SingleModelForm(request.POST) # 数据校验 if form.is_valid(): from xxxxxx import AutoSale ctime = datetime.datetime.now().date() # 获取销售ID sale_id = AutoSale.get_sale_id() if not sale_id: return HttpResponse("无销售顾问,无法进行自动分配") try: with transaction.atomic(): # 创建客户表 form.instance.consultant_id = sale_id form.instance.recv_date = ctime form.instance.last_consult_date = ctime new_customer = form.save() # 创建客户分配表 models.CustomerDistribution.objects.create( customer=new_customer, user_id=sale_id, ctime=ctime) # 发送消息 message.send_message('*****@*****.**', '骚峰', '你别走了', '来solo') except Exception as e: # 创建客户和分配销售异常 AutoSale.rollback(sale_id) return HttpResponse('录入异常') return HttpResponse('录入成功') else: return render(request, 'single_view.html', {'form': form})
def single_view(self, request): """ 单条录入客户信息 :param request: :return: """ if request.method == "GET": form = SingleModelForm() return render(request, 'single_view.html', {'form': form}) else: from auto_distribute import AutoDistribute from django.db import transaction form = SingleModelForm(request.POST) if form.is_valid(): current_time = datetime.datetime.now().date() print(current_time) # 获取销售ID sale_id = AutoDistribute.get_sale_id() if not sale_id: return HttpResponse("目前无空闲销售,无法进行自动分配") try: with transaction.atomic(): #事务 # 创建客户表,form中缺少我们需要的必要信息,用以下方式补足 form.instance.consultant_id = sale_id form.instance.recv_date = current_time form.instance.last_consult_date = current_time new_customer = form.save() # 创建客户分配表 models.CustomerDistribution.objects.create( customer=new_customer, user_id=sale_id, ctime=current_time) # 分配完后,发送消息 message.send_message('*****@*****.**', '放哨', '你别走了', '三个月工资太多了') # 收件人邮箱 收件人 主题 邮件内容 # for i in range(5): # message.send_message('*****@*****.**', '小可爱', '爱你哦', '宝贝辛苦啦,明天见呀,%s'%(i)) except Exception as e: # 创建客户和分配销售异常 AutoDistribute.rollback(sale_id) return HttpResponse('录入异常') return HttpResponse('录入成功') else: return render(request, 'single_view.html', {'form': form})
def multi(self, request): if request.method == 'GET': return render(request, 'multi_view.html') else: ctime = datetime.datetime.now().date() from django.db import transaction from io import BytesIO file_obj = request.FILES.get('exfile') f = BytesIO() for chunk in file_obj: f.write(chunk) import xlrd work_hold = xlrd.open_workbook(file_contents=f.getvalue()) sheet = work_hold.sheet_by_index(0) maps = { 0: 'qq', 1: 'name', 2: 'gender', 3: 'education', 4: 'graduation_school', 5: 'major', 6: 'experience', 7: 'work_status', 8: 'course', } print('sheet.nrows', sheet.nrows) for index in range(1, sheet.nrows): # 这个是获取的行数 sale_id = XXX.get_sale_id() if not sale_id: return HttpResponse("没有客户顾问无法分配") row = sheet.row(index) # 这是通过行数获取行的内容 dict_obj = {} # 字典 for i in range(len(maps)): # 这是获取列的数量 key = maps[i] # 这是键 cell = row[i] # 这是获取空格的对象 dict_obj[key] = cell.value try: with transaction.atomic(): dict_obj['consultant_id'] = int( sale_id.decode('utf-8')) course_list = [] course_list.extend(dict_obj.pop('course').split(',')) obj = models.Customer.objects.create(**dict_obj) obj.course = course_list models.CustomerDistribution.objects.create( user_id=sale_id, customer=obj, ctime=ctime) except Exception as e: print(e) XXX.rollback(sale_id) message.send_message('自动发送', '很,兴奋代码自动发送邮件,', '*****@*****.**', '大毛') return HttpResponse('保存成功')
def single(self, request): if request.method == "GET": form = SingleModelForm() return render(request, 'single_form.html', {'form': form}) else: form = SingleModelForm(request.POST) if form.is_valid(): sale_id = XXX.get_sale_id() if not sale_id: return HttpResponse("没有客户顾问无法分配") ctime = datetime.datetime.now().date() from django.db import transaction try: with transaction.atomic(): #方法一 # form.instance.consultant_id = sale_id # form.instance.recv_date = ctime # form.instance.last_consult_date = ctime # obj = form.save() #方法二 form.cleaned_data['consultant_id'] = sale_id form.cleaned_data['recv_date'] = ctime form.cleaned_data['last_consult_date'] = ctime course_list = form.cleaned_data.pop('course') print('course_list', course_list) obj = models.Customer.objects.create( **form.cleaned_data) obj.course.add(*course_list) models.CustomerDistribution.objects.create( user_id=sale_id, customer=obj, ctime=ctime) #发短信 except Exception as e: XXX.rollback(sale_id) message.send_message('自动发送', '很,兴奋代码自动发送邮件,', '*****@*****.**', '大毛') return HttpResponse('保存成功') else: return render(request, 'single_form.html', {'form': form})