+
+ # Redis 群组数据缓存更新
+ group_users = set_group_info(group)
+
+ # Redis 群组删除集合缓存
+ r.srem(GROUP_USERS_PASSED_SET % group_id, user_id)
+ r.sadd(GROUP_USERS_QUIT_SET % group_id, user_id)
+
+ return JsonResponse({
+ 'status': 200,
+ 'message': u'用户退出成功',
+ 'data': {
+ 'group_id': group_id,
+ 'users': group_users,
+ },
+ })
+
+
def group_pass_api(request):
"""
申请通过
@@ -575,7 +629,7 @@ def comment_submit_api(request):
group_photo.comment_num += 1
group_photo.save()
- # 判断群组照片发布者是否已经被管理员移除,如若移除,则不给发布者提醒
+ # 判断群组照片发布者是否已经被管理员移除/主动退出,如若移除/退出,则不给发布者提醒
if r.sismember(GROUP_USERS_PASSED_SET % group_photo.group_id, group_photo.user_id):
UserMessageInfo.objects.create(
from_uid=user_id,
@@ -639,7 +693,7 @@ def thumbup_submit_api(request):
group_photo.thumbup_num += 1
group_photo.save()
- # 判断群组照片发布者是否已经被管理员移除,如若移除,则不给发布者提醒
+ # 判断群组照片发布者是否已经被管理员移除/主动退出,如若移除/退出,则不给发布者提醒
if r.sismember(GROUP_USERS_PASSED_SET % group_photo.group_id, group_photo.user_id):
UserMessageInfo.objects.create(
from_uid=user_id,
@@ -736,7 +790,7 @@ def thumbup_cancel_api(request):
group_photo.thumbup_num -= 1
group_photo.save()
- # 判断群组照片发布者是否已经被管理员移除,如若移除,则不给发布者提醒
+ # 判断群组照片发布者是否已经被管理员移除/主动退出,如若移除/退出,则不给发布者提醒
if r.sismember(GROUP_USERS_PASSED_SET % group_photo.group_id, group_photo.user_id):
UserMessageInfo.objects.create(
from_uid=user_id,
@@ -41,10 +41,11 @@ class GroupStatusCode(BaseStatusCode): |
||
41 | 41 |
NO_LOCK_PERMISSION = StatusCodeField(402005, u'No Lock Permission', description=u'没有锁定权限') |
42 | 42 |
NO_UNLOCK_PERMISSION = StatusCodeField(402006, u'No Unlock Permission', description=u'没有解锁权限') |
43 | 43 |
NO_REMOVE_PERMISSION = StatusCodeField(402007, u'No Remove Permission', description=u'没有移除权限') |
44 |
- NO_PASS_PERMISSION = StatusCodeField(402008, u'No Pass Permission', description=u'没有通过权限') |
|
45 |
- NO_REFUSE_PERMISSION = StatusCodeField(402009, u'No Refuse Permission', description=u'没有拒绝权限') |
|
46 |
- DUPLICATE_JOIN_REQUEST = StatusCodeField(402010, u'Duplicate Join Request', description=u'重复加群申请') |
|
47 |
- JOIN_REQUEST_NOT_FOUND = StatusCodeField(402011, u'Join Request Not Found', description=u'加群申请不存在') |
|
44 |
+ NO_QUIT_PERMISSION = StatusCodeField(402008, u'No Quit Permission', description=u'没有退出权限') |
|
45 |
+ NO_PASS_PERMISSION = StatusCodeField(402009, u'No Pass Permission', description=u'没有通过权限') |
|
46 |
+ NO_REFUSE_PERMISSION = StatusCodeField(402010, u'No Refuse Permission', description=u'没有拒绝权限') |
|
47 |
+ DUPLICATE_JOIN_REQUEST = StatusCodeField(402011, u'Duplicate Join Request', description=u'重复加群申请') |
|
48 |
+ JOIN_REQUEST_NOT_FOUND = StatusCodeField(402012, u'Join Request Not Found', description=u'加群申请不存在') |
|
48 | 49 |
|
49 | 50 |
|
50 | 51 |
class GroupUserStatusCode(BaseStatusCode): |
@@ -12,6 +12,7 @@ GROUP_USERS_APPLYING_SET = 'group:users:applying:set:%s' # SET,群组用户 |
||
12 | 12 |
GROUP_USERS_PASSED_SET = 'group:users:passed:set:%s' # SET,群组用户通过集合,group_id |
13 | 13 |
GROUP_USERS_REFUSED_SET = 'group:users:refused:set:%s' # SET,群组用户拒绝集合,group_id |
14 | 14 |
GROUP_USERS_DELETED_SET = 'group:users:deleted:set:%s' # SET,群组用户移除集合,group_id |
15 |
+GROUP_USERS_QUIT_SET = 'group:users:quit:set:%s' # SET,群组用户退出集合,group_id |
|
15 | 16 |
|
16 | 17 |
# 群组照片相关 |
17 | 18 |
GROUP_LAST_PHOTO_PK = 'group:last:photo:pk:%s' # STRING,群组最后一张照片PK,group_id |
@@ -1,10 +1,14 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
-PAI2_HOME_API = r"select " \ |
|
4 |
- r"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 " \ |
|
5 |
- r"from (select * from group_groupuserinfo where user_id='{user_id}' and user_status=1) as T1 " \ |
|
6 |
- r"left outer join group_groupinfo as T2 on T1.group_id = T2.group_id " \ |
|
7 |
- r"left outer join group_groupphotoinfo as T3 on T1.group_id = T3.group_id and T3.id > T1.current_id " \ |
|
8 |
- r"where T3.status = 1 " \ |
|
9 |
- r"order by DATE(T3.created_at) desc, T3.thumbup_num desc " \ |
|
10 |
- r"limit {offset}, {rows};" |
|
3 |
+PAI2_HOME_API = ( |
|
4 |
+ r"select " |
|
5 |
+ r"T1.group_id, T2.group_name, T2.group_default_avatar, T2.group_avatar, T3.id, T3.photo_path, T3.photo_w, " |
|
6 |
+ r"T3.photo_h, T3.photo_thumbnail_path, T3.photo_thumbnail_w, T3.photo_thumbnail_h, T3.user_id, T3.nickname, " |
|
7 |
+ r"T3.avatar, T3.comment_num, T3.thumbup_num, T3.created_at " |
|
8 |
+ r"from (select * from group_groupuserinfo where user_id='{user_id}' and user_status=1) as T1 " |
|
9 |
+ r"left outer join group_groupinfo as T2 on T1.group_id = T2.group_id " |
|
10 |
+ r"left outer join group_groupphotoinfo as T3 on T1.group_id = T3.group_id and T3.id > T1.current_id " |
|
11 |
+ r"where T3.status = 1 " |
|
12 |
+ r"order by DATE(T3.created_at) desc, T3.thumbup_num desc " |
|
13 |
+ r"limit {offset}, {rows};" |
|
14 |
+) |