from qa.service import AnswerReplyService
from talos.rpc import bind
from talos.services.tractate import TractateReplyService
from utils.group_routine import GroupRoutine


@bind('mimas/group/reply_count')
def get_group_reply_count(diary_ids, answer_ids, tractate_ids):
    """统计话题、小组下关联内容的评论总数"""
    total_count = 0
    routine = GroupRoutine()
    for answer_id in answer_ids:
        routine.submit('a_' + str(answer_id), AnswerReplyService.get_reply_count, answer_id)
    for tractate_id in tractate_ids:
        routine.submit('t_' + str(tractate_id), TractateReplyService.get_reply_count_by_tractate_id, tractate_id)
    routine.go()

    for answer_id in answer_ids:
        total_count += routine.results.get('a_' + str(answer_id), 0)

    for tractate_id in tractate_ids:
        total_count += routine.results.get('t_' + str(tractate_id), 0)

    return {
        'total_count': total_count
    }