import { ChangeDetectorRef, Component, OnInit } from '@angular/core';
import { BsModalService } from 'ngx-bootstrap/modal';
import { ModalService } from 'src/app/core/service/modal.service';
import { FramePageComponent } from 'src/app/routes/frame/core/page/frame.page';

@Component({
  selector: 'app-data-push',
  templateUrl: './data-push.component.html',
  styleUrls: ['./data-push.component.scss']
})
export class DataPushComponent extends FramePageComponent implements OnInit {

  query: any;
  agentArr = [];

  constructor(private modalService: BsModalService, private cdr : ChangeDetectorRef) { 
    super(modalService);
  }

  ngOnInit(): void {
    this.query = {};
    this.requestAgent();
  }

  //所有的考点
  requestAgent() {
    this.AjaxService.requestArray('conf/agent/all.htm',{}, (array) => {
      this.agentArr = array;
    });
  }

  requestData() {
    this.pager.reload(this.query);
  }

  pushDataToScore() {
    if(!this.query.agent_id) {
      this.MsgService.errorToastr('请选择考点!');
      return;
    }
    if(!this.query.exam_batch) {
      this.MsgService.errorToastr('请选择批次！');
      return;
    }
    this.MsgService.confirmAlert('【推送数据】推送前，请在评分系统中新建相应的学校，并保持学校代码一致。艺考系统推送批次代码的规则为艺考系统的考点代码+批次代码，如：艺考系统的考点代码为100，推送初试（初试代码1，复试代码2，三试代码3）的数据，则为推送的批次代码为1001。 推送的数据包括：基础数据、考生数据和编排数据。确定要将该考点下所有的数据推送到评分系统吗？', () => {
      this.AjaxService.requestEntity('data/push/to/judge/score.htm', this.query, (entity) => {
        this.AjaxService.request('data/push/get/result.htm', {req_id: entity, agent_id: this.query.agent_id, exam_batch: this.query.exam_batch}, (ajax) => {
          ModalService.showThreadWindow(this.bsService, ajax.entity, {threadTitle: '数据正在执行!'});
        });
      });
    });
  }

  pushDataToOnline() {
    if(!this.query.agent_id) {
      this.MsgService.errorToastr('请选择考点!');
      return;
    }
    if(!this.query.exam_batch) {
      this.MsgService.errorToastr('请选择批次！');
      return;
    }
    this.MsgService.confirmAlert('【推送数据】推送前，请在【在线考试系统】中新建相应的学校，并保持学校代码一致。艺考系统推送批次代码的规则为艺考系统的考点代码+批次代码，如：艺考系统的考点代码为100，推送初试（初试代码1，复试代码2，三试代码3）的数据，则推送的批次代码为1001。推送的数据包括：基础数据、考生数据和编排数据。确定要将该考点下所有的数据推送到在线考试系统吗？', () => {
      this.AjaxService.requestEntity('data/push/to/online/exam.htm', this.query, (entity) => {
        this.AjaxService.request('data/push/get/online/result.htm', {req_id: entity, agent_id: this.query.agent_id, exam_batch: this.query.exam_batch}, (ajax) => {
          ModalService.showThreadWindow(this.bsService, ajax.entity, {threadTitle: '数据正在执行!'});
        });
      });
    });
  }

}
