Add api group_delete_api

Brightcells 8 years ago
parent
commit
fd73524af1
3 changed files with 33 additions and 0 deletions
  1. 1 0
      api/urls.py
  2. 30 0
      group/views.py
  3. 2 0
      utils/error/errno_utils.py

+ 1 - 0
api/urls.py

@@ -60,6 +60,7 @@ urlpatterns += [
60 60
     url(r'^g/create$', group_views.group_create_api, name='group_create_api'),  # 群组创建
61 61
     url(r'^g/detail$', group_views.group_detail_api, name='group_detail_api'),  # 群组详情
62 62
     url(r'^g/update$', group_views.group_update_api, name='group_update_api'),  # 群组更新
63
+    url(r'^g/delete$', group_views.group_delete_api, name='group_delete_api'),  # 群组删除
63 64
     url(r'^g/list$', group_views.group_list_api, name='group_list_api'),  # 群组列表
64 65
     url(r'^g/lock$', group_views.group_lock_api, name='group_lock_api'),  # 群组锁定
65 66
     url(r'^g/unlock$', group_views.group_unlock_api, name='group_unlock_api'),  # 群组解锁

+ 30 - 0
group/views.py

@@ -146,6 +146,36 @@ def group_update_api(request):
146 146
 
147 147
 
148 148
 @logit
149
+def group_delete_api(request):
150
+    """ 群组更新 """
151
+    group_id = request.POST.get('group_id', '')
152
+    admin_id = request.POST.get('admin_id', '') or request.POST.get('user_id', '')
153
+
154
+    # 群组校验
155
+    try:
156
+        group = GroupInfo.objects.get(group_id=group_id)
157
+    except GroupInfo.DoesNotExist:
158
+        return response(GroupStatusCode.GROUP_NOT_FOUND)
159
+
160
+    # 权限校验
161
+    if group.admin_id != admin_id:
162
+        return response(GroupStatusCode.NOT_GROUP_ADMIN)
163
+
164
+    # 照片数量校验
165
+    if GroupPhotoInfo.objects.filter(user_id=admin_id, status=True).count():
166
+        return response(GroupStatusCode.GROUP_PHOTO_NOT_EMPTY)
167
+
168
+    # 删除群组
169
+    group.status = False
170
+    group.save()
171
+
172
+    # 删除群组用户
173
+    GroupUserInfo.objects.filter(group_id=group_id).update(status=False)
174
+
175
+    return response(200, 'Delete Group Success', u'群组删除成功')
176
+
177
+
178
+@logit
149 179
 def group_list_api(request):
150 180
     """ 群组列表 """
151 181
     user_id = request.POST.get('user_id', '')

+ 2 - 0
utils/error/errno_utils.py

@@ -79,6 +79,8 @@ class GroupStatusCode(BaseStatusCode):
79 79
     ONLY_ONE_ACTIVE_GROUP_ALLOWED = StatusCodeField(402040, 'Only One Active Group Allowed', description=u'只能创建一个活跃团')
80 80
     ACTIVE_GROUP_NOT_FOUND = StatusCodeField(402041, 'Active Group Not Found', description=u'活跃团不存在')
81 81
     GROUP_HAS_ENDED = StatusCodeField(402042, 'Group Has Ended', description=u'群组已结束')
82
+    # 其他
83
+    GROUP_PHOTO_NOT_EMPTY = StatusCodeField(402099, 'Group Photo Not Empty', description=u'群组照片不为空')
82 84
 
83 85
 
84 86
 class GroupUserStatusCode(BaseStatusCode):