@@ -11,7 +11,7 @@ from account.serializers import UserSerializer, GroupSerializer, LensmanInfoSeri  | 
            ||
| 11 | 11 | 
                 | 
            
| 12 | 12 | 
                from utils.ip_utils import ip_addr  | 
            
| 13 | 13 | 
                 | 
            
| 14 | 
                -from utils.error.errno_utils import UserStatusCode  | 
            |
| 14 | 
                +from utils.error.errno_utils import LensmanStatusCode  | 
            |
| 15 | 15 | 
                from utils.error.response_utils import response  | 
            
| 16 | 16 | 
                 | 
            
| 17 | 17 | 
                from curtail_uuid import CurtailUUID  | 
            
                @@ -26,10 +26,10 @@ def lesman_login_api(request):  | 
            ||
| 26 | 26 | 
                try:  | 
            
| 27 | 27 | 
                lensman = LensmanInfo.objects.get(username=username)  | 
            
| 28 | 28 | 
                except LensmanInfo.DoesNotExist:  | 
            
| 29 | 
                - return response(UserStatusCode.LENSMAN_NOT_FOUND)  | 
            |
| 29 | 
                + return response(LensmanStatusCode.LENSMAN_NOT_FOUND)  | 
            |
| 30 | 30 | 
                 | 
            
| 31 | 31 | 
                if not check_password(password, lensman.encryption):  | 
            
| 32 | 
                - return response(UserStatusCode.LENSMAN_PASSWORD_ERROR)  | 
            |
| 32 | 
                + return response(LensmanStatusCode.LENSMAN_PASSWORD_ERROR)  | 
            |
| 33 | 33 | 
                 | 
            
| 34 | 34 | 
                     return JsonResponse({
               | 
            
| 35 | 35 | 
                'status': 200,  | 
            
                @@ -17,7 +17,7 @@ from utils.page_utils import pagination  | 
            ||
| 17 | 17 | 
                from utils.thumbnail_utils import make_thumb  | 
            
| 18 | 18 | 
                from utils.url_utils import img_url  | 
            
| 19 | 19 | 
                 | 
            
| 20 | 
                -from utils.error.errno_utils import UserStatusCode, GroupStatusCode, GroupPhotoStatusCode  | 
            |
| 20 | 
                +from utils.error.errno_utils import UserStatusCode, GroupStatusCode, GroupUserStatusCode, GroupPhotoStatusCode  | 
            |
| 21 | 21 | 
                from utils.error.response_utils import response  | 
            
| 22 | 22 | 
                 | 
            
| 23 | 23 | 
                from utils.sql.raw import PAI2_HOME_API  | 
            
                @@ -87,7 +87,12 @@ def group_detail_api(request):  | 
            ||
| 87 | 87 | 
                except GroupInfo.DoesNotExist:  | 
            
| 88 | 88 | 
                return response(GroupStatusCode.GROUP_NOT_FOUND)  | 
            
| 89 | 89 | 
                 | 
            
| 90 | 
                - # 判断用户是否已被丛群组移除  | 
            |
| 90 | 
                + # try:  | 
            |
| 91 | 
                + # group_user = GroupUserInfo.objects.filter(group_id=group_id, user_id=user_id)  | 
            |
| 92 | 
                + # except GroupUserInfo.DoesNotExist:  | 
            |
| 93 | 
                + # return response(GroupUserStatusCode.GROUP_USER_NOT_FOUND)  | 
            |
| 94 | 
                + # if group_user.user_status == GroupUserInfo.DELETED:  | 
            |
| 95 | 
                + # return response(GroupUserStatusCode.GROUP_USER_HAS_DELETED)  | 
            |
| 91 | 96 | 
                 | 
            
| 92 | 97 | 
                     return JsonResponse({
               | 
            
| 93 | 98 | 
                'status': 200,  | 
            
                @@ -146,7 +151,7 @@ def group_update_api(request):  | 
            ||
| 146 | 151 | 
                def group_list_api(request):  | 
            
| 147 | 152 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 148 | 153 | 
                 | 
            
| 149 | 
                - group_users = GroupUserInfo.objects.filter(user_id=user_id)  | 
            |
| 154 | 
                + group_users = GroupUserInfo.objects.filter(user_id=user_id, user_status=GroupUserInfo.PASSED)  | 
            |
| 150 | 155 | 
                groups = []  | 
            
| 151 | 156 | 
                for group_user in group_users:  | 
            
| 152 | 157 | 
                try:  | 
            
                @@ -14,46 +14,56 @@ class StatusCodeField(ConstIntField):  | 
            ||
| 14 | 14 | 
                self.message = message  | 
            
| 15 | 15 | 
                 | 
            
| 16 | 16 | 
                 | 
            
| 17 | 
                +class LensmanStatusCode(BaseStatusCode):  | 
            |
| 18 | 
                + """ 摄影师相关错误码 4000xx """  | 
            |
| 19 | 
                + LENSMAN_NOT_FOUND = StatusCodeField(400001, u'Lensman Not Found', description=u'摄影师不存在')  | 
            |
| 20 | 
                + LENSMAN_PASSWORD_ERROR = StatusCodeField(400002, u'Lensman Password Error', description=u'摄影师密码错误')  | 
            |
| 21 | 
                +  | 
            |
| 22 | 
                +  | 
            |
| 17 | 23 | 
                class UserStatusCode(BaseStatusCode):  | 
            
| 18 | 
                - """ 摄影师/用户相关错误码 400x & 401x """  | 
            |
| 19 | 
                - LENSMAN_NOT_FOUND = StatusCodeField(4000, u'Lensman Not Found', description=u'摄影师不存在')  | 
            |
| 20 | 
                - LENSMAN_PASSWORD_ERROR = StatusCodeField(4001, u'Lensman Password Error', description=u'摄影师密码错误')  | 
            |
| 21 | 
                - USERNAME_HAS_REGISTERED = StatusCodeField(4010, u'Username Has Registered', description=u'用户名已注册')  | 
            |
| 22 | 
                - USER_NOT_FOUND = StatusCodeField(4011, u'User Not Found', description=u'用户不存在')  | 
            |
| 23 | 
                - USER_PASSWORD_ERROR = StatusCodeField(4012, u'User Password Error', description=u'用户密码错误')  | 
            |
| 24 | 
                + """ 用户相关错误码 4001xx """  | 
            |
| 25 | 
                + USER_NOT_FOUND = StatusCodeField(400101, u'User Not Found', description=u'用户不存在')  | 
            |
| 26 | 
                + USER_PASSWORD_ERROR = StatusCodeField(400102, u'User Password Error', description=u'用户密码错误')  | 
            |
| 27 | 
                + USERNAME_HAS_REGISTERED = StatusCodeField(400103, u'Username Has Registered', description=u'用户名已注册')  | 
            |
| 24 | 28 | 
                 | 
            
| 25 | 29 | 
                 | 
            
| 26 | 30 | 
                class PhotoStatusCode(BaseStatusCode):  | 
            
| 27 | 
                - """ 照片相关错误码 403x """  | 
            |
| 28 | 
                - PARAMS_ERROR = StatusCodeField(4039, u'Params Error', description=u'参数错误')  | 
            |
| 31 | 
                + """ 照片相关错误码 4010xx """  | 
            |
| 32 | 
                + PARAMS_ERROR = StatusCodeField(401001, u'Params Error', description=u'参数错误')  | 
            |
| 29 | 33 | 
                 | 
            
| 30 | 34 | 
                 | 
            
| 31 | 35 | 
                class GroupStatusCode(BaseStatusCode):  | 
            
| 32 | 
                - """ 群组相关错误码 402x """  | 
            |
| 33 | 
                - GROUP_NOT_FOUND = StatusCodeField(4020, u'Group Not Found', description=u'群组不存在')  | 
            |
| 34 | 
                - GROUP_HAS_LOCKED = StatusCodeField(4021, u'Group Has Locked', description=u'群组已锁定')  | 
            |
| 35 | 
                - NOT_GROUP_ADMIN = StatusCodeField(4022, u'Not Group Admin', description=u'非群组管理员')  | 
            |
| 36 | 
                - NO_UPDATE_PERMISSION = StatusCodeField(40220, u'No Update Permission', description=u'没有更新权限')  | 
            |
| 37 | 
                - NO_LOCK_PERMISSION = StatusCodeField(40221, u'No Lock Permission', description=u'没有锁定权限')  | 
            |
| 38 | 
                - NO_UNLOCK_PERMISSION = StatusCodeField(40222, u'No Unlock Permission', description=u'没有解锁权限')  | 
            |
| 39 | 
                - NO_REMOVE_PERMISSION = StatusCodeField(40223, u'No Remove Permission', description=u'没有移除权限')  | 
            |
| 40 | 
                - NO_PASS_PERMISSION = StatusCodeField(40224, u'No Pass Permission', description=u'没有通过权限')  | 
            |
| 41 | 
                - NO_REFUSE_PERMISSION = StatusCodeField(40225, u'No Refuse Permission', description=u'没有拒绝权限')  | 
            |
| 42 | 
                - DUPLICATE_JOIN_REQUEST = StatusCodeField(4027, u'Duplicate Join Request', description=u'重复加群申请')  | 
            |
| 43 | 
                - JOIN_REQUEST_NOT_FOUND = StatusCodeField(4028, u'Join Request Not Found', description=u'加群申请不存在')  | 
            |
| 44 | 
                - GROUP_USER_NOT_FOUND = StatusCodeField(4029, u'Group User Not Found', description=u'该用户不在群组')  | 
            |
| 36 | 
                + """ 群组相关错误码 4020xx """  | 
            |
| 37 | 
                + GROUP_NOT_FOUND = StatusCodeField(402001, u'Group Not Found', description=u'群组不存在')  | 
            |
| 38 | 
                + GROUP_HAS_LOCKED = StatusCodeField(402002, u'Group Has Locked', description=u'群组已锁定')  | 
            |
| 39 | 
                + NOT_GROUP_ADMIN = StatusCodeField(402003, u'Not Group Admin', description=u'非群组管理员')  | 
            |
| 40 | 
                + NO_UPDATE_PERMISSION = StatusCodeField(402004, u'No Update Permission', description=u'没有更新权限')  | 
            |
| 41 | 
                + NO_LOCK_PERMISSION = StatusCodeField(402005, u'No Lock Permission', description=u'没有锁定权限')  | 
            |
| 42 | 
                + NO_UNLOCK_PERMISSION = StatusCodeField(402006, u'No Unlock Permission', description=u'没有解锁权限')  | 
            |
| 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'加群申请不存在')  | 
            |
| 48 | 
                + GROUP_USER_NOT_FOUND = StatusCodeField(402012, u'Group User Not Found', description=u'该用户不在群组')  | 
            |
| 49 | 
                +  | 
            |
| 50 | 
                +  | 
            |
| 51 | 
                +class GroupUserStatusCode(BaseStatusCode):  | 
            |
| 52 | 
                + """ 群组用户相关错误码 4021xx """  | 
            |
| 53 | 
                + GROUP_USER_NOT_FOUND = StatusCodeField(402101, u'Group User Not Found', description=u'群组用户不存在')  | 
            |
| 54 | 
                + GROUP_USER_HAS_DELETED = StatusCodeField(402102, u'Group User Has Deleted', description=u'群组用户被移除')  | 
            |
| 45 | 55 | 
                 | 
            
| 46 | 56 | 
                 | 
            
| 47 | 57 | 
                class GroupPhotoStatusCode(BaseStatusCode):  | 
            
| 48 | 
                - """ 飞图相关错误码 403x """  | 
            |
| 49 | 
                - GROUP_PHOTO_NOT_FOUND = StatusCodeField(4030, u'Group Photo Not Found', description=u'飞图不存在')  | 
            |
| 58 | 
                + """ 群组照片(飞图)相关错误码 4022xx """  | 
            |
| 59 | 
                + GROUP_PHOTO_NOT_FOUND = StatusCodeField(402201, u'Group Photo Not Found', description=u'飞图不存在')  | 
            |
| 50 | 60 | 
                 | 
            
| 51 | 61 | 
                 | 
            
| 52 | 62 | 
                class OrderStatusCode(BaseStatusCode):  | 
            
| 53 | 
                - """ 订单/支付相关错误码 404x """  | 
            |
| 54 | 
                - WX_UNIFIED_ORDER_FAIL = StatusCodeField(4040, u'WX Unified Order Fail', description=u'微信统一下单失败')  | 
            |
| 63 | 
                + """ 订单/支付相关错误码 4040xx """  | 
            |
| 64 | 
                + WX_UNIFIED_ORDER_FAIL = StatusCodeField(404000, u'WX Unified Order Fail', description=u'微信统一下单失败')  | 
            |
| 55 | 65 | 
                 | 
            
| 56 | 66 | 
                 | 
            
| 57 | 67 | 
                class MessageStatusCode(BaseStatusCode):  | 
            
| 58 | 
                - """ 消息相关错误码 409x """  | 
            |
| 59 | 
                - MESSAGE_NOT_FOUND = StatusCodeField(4091, u'Message Not Found', description=u'消息不存在')  | 
            |
| 68 | 
                + """ 消息相关错误码 4090xx """  | 
            |
| 69 | 
                + MESSAGE_NOT_FOUND = StatusCodeField(409001, u'Message Not Found', description=u'消息不存在')  | 
            
                @@ -2,7 +2,7 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                PAI2_HOME_API = r"select " \  | 
            
| 4 | 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}') as T1 " \
               | 
            |
| 5 | 
                +                r"from (select * from group_groupuserinfo where user_id='{user_id}' and user_status=1) as T1 " \
               | 
            |
| 6 | 6 | 
                r"left outer join group_groupinfo as T2 on T1.group_id = T2.group_id " \  | 
            
| 7 | 7 | 
                r"left outer join group_groupphotoinfo as T3 on T1.group_id = T3.group_id and T3.id > T1.current_id " \  | 
            
| 8 | 8 | 
                r"where T3.status = 1 " \  |