def repeat_count(self): from django.db.models import Q from utils.DateFormatUtil import get_today from customers.models import FormCustomer toA = BackUpWork.objects.filter(~Q(user_id=self.user_id), create_time=str(get_today())) toB = BackUpWork.objects.filter(create_time=str(get_today()), user_id=self.user_id) string = '' if toA and toB: B = toB[0] yy = FormCustomer.objects.raw(B.sql_str) B_company = [] for y in yy: B_company.append(y.company_name) for A in toA: A_company = [] tt = FormCustomer.objects.raw(A.sql_str) for t in tt: A_company.append(t.company_name) compare_company = B_company + A_company set_company = set(compare_company) count = len(compare_company) - len(set_company) if count > 0: string = string + '与用户' + str(A.user_name) + '重复' + str(count) + '条数据;' if string: return string else: return '【账号间无重复】'
def get_sale_time(): handleMonth = getConstantsVale('handleMonth') if handleMonth is None: handleMonth = 7 date_from_two = str( true_month_handle(datetime.datetime.now(), int(handleMonth))) date_to_two = get_today() date_from = getConstantsVale('dateForm') if date_from is None: date_from = '2017-01-01 00:00:00' date_to = get_today() return date_from, date_to, date_from_two, date_to_two
def get(self, request): user = request.user if user == AnonymousUser(): return JsonResponse({"msg": "请登录后重试!!"}) today_str = str(get_today()) BackUpWork.objects.filter(create_time=today_str).delete() return JsonResponse({"msg": "当天任务备份清空成功!!"})
def work_two(frcData, saleUser, date_from, date_to, date_from_two, date_to_two, SalecountNum, count): city = frcData.name city_list = getHandleCityList() # 将销售人员的id存在list s_user_id = [] if saleUser.exists(): for s_user in saleUser: # if s_user.city.name == city: if s_user.city.name in city_list: s_user_id.append(s_user.id) # 进行复杂的Q对象查询 q_query = FormCustomer.objects.filter( Q(city__in=city_list), Q(discover_time__range=(date_from_two, date_to_two)), Q(create_time__range=(date_from, date_to)) | Q(create_time__isnull=True), sem_status=0, aike_status=0).order_by('randid') # print(q_query.query) if q_query.exists(): frcDataByCityCount = q_query.count() if frcDataByCityCount > SalecountNum: frcDataByCityCount = frcDataByCityCount - SalecountNum if len(s_user_id) > 0: for i in range(0, len(s_user_id)): result = SalecountNum * (i + count) % frcDataByCityCount new_reslut = result - 1 if new_reslut <= 0: result = 1 # print("===============result:"+str(result)+"=============city:"+city) q_randid = FormCustomer.objects.filter( Q(city__in=city_list), Q(discover_time__range=(date_from_two, date_to_two)), Q(create_time__range=(date_from, date_to)) | Q(create_time__isnull=True), sem_status=0, aike_status=0).order_by('randid')[(result - 1):result] # print(q_randid.query) if q_randid.exists(): q_randid_id = q_randid[0].randid create_time_now = str(get_today()) user_id_now = s_user_id[i] query_cc = customerUser.objects.filter( user_id=user_id_now, create_time=create_time_now) # print(query_cc.query) if query_cc.exists(): query_c = query_cc[0] id_now = query_c.id customerUser.objects.filter(id=id_now).update( customer_id=q_randid_id) else: customerUser.objects.create( user_id=user_id_now, customer_id=q_randid_id, create_time=create_time_now)
def back_up_work(user_id, user_name, sql_str): now_time = str(get_today()) buw = BackUpWork.objects.filter(user_id=user_id, create_time=now_time) if buw.exists(): BackUpWork.objects.filter(user_id=user_id, create_time=now_time).\ update(sql_str=sql_str, update_time=datetime.datetime.now(), user_name=user_name) else: BackUpWork.objects.create(user_id=user_id, create_time=now_time, sql_str=sql_str, user_name=user_name)
def get_new_customer_data_to_admin(): new_customer_data_list = [] date_from = str(get_before_oneweek()) date_to = str(get_today()) q_query = FormCustomer.objects.filter(Q(create_time__range=(date_from, date_to)), sem_status=0, aike_status=0).order_by('randid') if q_query.exists(): for qc in q_query: new_customer_data_list.append(qc.randid) return new_customer_data_list
def get_real_data_three(user_id, city_name, handle_time): check_time = str(get_today()) BW = BackUpWork.objects.filter(user_id=user_id, create_time=check_time) if BW.exists(): randid_list = [] bw = BW[0] yy = FormCustomer.objects.raw(bw.sql_str) for y in yy: randid_list.append(y.randid) return randid_list else: date_from, date_to, date_from_two, date_to_two = handle_time SalecountNum_three_str = getConstantsVale('smsRemoteNum') if SalecountNum_three_str is None: SalecountNum_three_str = 250 sem_info_num = int(SalecountNum_three_str) now_time = str(get_today()) user_work = customerUser.objects.filter(user_id=user_id, create_time=now_time) randid_list = [] city_list = getFilterCityList() need_city = Utils.getDutyArea(city_list) yesterdayRandIdList_two = getYesterdayRandIdList(user_id) if user_work.exists(): q_randid = user_work[0].customer_id q_randid_list_data = FormCustomer.objects.filter( Q(randid__gte=q_randid), ~Q(randid__in=yesterdayRandIdList_two), Q(city__in=need_city), Q(discover_time__range=(date_from_two, date_to_two)), Q(create_time__range=(date_from, date_to)) | Q(create_time__isnull=True), sem_status=0, aike_status=0).order_by('randid')[0:sem_info_num] # print(q_randid_list_data.query) if q_randid_list_data.exists(): for qd in q_randid_list_data: randid_list.append(qd.randid) return randid_list
def get_init_today_data(): today = str(get_today()) start_today = today+" 00:00:00" end_today = today+" 23:59:59" q_new_find = FormCount.objects.filter(Q(create_time__range=(start_today, end_today))).values_list('user', 'depart').annotate(Count('hit_url')).order_by() if q_new_find.exists(): for q_f in q_new_find: user_id = q_f[0] depart_id = q_f[1] url_count = q_f[2] user = UserProfile.objects.get(id=user_id) xs_name = user.last_name+user.first_name depart = TSDepart.objects.get(id=depart_id) text = str(get_today()) new_date = datetime.strptime(text, '%Y-%m-%d') query_data = FormCountTotal.objects.filter(user=user, create_time=new_date, depart=depart) if query_data.exists(): qdata = query_data[0] ft = FormCountTotal.objects.get(id=qdata.id) ft.url_count = url_count ft.save() else: FormCountTotal.objects.create(user=user, create_time=new_date, depart=depart, xs_name=xs_name, url_count=url_count)
def get_real_data(user_id, city_name, handle_time): check_time = str(get_today()) BW = BackUpWork.objects.filter(user_id=user_id, create_time=check_time) if BW.exists(): randid_list = [] bw = BW[0] yy = FormCustomer.objects.raw(bw.sql_str) for y in yy: randid_list.append(y.randid) return randid_list else: sem_info_num_str = getConstantsVale('smsNum') if sem_info_num_str is None: sem_info_num_str = str(250) sem_info_num = int(sem_info_num_str) date_from, date_to, date_from_two, date_to_two = handle_time now_time = str(get_today()) user_work = customerUser.objects.filter(user_id=user_id, create_time=now_time) randid_list_yes = getYesterdayRandIdList(user_id) randid_list = [] if user_work.exists(): q_randid = user_work[0].customer_id q_randid_list_data = FormCustomer.objects.filter( Q(randid__gte=q_randid), ~Q(randid__in=randid_list_yes), Q(city=city_name), Q(discover_time__range=(date_from_two, date_to_two)), Q(create_time__range=(date_from, date_to)) | Q(create_time__isnull=True), sem_status=0, aike_status=0).order_by('randid')[0:sem_info_num] # print(q_randid_list_data.query) if q_randid_list_data.exists(): for qd in q_randid_list_data: randid_list.append(qd.randid) return randid_list
def queryset(self): qs = super(BackUpWorkRepeatAdmin, self).queryset() return qs.filter(create_time=str(get_today()))