store/return more field for photo

Brightcells vor 9 Jahren
Ursprung
Commit
88049b12db
5 geänderte Dateien mit 65 neuen Zeilen und 14 gelöschten Zeilen
  1. 19 0
      group/migrations/0015_groupphotoinfo_avatar.py
  2. 17 3
      group/models.py
  3. 16 7
      group/views.py
  4. 6 4
      photo/models.py
  5. 7 0
      utils/url_utils.py

+ 19 - 0
group/migrations/0015_groupphotoinfo_avatar.py

@@ -0,0 +1,19 @@
1
+# -*- coding: utf-8 -*-
2
+from __future__ import unicode_literals
3
+
4
+from django.db import models, migrations
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('group', '0014_auto_20160308_2347'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AddField(
15
+            model_name='groupphotoinfo',
16
+            name='avatar',
17
+            field=models.CharField(help_text='\u7528\u6237\u5934\u50cf', max_length=255, null=True, verbose_name='avatar', blank=True),
18
+        ),
19
+    ]

+ 17 - 3
group/models.py

@@ -6,6 +6,8 @@ from django.utils.translation import ugettext_lazy as _
6 6
 
7 7
 from pai2.basemodels import CreateUpdateMixin
8 8
 
9
+from utils.url_utils import img_url
10
+
9 11
 
10 12
 class GroupInfo(CreateUpdateMixin):
11 13
     APP_GROUP = 0
@@ -115,6 +117,7 @@ class GroupPhotoInfo(CreateUpdateMixin):
115 117
     group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
116 118
     user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识')
117 119
     nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称')
120
+    avatar = models.CharField(_(u'avatar'), max_length=255, blank=True, null=True, help_text=u'用户头像')
118 121
     photo_path = models.CharField(_(u'photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径')
119 122
     photo_w = models.IntegerField(_(u'photo_w'), default=0, help_text=u'照片宽度')
120 123
     photo_h = models.IntegerField(_(u'photo_h'), default=0, help_text=u'照片高度')
@@ -133,16 +136,23 @@ class GroupPhotoInfo(CreateUpdateMixin):
133 136
 
134 137
     @property
135 138
     def photo_url(self):
136
-        return u'{0}/{1}'.format(settings.IMG_DOMAIN, self.photo_path) if self.photo_path else ''
139
+        return img_url(self.photo_path)
137 140
 
138 141
     @property
139 142
     def photo_thumbnail_url(self):
140
-        return u'{0}/{1}'.format(settings.IMG_DOMAIN, self.photo_thumbnail_path) if self.photo_thumbnail_path else ''
143
+        return img_url(self.photo_thumbnail_path)
141 144
 
142 145
     @property
143 146
     def photo_info(self):
147
+        try:
148
+            group = GroupInfo.objects.get(group_id=self.group_id)
149
+        except GroupInfo.DoesNotExist:
150
+            group = None
144 151
         return {
145
-            'user_id': self.user_id,
152
+            'group_id': group and group.group_id,
153
+            'group_name': group and group.group_name,
154
+            'group_default_avatar': group and group.group_default_avatar,
155
+            'group_avatar': group and group.group_avatar,
146 156
             'photo_id': self.pk,
147 157
             'photo_url': self.photo_url,
148 158
             'photo_w': self.photo_w,
@@ -150,8 +160,12 @@ class GroupPhotoInfo(CreateUpdateMixin):
150 160
             'photo_thumbnail_url': self.photo_thumbnail_url,
151 161
             'photo_thumbnail_w': self.photo_thumbnail_w,
152 162
             'photo_thumbnail_h': self.photo_thumbnail_h,
163
+            'user_id': self.user_id,
164
+            'nickname': self.nickname,
165
+            'avatar': self.avatar,
153 166
             'comment_num': self.comment_num,
154 167
             'thumbup_num': self.thumbup_num,
168
+            'created_at': self.created_at,
155 169
         }
156 170
 
157 171
 

+ 16 - 7
group/views.py

@@ -15,6 +15,7 @@ from group.serializers import GroupInfoSerializer, GroupUserInfoSerializer, Grou
15 15
 
16 16
 from utils.page_utils import pagination
17 17
 from utils.thumbnail_utils import make_thumb
18
+from utils.url_utils import img_url
18 19
 
19 20
 from utils.error.errno_utils import UserStatusCode, GroupStatusCode, GroupPhotoStatusCode
20 21
 from utils.error.response_utils import response
@@ -411,6 +412,7 @@ def flyimg_upload_api(request):
411 412
             group_id=group_id,
412 413
             user_id=user_id,
413 414
             nickname=nickname,
415
+            avatar=user.avatar,
414 416
             photo_path=photo_path,
415 417
             photo_w=photo_w,
416 418
             photo_h=photo_h,
@@ -653,7 +655,7 @@ def pai2_home_api(request):
653 655
     num = int(request.POST.get('num', settings.PAI2_HOME_PER_PAGE))
654 656
 
655 657
     cursor = connection.cursor()
656
-    cursor.execute(r"select T1.group_id, T2.group_name, T2.group_default_avatar, T2.group_avatar, T3.photo_thumbnail_path, T3.photo_thumbnail_w, T3.photo_thumbnail_h, T3.comment_num, T3.thumbup_num, T3.created_at from (select * from group_groupuserinfo where user_id='{user_id}') as T1 left outer join group_groupinfo as T2 on T1.group_id = T2.group_id left outer join group_groupphotoinfo as T3 on T1.group_id = T3.group_id and T3.id > T1.current_id order by T3.id desc, T3.thumbup_num desc limit {offset}, {rows};".format(
658
+    cursor.execute(r"select T1.group_id, T2.group_name, T2.group_default_avatar, T2.group_avatar, T3.id, T3.photo_path, T3.photo_w, T3.photo_h, T3.photo_thumbnail_path, T3.photo_thumbnail_w, T3.photo_thumbnail_h, T3.user_id, T3.nickname, T3.avatar, T3.comment_num, T3.thumbup_num, T3.created_at from (select * from group_groupuserinfo where user_id='{user_id}') as T1 left outer join group_groupinfo as T2 on T1.group_id = T2.group_id left outer join group_groupphotoinfo as T3 on T1.group_id = T3.group_id and T3.id > T1.current_id order by T3.id desc, T3.thumbup_num desc limit {offset}, {rows};".format(
657 659
         user_id=user_id,
658 660
         offset=0,
659 661
         rows=settings.PAI2_HOME_MAX_ROWS,
@@ -667,12 +669,19 @@ def pai2_home_api(request):
667 669
         'group_name': row[1],
668 670
         'group_default_avatar': row[2],
669 671
         'group_avatar': row[3],
670
-        'photo_thumbnail_url': u'{0}/{1}'.format(settings.IMG_DOMAIN, row[4]) if row[4] else '',
671
-        'photo_thumbnail_w': row[5],
672
-        'photo_thumbnail_h': row[6],
673
-        'comment_num': row[7],
674
-        'thumbup_num': row[8],
675
-        'created_at': row[9],
672
+        'photo_id': row[4],
673
+        'photo_url': img_url(row[5]),
674
+        'photo_w': row[6],
675
+        'photo_h': row[7],
676
+        'photo_thumbnail_url': img_url(row[8]),
677
+        'photo_thumbnail_w': row[9],
678
+        'photo_thumbnail_h': row[10],
679
+        'user_id': row[11],
680
+        'nickname': row[12],
681
+        'avatar': row[13],
682
+        'comment_num': row[14],
683
+        'thumbup_num': row[15],
684
+        'created_at': row[16],
676 685
     } for row in rows]
677 686
 
678 687
     return JsonResponse({

+ 6 - 4
photo/models.py

@@ -6,6 +6,8 @@ from django.utils.translation import ugettext_lazy as _
6 6
 
7 7
 from pai2.basemodels import CreateUpdateMixin
8 8
 
9
+from utils.url_utils import img_url
10
+
9 11
 
10 12
 class UUIDInfo(CreateUpdateMixin):
11 13
     uuid = models.CharField(_(u'uuid'), max_length=22, blank=True, null=True, help_text=u'唯一标识', db_index=True, unique=True)
@@ -49,19 +51,19 @@ class PhotosInfo(CreateUpdateMixin):
49 51
 
50 52
     @property
51 53
     def p_photo_url(self):
52
-        return u'{0}/{1}'.format(settings.IMG_DOMAIN, self.p_photo_path) if self.p_photo_path else ''
54
+        return img_url(self.p_photo_path)
53 55
 
54 56
     @property
55 57
     def m_photo_url(self):
56
-        return u'{0}/{1}'.format(settings.IMG_DOMAIN, self.m_photo_path) if self.m_photo_path else ''
58
+        return img_url(self.m_photo_path)
57 59
 
58 60
     @property
59 61
     def l_photo_url(self):
60
-        return u'{0}/{1}'.format(settings.IMG_DOMAIN, self.l_photo_path) if self.l_photo_path else ''
62
+        return img_url(self.l_photo_path)
61 63
 
62 64
     @property
63 65
     def r_photo_url(self):
64
-        return u'{0}/{1}'.format(settings.IMG_DOMAIN, self.r_photo_path) if self.r_photo_path else ''
66
+        return img_url(self.r_photo_path)
65 67
 
66 68
     @property
67 69
     def data(self):

+ 7 - 0
utils/url_utils.py

@@ -0,0 +1,7 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from django.conf import settings
4
+
5
+
6
+def img_url(img_path):
7
+    return u'{0}/{1}'.format(settings.IMG_DOMAIN, img_path) if img_path else ''