package cn.huge.module.cases.service.impl; import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.IdUtils; import cn.huge.module.client.api.impl.UtilsClientImpl; import cn.huge.module.cases.dao.mapper.CaseModifyRecordMapper; import cn.huge.module.cases.domain.dto.CaseModifyRecordGroupDTO; import cn.huge.module.cases.domain.po.CaseModifyRecord; import cn.huge.module.cases.service.ICaseModifyRecordService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.util.ArrayList; /** * 修改记录表 服务实现类 * * @author trae * @since 2024-02-14 */ @Service @Transactional(rollbackFor = Exception.class) public class CaseModifyRecordServiceImpl extends ServiceImpl implements ICaseModifyRecordService { @Autowired private CaseModifyRecordMapper mapper; @Autowired private UtilsClientImpl utilsClient; @Override public void updateCaseModifyRecord(CaseModifyRecord entity) { this.updateById(entity); } @Override public void deleteCaseModifyRecord(String id) { this.removeById(id); } @Override public List listCaseModifyRecords(CaseModifyRecord record) { LambdaQueryWrapper wrapper = buildQueryWrapper(record); wrapper.orderByDesc(CaseModifyRecord::getModifyTime); return this.list(wrapper); } @Override public Page pageQuery(Page page, CaseModifyRecord record) { LambdaQueryWrapper wrapper = buildQueryWrapper(record); wrapper.orderByDesc(CaseModifyRecord::getModifyTime); return this.page(page, wrapper); } private LambdaQueryWrapper buildQueryWrapper(CaseModifyRecord record) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if (record != null) { // 根据修改类型查询 if (StringUtils.isNotBlank(record.getModifyType())) { wrapper.eq(CaseModifyRecord::getModifyType, record.getModifyType()); } // 根据修改属性查询 if (StringUtils.isNotBlank(record.getModifyItem())) { wrapper.eq(CaseModifyRecord::getModifyItem, record.getModifyItem()); } // 根据修改人查询 if (StringUtils.isNotBlank(record.getModifyUser())) { wrapper.eq(CaseModifyRecord::getModifyUser, record.getModifyUser()); } // 根据修改时间查询 if (record.getModifyTime() != null) { wrapper.eq(CaseModifyRecord::getModifyTime, record.getModifyTime()); } } return wrapper; } @Override public void saveCaseModifyRecord(CaseModifyRecord caseModifyRecord) { Date nowDate = DateUtils.getNowDate(); caseModifyRecord.setModifyTime(DateUtils.dateToString2(nowDate)); this.saveOrUpdate(caseModifyRecord); } @Override public List listGroupByTimeAndUser(String caseId) { return mapper.listGroupByTimeAndUser(caseId); } @Override public List listDetailByTimeAndUser(String caseId, String modifyTime, String modifyUser) { return mapper.listDetailByTimeAndUser(caseId, modifyTime, modifyUser); } @Override public int insertCaseModifyRecord(CaseModifyRecord caseModifyRecord) { return mapper.insertCaseModifyRecord(caseModifyRecord); } }