package com.xiaopeng.operation.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.api.model.operation.XpAdminOperationLog; import com.xiaopeng.common.core.utils.StringUtils; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.operation.mapper.XpAdminOperationLogMapper; import com.xiaopeng.operation.query.AdminOperationLogPageQuery; import com.xiaopeng.operation.service.IXpAdminOperationLogService; import org.springframework.stereotype.Service; import java.util.List; /** * 管理后台操作记录服务实现 */ @Service public class XpAdminOperationLogServiceImpl extends ServiceImpl implements IXpAdminOperationLogService { @Override public PageInfo pageList(AdminOperationLogPageQuery query) { PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); return page(pageInfo, buildQueryWrapper(query)); } @Override public List exportList(AdminOperationLogPageQuery query) { return list(buildQueryWrapper(query)); } private LambdaQueryWrapper buildQueryWrapper(AdminOperationLogPageQuery query) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if (query == null) { return wrapper.orderByDesc(XpAdminOperationLog::getOperationTime); } if (query.getBusinessType() != null) { wrapper.eq(XpAdminOperationLog::getBusinessType, query.getBusinessType()); } if (StringUtils.isNotEmpty(query.getBusinessTypeName())) { wrapper.like(XpAdminOperationLog::getBusinessTypeName, query.getBusinessTypeName()); } if (StringUtils.isNotEmpty(query.getOperatorName())) { wrapper.like(XpAdminOperationLog::getOperatorName, query.getOperatorName()); } if (StringUtils.isNotEmpty(query.getOperatorAccount())) { wrapper.like(XpAdminOperationLog::getOperatorAccount, query.getOperatorAccount()); } if (query.getOperationType() != null) { wrapper.eq(XpAdminOperationLog::getOperationType, query.getOperationType()); } if (query.getStartTime() != null && query.getEndTime() != null) { wrapper.between(XpAdminOperationLog::getOperationTime, query.getStartTime(), query.getEndTime()); } return wrapper.orderByDesc(XpAdminOperationLog::getOperationTime); } }