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; /** *

* 后台操作日志表 服务实现类 *

* * @author moral * @since 2021-04-12 */ @Service public class ManageLogServiceImpl extends ServiceImpl 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 types = form.getType(); Date startTime = form.getStartTime(); Date endTime = form.getEndTime(); //构造查询条件 Page page = new Page<>(pageCount, size); NullFilterWrapper 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 resultPage = manageLogMapper.selectPage(page, queryWrapper); List manageLogs = resultPage.getRecords(); //根据字典表将Type转化为汉字 QueryWrapper dataWrapper = new QueryWrapper<>(); dataWrapper.eq("dict_type_id",2); List sysDictData = sysDictDataMapper.selectList(dataWrapper); Map 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; } }