Просмотр исходного кода

添加或修改宝宝信息,使用设备序列号作为表示

linhaohong 4 месяцев назад
Родитель
Сommit
6378803382
2 измененных файлов с 26 добавлено и 3 удалено
  1. 24 3
      Roomumy/Controller/BabyController.py
  2. 2 0
      Roomumy/models.py

+ 24 - 3
Roomumy/Controller/BabyController.py

@@ -12,6 +12,7 @@ import time
 from django.db import transaction
 from django.views import View
 from Ansjer.cn_config.config_formal import SECRET_ACCESS_KEY, ACCESS_KEY_ID, REGION_NAME
+from Model.models import Device_Info
 
 from Object.AWS.AmazonS3Util import AmazonS3Util
 from Roomumy.models import BabyUser, BabyGrowthStandard, DevelopmentalPoints
@@ -51,7 +52,7 @@ class BabyView(View):
         @param request_dict: 请求参数
         @param request: 请求
         @param user_id: 用户id
-        @request_dict device_id: 设备id
+        @request_dict serial_no: 设备序列号
         @request_dict baby_id: 宝宝id
         @request_dict nick_name: 昵称
         @request_dict sex: 性别
@@ -61,7 +62,7 @@ class BabyView(View):
         @param response: 响应对象
         @return: response
         """
-        device_id = request_dict.get('device_id', None)
+        serial_no = request_dict.get('serial_no', None)
         baby_id = request_dict.get('baby_id', None)
         nick_name = request_dict.get('nick_name', None)
         sex = request_dict.get('sex', None)
@@ -75,6 +76,10 @@ class BabyView(View):
         s3_url = 'https://{}.s3.{}.amazonaws.com.cn/'.format(bucket, REGION_NAME)
         try:
             with transaction.atomic():
+                device_id =  cls.check_user_serial(user_id, serial_no)
+                if not device_id:
+                    return response.json(14)
+
                 if baby_id:
                     BabyUser.objects.filter(id=baby_id, user_id=user_id).update(is_default=is_default,
                                                                                 birthday=birthday,
@@ -120,7 +125,7 @@ class BabyView(View):
                 baby_qs = baby_qs.filter(id=baby_id)
             count = baby_qs.count()
             baby_list = list(
-                baby_qs.values('id', 'nick_name', 'sex', 'birthday', 'icon_url', 'device_id', 'is_default'))
+                baby_qs.values('id', 'nick_name', 'sex', 'birthday', 'icon_url', 'device_id', 'is_default', 'serial_no'))
 
             current_time = int(time.time())  # 获取当前时间戳
 
@@ -210,3 +215,19 @@ class BabyView(View):
         except Exception as e:
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
+    @staticmethod
+    def check_user_serial(user_id, serial_number):
+        """
+        确认序列号是否绑定用户,绑定返回uid
+        @param user_id: 用户user_id
+        @param serial_number: 序列号
+        @return:
+        """
+        device_info = Device_Info.objects.filter(
+            userID=user_id,
+            serial_number=serial_number
+        ).values('UID').first()
+
+        if device_info:
+            return device_info['UID'] or serial_number
+        return None

+ 2 - 0
Roomumy/models.py

@@ -10,6 +10,7 @@ class BabyUser(models.Model):
     birthday = models.IntegerField(default=0, verbose_name='生日')
     icon_url = models.TextField(default='', verbose_name='头像地址')
     device_id = models.CharField(default='', max_length=32, verbose_name='关联设备')
+    serial_no = models.CharField(default='', max_length=32, verbose_name='关联序列号')
     is_default = models.BooleanField(default=False, verbose_name='是否默认')
     created_time = models.IntegerField(default=0, verbose_name='创建时间')
     updated_time = models.IntegerField(default=0, verbose_name='更新时间')
@@ -73,6 +74,7 @@ class AlbumTitle(models.Model):
 class TimeAlbum(models.Model):
     id = models.AutoField(primary_key=True)
     device_id = models.CharField(default='', max_length=32, verbose_name='关联设备',  db_index=True)
+    serial_no = models.CharField(default='', max_length=32, verbose_name='关联序列号',  db_index=True)
     user_id = models.CharField(default='', max_length=32, verbose_name='关联用户id', db_index=True)
     album_date = models.IntegerField(default=0, verbose_name='相册日期', db_index=True)
     album_title = models.TextField(default=0, verbose_name='相册标题')