package com.ycl.service.unlawful.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.dto.statistics.CategoryDto; import com.ycl.dto.statistics.StatusDto; import com.ycl.dto.statistics.TimeDto; import com.ycl.dto.statistics.UnlawfulDto; import com.ycl.mapper.unlawful.UnlawfulMapper; import com.ycl.service.unlawful.UnlawfulService; import com.ycl.utils.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.RoundingMode; import java.text.NumberFormat; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; @Service public class UnlawfulServiceImpl implements UnlawfulService { @Resource private UnlawfulMapper unlawfuldao; /** * 按类型 */ @Override public IPage getUnlawfulByType(Integer currentPage, Integer pageSize, String startTime, String endTime) { Page page = new Page<>(currentPage, pageSize); Double total = unlawfuldao.getTotal(startTime, endTime, true, false, false).doubleValue(); IPage page1 = unlawfuldao.getDataByType(page, startTime, endTime); return getUnlawfulDtoIPage(total, page1); } private IPage getUnlawfulDtoIPage(Double total, IPage page1) { page1.getRecords().forEach(dto -> { dto.setRatio(StringUtils.doubleTwo((double) dto.getCount() / total)); dto.setRegisterRatio(StringUtils.doubleTwo((double) dto.getRegister() / (double) dto.getCount())); dto.setCheckedRatio(StringUtils.doubleTwo((double) dto.getChecked() / (double) dto.getCount())); dto.setAccuracyRatio(StringUtils.doubleTwo(1.0 - (double) dto.getRelearn() / (double) dto.getCount())); }); return page1; } /** * 按区域 */ @Override public IPage getUnlawfulByStreet(Integer currentPage, Integer pageSize, String startTime, String endTime) { Page page = new Page<>(currentPage, pageSize); Double total = unlawfuldao.getTotal(startTime, endTime, false, true, false).doubleValue(); IPage page1 = unlawfuldao.getDataByStreet(page, startTime, endTime); return getUnlawfulDtoIPage(total, page1); } @Override public IPage getUnlawfulByTime(Integer currentPage, Integer pageSize, String startTime, String endTime) { Page page = new Page<>(currentPage, pageSize); Double total = unlawfuldao.getTotal(startTime, endTime, false, false, false).doubleValue(); IPage page1 = unlawfuldao.getDataByTime(page, startTime, endTime); return getUnlawfulDtoIPage(total, page1); } @Override public IPage getUnlawfulByPoint(Integer currentPage, Integer pageSize, String startTime, String endTime) { Page page = new Page<>(currentPage, pageSize); Double total = unlawfuldao.getTotal(startTime, endTime, false, false, true).doubleValue(); IPage page1 = unlawfuldao.getDataByPoint(page, startTime, endTime); return getUnlawfulDtoIPage(total, page1); } }