yujian
2020-05-23 28cf328a098334b51a3e9d2d56f983fb8c862211
fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SpecialServiceImpl.java
@@ -12,6 +12,7 @@
import javax.annotation.Resource;
import org.apache.commons.beanutils.PropertyUtils;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -25,6 +26,8 @@
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl;
import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl.AdActivityType;
import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo;
import com.yeshi.fanli.entity.bus.homemodule.CommonShareInfo.CommonShareInfoEnum;
import com.yeshi.fanli.entity.bus.homemodule.Special;
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
@@ -34,6 +37,7 @@
import com.yeshi.fanli.service.inter.config.AppVersionService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.homemodule.AdActivityVersionControlService;
import com.yeshi.fanli.service.inter.homemodule.CommonShareInfoService;
import com.yeshi.fanli.service.inter.homemodule.SpecialCardService;
import com.yeshi.fanli.service.inter.homemodule.SpecialPlaceService;
import com.yeshi.fanli.service.inter.homemodule.SpecialService;
@@ -41,6 +45,7 @@
import com.yeshi.fanli.util.FilePathEnum;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.vo.homemodule.SpecialVO;
import net.sf.json.JSONObject;
@@ -56,6 +61,9 @@
   @Resource
   private SpecialCardService specialCardService;
   @Resource
   private CommonShareInfoService commonShareInfoService;
   @Resource
   private JumpDetailV2Service jumpDetailV2Service;
@@ -75,7 +83,7 @@
   @Override
   public void saveObject(MultipartFile file, MultipartFile file2, MultipartFile file3, Special record,
         String jumpType) throws SpecialException, Exception {
         String jumpType, CommonShareInfo shareInfo) throws SpecialException, Exception {
      Long cardId = record.getCardId();
      if (cardId == null) {
@@ -149,6 +157,8 @@
         record.setUpdatetime(new Date());
         specialMapper.insert(record);
         shareInfo.setPid(record.getId());
         Special s = new Special();
         s.setId(record.getId());
         s.setOrderby(Integer.parseInt(s.getId() + ""));
@@ -213,7 +223,13 @@
         record.setUpdatetime(new Date());
         specialMapper.updateByPrimaryKey(record);
         shareInfo.setPid(record.getId());
      }
      // 添加补充信息
      shareInfo.setType(CommonShareInfoEnum.special);
      commonShareInfoService.save(shareInfo);
   }
   /**
@@ -342,6 +358,8 @@
         if (!StringUtil.isNullOrEmpty(subPicture)) {
            COSManager.getInstance().deleteFile(subPicture);
         }
         commonShareInfoService.deleteByPidAndType(special.getId(), CommonShareInfoEnum.special.name());
      }
      if (listSpecial != null)
@@ -368,63 +386,92 @@
         if (!StringUtil.isNullOrEmpty(subPicture)) {
            COSManager.getInstance().deleteFile(subPicture);
         }
         commonShareInfoService.deleteByPidAndType(special.getId(), CommonShareInfoEnum.special.name());
      }
      return specialMapper.deleteBatchByCardID(list);
   }
   @Override
   public List<Special> listQueryByCard(long start, int count, Long card, String key, Integer sex) {
   public List<SpecialVO> listQueryByCard(long start, int count, Long card, String key, Integer sex) {
      List<Special> list = specialMapper.listQueryByCard(start, count, card, key, sex);
      if (list == null || list.size() == 0) {
         return list;
      if (list == null) {
         return null;
      }
      // 跳转链接
       List<SpecialVO> listvo = new ArrayList<SpecialVO>();
      for (Special special : list) {
         Date startTime = special.getStartTime();
         Date endTime = special.getEndTime();
         SpecialVO specialVO = new SpecialVO();
         try {
            PropertyUtils.copyProperties(specialVO, special);
         } catch (Exception e) {
            e.printStackTrace();
            continue;
         }
         if (specialVO.getState() != null && specialVO.getState().longValue() == 0) {
            specialVO.setState(1L);
         } else {
            specialVO.setState(0L);
         }
         Date startTime = specialVO.getStartTime();
         Date endTime = specialVO.getEndTime();
         if (startTime == null && endTime == null) {
            special.setStartTime_str("");
            special.setEndTime_str("");
            specialVO.setStartTime_str("");
            specialVO.setEndTime_str("");
         } else {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
            if (startTime == null) {
               special.setStartTime_str("");
               specialVO.setStartTime_str("");
            } else {
               special.setStartTime_str(sdf.format(startTime));
               specialVO.setStartTime_str(sdf.format(startTime));
            }
            if (endTime == null) {
               special.setEndTime_str("");
               specialVO.setEndTime_str("");
            } else {
               special.setEndTime_str(sdf.format(endTime));
               specialVO.setEndTime_str(sdf.format(endTime));
            }
         }
         String params = special.getParams();
         String params = specialVO.getParams();
         if (StringUtil.isNullOrEmpty(params)) {
            special.setParams("");
            specialVO.setParams("");
         }
         String remark = special.getRemark();
         String remark = specialVO.getRemark();
         if (StringUtil.isNullOrEmpty(remark)) {
            special.setRemark("");
            specialVO.setRemark("");
         }
         JumpDetailV2 jumpDetail = special.getJumpDetail();
         JumpDetailV2 jumpDetail = specialVO.getJumpDetail();
         if (jumpDetail == null) {
            // 默认未选择
            JumpDetailV2 jumpDetailV2 = new JumpDetailV2();
            jumpDetailV2.setName("-未选择-");
            jumpDetailV2.setType("default");
            special.setJumpDetail(jumpDetailV2);
            specialVO.setJumpDetail(jumpDetailV2);
         }
         // 分享补充信息
         CommonShareInfo info = commonShareInfoService.getByPidAndType(specialVO.getId(),
               CommonShareInfoEnum.special.name());
         if (info == null) {
            specialVO.setNeedSpin(false);
            specialVO.setComment("");
         } else {
            specialVO.setNeedSpin(info.getNeedSpin());
            if (StringUtil.isNullOrEmpty(info.getComment())) {
               specialVO.setComment("");
            } else {
               specialVO.setComment(info.getComment());
            }
         }
         listvo.add(specialVO);
      }
      return list;
      return listvo;
   }
   @Override
@@ -434,22 +481,24 @@
   @Override
   @Cacheable(value = "specialCache", key = "'listBySystemAndCard-'+#card+'-'+#systemId")
   public List<Special> listBySystemAndCard(String card, Long systemId) {
      return specialMapper.listBySystemAndCard(card, systemId);
   public List<SpecialVO> listBySystemAndCard(String card, Long systemId) {
      List<Special> specialList = specialMapper.listBySystemAndCard(card, systemId);
      return transformVO(specialList);
   }
   @Override
   @Cacheable(value = "specialCache", key = "'listPageBySystemAndCard-'+#start+'-'+#count+'-'+#card+'-'+#systemId")
   public List<Special> listPageBySystemAndCard(long start, int count, String card, Long systemId) {
      return specialMapper.listPageBySystemAndCard(start, count, card, systemId);
   public List<SpecialVO> listPageBySystemAndCard(long start, int count, String card, Long systemId) {
      List<Special> specialList = specialMapper.listPageBySystemAndCard(start, count, card, systemId);
      return transformVO(specialList);
   }
   @Override
   @Cacheable(value = "specialCache", key = "'listByVersion-'+#start+'-'+#count+'-'+#card+'-'+#platform+'-'+#versionCode")
   public List<Special> listByVersion(long start, int count, String card, String platform, Integer versionCode) {
   public List<SpecialVO> listByVersion(long start, int count, String card, String platform, Integer versionCode) {
      List<Special> specialList = specialMapper.listByPlaceKey(card, null, null, null);
      filterSpecial(specialList, platform, versionCode);
      return specialList;
      return transformVO(specialList);
   }
   /**
@@ -550,7 +599,7 @@
      // 数据处理
//      handlelist(listArc);
      arcMap.put("list", JsonUtil.getApiCommonGson().toJson(listArc));
      arcMap.put("list", JsonUtil.getApiCommonGson().toJson(transformVO(listArc)));
      // 首页-活动区域(女王节)
      JSONObject activityMap = new JSONObject();
@@ -576,7 +625,7 @@
      handlelist(listActivity);
      activityMap.put("list", JsonUtil.getApiCommonGson().toJson(listActivity));
      activityMap.put("list", JsonUtil.getApiCommonGson().toJson(transformVO(listActivity)));
      // 首页-方形专题(品牌券、母婴...)
      String indexBlock = "index_block";
@@ -609,7 +658,7 @@
      // 数据处理
      handlelist(listBlock);
      blockJsonMap.put("list", JsonUtil.getApiCommonGson().toJson(listBlock));
      blockJsonMap.put("list", JsonUtil.getApiCommonGson().toJson(transformVO(listBlock)));
      JSONObject root = new JSONObject();
      root.put("arcArea", arcMap);
@@ -636,10 +685,53 @@
   @Override
   @Cacheable(value = "specialCache", key = "'listByPlaceKeyHasLabel'+#start+'-'+#platform+'-'+#versionCode+'-'+#list")
   public List<Special> listByPlaceKeyHasLabel(long start, int count, List<String> list, Integer platform,
   public List<SpecialVO> listByPlaceKeyHasLabel(long start, int count, List<String> list, Integer platform,
         Integer versionCode) {
      return specialMapper.listByPlaceKeyHasLabel(start, count, list, null, platform, versionCode);
      List<Special> listSpecial =  specialMapper.listByPlaceKeyHasLabel(start, count, list, null,
            platform, versionCode);
      return    transformVO(listSpecial);
   }
   /**
    * 转换VO
    * @param list
    * @return
    */
   private List<SpecialVO> transformVO(List<Special> list) {
      List<SpecialVO> listVo = new ArrayList<SpecialVO>();
      if (list != null && list.size() > 0) {
         for (Special special: list) {
            SpecialVO specialVO = new SpecialVO();
            try {
               PropertyUtils.copyProperties(specialVO, special);
            } catch (Exception e) {
               e.printStackTrace();
               continue;
            }
            // 跳转活动过渡页
            CommonShareInfo info = commonShareInfoService.getByPidAndType(specialVO.getId(),
                  CommonShareInfoEnum.special.name());
            if (info != null && !StringUtil.isNullOrEmpty(info.getComment())) {
               String link = configService.get(ConfigKeyEnum.activityDetailLink.getKey()) + "?type=%s&id=%s";
               link = String.format(link, CommonShareInfoEnum.special.name(),specialVO.getId());
               JSONObject params = new JSONObject();
               params.put("url", link);
               specialVO.setComment(info.getComment());
               specialVO.setParams(params.toString());
               specialVO.setJumpDetail(jumpDetailV2Service.getByTypeCache("web"));
            }
            listVo.add(specialVO);
         }
      }
      return listVo;
   }
   /**
    * 处理 数据
@@ -729,6 +821,7 @@
      Special updateObj = new Special();
      updateObj.setId(id);
      updateObj.setState(state);
      updateObj.setJumpLogin(resultObj.isJumpLogin());
      specialMapper.updateByPrimaryKeySelective(updateObj);
   }