package com.yami.trading.api.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yami.trading.bean.cms.News; import com.yami.trading.common.domain.Result; import com.yami.trading.common.exception.YamiShopBindException; import com.yami.trading.common.util.DateUtils; import com.yami.trading.common.util.StringUtils; import com.yami.trading.security.common.util.SecurityUtils; import com.yami.trading.service.AwsS3OSSFileService; import com.yami.trading.service.cms.NewsSerivce; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; @RestController @CrossOrigin public class ApiNewsController { @Autowired private NewsSerivce newsService; private final String action = "/api/news!"; @Autowired AwsS3OSSFileService awsS3OSSFileService; /** * 获取 新闻 */ @RequestMapping(action + "get.action") public Object get(HttpServletRequest request) { String id = request.getParameter("id"); String index = request.getParameter("index"); String language = request.getParameter("language"); if (StringUtils.isEmptyString(index)) { index = "false"; } boolean index_bool = Boolean.valueOf(index).booleanValue(); News news = new News(); if (index_bool) { news = newsService.getIndex(language); } else { news = this.newsService.getById(id); } if (news != null) { news.setCreateTimeStr(DateUtils.format(news.getCreateTime(), DateUtils.DF_yyyyMMddHHmmss)); } if (StringUtils.isNotEmpty(news.getImgUrl())) { news.setImgUrl(awsS3OSSFileService.getUrl(news.getImgUrl())); } return Result.succeed(news); } /** * 获取 新闻 列表 */ @RequestMapping(action + "list.action") public Object list(HttpServletRequest request) { String page_no = request.getParameter("page_no"); String language = request.getParameter("language"); if (StringUtils.isNullOrEmpty(page_no)) { page_no = "1"; } if (!StringUtils.isInteger(page_no)) { throw new YamiShopBindException("页码不是整数"); } if (Integer.valueOf(page_no).intValue() <= 0) { throw new YamiShopBindException("页码不能小于等于0"); } int page_no_int = Integer.valueOf(page_no).intValue(); Page page = new Page<>(1, 1000000); // List list = this.newsService.cachePagedQuery(page_no_int, 20, language).getElements(); LambdaQueryWrapper lambdaQueryWrapper = Wrappers.query().lambda().eq(News::getLanguage, language) .eq(News::isPopUp,false); lambdaQueryWrapper.orderByDesc(News::getCreateTime); newsService.page(page, lambdaQueryWrapper); List list = page.getRecords(); if (list != null) { for (int i = 0; i < list.size(); i++) { list.get(i).setCreateTimeStr(DateUtils.format(list.get(i).getCreateTime(), DateUtils.DF_yyyyMMddHHmmss)); News news = list.get(i); if (news.getStartTime() != null && news.getEndTime() != null) { long startTime = news.getStartTime().getTime(); long endTime = news.getEndTime().getTime(); long curTime = System.currentTimeMillis(); if (curTime > startTime && curTime < endTime) { news.setShow(true); } } if (StringUtils.isNotEmpty(news.getUserId())){ news.setShow(news.getUserId().equals(SecurityUtils.getCurrentUserId())); } if (StringUtils.isNotEmpty(news.getImgUrl())) { news.setImgUrl(awsS3OSSFileService.getUrl(news.getImgUrl())); } } } return Result.succeed(list); } /** * 获取 新闻 列表 版本2 */ @RequestMapping(action + "list_v2.action") public Object list_v2(HttpServletRequest request) { String page_no = request.getParameter("page_no"); String language = request.getParameter("language"); String token = request.getParameter("token"); if (StringUtils.isNullOrEmpty(page_no)) { page_no = "1"; } if (!StringUtils.isInteger(page_no)) { throw new YamiShopBindException("页码不是整数"); } if (Integer.valueOf(page_no).intValue() <= 0) { throw new YamiShopBindException("页码不能小于等于0"); } int page_no_int = Integer.valueOf(page_no).intValue(); List list = new ArrayList(); if (StringUtils.isEmptyString(token)) { LambdaQueryWrapper lambdaQueryWrapper = Wrappers.query().lambda().eq(News::getLanguage, language).eq(News::isPopUp, false); Page page = new Page<>(1, 1000000); newsService.page(page, lambdaQueryWrapper); list = page.getRecords(); } else { String partyId = SecurityUtils.getUser().getUserId(); LambdaQueryWrapper lambdaQueryWrapper = Wrappers.query().lambda().eq(News::getLanguage, language).eq(News::isPopUp, false).eq(News::getUserId, partyId); Page page = new Page<>(1, 1000000); newsService.page(page, lambdaQueryWrapper); list = page.getRecords(); } if (list != null) { for (int i = 0; i < list.size(); i++) { list.get(i).setCreateTimeStr(DateUtils.format(list.get(i).getCreateTime(), DateUtils.DF_yyyyMMddHHmmss)); News news = list.get(i); if (StringUtils.isNotEmpty(news.getImgUrl())) { news.setImgUrl(awsS3OSSFileService.getUrl(news.getImgUrl())); } } } return Result.succeed(list); } /** * 获取 弹出新闻 列表 版本2 */ @RequestMapping(action + "list_v2_popup.action") public Object list_v2_popup(HttpServletRequest request) { String page_no = request.getParameter("page_no"); String language = request.getParameter("language"); String token = request.getParameter("token"); if (StringUtils.isNullOrEmpty(page_no)) { page_no = "1"; } if (!StringUtils.isInteger(page_no)) { throw new YamiShopBindException("页码不是整数"); } if (Integer.valueOf(page_no).intValue() <= 0) { throw new YamiShopBindException("页码不能小于等于0"); } int page_no_int = Integer.valueOf(page_no).intValue(); List list = new ArrayList(); if (StringUtils.isEmptyString(token)) { LambdaQueryWrapper lambdaQueryWrapper = Wrappers.query().lambda().eq(News::getLanguage, language).eq(News::isPopUp, true); Page page = new Page<>(1, 1000000); newsService.page(page, lambdaQueryWrapper); list = page.getRecords(); } else { String partyId = SecurityUtils.getUser().getUserId(); LambdaQueryWrapper lambdaQueryWrapper = Wrappers.query().lambda().eq(News::getLanguage, language).eq(News::isPopUp, true).eq(News::getUserId, partyId); Page page = new Page<>(1, 1000000); newsService.page(page, lambdaQueryWrapper); list = page.getRecords(); } if (list != null) { for (int i = 0; i < list.size(); i++) { list.get(i).setCreateTimeStr(DateUtils.format(list.get(i).getCreateTime(), DateUtils.DF_yyyyMMddHHmmss)); News news = list.get(i); if (StringUtils.isNotEmpty(news.getImgUrl())) { news.setImgUrl(awsS3OSSFileService.getUrl(news.getImgUrl())); } } } return Result.succeed(list); } }