package com.iailab.module.data.channel.http.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.common.util.object.BeanUtils; import com.iailab.framework.common.util.object.ConvertUtils; import com.iailab.module.data.channel.http.dao.HttpTagDao; import com.iailab.module.data.channel.http.entity.HttpApiEntity; import com.iailab.module.data.channel.http.entity.HttpTagEntity; import com.iailab.module.data.channel.http.service.HttpApiService; import com.iailab.module.data.channel.http.service.HttpTagService; import com.iailab.module.data.channel.http.vo.HttpTagPageReqVO; import com.iailab.module.data.channel.tag.vo.TagImportExcelVO; import com.iailab.module.data.channel.tag.vo.TagImportRespVO; import com.iailab.module.data.common.enums.CommonConstant; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.iailab.module.data.enums.ErrorCodeConstants.*; @Slf4j @Service public class HttpTagServiceImpl extends ServiceImpl<HttpTagDao, HttpTagEntity> implements HttpTagService { @Resource private HttpApiService httpApiService; @Resource private HttpTagDao httpTagDao; @Override public PageResult<HttpTagEntity> queryPage(HttpTagPageReqVO reqVO) { return httpTagDao.selectPage(reqVO); } @Override public HttpTagEntity info(String id) { return httpTagDao.selectById(id); } @Override public void add(HttpTagEntity httpTagEntity) { httpTagDao.insert(httpTagEntity); } @Override public void update(HttpTagEntity httpTagEntity) { httpTagDao.updateById(httpTagEntity); } @Override public void delete(String id) { httpTagDao.deleteById(id); } @Override public List<HttpTagEntity> list() { return httpTagDao.selectList(new QueryWrapper<>()); } @Override public List<HttpTagEntity> selectList(Map<String, Object> params) { String httpId = (String) params.get("httpId"); HttpApiEntity httpApiEntity = httpApiService.info(httpId); return httpTagDao.selectList(new QueryWrapper<HttpTagEntity>() .eq("http_api_code", httpApiEntity.getCode()) .orderByDesc("create_time")); } @Override public List<HttpTagEntity> getApiId(String apiId) { return httpTagDao.selectList(new QueryWrapper<HttpTagEntity>() .eq("api_id", apiId) .orderByDesc("create_time")); } @Override public List<HttpTagEntity> getInfoByTagNoAndSourceId(String sourceId, String tagName) { return httpTagDao.selectList(new QueryWrapper<HttpTagEntity>() .eq("api_id",sourceId) .eq("tag_name",tagName) ); } @Override public TagImportRespVO importHttpTagList(List<TagImportExcelVO> importTags, boolean isUpdateSupport, String apiId) { // 1.1 å‚æ•°æ ¡éªŒ if (CollUtil.isEmpty(importTags)) { throw exception(TAG_IMPORT_LIST_IS_EMPTY); } // 2. é历,é€ä¸ªåˆ›å»º or æ›´æ–° TagImportRespVO respVO = TagImportRespVO.builder().createTagNames(new ArrayList<>()) .updateTagNames(new ArrayList<>()).failureTagNames(new LinkedHashMap<>()).build(); importTags.forEach(importTag -> { // 判æ–如果ä¸å˜åœ¨ï¼Œå†è¿›è¡Œæ’å…¥ HttpTagEntity existTag = httpTagDao.selectOne(new QueryWrapper<HttpTagEntity>() .eq("api_id", apiId) .eq("tag_name",importTag.getTagName())); if (existTag == null) { HttpTagEntity httpTagEntity = ConvertUtils.sourceToTarget(importTag, HttpTagEntity.class); httpTagEntity.setId(UUID.randomUUID().toString()); httpTagEntity.setEnabled(CommonConstant.IS_ENABLE); httpTagEntity.setApiId(apiId); httpTagEntity.setCreateTime(new Date()); httpTagDao.insert(httpTagEntity); respVO.getCreateTagNames().add(httpTagEntity.getTagName()); return; } // 如果å˜åœ¨ï¼Œåˆ¤æ–是å¦å…许更新 if (!isUpdateSupport) { respVO.getFailureTagNames().put(importTag.getTagName(), TAG_EXISTS.getMsg()); return; } HttpTagEntity updateTag = BeanUtils.toBean(importTag, HttpTagEntity.class); updateTag.setId(existTag.getId()); baseMapper.updateById(updateTag); respVO.getUpdateTagNames().add(importTag.getTagName()); }); return respVO; } }