package com.ks.daylucky.service.impl.remote;
|
|
import com.beust.jcommander.ParameterException;
|
import com.ks.daylucky.exception.AnnouncementException;
|
import com.ks.daylucky.mapper.AnnouncementMapper;
|
import com.ks.daylucky.pojo.DO.Announcement;
|
import com.ks.daylucky.query.AnnouncementQuery;
|
import com.ks.daylucky.service.AnnouncementService;
|
import org.apache.dubbo.config.annotation.Service;
|
import org.springframework.validation.annotation.Validated;
|
|
import javax.annotation.Resource;
|
import javax.validation.Valid;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service(version = "1.0.0")
|
public class AnnouncementServiceImpl implements AnnouncementService {
|
|
|
@Resource
|
private AnnouncementMapper announcementMapper;
|
|
@Validated
|
@Override
|
public void addAnnouncement(@Valid Announcement announcement) throws ParameterException, AnnouncementException {
|
AnnouncementQuery query = new AnnouncementQuery();
|
query.appId = announcement.getAppId();
|
query.type = announcement.getType();
|
query.count = 1;
|
List<Announcement> list = announcementMapper.list(query);
|
if (list != null && list.size() > 0) {
|
throw new AnnouncementException(AnnouncementException.CODE_EXIST, "应用的该类型公告已存在");
|
}
|
|
if (announcement.getCreateTime() == null) {
|
announcement.setCreateTime(new Date());
|
}
|
announcementMapper.insertSelective(announcement);
|
|
}
|
|
@Override
|
public Announcement getAnnouncement(Long appId, Announcement.AnnouncementType type) {
|
AnnouncementQuery query = new AnnouncementQuery();
|
query.appId = appId;
|
query.type = type;
|
query.count = 1;
|
List<Announcement> list = announcementMapper.list(query);
|
if (list != null && list.size() > 0) {
|
return list.get(0);
|
}
|
return null;
|
}
|
|
@Override
|
public List<Announcement> getAnnouncementList(AnnouncementQuery query, int page, int pageSize) {
|
query.start = (page - 1) * pageSize;
|
query.count = pageSize;
|
return announcementMapper.list(query);
|
}
|
|
@Override
|
public void update(Announcement announcement) {
|
if (announcement == null || announcement.getId() == null) {
|
return;
|
}
|
announcement.setUpdateTime(new Date());
|
announcementMapper.updateByPrimaryKeySelective(announcement);
|
}
|
|
@Override
|
public void delete(Long id) {
|
announcementMapper.deleteByPrimaryKey(id);
|
}
|
}
|