package cn.com.ctop.common.module.service.impl;

import cn.com.ctop.common.module.service.IMessageTemplate;
import cn.com.ctop.common.module.utils.Check;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Service;

@Service
public class MessageTemplateImpl implements IMessageTemplate {


    /**
     * 同步素材失败
     *
     * @param projectName
     * @param accountId
     * @param accountName
     * @param materialName
     * @param reason
     * @return
     */
    @Override
    public String getMaterialSyncTemplate(String projectName, String accountId, String accountName, String materialName, String reason) {
        StringBuilder text = new StringBuilder();
        text.append("素材同步失败").append("<br/>")
                .append("您的项目：").append(projectName + "，").append("<br/>")
                .append("下的账户：").append(accountId + "，").append("<br/>")
                .append("授权名称为：" + accountName).append("<br/>")
                .append("同步素材失败。").append("<br/>")
                .append("素材名称为：").append(materialName).append("<br/>")
                .append("失败原因：").append(reason);
        return text.toString();
    }

    @Override
    public String getMaterialSyncSucessTemplate(String projectName, String accountId, String accountName, String materialName, String reason) {
        StringBuilder text = new StringBuilder();
        text.append("素材同步成功通知:").append("<br/>")
                .append("您的项目：").append(projectName + "，").append("<br/>")
                .append("下的快手账户：").append(accountId + "，").append("<br/>")
                .append("授权名称为：" + accountName).append("<br/>")
                .append("同步素材成功。").append("<br/>")
                .append("素材名称为：").append(materialName).append("<br/>")
                .append("请您前往查看。");
        return text.toString();
    }

    @Override
    public String getFeishuMaterialSyncTemplate(String projectName, Long accountId, String accountName, String materialName, String reason) {
        StringBuilder text = new StringBuilder();
        text.append("素材同步失败").append("\n\r")
                .append("您的项目：").append(projectName + "，").append("\n\r")
                .append("下的账户：").append(accountId + "，").append("\n\r")
                .append("授权名称为：" + accountName).append("\n\r")
                .append("同步素材失败。").append("\n\r")
                .append("素材名称为：").append(materialName).append("\n\r")
                .append("失败原因：").append(reason);
        return text.toString();
    }


    /**
     * 素材库素材驳回
     *
     * @param projectName
     * @param materialName
     * @param refuseReason
     * @return
     */
    @Override
    public String getMaterialRejectTemplate(String productName, String projectName, String materialName, String refuseReason) {
        StringBuilder text = new StringBuilder();
        text.append("素材驳回通知").append("<br/>")
                .append("您的产品：").append(productName + "，").append("<br/>")
                .append("下的项目：").append(projectName + "，").append("<br/>")
                .append("素材名称为：").append(materialName).append("<br/>")
                .append("已被驳回。").append("<br/>");
        if (!Check.isNull(refuseReason)) {
            text.append("驳回原因为：").append(refuseReason).append("</br>");

        }
        text.append("请您联系相关同学及时调整");
        return text.toString();
    }

    @Override
    public String getFeishuMaterialRejectTemplate(String projectName, String materialName, String refuseReason) {
        StringBuilder text = new StringBuilder();
        text.append("素材驳回通知").append("\n\r")
                .append("您的项目：").append(projectName + "，").append("\n\r")
                .append("素材名称为：").append(materialName).append("\n\r")
                .append("已被驳回。").append("\n\r");
        if (!Check.isNull(refuseReason)) {
            text.append("驳回原因为：").append(refuseReason).append("\n\r");

        }
        text.append("请您联系相关同学及时调整");
        return text.toString();
    }

    @Override
    public String getCreativeOverRunMessage(Long accountId, Integer creativeCount, String authName) {
        StringBuilder text = new StringBuilder();
        text.append("创意超限通知:").append("<br/>")

                .append("您的快手账户：").append(accountId + "，").append("<br/>")
                .append("授权名称为：" + authName).append("<br/>")
                .append("创意api创建超限。").append("<br/>")
                .append("当前创建数为：").append(creativeCount).append("<br/>")
                .append("如有疑问，请联系产品：吴永前。");
        return text.toString();
    }

    @Override
    public String getZombieCreativeRemindTemplate(JSONObject obj) {
        StringBuilder text = new StringBuilder();
        text.append("即将成为僵尸创意预警").append("<br/>")
                .append("您的项目：").append(obj.getString("projectName"))
                .append("（").append(obj.getString("projectId")).append("）").append("<br/>")
                .append("广告计划：").append(obj.getString("campaignName"))
                .append("（").append(obj.getString("campaignId")).append("）").append("<br/>")
                .append("广告组：").append(obj.getString("unitName"))
                .append("（").append(obj.getString("unitId")).append("）").append("<br/>")
                .append("广告创意：").append(obj.getString("creativeName"))
                .append("（").append(obj.getString("creativeId")).append("）").append("<br/>")
                .append("当前创意0消耗即将超过5天").append("<br/>")
                .append("即将变为僵尸创意").append("<br/>")
                .append("请您及时查看！");
        return text.toString();
    }

    @Override
    public String getZombieCreativeShutDownTemplate(JSONObject obj) {
        StringBuilder text = new StringBuilder();
        text.append("已经成为僵尸创意预警").append("<br/>")
                .append("您的项目：").append(obj.getString("projectName"))
                .append("（").append(obj.getString("projectId")).append("）").append("<br/>")
                .append("广告计划：").append(obj.getString("campaignName"))
                .append("（").append(obj.getString("campaignId")).append("）").append("<br/>")
                .append("广告组：").append(obj.getString("unitName"))
                .append("（").append(obj.getString("unitId")).append("）").append("<br/>")
                .append("广告创意：").append(obj.getString("creativeName"))
                .append("（").append(obj.getString("creativeId")).append("）").append("<br/>")
                .append("当前创意0消耗已经超过5天").append("<br/>")
                .append("已经变为僵尸创意，且已被关停").append("<br/>")
                .append("请您及时查看！");
        return text.toString();
    }

    @Override
    public String getAlarmCostMessage(JSONObject obj) {
        StringBuilder text = new StringBuilder();
        text.append(obj.getString("name")).append("预警").append("<br/>")
                .append("您的账户：").append(obj.getString("accountId"))
                .append("，授权名称为：").append(obj.getString("accountName")).append("<br/>")
                .append(obj.getString("depletion")).append("<br/>")
                .append(obj.getString("end"));
        return text.toString();
    }


    /**
     * @param projectName
     * @param advertiserId
     * @param unitId
     * @param unit_name
     * @return
     */

    @Override
    public String getKuaiShouBidTypeMessage(String projectName, Long advertiserId, Long unitId, String unit_name) {
        StringBuilder text = new StringBuilder();
        text.append("出价方式错误预警").append("<br/>")
                .append("您的项目：").append(projectName + "，").append("<br/>")
                .append("下的账户：").append(advertiserId + "，").append("<br/>")
                .append("广告组id为：").append(unitId).append("<br/>")
                .append("广告组名称为：").append(unit_name).append("<br/>")
                .append("出价方式设置错误。").append("<br/>")
                .append("系统已执行暂停此组操作，请您及时查看！");
        return text.toString();
    }

    @Override
    public String getKuaiShouBidMessage(String projectName, Long advertiserId, Long unitId, String unit_name) {
        StringBuilder text = new StringBuilder();
        text.append("出价过高预警").append("<br/>")
                .append("您的项目：").append(projectName + "，").append("<br/>")
                .append("下的账户：").append(advertiserId + "，").append("<br/>")
                .append("广告组id为：").append(unitId).append("<br/>")
                .append("广告组名称为：").append(unit_name).append("<br/>")
                .append("出价设置过高。").append("<br/>")
                .append("系统已执行暂停此组操作，请您及时查看！");
        return text.toString();
    }

    @Override
    public String getCopyCampaignMessage(String oldName, String state) {
        StringBuilder text = new StringBuilder();
        if ("2".equals(state)) {
            text.append("广告计划复制成功通知").append("<br/>")
                    .append("您复制的广告计划：").append(oldName).append("<br/>")
                    .append("现已复制完成，请知悉");
        } else {
            text.append("广告计划复制失败预警").append("<br/>")
                    .append("您复制的广告计划：").append(oldName).append("<br/>")
                    .append("复制失败，请您联系管理员或重新执行复制操作！").append("<br/>");
        }
        return text.toString();
    }


}
