| | |
| | | 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 { |
| | |
| | | |
| | | @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); |
| | | } |
| | |
| | | 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); |