def patch(self, request, *args, **kwargs): res = BaseResponse() plan_id = kwargs.get("id") receive = copy.deepcopy(request.data) settlement_data = receive.pop("settlement_info") plan_data = receive plan_data["launch_date"] = datetime.datetime.strptime( plan_data["launch_date"], "%Y-%m-%d") plan_obj = Plan.objects.filter(id=plan_id).first() settlement_obj = plan_obj.settlement settlement_ser = SettlementSerializer(instance=settlement_obj, data=settlement_data, partial=True) if settlement_ser.is_valid(): plan_ser = PlanSerializer(instance=plan_obj, data=plan_data, partial=True) if plan_ser.is_valid(): settlement_ser.save() plan_ser.save() res.msg = "修改计划成功" res.data = plan_ser.data else: res.msg = plan_ser.errors res.code = -1 else: res.msg = settlement_ser.errors res.code = -1 return Response(res.dict)
def post(self, request, *args, **kwargs): res = BaseResponse() receive = request.data user = receive.get("username") pwd = receive.get("password") user_obj = auth.authenticate(username=user, password=pwd) if user_obj: random_str = "".join(str(uuid.uuid4()).split("-")) Token.objects.update_or_create(user=user_obj, defaults={ "key": random_str, "created": timezone.now() }) ser = UserInfoSerializer(instance=user_obj) res.msg = "登录成功" res.data = ser.data res.token = random_str else: try: UserInfo.objects.get(username=user) res.msg = "密码错误" res.code = -1001 except UserInfo.DoesNotExist: res.msg = "用户不存在" res.code = -1002 return Response(res.dict)
def authenticate(self, request): res = BaseResponse() token = request.META.get("HTTP_AUTHORIZATION") print("token", token) expire = datetime.timedelta(weeks=1) # expire = datetime.timedelta(minutes=2) user = cache.get(token) print("user", user) if user: cache.set(token, user, expire.total_seconds()) return user, token token_obj = Token.objects.filter(key=token).first() if not token_obj: res.msg = "认证失败" res.code = 4001 raise AuthenticationFailed(res.dict) print("token_obj.created", token_obj.created) print("now", timezone.now()) delta = timezone.now() - token_obj.created print("delta", delta) if delta > expire: res.msg = "认证超时" res.code = 4002 raise AuthenticationFailed(res.dict) # return Response(res.dict) user = token_obj.user cache.set(token, user, expire.total_seconds()) return user, token_obj.key
def post(self, request): receive = request.data ser_obj = AdvertSerializer(data=receive) res = BaseResponse() if ser_obj.is_valid(): ser_obj.save() res.msg = "添加广告成功!" res.data = ser_obj.data return Response(res.dict) else: res.code = -1001 res.msg = "添加广告失败!" return Response(res.dict)
def post(self, request, *args, **kwargs): res = BaseResponse() receive = request.data ser = ChargeSortSerializer(data=receive) if ser.is_valid(): ser.save() res.msg = "添加计费类型成功" res.data = ser.data else: res.code = -1 res.msg = ser.errors return Response(res.dict)
def post(self, request, *args, **kwargs): receive = copy.deepcopy(request.data) settlement_data = receive.pop("settlement_info") plan_data = receive print(request.data) # plan_data = request.data.get("plan") t = plan_data.get("launch_date_str") / 1000 plan_data["launch_date"] = datetime.datetime.fromtimestamp(t) res = BaseResponse() p_obj = None if plan_data: print(plan_data) p_ser = PlanSerializer(data=plan_data) if p_ser.is_valid(): p_obj = p_ser.save() else: print(p_ser.errors) if p_obj: # settlement_data = request.data.get("settlement") settlement_data["plan"] = p_obj.pk stl_ser = SettlementSerializer(data=settlement_data) if stl_ser.is_valid(): stl_ser.save() res.msg = "计划创建成功!" res.data = stl_ser.data else: res.code = -1001 res.msg = stl_ser.errors # MediaResult.objects.create(plan=p_obj) # AdResult.objects.create(plan=p_obj) # t = request.data.get("launch_date") / 1000 # # launch_date_format = datetime.datetime.fromtimestamp(t) # print("launch_date_format", launch_date_format) # # # # data["launch_date"] = launch_date_format # m_policy_data = request.data.get("media_price_policy") # print("m_policy_data", m_policy_data) return Response(res.dict)
def post(self, request): media_data = request.data ser_obj = MediaSerializer(data=media_data) res = BaseResponse() if ser_obj.is_valid(): ser_obj.save() res.msg = "添加媒体成功!" res.data = ser_obj.data return Response(res.__dict__) else: res.code = -1001 res.msg = "添加媒体失败!" res.data = None return Response(res.__dict__)
def patch(self, request, id): res = BaseResponse() print("id", id) query_set = Media.objects.filter(id=id).first() media_ser = MediaSerializer(query_set, data=request.data, partial=True) if media_ser.is_valid(): media_ser.save() res.msg = "媒体修改成功" res.data = media_ser.data return Response(res.dict) else: print(media_ser.errors) res.code = 1001 res.msg = "媒体修改失败" return Response(res.dict)
def post(self, request, *args, **kwargs): res = BaseResponse() receive = request.data if "create" in receive: create_date = receive.get("create") print(create_date) date_range = create_date.get("launch_date_range") print("date_range", date_range) if not date_range: res.msg = "没有日期参数" return Response(res.dict) start_t = int(date_range[0]) / 1000 start_date = datetime.datetime.fromtimestamp(start_t) end_t = int(date_range[1]) / 1000 end_date = datetime.datetime.fromtimestamp(end_t) print(start_date, end_date) from tgsAdmin.utils.common import date_Range_list plan_obj_list = [] settlement_data = create_date.pop("settlement_info") for date in date_Range_list(start_date, end_date, format="%Y-%m-%d %H:%M:%S"): print(date) plan_data = create_date.copy() plan_data["launch_date"] = date p_ser = PlanSerializer(data=plan_data) if p_ser.is_valid(): p_obj = p_ser.save() plan_obj_list.append(p_obj) else: res.msg = p_ser.errors res.code = -1 return Response(res.dict) # print(plan_obj_list) settlement_list = [] plan_pk_list = [] # settlement_data = create_date.get("settlement").copy() for plan in plan_obj_list: settlement_list.append( Settlement( m_unit_price=settlement_data.get("m_unit_price"), plan_launch_count=settlement_data.get( "plan_launch_count"), a_unit_price=settlement_data.get("a_unit_price"), plan=plan)) plan_pk_list.append(plan.pk) Settlement.objects.bulk_create(settlement_list) plan_query = Plan.objects.filter(id__in=plan_pk_list) plan_ser = PlanSerializer(plan_query, many=True) for p in plan_query: scheduler.add_job(update_plan_status, 'date', run_date=datetime.datetime.now() + datetime.timedelta(seconds=20), args=[p.pk], jobstore='redis', replace_existing=True) # scheduler.add_job(test_test, 'interval', # seconds=3, jobstore='redis', replace_existing=True) res.msg = "批量创建计划成功!" res.data = plan_ser.data return Response(res.dict)