yujian
2019-09-03 d1dccd08a249b830a95eeeb04af25f87d5c056be
fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/FloatADServiceImpl.java
@@ -8,16 +8,16 @@
import java.util.UUID;
import javax.annotation.Resource;
import javax.transaction.Transactional;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import org.yeshi.utils.tencentcloud.COSManager;
import com.yeshi.fanli.dao.mybatis.homemodule.FloatADMapper;
import com.yeshi.fanli.entity.bus.homemodule.FloatAD;
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.exception.FloatADException;
import com.yeshi.fanli.exception.homemodule.FloatADException;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.homemodule.FloatADService;
import com.yeshi.fanli.util.StringUtil;
@@ -46,8 +46,10 @@
      }
      
      String params = record.getParams();
      if ((params != null && params.trim().length() == 0) || "null".equalsIgnoreCase(params) ) {
      if (params == null || params.trim().length() == 0 || "null".equalsIgnoreCase(params) ) {
         record.setParams(null);
      } else if (!StringUtil.isJson(params)) {
         throw new FloatADException(1, "跳转参数非JSON格式");
      }
      
      if (!StringUtil.isNullOrEmpty(jumpType)) {
@@ -58,33 +60,46 @@
      }
      
      try {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Date startTime = record.getStartTime();
         if (startTime != null) {
            record.setStartTime(format.parse(format.format(startTime)));
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
         String startTime_str = record.getStartTime_str();
         if (startTime_str != null && startTime_str.trim().length() > 0) {
            startTime_str = startTime_str.replaceAll("T", " ");
            record.setStartTime(format.parse(startTime_str));
         }
         
         Date endTime = record.getEndTime();
         if (endTime != null) {
            record.setEndTime(format.parse(format.format(endTime)));
         String endTime_str = record.getEndTime_str();
         if (endTime_str != null && endTime_str.trim().length() > 0) {
            endTime_str = endTime_str.replaceAll("T", " ");
            record.setEndTime(format.parse(endTime_str));
         }
         
      } catch (ParseException e) {
         e.printStackTrace();
      }
      
      // 图片上传
      String picture = null;
      if (file != null) {
         picture = uploadPicture(file);
      }
      
      // 适用类型 : 0通用  1新人
      Integer type = record.getType();
      if (type == null) {
         record.setType(0);
      }
      Long id = record.getId();
      if (id == null) {
         int maxOrder = floatADMapper.countByPosition(position);
         int maxOrder = floatADMapper.getMaxOrderByPosition(position);
         record.setPicture(picture);
         record.setState(0);
         Integer state = record.getState();
         if (state == null) {
            record.setState(0);
         }
         record.setOrder(maxOrder + 1);
         record.setJumpNeedLogin(false);
         record.setCreateTime(new Date());
         record.setUpdateTime(new Date());
         floatADMapper.insert(record);
@@ -96,9 +111,10 @@
         }
         
         if (picture != null && picture.trim().length() > 0) {
            // 删除老图
            removePicture(resultObj.getPicture());
            // 存储新图
            record.setPicture(picture);
            // 删除已存在图片
            removePicture(resultObj);
         } else {
            record.setPicture(resultObj.getPicture());
         }
@@ -110,6 +126,38 @@
      }
   }
   
   /**
    * 上传图片
    * @param file
    * @return
    * @throws Exception
    */
   public String uploadPicture(MultipartFile file) throws Exception {
      // 文件解析
      InputStream inputStream = file.getInputStream();
      String contentType = file.getContentType();
      String type = contentType.substring(contentType.indexOf("/") + 1);
      // 文件路径
      String filePath="/img/FloatAD/"+UUID.randomUUID().toString().replace("-", "") + "." + type;
      // 执行上传
      String fileLink= COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
      return fileLink;
   }
   /**
    * 删除图片-不更新数据库
    * @param record
    * @throws Exception
    */
   public void removePicture(String picture) throws Exception {
      if (picture != null && picture.trim().length() > 0) {
         COSManager.getInstance().deleteFile(picture);
      }
   }
   
   @Override
   @Transactional
@@ -155,45 +203,12 @@
      
      // 删除已存在图片
      for (FloatAD floatAD: listSwiper) {
         removePicture(floatAD);
         removePicture(floatAD.getPicture());
      }
      
      return floatADMapper.deleteByPrimaryKeyList(list);
   }
   /**
    * 上传图片
    * @param file
    * @return
    * @throws Exception
    */
   public String uploadPicture(MultipartFile file) throws Exception {
      // 文件解析
      InputStream inputStream = file.getInputStream();
      String contentType = file.getContentType();
      String type = contentType.substring(contentType.indexOf("/") + 1);
      // 文件路径
      String filePath="/img/FloatAD/"+UUID.randomUUID().toString().replace("-", "") + "." + type;
      // 执行上传
      String fileLink= COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
      return fileLink;
   }
   /**
    * 删除图片-不更新数据库
    * @param record
    * @throws Exception
    */
   public void removePicture(FloatAD record) throws Exception {
      String picture = record.getPicture();
      if (picture != null && picture.trim().length() > 0) {
         COSManager.getInstance().deleteFile(picture);
      }
   }
   
   @Override
@@ -205,6 +220,21 @@
      }
      
      for (FloatAD floatAD : listQuery) {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
         Date startTime = floatAD.getStartTime();
         if (startTime == null) {
            floatAD.setStartTime_str("");
         } else {
            floatAD.setStartTime_str(sdf.format(startTime));
         }
         Date endTime = floatAD.getEndTime();
         if (endTime == null) {
            floatAD.setEndTime_str("");
         } else {
            floatAD.setEndTime_str(sdf.format(endTime));
         }
         
         String params = floatAD.getParams();
         if (params == null) {
@@ -234,8 +264,8 @@
   }
   @Override
   public FloatAD getEffectiveFloatAD(String position) {
      FloatAD floatAD = floatADMapper.getEffectiveFloatAD(position);
   public FloatAD getEffectiveFloatAD(String position, Integer type) {
      FloatAD floatAD = floatADMapper.getEffectiveFloatAD(position, type);
      if (floatAD != null) {
         JumpDetailV2 jumpDetail = floatAD.getJumpDetail();