class PageMixin(object): PAGE_SIZE_MAX = 200 param_fields = ( ('page', fields.IntegerField(help_text='页码', required=False, omit=1)), ('page_size', fields.IntegerField(help_text='每页条数', required=False, omit=100)), ) def get_page_context(self, request, queryset, serializer_cls): page_size = request.params.page_size if page_size <= 0 or page_size > self.PAGE_SIZE_MAX: raise CustomError(ErrCode.ERR_PAGE_SIZE_ERROR) total_data = queryset.count() total_page = (total_data + page_size - 1) // page_size page = request.params.page if page < 1: page = 1 elif page > total_page: page = total_page start = (page - 1) * page_size data = [] if total_data > 0: data = serializer_cls(queryset[start:start + page_size], request=request, many=True).data return { 'page_size': page_size, 'list': data, 'page': page, 'total_page': total_page, 'total_data': total_data }
class Meta: param_fields = ( ('room_id', fields.IntegerField(help_text='会议室ID')), ('name', fields.CharField(help_text='名称', max_length=64)), ('description', fields.CharField(help_text='描述', max_length=255, required=False, default="", omit="")), ('date', fields.DateField(help_text='预定日期')), ('start_time', fields.TimeField(help_text='开始时间')), ('end_time', fields.TimeField(help_text='结束时间')), )
class Meta: param_fields = ( ('room_id', fields.IntegerField(help_text='会议室ID')), ('name', fields.CharField(help_text='名称', max_length=64)), ('description', fields.CharField(help_text='描述', max_length=255, required=False, default="", omit="")), ('create_user_manager', fields.NullBooleanField( help_text='创建人管理权限', required=False, default=None, omit=None )), )
class Meta: param_fields = ( ('meeting_id', fields.IntegerField(help_text='会议ID')), ('name', fields.CharField(help_text='名称', max_length=64)), ('description', fields.CharField(help_text='描述', max_length=255, required=False, default="", omit="")), )
class Meta: param_fields = ( ('room_ids', fields.SplitCharField(help_text='会议室ID列表', sep=',', field=fields.IntegerField())), ('date', fields.DateField(help_text='日期', required=False, default=None, omit=None)), )
class CorpAgentMixin(object): param_fields = ( ('corp_id', fields.CharField(help_text='corp_id', required=True)), ('app_id', fields.IntegerField(help_text='app_id', required=True)), ) @classmethod def get_corp_agent_info(cls, request): corp_agent_id = cache.CorpAgentCache.get( "%s|||%s" % (request.params.app_id, request.params.corp_id)) if corp_agent_id is not None: corp_agent = models.CorpAgent.get_obj_by_pk_from_cache( corp_agent_id) if corp_agent is not None and corp_agent.delete_status == core_constants.DELETE_CODE.NORMAL.code: return corp_agent cache.CorpAgentCache.delete( "%s|||%s" % (request.params.app_id, request.params.corp_id)) agent = models.Agent.get_obj_by_unique_key_from_cache( appid=request.params.app_id) if agent is None: raise CustomError(ErrCode.ERR_COMMON_BAD_PARAM) suite = agent.suite corp = models.Corp.objects.filter(corpid=request.params.corp_id, suite_id=suite.suite_key).first() if corp is None: raise CustomError(ErrCode.ERR_COMMON_BAD_PARAM) corp_agent = models.CorpAgent.objects.filter(agent_id=agent.appid, corp_id=corp.pk).first() if corp_agent is None: raise CustomError(ErrCode.ERR_COMMON_BAD_PARAM) cache.CorpAgentCache.set( "%s|||%s" % (request.params.app_id, request.params.corp_id), corp_agent.pk) return corp_agent
class Meta: param_fields = (('meeting_id', fields.IntegerField(help_text='会议ID')), )
class Meta: param_fields = (('room_id', fields.IntegerField(help_text='会议室ID')), )
class Meta: param_fields = (('room_id', fields.SplitCharField(help_text='会议室ID列表', sep=',', field=fields.IntegerField())), )
class Meta: param_fields = (('corp_pk', fields.IntegerField(help_text='corp_pk', required=True)), )
class Meta: param_fields = (('userid', fields.IntegerField(help_text='userid', required=True)), )