|
@@ -5,9 +5,16 @@ import cn.com.ty.lift.quan.news.dao.mapper.QuanNewsMapper;
|
|
|
import cn.com.ty.lift.quan.news.service.QuanNewsService;
|
|
|
import cn.com.xwy.boot.web.dto.RestResponse;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.mysql.cj.jdbc.Blob;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -18,33 +25,177 @@ import org.springframework.stereotype.Service;
|
|
|
* @since 2019-12-02
|
|
|
*/
|
|
|
@Service
|
|
|
+@Transactional
|
|
|
public class QuanNewsServiceImpl extends ServiceImpl<QuanNewsMapper, QuanNews> implements QuanNewsService {
|
|
|
|
|
|
- public RestResponse updateNews(int id, String title, Blob content) {
|
|
|
+ public RestResponse updateNews(int id, String title, String content) {
|
|
|
QuanNews byId = this.getById(id);
|
|
|
- if (null == byId) {
|
|
|
- return RestResponse.ok(null, "0", "不存在此新闻");
|
|
|
- } else {
|
|
|
+ if (null != byId) {
|
|
|
byId.setTitle(title).setContent(content);
|
|
|
if (this.updateById(byId)) {
|
|
|
return RestResponse.ok(null, "1", "更新成功");
|
|
|
} else {
|
|
|
return RestResponse.ok(null, "0", "更新失败");
|
|
|
}
|
|
|
+ } else {
|
|
|
+ return RestResponse.ok(null, "0", "不存在此新闻");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @description 将新闻置顶
|
|
|
+ * @date 2019/12/3 11:23
|
|
|
+ */
|
|
|
public RestResponse top(int id) {
|
|
|
- QuanNews one = this.getOne(new QueryWrapper<QuanNews>().eq("id", id));
|
|
|
- if (one != null) {
|
|
|
- QuanNews top_serial = this.getOne(new QueryWrapper<QuanNews>().eq("top_serial", 1));
|
|
|
- top_serial.setTopSerial(0);
|
|
|
- this.updateById(top_serial);
|
|
|
- one.setTopSerial(1);
|
|
|
- this.updateById(one);
|
|
|
+ QuanNews byId = this.getById(id);
|
|
|
+ if (byId != null) {
|
|
|
+ if (byId.getTopSerial() != 0) {
|
|
|
+ //如果新闻在置顶新闻中
|
|
|
+ QuanNews top = this.getOne(new QueryWrapper<QuanNews>().eq("top_serial", 1));
|
|
|
+ top.setTopSerial(byId.getTopSerial());
|
|
|
+ byId.setTopSerial(1);
|
|
|
+ //更新排序
|
|
|
+ this.updateById(top);
|
|
|
+ this.updateById(byId);
|
|
|
+ } else {
|
|
|
+ //如果新闻不是置顶新闻
|
|
|
+ //获取置顶新闻
|
|
|
+ List<QuanNews> news = this.list(new QueryWrapper<QuanNews>().select("id", "top_serial").ne("top_serial", 0));
|
|
|
+ if (!news.isEmpty()) {
|
|
|
+ //如果有置顶新闻
|
|
|
+ news.forEach(n -> {
|
|
|
+ n.setTopSerial(n.getTopSerial() + 1);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ byId.setTopSerial(1);
|
|
|
+ //更新置顶新闻列表,新闻
|
|
|
+ if (this.updateBatchById(news, 100) && this.updateById(byId)) {
|
|
|
+ return RestResponse.ok(null, "1", "置顶成功");
|
|
|
+ } else {
|
|
|
+ return RestResponse.ok(null, "0", "置顶失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
return RestResponse.ok(null, "1", "置顶成功");
|
|
|
} else {
|
|
|
return RestResponse.ok(null, "0", "新闻不存在");
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @description 新闻取消置顶
|
|
|
+ * @date 2019/12/3 13:28
|
|
|
+ */
|
|
|
+ public RestResponse cancelTop(Integer id) {
|
|
|
+ QuanNews byId = this.getById(id);
|
|
|
+ if (null != byId) {
|
|
|
+ //如果有这个新闻
|
|
|
+ if (byId.getTopSerial() != 0) {
|
|
|
+ byId.setTopSerial(0);
|
|
|
+ //如果有这个置顶新闻
|
|
|
+ List<QuanNews> tops = this.list(new QueryWrapper<QuanNews>().select("id", "top_serial").ne("top_serial", 0).ne("id", id));
|
|
|
+ //如果没有置顶新闻
|
|
|
+ if (tops.isEmpty()) {
|
|
|
+ if (this.updateById(byId)) {
|
|
|
+ return RestResponse.ok(null, "1", "取消置顶成功");
|
|
|
+ } else {
|
|
|
+ return RestResponse.ok(null, "0", "取消置顶失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //比这个新闻排序大的都 序号-1
|
|
|
+ tops.forEach(top -> {
|
|
|
+ if (top.getTopSerial() > byId.getTopSerial()) {
|
|
|
+ top.setTopSerial(top.getTopSerial() - 1);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (this.updateById(byId) && this.updateBatchById(tops)) {
|
|
|
+ return RestResponse.ok(null, "1", "取消置顶成功");
|
|
|
+ } else {
|
|
|
+ return RestResponse.ok(null, "0", "取消置顶失败");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //如果不是置顶新闻
|
|
|
+ return RestResponse.ok(null, "1", "不是置顶新闻");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //没有这个新闻
|
|
|
+ return RestResponse.ok(null, "9", "无此新闻");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @description 时间倒序查询置顶新闻+普通新闻列表
|
|
|
+ * @date 2019/12/3 10:30
|
|
|
+ */
|
|
|
+ public RestResponse news(Integer pageNum, Integer pageSize, Integer haveTops) {
|
|
|
+ Page<QuanNews> page = new Page<>(pageNum, pageSize);
|
|
|
+ IPage<QuanNews> news = this.page(page, new QueryWrapper<QuanNews>().eq("top_serial", "0").orderByDesc("release_date"));
|
|
|
+ if (haveTops != 0) {
|
|
|
+ List topNews = this.list(new QueryWrapper<QuanNews>().ne("top_serial", "0").orderBy(true, true, "top_serial"));
|
|
|
+ HashMap<String, Object> map = new HashMap<>();
|
|
|
+ map.put("topNews", topNews);
|
|
|
+ map.put("news", news);
|
|
|
+ return RestResponse.ok(map, "1", "查询成功");
|
|
|
+ } else {
|
|
|
+ return RestResponse.ok(news, "1", "查询成功");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public RestResponse addNew(QuanNews quanNews, MultipartFile videoFile, Integer isTop) {
|
|
|
+// String title, String content, MultipartFile videoFile, Integer isTop, Long releaseId, String releaseUser
|
|
|
+ //上传视频到Oss,获取视频地址
|
|
|
+ //上传视频到Oss,获取视频地址
|
|
|
+ //上传视频到Oss,获取视频地址
|
|
|
+ //上传视频到Oss,获取视频地址
|
|
|
+ //上传视频到Oss,获取视频地址
|
|
|
+ //上传视频到Oss,获取视频地址
|
|
|
+ //获取发布人名称
|
|
|
+ List<QuanNews> tops = null;
|
|
|
+ if (isTop != 0) {
|
|
|
+ //获取置顶新闻列表
|
|
|
+ tops = this.list(new QueryWrapper<QuanNews>().ne("top_serial", 0));
|
|
|
+ //设置新添加新闻的数据
|
|
|
+ quanNews.setReleaseDate(LocalDateTime.now()).setVideoPath("videoPath").setTopSerial(1);
|
|
|
+ //遍历排序加1
|
|
|
+ if (!tops.isEmpty()) {
|
|
|
+ tops.forEach(top -> {
|
|
|
+ top.setTopSerial(top.getTopSerial() + 1);
|
|
|
+ });
|
|
|
+ if (this.updateBatchById(tops) && this.save(quanNews)) {
|
|
|
+ return RestResponse.ok(null, "1", "新增成功");
|
|
|
+ } else {
|
|
|
+ return RestResponse.ok(null, "0", "新增失败");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (this.save(quanNews)) {
|
|
|
+ return RestResponse.ok(null, "1", "新增成功");
|
|
|
+ } else {
|
|
|
+ return RestResponse.ok(null, "0", "新增失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //设置新添加新闻的数据
|
|
|
+ quanNews.setReleaseDate(LocalDateTime.now()).setVideoPath("videoPath");
|
|
|
+ if (this.save(quanNews)) {
|
|
|
+ return RestResponse.ok(null, "1", "新增成功");
|
|
|
+ } else {
|
|
|
+ return RestResponse.ok(null, "0", "新增失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public RestResponse delete(int id) {
|
|
|
+ QuanNews byId = this.getById(id);
|
|
|
+ if (null != byId) {
|
|
|
+ if (byId.getTopSerial() != 0) {
|
|
|
+ this.cancelTop(id);
|
|
|
+ }
|
|
|
+ if (this.removeById(id)) {
|
|
|
+ return RestResponse.ok(null, "1", "删除成功");
|
|
|
+ } else {
|
|
|
+ return RestResponse.ok(null, "0", "删除失败");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return RestResponse.ok(null, "9", "无数据");
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|