admin
2021-06-24 df4441322e9801c102299451da41d7c40b4502e9
service-daylucky/src/main/java/com/ks/daylucky/service/impl/remote/ActivityTagServiceImpl.java
@@ -1,16 +1,19 @@
package com.ks.daylucky.service.impl.remote;
import com.beust.jcommander.ParameterException;
import com.ks.daylucky.mapper.ActivityTagMapper;
import com.ks.daylucky.pojo.DO.ActivityTag;
import com.ks.daylucky.service.ActivityTagService;
import com.ks.lib.common.exception.ParamsException;
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 {
@@ -21,7 +24,7 @@
    @Validated
    @Override
    public void addActivityTag(@Valid ActivityTag tag) throws ParameterException {
    public void addActivityTag(@Valid ActivityTag tag) throws ParamsException {
        if (tag.getWeight() == null) {
            tag.setWeight(1);
        }
@@ -29,6 +32,54 @@
        activityTagMapper.insertSelective(tag);
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void setTags(Long activityId, List<ActivityTag> tags) throws ParamsException {
        if (tags == null) {
            return;
        }
        List<ActivityTag> oList = getTagList(activityId);
        //删除TAG
        if (tags.size() == 0) {
            for (ActivityTag tag : oList) {
                activityTagMapper.deleteByPrimaryKey(tag.getId());
            }
            return;
        }
        //获取老ID
        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);