Przeglądaj źródła

feat: 实现修改模板接口

weijianghai 2 lat temu
rodzic
commit
c5049bfbdb

+ 27 - 13
src/main/java/com/nokia/hb/service/IndicatorTemplateService.java

@@ -1,6 +1,7 @@
 package com.nokia.hb.service;
 
 import com.nokia.common.R;
+import com.nokia.common.exception.BizException;
 import com.nokia.hb.dao.entity.IndicatorTemplate;
 import com.nokia.hb.dao.entity.IndicatorTemplateItem;
 import com.nokia.hb.dao.mapper.IndicatorTemplateItemMapper;
@@ -17,10 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.servlet.http.HttpSession;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -72,14 +70,7 @@ public class IndicatorTemplateService {
         indicatorTemplate.setTemplateName(dto.getTemplateName());
         indicatorTemplate.setUsername(username);
         indicatorTemplateMapper.insert(indicatorTemplate);
-        List<IndicatorTemplateItem> indicatorTemplateItems = new ArrayList<>();
-        dto.getIndicators().forEach(t -> {
-            IndicatorTemplateItem tt = new IndicatorTemplateItem();
-            tt.setTemplateId(indicatorTemplate.getId());
-            tt.setIndicatorId(t);
-            indicatorTemplateItems.add(tt);
-        });
-        indicatorTemplateItemMapper.insertBatch(indicatorTemplateItems);
+        insertIndicatorTemplateItem(dto.getIndicators(), indicatorTemplate.getId());
         return R.ok();
     }
 
@@ -97,6 +88,29 @@ public class IndicatorTemplateService {
 
     @Transactional(rollbackFor = Exception.class)
     public R<Object> updateTemplate(UpdateTemplateDto dto, HttpSession session) {
-        return null;
+        String username = SessionUtil.getUsername(session);
+        List<Long> ids = indicatorTemplateMapper.getIds(username, Collections.singleton(dto.getId()));
+        if (CollectionUtils.isEmpty(ids)) {
+            throw new BizException("禁止操作");
+        }
+        indicatorTemplateItemMapper.deleteBatch(ids);
+        IndicatorTemplate indicatorTemplate = new IndicatorTemplate();
+        indicatorTemplate.setTemplateName(dto.getTemplateName());
+        indicatorTemplate.setUsername(username);
+        indicatorTemplateMapper.updateById(indicatorTemplate);
+        insertIndicatorTemplateItem(dto.getIndicators(), dto.getId());
+        return R.ok();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void insertIndicatorTemplateItem(Set<Integer> indicators, Long id) {
+        List<IndicatorTemplateItem> indicatorTemplateItems = new ArrayList<>();
+        indicators.forEach(t -> {
+            IndicatorTemplateItem tt = new IndicatorTemplateItem();
+            tt.setTemplateId(id);
+            tt.setIndicatorId(t);
+            indicatorTemplateItems.add(tt);
+        });
+        indicatorTemplateItemMapper.insertBatch(indicatorTemplateItems);
     }
 }