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<CaseModifyRecordMapper, CaseModifyRecord> 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<CaseModifyRecord> listCaseModifyRecords(CaseModifyRecord record) {
|
LambdaQueryWrapper<CaseModifyRecord> wrapper = buildQueryWrapper(record);
|
wrapper.orderByDesc(CaseModifyRecord::getModifyTime);
|
return this.list(wrapper);
|
}
|
|
@Override
|
public Page<CaseModifyRecord> pageQuery(Page<CaseModifyRecord> page, CaseModifyRecord record) {
|
LambdaQueryWrapper<CaseModifyRecord> wrapper = buildQueryWrapper(record);
|
wrapper.orderByDesc(CaseModifyRecord::getModifyTime);
|
return this.page(page, wrapper);
|
}
|
|
private LambdaQueryWrapper<CaseModifyRecord> buildQueryWrapper(CaseModifyRecord record) {
|
LambdaQueryWrapper<CaseModifyRecord> 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<CaseModifyRecordGroupDTO> listGroupByTimeAndUser(String caseId) {
|
return mapper.listGroupByTimeAndUser(caseId);
|
}
|
|
@Override
|
public List<CaseModifyRecord> listDetailByTimeAndUser(String caseId, String modifyTime, String modifyUser) {
|
return mapper.listDetailByTimeAndUser(caseId, modifyTime, modifyUser);
|
}
|
|
@Override
|
public int insertCaseModifyRecord(CaseModifyRecord caseModifyRecord) {
|
return mapper.insertCaseModifyRecord(caseModifyRecord);
|
}
|
}
|