package cn.axzo.msg.center.notices.client.task.compensation;

import cn.axzo.msg.center.notices.client.task.LoggerJobHandler;
import cn.azxo.framework.common.model.JobPageRequest;
import cn.azxo.framework.common.utils.LogUtil;
import com.alibaba.fastjson.JSON;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 发送短信异常补偿
 *
 * @author zhaoyong_sh
 * @see SendMessageExceptionCompensation
 * @since 2021-05-19 15:44
 */
@Slf4j
@Component
public class SendMessageExceptionCompensation extends LoggerJobHandler {

    @Override
    @XxlJob(value = "sendMessageExceptionCompensation")
    public ReturnT<String> execute(String param) {
        return jobLoggerTemplate.execute(() -> {
            log.info("SendMessageExceptionCompensation.execute task Start ......");
            try {
                JobPageRequest request = jobParamResolver.resolver(param);
                log.info("SendMessageExceptionCompensation.execute task request is {}", JSON.toJSONString(request));
                taskService.aliYunProcessSendMessageException(request);
            } catch (Exception e) {
                LogUtil.error("SendMessageExceptionCompensation.execute is error", e);
                return ReturnT.FAIL;
            }
            log.info("SendMessageExceptionCompensation.execute task End ......");
            return ReturnT.SUCCESS;
        });
    }

}
