| @@ -0,0 +1,34 @@ | ||
| 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', '0013_groupinfo_group_default_avatar'), | |
| 11 | + ] | |
| 12 | + | |
| 13 | + operations = [ | |
| 14 | + migrations.AddField( | |
| 15 | + model_name='groupphotoinfo', | |
| 16 | + name='photo_h', | |
| 17 | + field=models.IntegerField(default=0, help_text='\u7167\u7247\u9ad8\u5ea6', verbose_name='photo_h'), | |
| 18 | + ), | |
| 19 | + migrations.AddField( | |
| 20 | + model_name='groupphotoinfo', | |
| 21 | + name='photo_thumbnail_h', | |
| 22 | + field=models.IntegerField(default=0, help_text='\u7167\u7247\u7f29\u7565\u56fe\u9ad8\u5ea6', verbose_name='photo_thumbnail_h'), | |
| 23 | + ), | |
| 24 | + migrations.AddField( | |
| 25 | + model_name='groupphotoinfo', | |
| 26 | + name='photo_thumbnail_w', | |
| 27 | + field=models.IntegerField(default=0, help_text='\u7167\u7247\u7f29\u7565\u56fe\u5bbd\u5ea6', verbose_name='photo_thumbnail_w'), | |
| 28 | + ), | |
| 29 | + migrations.AddField( | |
| 30 | + model_name='groupphotoinfo', | |
| 31 | + name='photo_w', | |
| 32 | + field=models.IntegerField(default=0, help_text='\u7167\u7247\u5bbd\u5ea6', verbose_name='photo_w'), | |
| 33 | + ), | |
| 34 | + ] | 
| @@ -116,7 +116,11 @@ class GroupPhotoInfo(CreateUpdateMixin): | ||
| 116 | 116 | user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识') | 
| 117 | 117 | nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称') | 
| 118 | 118 | photo_path = models.CharField(_(u'photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径') | 
| 119 | + photo_w = models.IntegerField(_(u'photo_w'), default=0, help_text=u'照片宽度') | |
| 120 | + photo_h = models.IntegerField(_(u'photo_h'), default=0, help_text=u'照片高度') | |
| 119 | 121 | photo_thumbnail_path = models.CharField(_(u'photo_thumbnail_path'), max_length=255, blank=True, null=True, help_text=u'照片缩略图存放路径') | 
| 122 | + photo_thumbnail_w = models.IntegerField(_(u'photo_thumbnail_w'), default=0, help_text=u'照片缩略图宽度') | |
| 123 | + photo_thumbnail_h = models.IntegerField(_(u'photo_thumbnail_h'), default=0, help_text=u'照片缩略图高度') | |
| 120 | 124 | comment_num = models.IntegerField(_(u'comment_num'), default=0, help_text=u'照片评论数量') | 
| 121 | 125 | thumbup_num = models.IntegerField(_(u'thumbup_num'), default=0, help_text=u'照片点赞数量') | 
| 122 | 126 |  | 
| @@ -141,7 +145,11 @@ class GroupPhotoInfo(CreateUpdateMixin): | ||
| 141 | 145 | 'user_id': self.user_id, | 
| 142 | 146 | 'photo_id': self.pk, | 
| 143 | 147 | 'photo_url': self.photo_url, | 
| 148 | + 'photo_w': self.photo_w, | |
| 149 | + 'photo_h': self.photo_h, | |
| 144 | 150 | 'photo_thumbnail_url': self.photo_thumbnail_url, | 
| 151 | + 'photo_thumbnail_w': self.photo_thumbnail_w, | |
| 152 | + 'photo_thumbnail_h': self.photo_thumbnail_h, | |
| 145 | 153 | 'comment_num': self.comment_num, | 
| 146 | 154 | 'thumbup_num': self.thumbup_num, | 
| 147 | 155 | } | 
| @@ -402,7 +402,7 @@ def flyimg_upload_api(request): | ||
| 402 | 402 | default_storage.delete(photo_thumbnail_path) | 
| 403 | 403 | default_storage.save(photo_thumbnail_path, photo) | 
| 404 | 404 |  | 
| 405 | - make_thumb( | |
| 405 | + photo_w, photo_h, photo_thumbnail_w, photo_thumbnail_h = make_thumb( | |
| 406 | 406 |              os.path.join(settings.MEDIA_ROOT, photo_thumbnail_path).replace('\\', '/'), | 
| 407 | 407 | settings.THUMBNAIL_MAX_WIDTH | 
| 408 | 408 | ) | 
| @@ -412,7 +412,11 @@ def flyimg_upload_api(request): | ||
| 412 | 412 | user_id=user_id, | 
| 413 | 413 | nickname=nickname, | 
| 414 | 414 | photo_path=photo_path, | 
| 415 | + photo_w=photo_w, | |
| 416 | + photo_h=photo_h, | |
| 415 | 417 | photo_thumbnail_path=photo_thumbnail_path, | 
| 418 | + photo_thumbnail_w=photo_thumbnail_w, | |
| 419 | + photo_thumbnail_h=photo_thumbnail_h, | |
| 416 | 420 | ) | 
| 417 | 421 |  | 
| 418 | 422 | group_photos = GroupPhotoInfo.objects.filter( | 
| @@ -649,7 +653,7 @@ def pai2_home_api(request): | ||
| 649 | 653 |      num = int(request.POST.get('num', settings.PAI2_HOME_PER_PAGE)) | 
| 650 | 654 |  | 
| 651 | 655 | cursor = connection.cursor() | 
| 652 | -    cursor.execute(r"select T1.group_id, T2.group_name, T2.group_default_avatar, T2.group_avatar, T3.photo_thumbnail_path, 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( | |
| 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( | |
| 653 | 657 | user_id=user_id, | 
| 654 | 658 | offset=0, | 
| 655 | 659 | rows=settings.PAI2_HOME_MAX_ROWS, | 
| @@ -664,9 +668,11 @@ def pai2_home_api(request): | ||
| 664 | 668 | 'group_default_avatar': row[2], | 
| 665 | 669 | 'group_avatar': row[3], | 
| 666 | 670 |          'photo_thumbnail_url': u'{0}/{1}'.format(settings.IMG_DOMAIN, row[4]) if row[4] else '', | 
| 667 | - 'comment_num': row[5], | |
| 668 | - 'thumbup_num': row[6], | |
| 669 | - 'created_at': row[7], | |
| 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], | |
| 670 | 676 | } for row in rows] | 
| 671 | 677 |  | 
| 672 | 678 |      return JsonResponse({ | 
| @@ -15,3 +15,4 @@ def make_thumb(im_path, max_width=360): | ||
| 15 | 15 | thumb_height = height / width * thumb_width | 
| 16 | 16 | im.thumbnail((thumb_width, thumb_height)) | 
| 17 | 17 | im.save(im_path, im.format or 'JPEG') | 
| 18 | + return width, height, thumb_width, thumb_height |