package com.caimei.www.service.page.impl; import com.caimei.www.mapper.SinglePageDao; import com.caimei.www.pojo.JsonModel; import com.caimei.www.pojo.page.ImageLink; import com.caimei.www.pojo.page.PageContent; import com.caimei.www.service.page.SinglePageService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ZeroCopyHttpOutputMessage; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import reactor.core.publisher.Mono; import javax.annotation.Resource; import java.io.File; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.List; /** * Description * * @author : Charles * @date : 2020/7/20 */ @Slf4j @Service public class SinglePageServiceImpl implements SinglePageService { @Resource private SinglePageDao singlePageDao; @Value("${caimei.wwwDomain}") private String domain; /** * 自由页面 * * @param id */ @Override public PageContent getFreePageById(Integer id) { if (id == null) { return null; } PageContent pageContent = singlePageDao.getFreePageById(id); String mobileContent = singlePageDao.findMobileContent(id); if (StringUtils.isEmpty(mobileContent)) { pageContent.setMobileContent(pageContent.getContent()); } else { pageContent.setMobileContent(mobileContent); } return pageContent; } /** * 二级页面 * * @param id */ @Override public PageContent getTopicPageById(Integer id) { if (id == null) { return null; } return singlePageDao.getTopicPageById(id); } /** * 采美直播 */ @Override public PageContent getLivePageData() { return singlePageDao.getLivePageData(); } /** * 品牌招商表格下载 * * @param response */ @Override public Mono downloadByWriteWith(ServerHttpResponse response) throws UnsupportedEncodingException { ZeroCopyHttpOutputMessage zeroCopyResponse = (ZeroCopyHttpOutputMessage) response; response.getHeaders().set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + URLEncoder.encode("采美365网国际品牌招商资料填写表.xls", "UTF-8")); response.getHeaders().setContentType(MediaType.APPLICATION_OCTET_STREAM); String templateFile = "/mnt/newdatadrive/data/custom/www-export-template/investment_template.xlsx"; File file = new File(templateFile); return zeroCopyResponse.writeWith(file, 0, file.length()); } /** * 获取讲师列表 */ @Override public JsonModel> getLiveTeachers() { List teacherList = singlePageDao.getLiveTeachers(); return JsonModel.success(teacherList); } @Override public Integer getInstrumentPageIdById(Integer id) { if (id == null) { return null; } Integer pageId = singlePageDao.getInstrumentPageIdById(id); return pageId; } @Override public String getPageTitleById(Integer id) { if (id == null) { return null; } return singlePageDao.getPageTitleById(id); } @Override public Integer getActivityPageIdById(Integer id) { if (id == null) { return null; } Integer pageId = singlePageDao.getActivityPageIdById(id); return pageId; } }