Browse Source

北京时间26号起所有设备不再显示AI按钮

zhangdongming 2 năm trước cách đây
mục cha
commit
7b5971ee8c
2 tập tin đã thay đổi với 73 bổ sung40 xóa
  1. 11 1
      Controller/EquipmentManagerV3.py
  2. 62 39
      Object/utils/LocalDateTimeUtil.py

+ 11 - 1
Controller/EquipmentManagerV3.py

@@ -22,6 +22,7 @@ from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidC
     DeviceCloudPhotoInfo, UidPushModel, ExperienceContextModel, LogModel
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
+from Object.utils import LocalDateTimeUtil
 from Service.CommonService import CommonService
 from Service.EquipmentInfoService import EquipmentInfoService
 from Service.ModelService import ModelService
@@ -795,7 +796,16 @@ class EquipmentManagerV3(View):
                 p['uid_version'] = ''
                 p['ucode'] = ''
             p['View_Password'] = self.encrypt_pwd(p['View_Password'])
-
+            if p['is_ai'] and p['is_ai'] != 2:
+                timestamp = int(time.time())  # 时间戳值
+                timezone_offset = "+08:00"  # 时区偏移量(例如:+08:00)
+                now_time = LocalDateTimeUtil.get_date_time(timestamp, timezone_offset)
+                datetime_bj = 1692979200
+                # 转换为日期时间对象
+                dt = LocalDateTimeUtil.get_date_time(datetime_bj, timezone_offset)
+                if now_time >= dt:
+                    logging.info('{}不显示AI按钮'.format(p_uid))
+                    p['is_ai'] = 2
             # 判断设备是否支持4G
             uid_set_qs = UidSetModel.objects.filter(uid=p['UID']).values('mobile_4g')
             if uid_set_qs.exists():

+ 62 - 39
Object/utils/LocalDateTimeUtil.py

@@ -256,42 +256,65 @@ def time_stamp_to_time(time_stamp, time_format):
     return time.strftime(time_format, time_array)
 
 
-if __name__ == '__main__':
-    zero_today, last_today = get_today_date(True)
-    month_end = get_cur_month_end()
-    start_time, month_end_time = get_start_and_end_time(month_end, '%Y-%m-%d')
-    print(zero_today)
-    print(month_end_time)
-
-    # # 获取当前月
-    # print('当前月', get_cur_month())
-    # # 获取上一个月
-    # print('上一个月', get_last_month_num())
-    # # 获取上两个月
-    # print('上两个月', get_last_month_num(number=2))
-    # # 获取下一个月
-    # print('下一个月', get_next_month())
-    # # 获取下两个月
-    # print('下两个月', get_next_month(number=2))
-    # # 获取当前月的第一天
-    # print('当前月的第一天', get_cur_month_start())
-    # # 获取当前月的最后一天
-    # print('当前月的最后一天', get_cur_month_end())
-    # # 获取上个月的第一天
-    # print('上个月的第一天', get_last_month_start())
-    # # 获取下个月的第一天
-    # print('下个月的第一天', get_next_month_start())
-    # # 获取上个月的最后一天
-    # print('上个月的最后一天', get_last_month_end())
-    # # 获取下个月的最后一天
-    # print('下个月的最后一天', get_next_month_end())
-    dd = str(1650791368303)
-    print(dd[0:10])
-    print(dd[10:])
-    dateArray = datetime.datetime.utcfromtimestamp(1650791368)
-    print(dateArray.date())
-    next_start_time, next_end_time = get_start_and_end_time(get_next_month_start(), '%Y-%m-%d')
-    print(type(next_end_time))
-    print('下月开始时间{}'.format(next_start_time))
-    start_time, end_time = get_start_and_end_time(get_next_month_end(), '%Y-%m-%d')
-    print('下月结束时间{}'.format(end_time))
+def time_format_date(timestamp, tz):
+    # 解析时区偏移量
+    tz_hours, tz_minutes = map(int, tz.split(':'))
+    # 将时间戳转换为 datetime 对象
+    dt = datetime.datetime.fromtimestamp(timestamp)
+    # 创建 timedelta 对象,表示时区偏移量
+    tz_offset = datetime.timedelta(hours=tz_hours, minutes=tz_minutes)
+    # 调整 datetime 对象的时区
+    dt = dt + tz_offset
+    # 格式化日期时间字符串
+    formatted_date = dt.strftime('%Y-%m-%d %H:%M:%S')
+    return formatted_date
+
+
+def start_of_day_timestamp(timestamp):
+    # 将当前时间戳转换为 datetime 对象
+    dt = datetime.datetime.fromtimestamp(timestamp)
+
+    # 获取日期部分,并将时、分、秒和微秒设置为零
+    dt_start_of_day = dt.replace(hour=0, minute=0, second=0, microsecond=0)
+
+    return int(dt_start_of_day.timestamp())
+
+
+def get_previous_month_first_day(timestamp):
+    # 将时间戳转换为datetime对象
+    dt = datetime.datetime.fromtimestamp(timestamp)
+
+    # 获取上个月的年份和月份
+    previous_month_year = dt.year if dt.month > 1 else dt.year - 1
+    previous_month = dt.month - 1 if dt.month > 1 else 12
+
+    # 构造上个月第一天的datetime对象
+    previous_month_first_day = datetime.datetime(previous_month_year, previous_month, 1)
+
+    # 将上个月第一天的datetime对象转换为时间戳并返回
+    return int(previous_month_first_day.timestamp())
+
+
+def get_current_month_first_day(timestamp):
+    # 将时间戳转换为datetime对象
+    dt = datetime.datetime.fromtimestamp(timestamp)
+
+    # 获取当前月份的年份和月份
+    current_month_year = dt.year
+    current_month = dt.month
+
+    # 构造当前月份第一天的datetime对象
+    current_month_first_day = datetime.datetime(current_month_year, current_month, 1)
+
+    # 将当前月份第一天的datetime对象转换为时间戳并返回
+    return int(current_month_first_day.timestamp())
+
+
+def get_date_time(timestamp, timezone_offset):
+    # 计算时区偏移量
+    hours_offset = int(timezone_offset[1:3])
+    minutes_offset = int(timezone_offset[4:6])
+    offset = datetime.timedelta(hours=hours_offset, minutes=minutes_offset)
+
+    # 转换为日期时间对象
+    return datetime.datetime.fromtimestamp(timestamp, tz=datetime.timezone(offset))