reply_pool_add_reply.py 1.94 KB
from collections import defaultdict
from django.core.management import BaseCommand
from gm_types.mimas import FAKE_REPLY_BAND_TYPE

from communal.models.fake_reply import FakeReplyPool, FakeReplyConfig, FakeReplyConfigMapReply
from utils.execel import ExcelReader

missing_reply = {
    1508: '激光美肤kyc',
    1502: '唇部美化kyc',
}


class Command(BaseCommand):
    """
    python django_manage.py reply_pool_add_reply
    新增灌水评论
    """

    def handle(self, *args, **options):
        excel = ExcelReader('/tmp/reply_pool.xlsx')
        new_add_reply = defaultdict(list)
        replies = []
        for c in range(1, excel.column_number+1):
            data = excel.read_column(c)
            tag_id, tag_name = data[0], data[1]
            for i in data[2:]:
                if i:
                    i = i.replace("\t", "").replace('"', "")
                    if i:
                        new_add_reply[tag_id].append(i)
                        replies.append(
                            FakeReplyPool(
                                content=i
                            )
                        )
        FakeReplyPool.objects.bulk_create(replies)
        print('新增评论创建成功')
        # 关联
        for tag_id, replies in new_add_reply.items():
            config = FakeReplyConfig.objects.filter(
                tag_id=int(tag_id), band_type=FAKE_REPLY_BAND_TYPE.TAG,
            ).first()
            if not config:
                continue
            band_list = []
            for content in replies:
                reply = FakeReplyPool.objects.filter(content=content).first()
                if not reply:
                    continue
                band_list.append(
                    FakeReplyConfigMapReply(
                        config_id=config.id,
                        reply_id=reply.id,
                    )
                )
            FakeReplyConfigMapReply.objects.bulk_create(band_list)
        print('DONE')