소스 검색

添加Frequency表

tanghongbin 5 년 전
부모
커밋
2206166547
2개의 변경된 파일60개의 추가작업 그리고 45개의 파일을 삭제
  1. 46 45
      Controller/UserController.py
  2. 14 0
      Model/models.py

+ 46 - 45
Controller/UserController.py

@@ -27,7 +27,8 @@ from ratelimit.decorators import ratelimit
 
 from Ansjer.config import AuthCode_Expire, SERVER_DOMAIN, APNS_CONFIG, JPUSH_CONFIG, FCM_CONFIG, TUTK_PUSH_DOMAIN
 from Controller.CheckUserData import DataValid, date_handler, RandomStr
-from Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel
+from Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel, \
+    UserAppFrequencyModel
 from Object.AWS.SesClassObject import SesClassObject
 from Object.AliSmsObject import AliSmsObject
 from Object.RedisObject import RedisObject
@@ -2961,50 +2962,50 @@ class UserAppFrequencyView(TemplateView):
             return response.json(404)
 
     def do_refresh(self, request_dict, userID, response):
-        return response.json(0)
-        # type = request_dict.get('type', None)
-        # month = request_dict.get('month', None)
-        # if not type or not month:
-        #     return response.json(444, 'type')
-        # else:
-        #     type = int(type)
-        #     now_time = int(time.time())
-        #     month = int(month)
-        #     uaf_qs = UserAppFrequencyModel.objects.filter(user__userID=userID)
-        #
-        #     if not uaf_qs.exists():
-        #         user = Device_User.objects.filter(userID=userID)[0]
-        #         data = {
-        #             'user': user,
-        #             'type': type,
-        #             'data_time': month,
-        #             'add_time': now_time,
-        #             'update_time': now_time,
-        #         }
-        #         UserAppFrequencyModel.objects.create(**data)
-        #         return response.json(0)
-        #     else:
-        #         updateMonth = time.strftime('%m', time.localtime(month))
-        #         uaf = uaf_qs.values('id', 'type', 'data_time')[0]
-        #         dbMonth = time.strftime('%m', time.localtime(int(uaf['data_time'])))
-        #         print('update month is ' + updateMonth)
-        #         print('db month is ' + dbMonth)
-        #         if updateMonth == dbMonth:
-        #             UserAppFrequencyModel.objects.filter(id=uaf['id']).update(type=type)
-        #             return response.json(0)
-        #         elif updateMonth > dbMonth:
-        #             user = Device_User.objects.filter(userID=userID)[0]
-        #             data = {
-        #                 'user': user,
-        #                 'type': type,
-        #                 'data_time': month,
-        #                 'add_time': now_time,
-        #                 'update_time': now_time,
-        #             }
-        #             UserAppFrequencyModel.objects.create(**data)
-        #             return response.json(0)
-        #         else:
-        #             return response.json(444, 'month')
+        # return response.json(0)
+        type = request_dict.get('type', None)
+        month = request_dict.get('month', None)
+        if not type or not month:
+            return response.json(444, 'type')
+        else:
+            type = int(type)
+            now_time = int(time.time())
+            month = int(month)
+            uaf_qs = UserAppFrequencyModel.objects.filter(user__userID=userID)
+
+            if not uaf_qs.exists():
+                user = Device_User.objects.filter(userID=userID)[0]
+                data = {
+                    'user': user,
+                    'type': type,
+                    'data_time': month,
+                    'add_time': now_time,
+                    'update_time': now_time,
+                }
+                UserAppFrequencyModel.objects.create(**data)
+                return response.json(0)
+            else:
+                updateMonth = time.strftime('%m', time.localtime(month))
+                uaf = uaf_qs.values('id', 'type', 'data_time')[0]
+                dbMonth = time.strftime('%m', time.localtime(int(uaf['data_time'])))
+                print('update month is ' + updateMonth)
+                print('db month is ' + dbMonth)
+                if updateMonth == dbMonth:
+                    UserAppFrequencyModel.objects.filter(id=uaf['id']).update(type=type)
+                    return response.json(0)
+                elif updateMonth > dbMonth:
+                    user = Device_User.objects.filter(userID=userID)[0]
+                    data = {
+                        'user': user,
+                        'type': type,
+                        'data_time': month,
+                        'add_time': now_time,
+                        'update_time': now_time,
+                    }
+                    UserAppFrequencyModel.objects.create(**data)
+                    return response.json(0)
+                else:
+                    return response.json(444, 'month')
 
 
 

+ 14 - 0
Model/models.py

@@ -909,3 +909,17 @@ class GrantCodeModel(models.Model):
         verbose_name = u'授权码表'
         db_table = 'oauth_grant_code'
 
+
+class UserAppFrequencyModel(models.Model):
+    id = models.AutoField(primary_key=True)
+    user = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE, verbose_name='关联设备用户表')
+    type = models.SmallIntegerField(default=0, verbose_name='使用频率类型') # 1:每天,2:三天,3:一周,4:两周,5:一个月,6:一个月以上
+    data_time = models.IntegerField(default=0, verbose_name='数据时间')
+    add_time = models.IntegerField(default=0, verbose_name='添加时间')
+    update_time = models.IntegerField(default=0, verbose_name='更新时间')
+
+    class Meta:
+        verbose_name = '用户使用APP频率表'
+        verbose_name_plural = verbose_name
+        db_table = 'user_app_frequency'
+        ordering = ('-add_time',)