yujian
2019-04-22 b6c37e4bc38db88a360d0f2c6099183f9bb75bdc
fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.service.impl.activity;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -8,11 +9,11 @@
import javax.annotation.Resource;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.jsoup.Jsoup;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.NumberUtil;
import org.yeshi.utils.entity.FileUploadResult;
import org.yeshi.utils.taobao.TbImgUtil;
@@ -53,6 +54,9 @@
import com.yeshi.fanli.util.factory.CommonGoodsFactory;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Service
public class ActivityServiceImpl implements ActivityService {
@@ -239,13 +243,18 @@
      JSONObject contentJson1 = new JSONObject();
      contentJson1.put("color", fontColor1);
      contentJson1.put("content", "预估分享奖金:");
      String shareMoney = "0";
      String revenue = "¥0";
      String totalGetMoney = activity.getTotalGetMoney();
      if (totalGetMoney != null && totalGetMoney.trim().length() > 0) {
         String[] split = totalGetMoney.split(":");
         if (split != null) {
            revenue = split[1];
         }
         String[] splitMoney = totalGetMoney.split("¥");
         if (splitMoney != null) {
            shareMoney = splitMoney[1];
         }
      }
@@ -263,6 +272,7 @@
      data.put("title", title);
      data.put("revenue", array);
      data.put("fanMoney", shareMoney);
      data.put("shareId", map.get("shareId"));
      data.put("shareImg", map.get("loadResult"));
      data.put("notifyDesc", configService.get("goods_share_multiple_notify"));
@@ -300,21 +310,35 @@
      return activityUserMapper.selectList();
   }
   @Transactional
   @Override
   public RecommendActivity addShareGoodsRecommendActivity(Long activityUid, String title, List<Long> goodsList,
         boolean top, int shareCount) throws ActivityException {
   public RecommendActivity addShareGoodsRecommendActivity(Long activityUid, List<Long> goodsList,
         RecommendActivity activity) throws ActivityException , Exception{
      if (goodsList == null || goodsList.size() == 0 || goodsList.size() > 9)
         throw new ActivityException(1, "商品数量错误:10>商品数量>0");
      RecommendActivity activity = new RecommendActivity();
      if (StringUtil.isNullOrEmpty(activity.getTitle())) {
         throw new ActivityException(1, "标题不能为空");
      }
      Integer shareCount = activity.getShareCount();
      if (shareCount == null) {
         activity.setShareCount(0);
      }
      Boolean top = activity.getTop();
      if (top == null) {
         activity.setTop(false);
      }
      // 时间转换
      conversionTime(activity);
      activity.setActivityUser(new ActivityUser(activityUid));
      activity.setCreateTime(new Date());
      activity.setGoodsList(null);
      activity.setOrderBy(0);
      activity.setShareCount(shareCount);
      activity.setTitle(title);
      activity.setTop(top);
      activity.setType(RecommendActivity.TYPE_SHARE_GOODS);
      recommendActivityMapper.insertSelective(activity);
@@ -363,17 +387,30 @@
      return activity;
   }
   @Transactional
   @Override
   public RecommendActivity addInviteImgRecommendActivity(Long activityUid, String title, String url, boolean top,
         int shareCount, int px, int py, int erCodeSize) throws ActivityException {
      RecommendActivity activity = new RecommendActivity();
   public RecommendActivity addInviteImgRecommendActivity(Long activityUid, RecommendActivity activity, String url,
          int px, int py, int erCodeSize) throws ActivityException, Exception {
      if (StringUtil.isNullOrEmpty(url))
         throw new ActivityException(1, "图片为空");
      Integer shareCount = activity.getShareCount();
      if (shareCount == null) {
         activity.setShareCount(0);
      }
      Boolean top = activity.getTop();
      if (top == null) {
         activity.setTop(false);
      }
      // 时间转换
      conversionTime(activity);
      activity.setActivityUser(new ActivityUser(activityUid));
      activity.setCreateTime(new Date());
      activity.setGoodsList(null);
      activity.setOrderBy(0);
      activity.setShareCount(shareCount);
      activity.setTitle(title);
      activity.setTop(top);
      activity.setType(RecommendActivity.TYPE_INVITE);
      recommendActivityMapper.insertSelective(activity);
      RecommendActivityImg img = new RecommendActivityImg();
@@ -395,22 +432,32 @@
      recommendActivityInviteInfo.setRecommendActivity(activity);
      recommendActivityInviteInfo.setSize(erCodeSize);
      recommendActivityInviteInfoMapper.insertSelective(recommendActivityInviteInfo);
      recommendActivityImgMapper.insertSelective(img);
      return activity;
   }
   @Transactional
   @Override
   public RecommendActivity addTextAndImgRecommendActivity(Long activityUid, String title, List<String> imgList,
         boolean top, int shareCount) throws ActivityException {
      RecommendActivity activity = new RecommendActivity();
   public RecommendActivity addTextAndImgRecommendActivity(Long activityUid,  List<String> imgList,
         RecommendActivity activity) throws ActivityException, Exception {
      Integer shareCount = activity.getShareCount();
      if (shareCount == null) {
         activity.setShareCount(0);
      }
      Boolean top = activity.getTop();
      if (top == null) {
         activity.setTop(false);
      }
      // 时间转换
      conversionTime(activity);
      activity.setActivityUser(new ActivityUser(activityUid));
      activity.setCreateTime(new Date());
      activity.setGoodsList(null);
      activity.setOrderBy(0);
      activity.setShareCount(shareCount);
      activity.setTitle(title);
      activity.setTop(top);
      activity.setType(RecommendActivity.TYPE_TEXTIMG);
      recommendActivityMapper.insertSelective(activity);
      for (String imgUrl : imgList) {
@@ -430,6 +477,7 @@
      return activity;
   }
   @Transactional
   @Override
   public void deleteRecommendActivity(long[] ids) {
      recommendActivityMapper.batchDeleteByPrimaryKey(ids);
@@ -443,21 +491,34 @@
      return recommendActivityMapper.selectByPrimaryKey(id);
   }
   @Transactional
   @Override
   public RecommendActivity updateShareGoodsRecommendActivity(Long id, Long activityUid, String title,
         List<Long> goodsList, boolean top, int shareCount) throws ActivityException {
   public RecommendActivity updateShareGoodsRecommendActivity(Long activityUid,
         List<Long> goodsList, RecommendActivity activity) throws ActivityException , Exception{
      if (goodsList == null || goodsList.size() == 0 || goodsList.size() > 9)
         throw new ActivityException(1, "商品数量错误:10>商品数量>0");
      // 删除之前的商品
      recommendActivityTaoBaoGoodsMapper.batchDeleteByActivityid(new long[] { id });
      RecommendActivity activity = new RecommendActivity();
      activity.setId(id);
      recommendActivityTaoBaoGoodsMapper.batchDeleteByActivityid(new long[] { activity.getId() });
      activity.setActivityUser(new ActivityUser(activityUid));
      activity.setGoodsList(null);
      activity.setOrderBy(0);
      activity.setShareCount(shareCount);
      activity.setTitle(title);
      activity.setTop(top);
      Integer shareCount = activity.getShareCount();
      if (shareCount == null) {
         activity.setShareCount(0);
      }
      Boolean top = activity.getTop();
      if (top == null) {
         activity.setTop(false);
      }
      // 时间转换
      conversionTime(activity);
      activity.setType(RecommendActivity.TYPE_SHARE_GOODS);
      recommendActivityMapper.updateByPrimaryKeySelective(activity);
@@ -497,18 +558,28 @@
      return activity;
   }
   @Transactional
   @Override
   public RecommendActivity updateInviteImgRecommendActivity(Long id, Long activityUid, String title, String url,
         boolean top, int shareCount, int px, int py, int erCodeSize) throws ActivityException {
      recommendActivityImgMapper.batchDeleteByActivityid(new long[] { id });
      RecommendActivity activity = new RecommendActivity();
      activity.setId(id);
   public RecommendActivity updateInviteImgRecommendActivity(Long activityUid, RecommendActivity activity, String url,
         int px, int py, int erCodeSize) throws ActivityException , Exception{
      recommendActivityImgMapper.batchDeleteByActivityid(new long[] { activity.getId() });
      Integer shareCount = activity.getShareCount();
      if (shareCount == null) {
         activity.setShareCount(0);
      }
      Boolean top = activity.getTop();
      if (top == null) {
         activity.setTop(false);
      }
      // 时间转换
      conversionTime(activity);
      activity.setActivityUser(new ActivityUser(activityUid));
      activity.setGoodsList(null);
      activity.setOrderBy(0);
      activity.setShareCount(shareCount);
      activity.setTitle(title);
      activity.setTop(top);
      activity.setType(RecommendActivity.TYPE_INVITE);
      recommendActivityMapper.updateByPrimaryKeySelective(activity);
      RecommendActivityImg img = new RecommendActivityImg();
@@ -539,18 +610,27 @@
      return activity;
   }
   @Transactional
   @Override
   public RecommendActivity updateTextAndImgRecommendActivity(Long id, Long activityUid, String title,
         List<String> imgList, boolean top, int shareCount) throws ActivityException {
      recommendActivityImgMapper.batchDeleteByActivityid(new long[] { id });
      RecommendActivity activity = new RecommendActivity();
      activity.setId(id);
   public RecommendActivity updateTextAndImgRecommendActivity(Long activityUid, List<String> imgList,
         RecommendActivity activity) throws ActivityException , Exception{
      recommendActivityImgMapper.batchDeleteByActivityid(new long[] { activity.getId() });
      Integer shareCount = activity.getShareCount();
      if (shareCount == null) {
         activity.setShareCount(0);
      }
      Boolean top = activity.getTop();
      if (top == null) {
         activity.setTop(false);
      }
      // 时间转换
      conversionTime(activity);
      activity.setActivityUser(new ActivityUser(activityUid));
      activity.setGoodsList(null);
      activity.setOrderBy(0);
      activity.setShareCount(shareCount);
      activity.setTitle(title);
      activity.setTop(top);
      activity.setType(RecommendActivity.TYPE_TEXTIMG);
      recommendActivityMapper.updateByPrimaryKeySelective(activity);
      for (String imgUrl : imgList) {
@@ -579,22 +659,43 @@
   @Override
   public List<RecommendActivity> getRecommendActivityListCache(int page, int pageSize) {
      List<RecommendActivity> activityList = getRecommendActivityList(page, pageSize);
      if (activityList != null)
      if (activityList != null) {
         for (RecommendActivity activity : activityList) {
            if (activity != null && activity.getGoodsList() != null)
            if (activity != null && activity.getGoodsList() != null) {
               for (RecommendActivityTaoBaoGoods goods : activity.getGoodsList()) {
                  goods.setQuanPrice(goods.getDesc().replace("券后价:¥", ""));
               }
            }
            // 过滤一遍
            if (!StringUtil.isNullOrEmpty(activity.getTitle())) {
               activity.setTitle(Jsoup.parse(activity.getTitle()).text());
               if (activity.getShareCount() >= 10000) {
                  activity.setShareCountShow(NumberUtil.get1PointNumber(activity.getShareCount() / 10000.0) + "万");
               } else {
                  activity.setShareCountShow(activity.getShareCount() + "");
               }
            }
            Date startTime = activity.getStartTime();
            if (startTime != null) {
               activity.setCreateTime(startTime);
            }
         }
      }
      return activityList;
   }
   @Cacheable(value = "activityCache", key = "'getRecommendActivityCount'")
   @Override
   public long getRecommendActivityCountCache() {
      return getRecommendActivityCount();
      return recommendActivityMapper.getRecommendActivityEffectiveCount();
   }
   @Transactional
   @Override
   public void upgradeShareGoodsRecommendActivity(Long id) throws ActivityException {
      // 获取商品
@@ -699,4 +800,58 @@
   public ActivityUser selectActivityUserByPrimaryKey(Long id) {
      return activityUserMapper.selectByPrimaryKey(id);
   }
   @Transactional
   @Override
   public void updateRecommendActivityGoods(TaoBaoGoodsBrief goods) {
      List<RecommendActivityTaoBaoGoods> list = recommendActivityTaoBaoGoodsMapper
            .selectByAuctionId(goods.getAuctionId());
      BigDecimal d = TaoBaoUtil.getAfterUseCouplePrice(goods);
      RecommendActivityTaoBaoGoods updateGoods = new RecommendActivityTaoBaoGoods();
      if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"无".equalsIgnoreCase(goods.getCouponInfo())) {
         updateGoods.setDesc("券后价:¥" + d);
         updateGoods.setState(RecommendActivityTaoBaoGoods.STATE_NORMAL);
      } else {
         updateGoods.setState(RecommendActivityTaoBaoGoods.STATE_UNSHELVE);
      }
      if (list != null)
         for (RecommendActivityTaoBaoGoods tbGoods : list) {
            updateGoods.setId(tbGoods.getId());
            recommendActivityTaoBaoGoodsMapper.updateByPrimaryKeySelective(updateGoods);
         }
   }
   /**
    * web段时间转换
    * @param record
    */
   public void conversionTime(RecommendActivity record) throws ActivityException, Exception {
      // 是否时间控制
      if(!record.isTimeTask()) {
         record.setStartTime(null);
         record.setEndTime(null);
      } else {
         String startTime_str = record.getStartTime_str();
         String endTime_str = record.getEndTime_str();
         if ((startTime_str == null|| startTime_str.trim().length() == 0)
               && (endTime_str == null || endTime_str.trim().length() == 0)) {
            throw new ActivityException(1, "请输入控制时间");
         } else {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            if (startTime_str != null && startTime_str.trim().length() > 0) {
               startTime_str = startTime_str.replaceAll("T", " ");
               record.setStartTime(format.parse(startTime_str));
            }
            if (endTime_str != null && endTime_str.trim().length() > 0) {
               endTime_str = endTime_str.replaceAll("T", " ");
               record.setEndTime(format.parse(endTime_str));
            }
         }
      }
   }
}