package com.vci.ubcs.omd.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vci.ubcs.omd.constant.OmdCacheConstant; import com.vci.ubcs.omd.dto.OmdAttributeDTO; import com.vci.ubcs.omd.entity.OmdAttribute; import com.vci.ubcs.omd.mapper.OmdAttributeMapper; import com.vci.ubcs.omd.service.IOmdAttributeService; import com.vci.ubcs.omd.vo.OmdAttributeVO; import com.vci.ubcs.omd.wrapper.OmdAttributeWrapper; import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springframework.stereotype.Service; import javax.validation.constraints.NotEmpty; import java.util.ArrayList; import java.util.List; /** * Description: 元数据(属性)的服务 * * @author LiHang * @date 2023/4/3 */ @Service public class OmdAttributeServiceImpl extends ServiceImpl implements IOmdAttributeService { @Override public boolean deleteLogic(@NotEmpty List ids) { return false; } @Override public boolean changeStatus(@NotEmpty List ids, Integer status) { return false; } /** * 获取元数据详情 * * @param id 主键 * @return 元数据显示对象 */ @Override public OmdAttributeVO getAttributeDetail(Long id) { Func.requireNotNull(id,"主键不能为空"); return OmdAttributeWrapper.build().entityVO(baseMapper.selectByPrimaryKey(id)); } /** * 新增或修改 * * @param dto 页面传输对象 * @return 执行结果 */ @Override public boolean submit(OmdAttributeDTO dto) { LambdaQueryWrapper wrapper = Wrappers.query().lambda().eq(OmdAttribute::getKey, dto.getKey()); Long count = baseMapper.selectCount((Func.isEmpty(dto.getId())) ? wrapper : wrapper.notIn(OmdAttribute::getId, dto.getId())); if (count > 0L) { throw new ServiceException("属性名已存在!"); } dto.setIsDeleted(BladeConstant.DB_NOT_DELETED); OmdAttribute omdAttribute = BeanUtil.copy(dto, OmdAttribute.class); CacheUtil.clear(OmdCacheConstant.ATTR_CACHE); return saveOrUpdate(omdAttribute); } /** * 删除 * * @param ids 主键集合 * @return 执行结果 */ @Override public boolean removeAttrs(String ids) { List idList = Func.toLongList(ids); return !deleteLogic(idList) && removeByIds(idList); } /** * 查看应用范围 * * @param id 主键 * @return 查询已应用的业务类型名称 */ @Override public List applyRange(Long id) { return new ArrayList<>(); } }