|
|
@@ -0,0 +1,138 @@
|
|
|
+package com.inspur.smsb.orchestration.service.program;
|
|
|
+
|
|
|
+import com.alibaba.cola.dto.PageResponse;
|
|
|
+import com.alibaba.cola.dto.SingleResponse;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.inspur.smsb.orchestration.api.program.IItemTemplateService;
|
|
|
+import com.inspur.smsb.orchestration.consts.ComEnum;
|
|
|
+import com.inspur.smsb.orchestration.consts.Constants;
|
|
|
+import com.inspur.smsb.orchestration.consts.ItemConstant;
|
|
|
+import com.inspur.smsb.orchestration.database.dataobject.program.ItemTemplate;
|
|
|
+import com.inspur.smsb.orchestration.database.mapper.program.ItemTemplateMapper;
|
|
|
+import com.inspur.smsb.orchestration.dto.item.ItemTemplateDTO;
|
|
|
+import io.minio.GetObjectArgs;
|
|
|
+import io.minio.MinioClient;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.dubbo.config.annotation.DubboService;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.io.BufferedReader;
|
|
|
+import java.io.InputStream;
|
|
|
+import java.io.InputStreamReader;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author zhanghongyan
|
|
|
+ * @since 2021-11-09
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@DubboService(interfaceClass = IItemTemplateService.class)
|
|
|
+public class ItemTemplateServiceImpl extends ServiceImpl<ItemTemplateMapper, ItemTemplate> implements IItemTemplateService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private MinioClient minioClient;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageResponse findListByPage(ItemTemplateDTO itemTemplateDTO, Map<String, String> map) {
|
|
|
+ Page<ItemTemplate> page = new Page(itemTemplateDTO.getCurrentPage(), itemTemplateDTO.getPageCount());
|
|
|
+ LambdaQueryWrapper<ItemTemplate> lambdaQueryWrapper = Wrappers.lambdaQuery(ItemTemplate.class);
|
|
|
+ lambdaQueryWrapper.eq(itemTemplateDTO.getId() != null, ItemTemplate::getId, itemTemplateDTO.getId())
|
|
|
+ .eq(StringUtils.isNotBlank(itemTemplateDTO.getItemConfigName()), ItemTemplate::getItemConfigName, itemTemplateDTO.getItemConfigName())
|
|
|
+ .eq(itemTemplateDTO.getInfoType() != null, ItemTemplate::getInfoType, itemTemplateDTO.getInfoType())
|
|
|
+ .eq(itemTemplateDTO.getTemplateType() != null, ItemTemplate::getTemplateType, itemTemplateDTO.getTemplateType())
|
|
|
+ .like(StringUtils.isNotBlank(itemTemplateDTO.getName()), ItemTemplate::getName, itemTemplateDTO.getName())
|
|
|
+ .eq(StringUtils.isNotBlank(itemTemplateDTO.getResolutionRatio()), ItemTemplate::getResolutionRatio, itemTemplateDTO.getResolutionRatio())
|
|
|
+ .orderByDesc(ItemTemplate::getUpdateTime)
|
|
|
+ .orderByAsc(ItemTemplate::getStatus);
|
|
|
+
|
|
|
+ if (Objects.nonNull(itemTemplateDTO.getTenant()) && StringUtils.isNotBlank(itemTemplateDTO.getUser())) {
|
|
|
+ lambdaQueryWrapper.and(i -> i
|
|
|
+ .eq(ItemTemplate::getStatus, Constants.FlowStateEnum.APPROVE.value())
|
|
|
+ .eq(ItemTemplate::getTenant, itemTemplateDTO.getTenant())
|
|
|
+ .or()
|
|
|
+ .eq(ItemTemplate::getCreateBy, itemTemplateDTO.getUser())
|
|
|
+ .in(ItemTemplate::getStatus, Constants.FlowStateEnum.DRAFT.value(), Constants.FlowStateEnum.SUBMIT.value()));
|
|
|
+ } else {
|
|
|
+ lambdaQueryWrapper
|
|
|
+ .likeRight(Objects.nonNull(itemTemplateDTO.getOrg()), ItemTemplate::getOrg, itemTemplateDTO.getOrg())
|
|
|
+ .eq(Objects.nonNull(itemTemplateDTO.getTenant()), ItemTemplate::getTenant, itemTemplateDTO.getTenant())
|
|
|
+ .eq(Objects.nonNull(itemTemplateDTO.getUser()), ItemTemplate::getCreateBy, itemTemplateDTO.getUser())
|
|
|
+ .in(!CollectionUtils.isEmpty(itemTemplateDTO.getStatusList()), ItemTemplate::getStatus, itemTemplateDTO.getStatusList());
|
|
|
+ }
|
|
|
+ log.info("SQL:{}", lambdaQueryWrapper.getTargetSql());
|
|
|
+ IPage<ItemTemplate> iPage = baseMapper.selectPage(page, lambdaQueryWrapper);
|
|
|
+ iPage.getRecords().forEach(n -> n.setUserName(map.get(n.getCreateBy())));
|
|
|
+
|
|
|
+ return PageResponse.of(iPage.getRecords(), (int) iPage.getTotal(), itemTemplateDTO.getCurrentPage(), itemTemplateDTO.getPageCount());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SingleResponse<ItemTemplateDTO> queryById(Long id) {
|
|
|
+ ItemTemplateDTO itemTemplateDTO = new ItemTemplateDTO();
|
|
|
+ try {
|
|
|
+ ItemTemplate itemTemplate = this.getById(id);
|
|
|
+ if (itemTemplate == null) {
|
|
|
+ return SingleResponse.of(itemTemplateDTO);
|
|
|
+ }
|
|
|
+ if (itemTemplate.getItemConfigName() != null) {
|
|
|
+ InputStream stream = minioClient.getObject(
|
|
|
+ GetObjectArgs.builder().bucket(ItemConstant.ITEM_FILE_JSON).object(itemTemplate.getItemConfigName()).build());
|
|
|
+ String itemJsonStr = new BufferedReader(new InputStreamReader(stream))
|
|
|
+ .lines().collect(Collectors.joining(System.lineSeparator()));
|
|
|
+ itemTemplateDTO.setItemJsonStr(itemJsonStr);
|
|
|
+ }
|
|
|
+ itemTemplateDTO.setId(itemTemplate.getId());
|
|
|
+ itemTemplateDTO.setOriginId(itemTemplate.getOriginId());
|
|
|
+ itemTemplateDTO.setName(itemTemplate.getName());
|
|
|
+ itemTemplateDTO.setResolutionRatio(itemTemplate.getResolutionRatio());
|
|
|
+ itemTemplateDTO.setItemConfigName(itemTemplate.getItemConfigName());
|
|
|
+ itemTemplateDTO.setImg(itemTemplate.getImg());
|
|
|
+ itemTemplateDTO.setCreateBy(itemTemplate.getCreateBy());
|
|
|
+ itemTemplateDTO.setTenant(itemTemplate.getTenant());
|
|
|
+ itemTemplateDTO.setOrg(itemTemplate.getOrg());
|
|
|
+ itemTemplateDTO.setInfoType(itemTemplate.getInfoType());
|
|
|
+ itemTemplateDTO.setDuration(itemTemplate.getDuration());
|
|
|
+ } catch (Exception e) {
|
|
|
+ return SingleResponse.buildFailure(ComEnum.BODY_NOT_MATCH.getResultCode(), ComEnum.BODY_NOT_MATCH.getResultMsg());
|
|
|
+ }
|
|
|
+ return SingleResponse.of(itemTemplateDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SingleResponse saveItemTemplate(ItemTemplateDTO itemTemplateDTO) {
|
|
|
+ ItemTemplate itemTemplate = new ItemTemplate();
|
|
|
+ itemTemplate.setCreateBy(itemTemplateDTO.getCreateBy());
|
|
|
+ itemTemplate.setBuckets(ItemConstant.ITEM_FILE_JSON);
|
|
|
+ itemTemplate.setResolutionRatio(itemTemplateDTO.getResolutionRatio());
|
|
|
+ itemTemplate.setName(itemTemplateDTO.getName());
|
|
|
+ itemTemplate.setStatus(Constants.FlowStateEnum.SUBMIT.value());
|
|
|
+ itemTemplate.setOrg(itemTemplateDTO.getOrg());
|
|
|
+ itemTemplate.setTenant(itemTemplateDTO.getTenant());
|
|
|
+ itemTemplate.setInfoType(itemTemplateDTO.getInfoType());
|
|
|
+ itemTemplate.setImg(itemTemplateDTO.getImg());
|
|
|
+ itemTemplate.setItemConfigName(itemTemplateDTO.getItemConfigName());
|
|
|
+ itemTemplate.setResolutionRatio(itemTemplateDTO.getResolutionRatio());
|
|
|
+ itemTemplate.setName(itemTemplateDTO.getName());
|
|
|
+ itemTemplate.setDuration(itemTemplateDTO.getDuration());
|
|
|
+ itemTemplate.setOriginId(itemTemplateDTO.getOriginId());
|
|
|
+ baseMapper.insert(itemTemplate);
|
|
|
+ Long itemId = itemTemplate.getId();
|
|
|
+
|
|
|
+ return SingleResponse.of(itemId);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SingleResponse deleteById(Long id) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|