package com.gic.haoban.manage.service.service.out.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.Page;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.QywxErrorLogDTO;
import com.gic.haoban.manage.api.dto.qdto.QywxErrorLogListQDTO;
import com.gic.haoban.manage.api.service.QywxErrorLogApiService;
import com.gic.haoban.manage.service.entity.TabQywxErrorLog;
import com.gic.haoban.manage.service.pojo.bo.TabQywxErrorLogBO;
import com.gic.haoban.manage.service.service.QywxErrorLogService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;

/**
 * 企微报错日志(TabQywxErrorLog)表服务实现类
 *
 * @author mozhu
 * @date 2022-04-18 15:28:02
 */
@Service
public class QywxErrorLogApiServiceImpl implements QywxErrorLogApiService {
    @Autowired
    private QywxErrorLogService tabQywxErrorLogService;

    @Override
    public void insertQywxErrorLog(String param) {
        QywxErrorLogDTO qywxErrorLogDTO = JSON.parseObject(param, QywxErrorLogDTO.class);
        tabQywxErrorLogService.insert(EntityUtil.changeEntityByOrika(TabQywxErrorLogBO.class, qywxErrorLogDTO));
    }

    @Override
    public Page<QywxErrorLogDTO> queryListByPage(QywxErrorLogListQDTO qywxErrorLogListQDTO) {
        qywxErrorLogListQDTO.setStartDate(DateUtil.format(DateUtil.beginOfDay(DateUtil.parse(qywxErrorLogListQDTO.getStartDate())), DatePattern.NORM_DATETIME_PATTERN));
        qywxErrorLogListQDTO.setEndDate(DateUtil.format(DateUtil.endOfDay(DateUtil.parse(qywxErrorLogListQDTO.getEndDate())), DatePattern.NORM_DATETIME_PATTERN));
        PageHelper.startPage(qywxErrorLogListQDTO.getPageNum(), qywxErrorLogListQDTO.getPageSize());
        List<TabQywxErrorLog> list = this.tabQywxErrorLogService.queryListByPage(qywxErrorLogListQDTO);
        return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(list), QywxErrorLogDTO.class);
    }
}
