SinglePageServiceImpl.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package com.caimei.www.service.impl;
  2. import com.caimei.www.mapper.SinglePageDao;
  3. import com.caimei.www.pojo.JsonModel;
  4. import com.caimei.www.pojo.content.ImageLink;
  5. import com.caimei.www.pojo.content.PageContent;
  6. import com.caimei.www.pojo.content.PageFloor;
  7. import com.caimei.www.service.SinglePageService;
  8. import com.caimei.www.utils.ImageUtil;
  9. import com.github.pagehelper.PageHelper;
  10. import com.github.pagehelper.PageInfo;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.http.HttpHeaders;
  13. import org.springframework.http.MediaType;
  14. import org.springframework.http.ZeroCopyHttpOutputMessage;
  15. import org.springframework.http.server.reactive.ServerHttpResponse;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.util.CollectionUtils;
  18. import reactor.core.publisher.Mono;
  19. import javax.annotation.Resource;
  20. import java.io.*;
  21. import java.net.URLEncoder;
  22. import java.text.SimpleDateFormat;
  23. import java.util.List;
  24. /**
  25. * Description
  26. *
  27. * @author : Charles
  28. * @date : 2020/7/20
  29. */
  30. @Service
  31. public class SinglePageServiceImpl implements SinglePageService {
  32. @Resource
  33. private SinglePageDao singlePageDao;
  34. @Value("${caimei.wwwDomain}")
  35. private String domain;
  36. /**
  37. * 自由页面
  38. *
  39. * @param id
  40. */
  41. @Override
  42. public PageContent getFreePageById(Integer id) {
  43. return singlePageDao.getFreePageById(id);
  44. }
  45. /**
  46. * 二级页面
  47. *
  48. * @param id
  49. */
  50. @Override
  51. public PageContent getTopicPageById(Integer id) {
  52. return singlePageDao.getTopicPageById(id);
  53. }
  54. /**
  55. * 二级专题数据
  56. *
  57. * @param id
  58. */
  59. @Override
  60. public JsonModel<List<PageFloor>> getTopicDataById(Integer id) {
  61. List<PageFloor> pageFloors = singlePageDao.getFloorByPageId(id);
  62. if (!CollectionUtils.isEmpty(pageFloors)) {
  63. pageFloors.forEach(floor -> {
  64. List<ImageLink> floorData = singlePageDao.getDataByFloorId(floor.getId());
  65. if (!CollectionUtils.isEmpty(floorData)) {
  66. floorData.forEach(data -> {
  67. data.setImage(ImageUtil.getImageURL("actType", data.getImage(), 0, domain));
  68. });
  69. }
  70. floor.setFloorData(floorData);
  71. });
  72. }
  73. return JsonModel.success(pageFloors);
  74. }
  75. /**
  76. * 专题活动列表数据
  77. *
  78. * @param pageNum
  79. * @param pageSize
  80. */
  81. @Override
  82. public JsonModel<PageInfo<ImageLink>> gePromotionsList(int pageNum, int pageSize) {
  83. PageHelper.startPage(pageNum, pageSize);
  84. List<ImageLink> promotionsList = singlePageDao.getPromotionsList();
  85. if (!CollectionUtils.isEmpty(promotionsList)) {
  86. long currentTime = System.currentTimeMillis();
  87. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  88. promotionsList.forEach(item -> {
  89. if(null != item.getBeginTime() && null != item.getEndTime() && (item.getEndTime().getTime() > item.getBeginTime().getTime() ) && (item.getBeginTime().getTime() > currentTime)){
  90. //即将开始: 活动开始时间小于当前时间
  91. item.setStatus(1);
  92. }
  93. if(null != item.getBeginTime() && null != item.getEndTime() && (item.getEndTime().getTime() > currentTime ) && (item.getBeginTime().getTime() < currentTime)) {
  94. //进行中: 当前时间小于活动开始,小于活动结束时间
  95. item.setStatus(2);
  96. }
  97. if(null != item.getBeginTime() && null != item.getEndTime() && (currentTime > item.getEndTime().getTime()) && (item.getEndTime().getTime() > item.getBeginTime().getTime())) {
  98. //已结束: 活动结束时间小于结束时间
  99. item.setStatus(3);
  100. }
  101. String format = sdf.format(item.getBeginTime())+"~"+sdf.format(item.getEndTime());
  102. item.setDetail(format);
  103. });
  104. }
  105. PageInfo<ImageLink> pageInfo = new PageInfo(promotionsList);
  106. return JsonModel.success(pageInfo);
  107. }
  108. /**
  109. * 品牌招商表格下载
  110. *
  111. * @param response
  112. */
  113. @Override
  114. public Mono<Void> downloadByWriteWith(ServerHttpResponse response) throws UnsupportedEncodingException {
  115. ZeroCopyHttpOutputMessage zeroCopyResponse = (ZeroCopyHttpOutputMessage) response;
  116. response.getHeaders().set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + URLEncoder.encode("采美365网国际品牌招商资料填写表.xls", "UTF-8"));
  117. response.getHeaders().setContentType(MediaType.APPLICATION_OCTET_STREAM);
  118. String templateFile = "/mnt/newdatadrive/data/custom/www-export-template/investment_template.xlsx";
  119. File file = new File(templateFile);
  120. return zeroCopyResponse.writeWith(file, 0, file.length());
  121. }
  122. }