From 8c1c003c60d2f27b3c55e248451caeec7f2b5631 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 28 一月 2021 19:06:28 +0800
Subject: [PATCH] 活动管理界面完善

---
 service-daylucky/src/main/java/com/ks/daylucky/service/impl/remote/ActivityTagServiceImpl.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/service-daylucky/src/main/java/com/ks/daylucky/service/impl/remote/ActivityTagServiceImpl.java b/service-daylucky/src/main/java/com/ks/daylucky/service/impl/remote/ActivityTagServiceImpl.java
index 3eb4cc2..68a18d8 100644
--- a/service-daylucky/src/main/java/com/ks/daylucky/service/impl/remote/ActivityTagServiceImpl.java
+++ b/service-daylucky/src/main/java/com/ks/daylucky/service/impl/remote/ActivityTagServiceImpl.java
@@ -5,12 +5,15 @@
 import com.ks.daylucky.pojo.DO.ActivityTag;
 import com.ks.daylucky.service.ActivityTagService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.Date;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 @Service
 public class ActivityTagServiceImpl implements ActivityTagService {
@@ -29,6 +32,54 @@
         activityTagMapper.insertSelective(tag);
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void setTags(Long activityId, List<ActivityTag> tags) {
+        if (tags == null) {
+            return;
+        }
+
+        List<ActivityTag> oList = getTagList(activityId);
+
+        //鍒犻櫎TAG
+        if (tags.size() == 0) {
+            for (ActivityTag tag : oList) {
+                activityTagMapper.deleteByPrimaryKey(tag.getId());
+            }
+            return;
+        }
+
+        //鑾峰彇鑰両D
+        Set<Long> ids = new HashSet<>();
+        for (ActivityTag tag : oList) {
+            ids.add(tag.getId());
+        }
+
+        for (int i = 0; i < tags.size(); i++) {
+            ActivityTag tag = tags.get(i);
+            tag.setWeight(tags.size() - i);
+            if (tag.getId() == null) {
+                //鏂板
+                tag.setCreateTime(new Date());
+                tag.setActivityId(activityId);
+                addActivityTag(tag);
+            } else {
+                ids.remove(tag.getId());
+                //鏇存柊鏉冮噸
+                ActivityTag update = new ActivityTag();
+                update.setId(tag.getId());
+                update.setWeight(tag.getWeight());
+                update(update);
+            }
+        }
+
+        //鍒犻櫎闇�瑕佸垹闄ょ殑鏍囩
+        for (Long id : ids) {
+            delete(id);
+        }
+    }
+
+
     @Override
     public List<ActivityTag> getTagList(Long activityId) {
         return activityTagMapper.listByActivityId(activityId);

--
Gitblit v1.8.0