示例#1
0
    def modify_journey(self,
                       journey,
                       user,
                       journey_title,
                       journey_content,
                       ip='127.0.0.1',
                       is_hide_user=None):
        try:
            # 防止xss漏洞
            journey_title = utils.filter_script(journey_title)
            journey_content = utils.filter_script(journey_content)

            errcode, errmsg = self.validate_journey_element(
                journey_title, journey_content)
            if not errcode == 0:
                transaction.rollback(using=JOURNEY_DB)
                return errcode, errmsg

            journey.title = journey_title
            journey.content = journey_content
            journey.ip = ip
            if is_hide_user:
                journey.is_hide_user = True
            journey.save()

            # 更新summary
            self.get_journey_summary_by_id(journey, must_update_cache=True)

            transaction.commit(using=JOURNEY_DB)
            return 0, journey
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=JOURNEY_DB)
            return 99900, dict_err.get(99900)
示例#2
0
    def create_kit(self,
                   user_id,
                   kit_title,
                   kit_content,
                   ip='127.0.0.1',
                   is_hide_user=None):
        try:
            # 防止xss漏洞
            kit_title = utils.filter_script(kit_title)
            kit_content = utils.filter_script(kit_content)

            errcode, errmsg = self.validate_kit_element(kit_title, kit_content)
            if not errcode == 0:
                transaction.rollback(using=KIT_DB)
                return errcode, errmsg

            is_hide_user = True if is_hide_user else False
            kit = Kit.objects.create(user_id=user_id,
                                     title=kit_title,
                                     content=kit_content,
                                     last_answer_time=datetime.datetime.now(),
                                     ip=ip,
                                     is_hide_user=is_hide_user)

            # 更新用户话题数信息
            # UserCountBase().update_user_count(user_id=user_id, code='user_kit_count')

            transaction.commit(using=KIT_DB)
            return 0, kit
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=KIT_DB)
            return 99900, dict_err.get(99900)
示例#3
0
    def modify_kit(self,
                   kit,
                   user,
                   kit_title,
                   kit_content,
                   ip='127.0.0.1',
                   is_hide_user=None):
        try:
            # 防止xss漏洞
            kit_title = utils.filter_script(kit_title)
            kit_content = utils.filter_script(kit_content)

            errcode, errmsg = self.validate_kit_element(kit_title, kit_content)
            if not errcode == 0:
                transaction.rollback(using=KIT_DB)
                return errcode, errmsg

            kit.title = kit_title
            kit.content = kit_content
            kit.ip = ip
            if is_hide_user:
                kit.is_hide_user = True
            kit.save()

            # 更新summary
            self.get_kit_summary_by_id(kit, must_update_cache=True)

            transaction.commit(using=KIT_DB)
            return 0, kit
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=KIT_DB)
            return 99900, dict_err.get(99900)
示例#4
0
    def create_activity(self, user_id, title, content, start_date, end_date, sign_up_end_date, addr, assembly_point, activity_cover):
        try:

            content = utils.filter_script(content)
            if not all((user_id, title, content, start_date, end_date, sign_up_end_date, activity_cover, addr, assembly_point)):
                transaction.rollback(using=ACTIVITY_DB)
                return 99800, dict_err.get(99800)

            errcode, errmsg = JourneyBase().validate_journey_element(title, content, min_title_len=5)
            if not errcode == 0:
                transaction.rollback(using=ACTIVITY_DB)
                return errcode, errmsg

            # 检测时间是否正常
            errcode, errmsg = self.check_date(start_date, end_date, sign_up_end_date)
            if not errcode == 0:
                transaction.rollback(using=ACTIVITY_DB)
                return errcode, errmsg

            activity = Activity.objects.create(user_id=user_id, title=title, content=content, start_date=start_date, end_date=end_date,
                                               sign_up_end_date=sign_up_end_date, activity_cover=activity_cover, addr=addr, assembly_point=assembly_point)

            transaction.commit(using=ACTIVITY_DB)
            return 0, activity
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=ACTIVITY_DB)
            return 99900, dict_err.get(99900)
示例#5
0
文件: interface.py 项目: cash2one/zx
    def create_question(self,
                        user_id,
                        question_title,
                        question_content,
                        ip='127.0.0.1',
                        is_hide_user=None,
                        topic_ids=[]):
        try:
            # 防止xss漏洞
            question_title = utils.filter_script(question_title)
            question_content = utils.filter_script(question_content)

            errcode, errmsg = self.validate_question_element(
                question_title, question_content)
            if not errcode == 0:
                transaction.rollback(using=QUESTION_DB)
                return errcode, errmsg

            is_hide_user = True if is_hide_user else False
            question = Question.objects.create(
                user_id=user_id,
                title=question_title,
                content=question_content,
                last_answer_time=datetime.datetime.now(),
                ip=ip,
                is_hide_user=is_hide_user,
                is_silence=self.get_question_is_silence_by_tags(topic_ids))

            # 创建话题和topics关系
            TopicBase().create_topic_question_relation(question, topic_ids)

            # 更新用户话题数信息
            UserCountBase().update_user_count(user_id=user_id,
                                              code='user_question_count')

            # 发送feed
            if not is_hide_user and not question.is_silence:
                FeedBase().create_feed(user_id,
                                       feed_type=1,
                                       obj_id=question.id)

            transaction.commit(using=QUESTION_DB)
            return 0, question
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=QUESTION_DB)
            return 99900, dict_err.get(99900)
示例#6
0
    def create_answer(self, obj, obj_type, from_user_id, content, ip=None):
        try:
            obj_type = str(obj_type)

            content = utils.filter_script(content)
            if not all((obj, obj_type, from_user_id, content)):
                transaction.rollback(using=ANSWER_DB)
                return 99800, dict_err.get(99800)

            errcode, errmsg = JourneyBase().validate_content(content)
            if not errcode == 0:
                transaction.rollback(using=ANSWER_DB)
                return errcode, errmsg

            to_user_id = obj.user_id
            answer = Answer.objects.create(from_user_id=from_user_id, to_user_id=to_user_id, content=content,
                                           obj_id=obj.id, obj_type=obj_type, ip=ip)

            from_user = UserBase().get_user_by_id(from_user_id)
            # 添加at信息
            if content.find('@') != -1:
                at_usernicks = utils.select_at(content)
                for nick in at_usernicks:
                    at_user = UserBase().get_user_by_nick(nick)
                    if at_user:
                        # 自己@自己的关系不进行存储
                        if at_user.id != from_user_id:
                            AtAnswer.objects.create(answer=answer, user_id=at_user.id)
                            if at_user.id != to_user_id:
                                # 更新@未读消息数
                                UnreadCountBase().update_unread_count(at_user.id, code='at_answer')

                                # 发送提醒邮件
                                context = dict(user=from_user, answer=answer)
                                # async_send_email(at_user.email, u'%s 在且行户外回答中@了你' % (from_user.nick, ), utils.render_email_template('email/at.html', context), 'html')

            # 更新未读消息
            if from_user_id != to_user_id:
                UnreadCountBase().update_unread_count(to_user_id, code='received_answer')

                # 发送提醒邮件
                to_user = UserBase().get_user_by_id(to_user_id)
                context = dict(user=from_user, answer=answer)
                # async_send_email(to_user.email, u'%s 在且行户外回答了你的提问' % (from_user.nick, ), utils.render_email_template('email/answer.html', context), 'html')

            # 更新用户回答统计总数
            UserCountBase().update_user_count(user_id=from_user_id, code='user_answer_count')

            # 更新回答数冗余信息
            obj.answer_count += 1
            obj.last_answer_time = datetime.datetime.now()
            obj.save()

            transaction.commit(using=ANSWER_DB)
            return 0, answer
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=ANSWER_DB)
            return 99900, dict_err.get(99900)
示例#7
0
文件: interface.py 项目: lantianlz/zx
    def add_article(self, title, content, city_id, department_id=None, sort_num=0):
        if not (title and content and CityBase().get_city_by_id(city_id)):
            return 99800, dict_err.get(99800)

        content = utils.filter_script(content)
        article = Article.objects.create(title=title, content=content, city_id=city_id,
                                         department_id=department_id, sort_num=sort_num)

        return 0, article
示例#8
0
文件: interface.py 项目: cash2one/zx
    def modify_question(self,
                        question,
                        user,
                        question_title,
                        question_content,
                        ip='127.0.0.1',
                        is_hide_user=None,
                        topic_ids=[]):
        try:
            # 防止xss漏洞
            question_title = utils.filter_script(question_title)
            question_content = utils.filter_script(question_content)

            errcode, errmsg = self.validate_question_element(
                question_title, question_content)
            if not errcode == 0:
                transaction.rollback(using=QUESTION_DB)
                return errcode, errmsg

            question.title = question_title
            question.content = question_content
            question.ip = ip
            if is_hide_user:
                question.is_hide_user = True
            question.is_silence = self.get_question_is_silence_by_tags(
                topic_ids)
            question.save()

            # 创建话题和topics关系
            TopicBase().create_topic_question_relation(question, topic_ids)

            # 更新summary
            self.get_question_summary_by_id(question, must_update_cache=True)

            transaction.commit(using=QUESTION_DB)
            return 0, question
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=QUESTION_DB)
            return 99900, dict_err.get(99900)
示例#9
0
文件: interface.py 项目: cash2one/zx
 def format_quesitons(self,
                      questions,
                      need_question_type=False,
                      need_question_topics=False):
     for question in questions:
         question.user = question.get_user()
         question.content = utils.filter_script(question.content)
         if need_question_type:
             question.question_type = TopicBase(
             ).get_topic_level1_by_question(question)
         if need_question_topics:
             question.question_topics = TopicBase().get_topics_by_question(
                 question)
     return questions
示例#10
0
    def modify_activity(self,
                        activity,
                        user,
                        title,
                        content,
                        start_date,
                        end_date,
                        sign_up_end_date,
                        addr,
                        assembly_point,
                        activity_cover=None):
        try:
            content = utils.filter_script(content)
            if not all((title, content, start_date, end_date, sign_up_end_date,
                        addr, assembly_point)):
                transaction.rollback(using=ACTIVITY_DB)
                return 99800, dict_err.get(99800)

            errcode, errmsg = JourneyBase().validate_journey_element(
                title, content, min_title_len=5)
            if not errcode == 0:
                return errcode, errmsg

            # 检测时间是否正常
            errcode, errmsg = self.check_date(start_date, end_date,
                                              sign_up_end_date)
            if not errcode == 0:
                transaction.rollback(using=ACTIVITY_DB)
                return errcode, errmsg

            activity.title = title
            activity.content = content
            activity.start_date = start_date
            activity.end_date = end_date
            activity.sign_up_end_date = sign_up_end_date
            if activity_cover:
                activity.activity_cover = activity_cover
            activity.addr = addr
            activity.assembly_point = assembly_point
            activity.save()

            # 更新summary
            self.get_activity_summary_by_id(activity, must_update_cache=True)
            transaction.commit(using=ACTIVITY_DB)
            return 0, activity
        except Exception, e:
            transaction.rollback(using=ACTIVITY_DB)
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#11
0
文件: interface.py 项目: cash2one/zx
    def add_article(self,
                    title,
                    content,
                    city_id,
                    department_id=None,
                    sort_num=0):
        if not (title and content and CityBase().get_city_by_id(city_id)):
            return 99800, dict_err.get(99800)

        content = utils.filter_script(content)
        article = Article.objects.create(title=title,
                                         content=content,
                                         city_id=city_id,
                                         department_id=department_id,
                                         sort_num=sort_num)

        return 0, article
示例#12
0
文件: interface.py 项目: lantianlz/zx
    def modify_article(self, article_id, **kwargs):

        if not article_id:
            return 99800, dict_err.get(99800)

        article = self.get_article_by_id(article_id)
        if not article:
            return 50104, dict_err.get(50104)

        try:
            kwargs["content"] = utils.filter_script(kwargs["content"])
            for k, v in kwargs.items():
                setattr(article, k, v)

            article.save()
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#13
0
文件: interface.py 项目: cash2one/zx
    def modify_article(self, article_id, **kwargs):

        if not article_id:
            return 99800, dict_err.get(99800)

        article = self.get_article_by_id(article_id)
        if not article:
            return 50104, dict_err.get(50104)

        try:
            kwargs["content"] = utils.filter_script(kwargs["content"])
            for k, v in kwargs.items():
                setattr(article, k, v)

            article.save()
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#14
0
    def create_activity(self, user_id, title, content, start_date, end_date,
                        sign_up_end_date, addr, assembly_point,
                        activity_cover):
        try:

            content = utils.filter_script(content)
            if not all(
                (user_id, title, content, start_date, end_date,
                 sign_up_end_date, activity_cover, addr, assembly_point)):
                transaction.rollback(using=ACTIVITY_DB)
                return 99800, dict_err.get(99800)

            errcode, errmsg = JourneyBase().validate_journey_element(
                title, content, min_title_len=5)
            if not errcode == 0:
                transaction.rollback(using=ACTIVITY_DB)
                return errcode, errmsg

            # 检测时间是否正常
            errcode, errmsg = self.check_date(start_date, end_date,
                                              sign_up_end_date)
            if not errcode == 0:
                transaction.rollback(using=ACTIVITY_DB)
                return errcode, errmsg

            activity = Activity.objects.create(
                user_id=user_id,
                title=title,
                content=content,
                start_date=start_date,
                end_date=end_date,
                sign_up_end_date=sign_up_end_date,
                activity_cover=activity_cover,
                addr=addr,
                assembly_point=assembly_point)

            transaction.commit(using=ACTIVITY_DB)
            return 0, activity
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=ACTIVITY_DB)
            return 99900, dict_err.get(99900)
示例#15
0
    def modify_answer(self, answer, user, content):
        try:
            content = utils.filter_script(content)
            if not content:
                return 99800, dict_err.get(99800)

            errcode, errmsg = JourneyBase().validate_content(content)
            if not errcode == 0:
                return errcode, errmsg

            answer.content = content
            answer.save()

            # 更新summary
            self.get_answer_summary_by_id(answer, must_update_cache=True)

            return 0, answer
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#16
0
文件: interface.py 项目: cash2one/zx
    def modify_answer(self, answer, user, content):
        try:
            content = utils.filter_script(content)
            if not content:
                return 99800, dict_err.get(99800)

            errcode, errmsg = QuestionBase().validate_content(content)
            if not errcode == 0:
                return errcode, errmsg

            answer.content = content
            answer.save()

            # 更新summary
            self.get_answer_summary_by_id(answer, must_update_cache=True)

            return 0, answer
        except Exception, e:
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#17
0
    def modify_activity(self, activity, user, title, content, start_date, end_date, sign_up_end_date, addr, assembly_point, activity_cover=None):
        try:
            content = utils.filter_script(content)
            if not all((title, content, start_date, end_date, sign_up_end_date, addr, assembly_point)):
                transaction.rollback(using=ACTIVITY_DB)
                return 99800, dict_err.get(99800)

            errcode, errmsg = JourneyBase().validate_journey_element(title, content, min_title_len=5)
            if not errcode == 0:
                return errcode, errmsg

            # 检测时间是否正常
            errcode, errmsg = self.check_date(start_date, end_date, sign_up_end_date)
            if not errcode == 0:
                transaction.rollback(using=ACTIVITY_DB)
                return errcode, errmsg

            activity.title = title
            activity.content = content
            activity.start_date = start_date
            activity.end_date = end_date
            activity.sign_up_end_date = sign_up_end_date
            if activity_cover:
                activity.activity_cover = activity_cover
            activity.addr = addr
            activity.assembly_point = assembly_point
            activity.save()

            # 更新summary
            self.get_activity_summary_by_id(activity, must_update_cache=True)
            transaction.commit(using=ACTIVITY_DB)
            return 0, activity
        except Exception, e:
            transaction.rollback(using=ACTIVITY_DB)
            debug.get_debug_detail(e)
            return 99900, dict_err.get(99900)
示例#18
0
            return 10101, dict_err.get(10101)

        errcode, errmsg = self.check_gender(gender)
        if errcode != 0:
            return errcode, errmsg

        errcode, errmsg = self.check_birthday(birthday)
        if errcode != 0:
            return errcode, errmsg

        # user = self.get_user_by_id(user_id)
        user.nick = nick
        user.gender = int(gender)
        user.birthday = birthday
        if des:
            user.des = utils.filter_script(des)[:128]

        if state is not None:
            user_login = User.objects.get(id=user.id)
            user_login.state = state
            user_login.save()

        user.save()

        # 更新缓存
        self.get_user_by_id(user.id, state=[0, 1, 2], must_update_cache=True)
        return 0, user

    def change_pwd(self, user, old_password, new_password_1, new_password_2):
        '''
        @note: 密码修改
示例#19
0
            return 10101, dict_err.get(10101)

        errcode, errmsg = self.check_gender(gender)
        if errcode != 0:
            return errcode, errmsg

        errcode, errmsg = self.check_birthday(birthday)
        if errcode != 0:
            return errcode, errmsg

        user = self.get_user_by_id(user_id)
        user.nick = nick
        user.gender = int(gender)
        user.birthday = birthday
        if des:
            user.des = utils.filter_script(des)[:128]

        if state is not None:
            user_login = self.get_user_login_by_id(user.id)
            user_login.state = state
            user_login.save()

        user.save()

        # 更新缓存
        self.get_user_by_id(user.id, must_update_cache=True)
        return 0, user

    def change_pwd(self, user, old_password, new_password_1, new_password_2):
        '''
        @note: 密码修改
示例#20
0
 def format_kits(self, kits):
     for kit in kits:
         kit.user = kit.get_user()
         kit.content = utils.filter_script(kit.content)
     return kits
示例#21
0
文件: interface.py 项目: cash2one/zx
    def create_answer(self, question, from_user_id, content, ip=None):
        try:
            content = utils.filter_script(content)
            if not all((question, from_user_id, content)):
                transaction.rollback(using=QUESTION_DB)
                return 99800, dict_err.get(99800)

            errcode, errmsg = QuestionBase().validate_content(content)
            if not errcode == 0:
                transaction.rollback(using=QUESTION_DB)
                return errcode, errmsg

            to_user_id = question.user_id
            answer = Answer.objects.create(from_user_id=from_user_id,
                                           to_user_id=to_user_id,
                                           content=content,
                                           question=question,
                                           ip=ip)

            from_user = UserBase().get_user_by_id(from_user_id)
            # 添加at信息
            if content.find('@') != -1:
                at_usernicks = utils.select_at(content)
                for nick in at_usernicks:
                    at_user = UserBase().get_user_by_nick(nick)
                    if at_user:
                        # 自己@自己的关系不进行存储
                        if at_user.id != from_user_id:
                            AtAnswer.objects.create(answer=answer,
                                                    user_id=at_user.id)
                            if at_user.id != to_user_id:
                                # 更新@未读消息数
                                UnreadCountBase().update_unread_count(
                                    at_user.id, code='at_answer')

                                # 发送提醒邮件
                                context = dict(user=from_user, answer=answer)
                                async_send_email(
                                    at_user.email,
                                    u'%s 在智选回答中@了你' % (from_user.nick, ),
                                    utils.render_email_template(
                                        'email/at.html', context), 'html')

            # 更新未读消息
            if from_user_id != to_user_id:
                UnreadCountBase().update_unread_count(to_user_id,
                                                      code='received_answer')

                # 发送提醒邮件
                to_user = UserBase().get_user_by_id(to_user_id)
                context = dict(user=from_user, answer=answer)
                async_send_email(
                    to_user.email, u'%s 在智选回答了你的提问' % (from_user.nick, ),
                    utils.render_email_template('email/answer.html', context),
                    'html')

            # 更新用户回答统计总数
            UserCountBase().update_user_count(user_id=from_user_id,
                                              code='user_answer_count')

            # 更新回答数冗余信息
            question.answer_count += 1
            question.last_answer_time = datetime.datetime.now()
            question.save()

            # 发送feed
            if not question.is_silence:
                FeedBase().create_feed(from_user_id,
                                       feed_type=3,
                                       obj_id=answer.id)

            # 更新summary
            QuestionBase().get_question_summary_by_id(question,
                                                      must_update_cache=True)

            transaction.commit(using=QUESTION_DB)
            return 0, answer
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=QUESTION_DB)
            return 99900, dict_err.get(99900)
示例#22
0
 def format_journeys(self, journeys):
     for journey in journeys:
         journey.user = journey.get_user()
         journey.content = utils.filter_script(journey.content)
     return journeys
示例#23
0
    def create_answer(self, obj, obj_type, from_user_id, content, ip=None):
        try:
            obj_type = str(obj_type)

            content = utils.filter_script(content)
            if not all((obj, obj_type, from_user_id, content)):
                transaction.rollback(using=ANSWER_DB)
                return 99800, dict_err.get(99800)

            errcode, errmsg = JourneyBase().validate_content(content)
            if not errcode == 0:
                transaction.rollback(using=ANSWER_DB)
                return errcode, errmsg

            to_user_id = obj.user_id
            answer = Answer.objects.create(from_user_id=from_user_id,
                                           to_user_id=to_user_id,
                                           content=content,
                                           obj_id=obj.id,
                                           obj_type=obj_type,
                                           ip=ip)

            from_user = UserBase().get_user_by_id(from_user_id)
            # 添加at信息
            if content.find('@') != -1:
                at_usernicks = utils.select_at(content)
                for nick in at_usernicks:
                    at_user = UserBase().get_user_by_nick(nick)
                    if at_user:
                        # 自己@自己的关系不进行存储
                        if at_user.id != from_user_id:
                            AtAnswer.objects.create(answer=answer,
                                                    user_id=at_user.id)
                            if at_user.id != to_user_id:
                                # 更新@未读消息数
                                UnreadCountBase().update_unread_count(
                                    at_user.id, code='at_answer')

                                # 发送提醒邮件
                                context = dict(user=from_user, answer=answer)
                                # async_send_email(at_user.email, u'%s 在且行户外回答中@了你' % (from_user.nick, ), utils.render_email_template('email/at.html', context), 'html')

            # 更新未读消息
            if from_user_id != to_user_id:
                UnreadCountBase().update_unread_count(to_user_id,
                                                      code='received_answer')

                # 发送提醒邮件
                to_user = UserBase().get_user_by_id(to_user_id)
                context = dict(user=from_user, answer=answer)
                # async_send_email(to_user.email, u'%s 在且行户外回答了你的提问' % (from_user.nick, ), utils.render_email_template('email/answer.html', context), 'html')

            # 更新用户回答统计总数
            UserCountBase().update_user_count(user_id=from_user_id,
                                              code='user_answer_count')

            # 更新回答数冗余信息
            obj.answer_count += 1
            obj.last_answer_time = datetime.datetime.now()
            obj.save()

            transaction.commit(using=ANSWER_DB)
            return 0, answer
        except Exception, e:
            debug.get_debug_detail(e)
            transaction.rollback(using=ANSWER_DB)
            return 99900, dict_err.get(99900)