package com.moral.api.service.impl; 
 | 
  
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
 | 
import com.moral.api.config.mybatis.wrapper.NullFilterWrapper; 
 | 
import com.moral.api.entity.ManageLog; 
 | 
import com.moral.api.entity.SysDictData; 
 | 
import com.moral.api.mapper.ManageLogMapper; 
 | 
import com.moral.api.mapper.SysDictDataMapper; 
 | 
import com.moral.api.mapper.SysDictTypeMapper; 
 | 
import com.moral.api.pojo.dto.manageLog.ManageLogQueryDTO; 
 | 
import com.moral.api.pojo.form.manageLog.ManageLogQueryForm; 
 | 
import com.moral.api.service.ManageLogService; 
 | 
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
 | 
import com.moral.constant.Constants; 
 | 
import com.moral.constant.ResponseCodeEnum; 
 | 
import com.moral.util.ConvertUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.util.ObjectUtils; 
 | 
  
 | 
import java.util.Date; 
 | 
import java.util.HashMap; 
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
  
 | 
/** 
 | 
 * <p> 
 | 
 * 后台操作日志表 服务实现类 
 | 
 * </p> 
 | 
 * 
 | 
 * @author moral 
 | 
 * @since 2021-04-12 
 | 
 */ 
 | 
@Service 
 | 
public class ManageLogServiceImpl extends ServiceImpl<ManageLogMapper, ManageLog> implements ManageLogService { 
 | 
  
 | 
    @Autowired 
 | 
    ManageLogMapper manageLogMapper; 
 | 
    @Autowired 
 | 
    SysDictTypeMapper sysDictTypeMapper; 
 | 
    @Autowired 
 | 
    SysDictDataMapper sysDictDataMapper; 
 | 
  
 | 
    @Override 
 | 
    public ManageLogQueryDTO queryManageLog(ManageLogQueryForm form) { 
 | 
        ManageLogQueryDTO dto = new ManageLogQueryDTO(); 
 | 
        Integer pageCount = form.getPage(); 
 | 
        Integer size = form.getSize(); 
 | 
        String order = form.getOrder(); 
 | 
        String orderType = form.getOrderType(); 
 | 
        String account = form.getAccount(); 
 | 
        String userName = form.getUserName(); 
 | 
        String ip = form.getIp(); 
 | 
        List<String> types = form.getType(); 
 | 
        Date startTime = form.getStartTime(); 
 | 
        Date endTime = form.getEndTime(); 
 | 
  
 | 
        //构造查询条件 
 | 
        Page<ManageLog> page = new Page<>(pageCount, size); 
 | 
        NullFilterWrapper<ManageLog> queryWrapper = new NullFilterWrapper<>(); 
 | 
  
 | 
        queryWrapper.like("account",account); 
 | 
        queryWrapper.like("user_name",userName); 
 | 
        queryWrapper.eq("ip",ip); 
 | 
        queryWrapper.in("type",types); 
 | 
        queryWrapper.between("create_time",startTime,endTime); 
 | 
        if (!ObjectUtils.isEmpty(order)) {//排序条件 
 | 
            if (!ObjectUtils.isEmpty(orderType)) { 
 | 
                if (orderType.equals(Constants.ORDER_ASC)) 
 | 
                    queryWrapper.orderByAsc(ConvertUtils.toLine(order)); 
 | 
                else 
 | 
                    queryWrapper.orderByDesc(ConvertUtils.toLine(order)); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        //查询结果 
 | 
        Page<ManageLog> resultPage = manageLogMapper.selectPage(page, queryWrapper); 
 | 
        List<ManageLog> manageLogs = resultPage.getRecords(); 
 | 
  
 | 
        //根据字典表将Type转化为汉字 
 | 
        QueryWrapper<SysDictData> dataWrapper = new QueryWrapper<>(); 
 | 
        dataWrapper.eq("dict_type_id",2); 
 | 
        List<SysDictData> sysDictData = sysDictDataMapper.selectList(dataWrapper); 
 | 
        Map<String,String> map = new HashMap<>(); 
 | 
        for (SysDictData data : sysDictData) { 
 | 
            map.put(data.getDataKey(),data.getDataValue()); 
 | 
        } 
 | 
  
 | 
        for (ManageLog manageLog : manageLogs) { 
 | 
            String type = manageLog.getType(); 
 | 
            String typeValue = map.get(type); 
 | 
            manageLog.setType(typeValue); 
 | 
        } 
 | 
  
 | 
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); 
 | 
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); 
 | 
        dto.setCurrent(page.getCurrent()); 
 | 
        dto.setPage(page.getPages()); 
 | 
        dto.setSize(page.getSize()); 
 | 
        dto.setTotal(page.getTotal()); 
 | 
        dto.setManageLogs(manageLogs); 
 | 
        return dto; 
 | 
    } 
 | 
} 
 |