123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package com.caimei.www.service.impl;
- import com.caimei.www.mapper.SinglePageDao;
- import com.caimei.www.pojo.JsonModel;
- import com.caimei.www.pojo.content.ImageLink;
- import com.caimei.www.pojo.content.PageContent;
- import com.caimei.www.pojo.content.PageFloor;
- import com.caimei.www.service.SinglePageService;
- import com.caimei.www.utils.ImageUtil;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- 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.CollectionUtils;
- import reactor.core.publisher.Mono;
- import javax.annotation.Resource;
- import java.io.*;
- import java.net.URLEncoder;
- import java.text.SimpleDateFormat;
- import java.util.List;
- /**
- * Description
- *
- * @author : Charles
- * @date : 2020/7/20
- */
- @Service
- public class SinglePageServiceImpl implements SinglePageService {
- @Resource
- private SinglePageDao singlePageDao;
- @Value("${caimei.wwwDomain}")
- private String domain;
- /**
- * 自由页面
- *
- * @param id
- */
- @Override
- public PageContent getFreePageById(Integer id) {
- return singlePageDao.getFreePageById(id);
- }
- /**
- * 二级页面
- *
- * @param id
- */
- @Override
- public PageContent getTopicPageById(Integer id) {
- return singlePageDao.getTopicPageById(id);
- }
- /**
- * 二级专题数据
- *
- * @param id
- */
- @Override
- public JsonModel<List<PageFloor>> getTopicDataById(Integer id) {
- List<PageFloor> pageFloors = singlePageDao.getFloorByPageId(id);
- if (!CollectionUtils.isEmpty(pageFloors)) {
- pageFloors.forEach(floor -> {
- List<ImageLink> floorData = singlePageDao.getDataByFloorId(floor.getId());
- if (!CollectionUtils.isEmpty(floorData)) {
- floorData.forEach(data -> {
- data.setImage(ImageUtil.getImageURL("actType", data.getImage(), 0, domain));
- });
- }
- floor.setFloorData(floorData);
- });
- }
- return JsonModel.success(pageFloors);
- }
- /**
- * 专题活动列表数据
- *
- * @param pageNum
- * @param pageSize
- */
- @Override
- public JsonModel<PageInfo<ImageLink>> gePromotionsList(int pageNum, int pageSize) {
- PageHelper.startPage(pageNum, pageSize);
- List<ImageLink> promotionsList = singlePageDao.getPromotionsList();
- if (!CollectionUtils.isEmpty(promotionsList)) {
- long currentTime = System.currentTimeMillis();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- promotionsList.forEach(item -> {
- if(null != item.getBeginTime() && null != item.getEndTime() && (item.getEndTime().getTime() > item.getBeginTime().getTime() ) && (item.getBeginTime().getTime() > currentTime)){
- //即将开始: 活动开始时间小于当前时间
- item.setStatus(1);
- }
- if(null != item.getBeginTime() && null != item.getEndTime() && (item.getEndTime().getTime() > currentTime ) && (item.getBeginTime().getTime() < currentTime)) {
- //进行中: 当前时间小于活动开始,小于活动结束时间
- item.setStatus(2);
- }
- if(null != item.getBeginTime() && null != item.getEndTime() && (currentTime > item.getEndTime().getTime()) && (item.getEndTime().getTime() > item.getBeginTime().getTime())) {
- //已结束: 活动结束时间小于结束时间
- item.setStatus(3);
- }
- String format = sdf.format(item.getBeginTime())+"~"+sdf.format(item.getEndTime());
- item.setDetail(format);
- });
- }
- PageInfo<ImageLink> pageInfo = new PageInfo(promotionsList);
- return JsonModel.success(pageInfo);
- }
- /**
- * 品牌招商表格下载
- *
- * @param response
- */
- @Override
- public Mono<Void> 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());
- }
- }
|