package cn.huge.module.kind.service; import cn.huge.base.common.exception.ServiceException; 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.constant.BaseConsts; import cn.huge.module.kind.dao.mapper.SyCauseMapper; import cn.huge.module.kind.domain.dto.CauseSelectJSDTO; import cn.huge.module.kind.domain.po.SyCause; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Maps; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * @title: 纠纷类型表业务逻辑处理 * @Description 纠纷类型表业务逻辑处理 * @company hugeinfo * @author liyj * @Time 2024-09-09 14:31:21 * @version 1.0.0 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class SyCauseService extends ServiceImpl{ @Autowired private SyCauseMapper mapper; @Autowired private UtilsClientImpl utilsClient; /** * 更新对象 * @param entity 对象 */ public void updateSyCause(SyCause entity){ try{ mapper.updateSyCause(entity); }catch (Exception e){ log.error("[SyCauseService.updateSyCause]调用失败,异常信息:"+e, e); throw new ServiceException("SyCauseService.updateSyCause", e); } } /** * 条件更新对象 * @param entity 对象 * @param terms 条件 */ public void updateSyCauseTerms(SyCause entity, Map terms){ try{ mapper.updateSyCauseTerms(entity, terms); }catch (Exception e){ log.error("[SyCauseService.updateSyCauseTerms]调用失败,异常信息:"+e, e); throw new ServiceException("SyCauseService.updateSyCauseTerms", e); } } /** * 根据编号物理删除 * @param id 查询条件集合 */ public void deleteSyCause(String id){ try{ mapper.deleteSyCause(id); }catch (Exception e){ log.error("[SyCauseService.deleteSyCause]调用失败,异常信息:"+e, e); throw new ServiceException("SyCauseService.deleteSyCause", e); } } /** * 按条件查询 * @param terms 条件 * @return List */ public List listTerms(Map terms){ return mapper.listTerms(terms); } /** * 按条件统计 * @param terms 条件 * @return long */ public long countTerms(Map terms){ return mapper.countTerms(terms); } /** * 按条件分页查询 * @param page 分页对象 * @param terms 条件 * @return Page */ public Page pageQuery(PageRequest page, Map terms){ long total = mapper.countTerms(terms); List content = mapper.pageTerms(page, terms); return new PageImpl(content, page, total); } /** * 新增或更新对象 * @param syCause 实体对象 */ public void saveSyCause(SyCause syCause){ try{ Date nowDate = DateUtils.getNowDate(); // 判断是否新增 if (IdUtils.checkNewId(syCause.getId())){ syCause.setId(utilsClient.getNewTimeId()); syCause.setCreateTime(nowDate); } syCause.setUpdateTime(nowDate); this.saveOrUpdate(syCause); }catch (Exception e){ log.error("[SyCauseService.saveSyCause]调用失败,异常信息:"+e, e); throw new ServiceException("SyCauseService.saveSyCause", e); } } /** * 查询js树形结构 * @return */ public List listSelectJS(){ try{ List causeSelectJSDTOList = mapper.listSelectJS(); return this.createTree(causeSelectJSDTOList, null); }catch (Exception e){ log.error("[SyCauseService.listSelectJS]调用失败,异常信息:"+e, e); throw new ServiceException("SyCauseService.listSelectJS", e); } } /** * 创建某一级树形结构 * @param allList 所有集合 * @param firstId 某一级编号 * @return List */ public List createTree(List allList, String firstId) { List firstMapList = new ArrayList<>(); for (CauseSelectJSDTO causeSelectJSDTO : allList) { for (CauseSelectJSDTO currentParam : allList) { if (currentParam.getValue().equals(causeSelectJSDTO.getParentId())) { addToMBean(currentParam, causeSelectJSDTO); break; } } } //取第一级节点 for (CauseSelectJSDTO causeSelectJSDTO : allList) { if (StringUtils.isNotEmpty(firstId)) { if (firstId.equals(causeSelectJSDTO.getValue())) { firstMapList.add(causeSelectJSDTO); } } else { if (BaseConsts.ROOT.equals(causeSelectJSDTO.getParentId()) || StringUtils.isEmpty(causeSelectJSDTO.getParentId())) { firstMapList.add(causeSelectJSDTO); } } } return firstMapList; } /** * 获取子级数组 * @param target 目标 * @param child 子级 */ public void addToMBean(CauseSelectJSDTO target, CauseSelectJSDTO child) { List childListObj = target.getChildren(); List childList = null; if (CollectionUtils.isEmpty(childListObj)) { childList = new ArrayList(); target.setChildren(childList); } else { childList = childListObj; } childList.add(child); } /** * 根据id获取父级案件类型对象 * @return */ public SyCause getParentCaseTypeById(String id){ try{ SyCause syCause = mapper.getParentCaseTypeById(id); return syCause; }catch (Exception e){ log.error("[SyCauseService.getParentCaseTypeById]调用失败,异常信息:"+e, e); throw new ServiceException("SyCauseService.getParentCaseTypeById", e); } } /** * 根据名称获取案件类型对象 * @return */ public SyCause getCaseTypeByName(String name){ try{ SyCause syCause = mapper.getCaseTypeByName(name); return syCause; }catch (Exception e){ log.error("[SyCauseService.getCaseTypeByName]调用失败,异常信息:"+e, e); throw new ServiceException("SyCauseService.getCaseTypeByName", e); } } /** * 根据名称获取案件类型对象 * @return */ public SyCause getCaseTypeById(String id){ try{ SyCause syCause = mapper.getCaseTypeById(id); return syCause; }catch (Exception e){ log.error("[SyCauseService.getCaseTypeByName]调用失败,异常信息:"+e, e); throw new ServiceException("SyCauseService.getCaseTypeByName", e); } } }