yujian
2019-08-14 8e751a7ee99afce71ac615a6111228c5c785ee46
Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div
43个文件已修改
1个文件已添加
1013 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/BrandControllerV2.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/web/TLJBuyGoodsController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/goods/taobao/dataoke/DaTaoKeGoodsDetailV2Dao.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/taobao/TaoBaoUnionConfigMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/taobao/TLJBuyGoodsDao.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/jd/JDCommissionInfo.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/dynamic/GoodsPicture.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/taobao/TaoBaoUnionConfig.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/TaoLiJinJob.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/UpdateDaTaoKeJob.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/UpdateTaoBaoGoodsJob.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2Mapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/taobao/TaoBaoUnionConfigMapper.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopGoodsServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonTemplateContentServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/recommend/HomeRecommendGoodsServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SpecialServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityGoodsServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/monitor/BusinessEmergent110ServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/ShareHotGoodsServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TLJBuyGoodsServiceImpl.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoUnionConfigServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/ShareGoodsService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/monitor/BusinessEmergent110Service.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/TLJBuyGoodsService.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/TaoBaoUnionConfigService.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/dataoke/DaTaoKeGoodsDetailV2Service.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/TaoBaoConstant.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/cache/HttpGoodsCacheManager.java 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/goods/MoneyInfoVO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/msg/ClientTextStyleVO.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java
@@ -16,9 +16,11 @@
import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TBPid;
import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.ShareGoodsException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
@@ -26,6 +28,7 @@
import com.yeshi.fanli.service.inter.goods.recommend.RecommendGoodsDeleteHistoryService;
import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
@@ -36,6 +39,7 @@
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.factory.MonitorFactory;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -78,11 +82,24 @@
    @Resource
    private UserTaoLiJinRecordService userTaoLiJinRecordService;
    @Resource
    private TLJBuyGoodsService tljBuyGoodsService;
    private void doTaoLiJinBuy(Long uid, Long auctionId, PrintWriter out) {
        JSONObject data = new JSONObject();
        TaoBaoLink taoBaoLink;
        try {
            taoBaoLink = shareGoodsService.getTaoLiJinLinkForBuyWithOutFanLi(uid, auctionId);
            // 根据日期与商品ID查询
            TLJBuyGoods tljBuyGoods = tljBuyGoodsService.selectByAuctionIdAndDay(auctionId,
                    TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"));
            String appKey = tljBuyGoods.getAppKey();
            TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppKeyCache(appKey);
            if (config == null) {
                out.print(JsonUtil.loadFalseResult(2, "生成推广链接失败"));
                return;
            }
            TaoKeAppInfo app = new TaoKeAppInfo(config.getAppKey(), config.getAppSecret(), config.getDefaultPid());
            taoBaoLink = shareGoodsService.getTaoLiJinLinkForBuyWithOutFanLi(uid, auctionId, app);
        } catch (ShareGoodsException e) {
            out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage()));
            return;
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/BrandControllerV2.java
@@ -279,6 +279,9 @@
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            // 商品信息过滤
            listGoodsBrief = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(listGoodsBrief);
            for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
                if (listTaoKeGoods != null && listTaoKeGoods.size() > 0) {
                    boolean stateSale = false; // 默认停售
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConfigControllerV2.java
@@ -243,7 +243,11 @@
    @RequestMapping(value = "getWebConfig", method = RequestMethod.POST)
    public void getWebConfig(AcceptData acceptData, String url, PrintWriter out) {
        JSONObject data = new JSONObject();
        if (url != null && (url.contains("s.click") || url.contains("taobao.com") || url.contains("tmall.com")
        if (url != null && url.contains("ifeeds.tmall.com/article.html?")) {
            data.put("baichuan", true);
            data.put("goodsDetail", false);
        } else if (url != null && (url.contains("s.click") || url.contains("taobao.com") || url.contains("tmall.com")
                || url.contains("m.tb.cn"))) {
            data.put("baichuan", true);// 采用阿里百川的方式加载webview
            data.put("goodsDetail", true);// 需要拦截商品详情
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
@@ -129,10 +129,16 @@
            JSONObject root = specialService.listCacheSpecialToIndex(acceptData, deviceSex);
            // 2、顶部轮播图
            List<SwiperPicture> topPicList = swiperPictureService.getByBannerCard("index_top");
            if (topPicList == null) {
                topPicList = new ArrayList<SwiperPicture>();
            List<SwiperPicture> oldtopPicList = swiperPictureService.getByBannerCard("index_top");
            List<SwiperPicture> topPicList = new ArrayList<>();
            if (oldtopPicList != null && oldtopPicList.size() > 0)
                topPicList.addAll(oldtopPicList);
            if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
                SwiperPicture notifyReName = swiperPictureService.selectByPrimaryKey(162L);
                if (notifyReName != null)
                    topPicList.add(0, notifyReName);
            }
            root.put("topPicList", JsonUtil.getApiCommonGson().toJson(topPicList));
            // 3、邀请有奖
fanli/src/main/java/com/yeshi/fanli/controller/web/TLJBuyGoodsController.java
@@ -2,6 +2,7 @@
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -17,8 +18,11 @@
import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
@@ -37,6 +41,9 @@
    @Resource
    private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
    @Resource
    private TaoBaoUnionConfigService taoBaoUnionConfigService;
    /**
     * 拉取备选商品
@@ -94,8 +101,7 @@
                    int totalHongBaoCount = 2000 + (int) (Math.random() * 8000);
                    int leftHongBaoCount = 200 + (int) (Math.random() * 2000);
                    tljBuyGoodsService.addTLJBuyGoods(
                            new TLJBuyGoods(null, day, new Date(), goods, totalHongBaoCount, leftHongBaoCount),
                            TaoBaoConstant.ownBuyApp);
                            new TLJBuyGoods(null, day, new Date(), goods, totalHongBaoCount, leftHongBaoCount));
                }
            }
        }
@@ -117,7 +123,16 @@
        }
        // 最多30个商品
        List<TLJBuyGoods> listGoods = tljBuyGoodsService.listByDay(day, 30);
        List<TLJBuyGoods> listGoods = new ArrayList<>();
        List<TaoBaoUnionConfig> coinfigList = taoBaoUnionConfigService
                .getConfigByTypeCache(TaoBaoUnionConfig.TYPE_TLJ_BUY);
        for (TaoBaoUnionConfig app : coinfigList) {
            List<TLJBuyGoods> list = tljBuyGoodsService.listByDay(app.getAppKey(), day, 30);
            if (list != null && list.size() > 0) {
                listGoods.addAll(list);
            }
        }
        JSONArray array = new JSONArray();
        for (TLJBuyGoods sh : listGoods) {
            TaoBaoGoodsBriefExtra item = TaoBaoUtil.getTaoBaoGoodsBriefExtra(sh.getGoods(),
fanli/src/main/java/com/yeshi/fanli/dao/goods/taobao/dataoke/DaTaoKeGoodsDetailV2Dao.java
@@ -160,4 +160,21 @@
        return mongoTemplate.find(query, getEntityClass());
    }
    /**
     * 查询删除更新时间超过一段时间的
     *
     * @param minUpdateTime
     * @param start
     * @param count
     * @return
     */
    public int listAndRemoveByMinUpdateTime(Date minUpdateTime, int start, int count) {
        Query query = new Query();
        query.addCriteria(Criteria.where("updateTime").lt(minUpdateTime));
        query.skip(start);
        query.limit(count);
        List<DaTaoKeDetailV2> list = mongoTemplate.findAllAndRemove(query, DaTaoKeDetailV2.class);
        return list.size();
    }
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/taobao/TaoBaoUnionConfigMapper.java
@@ -21,4 +21,8 @@
    int updateByPrimaryKeySelective(TaoBaoUnionConfig record);
    int updateByPrimaryKey(TaoBaoUnionConfig record);
    //根据appkey查询
    TaoBaoUnionConfig selectByAppKey(String appKey);
}
fanli/src/main/java/com/yeshi/fanli/dao/taobao/TLJBuyGoodsDao.java
@@ -12,17 +12,27 @@
@Repository
public class TLJBuyGoodsDao extends MongodbBaseDao<TLJBuyGoods> {
    public List<TLJBuyGoods> listByDayOrderByUpdateTime(String day, int page, int pageSize) {
    public List<TLJBuyGoods> listByDayOrderByUpdateTime(String appKey, String day, int page, int pageSize) {
        Query query = new Query();
        Criteria ca = Criteria.where("day").is(day);
        if (appKey != null)
            ca = ca.and("appKey").is(appKey);
        query.addCriteria(ca);
        query.limit(pageSize);
        query.skip((page - 1) * pageSize).with(new Sort(Sort.Direction.DESC, "updateTime"));
        return mongoTemplate.find(query, TLJBuyGoods.class);
    }
    public long countByDayAndAppKey(String appKey, String day) {
        Query query = new Query();
        Criteria ca = Criteria.where("day").is(day);
        if (appKey != null)
            ca = ca.and("appKey").is(appKey);
        query.addCriteria(ca);
        return mongoTemplate.count(query, TLJBuyGoods.class);
    }
    public void deleteByGoodsId(Long goodsId) {
        Query query = new Query();
        Criteria ca = Criteria.where("goods.auctionId").is(goodsId);
fanli/src/main/java/com/yeshi/fanli/dto/jd/JDCommissionInfo.java
@@ -1,24 +1,29 @@
package com.yeshi.fanli.dto.jd;
import java.io.Serializable;
import java.math.BigDecimal;
public class JDCommissionInfo {
private BigDecimal commission;//佣金
private BigDecimal commissionShare;//佣金比例
public class JDCommissionInfo implements Serializable {
    /**
         *
         */
    private static final long serialVersionUID = 1L;
    private BigDecimal commission;// 佣金
    private BigDecimal commissionShare;// 佣金比例
public BigDecimal getCommissionShare() {
    return commissionShare;
}
    public BigDecimal getCommissionShare() {
        return commissionShare;
    }
public void setCommissionShare(BigDecimal commissionShare) {
    this.commissionShare = commissionShare;
}
    public void setCommissionShare(BigDecimal commissionShare) {
        this.commissionShare = commissionShare;
    }
public BigDecimal getCommission() {
    return commission;
}
    public BigDecimal getCommission() {
        return commission;
    }
public void setCommission(BigDecimal commission) {
    this.commission = commission;
}
    public void setCommission(BigDecimal commission) {
        this.commission = commission;
    }
}
fanli/src/main/java/com/yeshi/fanli/entity/dynamic/GoodsPicture.java
@@ -1,11 +1,17 @@
package com.yeshi.fanli.entity.dynamic;
import java.io.Serializable;
import com.google.gson.annotations.Expose;
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
public class GoodsPicture {
public class GoodsPicture implements Serializable{
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    // 图片链接
    @Expose
    private String url;
fanli/src/main/java/com/yeshi/fanli/entity/taobao/TaoBaoUnionConfig.java
@@ -12,15 +12,20 @@
 *
 */
@Table("yeshi_ec_taobao_union_config")
public class TaoBaoUnionConfig implements Serializable{
public class TaoBaoUnionConfig implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public final static int TYPE_ANDROID = 1;
    public final static int TYPE_IOS = 2;
    public final static int TYPE_SHARE = 0;
    public final static int TYPE_TLJ_BUY = 3;// 自购立减淘礼金
    public final static int STATE_VALID = 0;// 正常
    public final static int STATE_NOVALID = 1;// 不正常
    @Column(name = "tc_id")
    private Long id;
    @Column(name = "tc_account")
@@ -41,6 +46,26 @@
    private String appName;
    @Column(name = "tc_type")
    private Integer type;
    @Column(name = "tc_state")
    private Integer state;
    @Column(name = "tc_state_desc")
    private String stateDesc;
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public String getStateDesc() {
        return stateDesc;
    }
    public void setStateDesc(String stateDesc) {
        this.stateDesc = stateDesc;
    }
    public TaoBaoUnionConfig() {
fanli/src/main/java/com/yeshi/fanli/job/TaoLiJinJob.java
@@ -13,11 +13,13 @@
import com.yeshi.fanli.entity.taobao.ShareHotGoods;
import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinReportService;
import com.yeshi.fanli.util.Constant;
@@ -37,9 +39,12 @@
    @Resource
    private TLJBuyGoodsService tljBuyGoodsService;
    @Resource
    private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
    @Resource
    private TaoBaoUnionConfigService taoBaoUnionConfigService;
    /**
     * 更新报告
@@ -107,16 +112,19 @@
            return;
        LogHelper.test("验证自购立减商品");
        String day = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd");
        List<TLJBuyGoods> list = tljBuyGoodsService.listByDay(day, 15);
        int count = 0;
        for (int i = 0; i < list.size(); i++) {
            if (count >= 10)
                break;
            boolean success = shareHotGoodsService.verifyCanCreateTLJ(list.get(i).getGoods().getAuctionId(),
                    new TaoKeAppInfo(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET,
                            TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT));
            if (success) {
                count++;
        List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
                .getConfigByTypeCache(TaoBaoUnionConfig.TYPE_TLJ_BUY);
        for (TaoBaoUnionConfig app : configList) {
            List<TLJBuyGoods> list = tljBuyGoodsService.listByDay(app.getAppKey(), day, 15);// 获取最多15个商品
            int count = 0;
            for (int i = 0; i < list.size(); i++) {
                if (count >= 10)
                    break;
                boolean success = shareHotGoodsService.verifyCanCreateTLJ(list.get(i).getGoods().getAuctionId(),
                        new TaoKeAppInfo(app.getAppKey(), app.getAppSecret(), app.getDefaultPid()));
                if (success) {
                    count++;
                }
            }
        }
    }
@@ -131,33 +139,16 @@
            }
            if (goods != null && goods.getCouponAmount() != null
                    && goods.getCouponAmount().compareTo(new BigDecimal(0)) > 0) {
                if (TaoBaoUtil.getAfterUseCouplePrice(goods).multiply(goods.getTkRate())
                        .compareTo(new BigDecimal("143")) >= 0) {
                    goods = daTaoKeGoodsDetailService.filterTaoBaoGoods(goods);
                    int totalHongBaoCount = 2000 + (int) (Math.random() * 8000);
                    int leftHongBaoCount = 200 + (int) (Math.random() * 2000);
                    tljBuyGoodsService.addTLJBuyGoods(
                            new TLJBuyGoods(null, day, new Date(), goods, totalHongBaoCount, leftHongBaoCount),
                            TaoBaoConstant.ownBuyApp);
                }
                            new TLJBuyGoods(null, day, new Date(), goods, totalHongBaoCount, leftHongBaoCount));
                }
            }
        }
    }
    /**
     * 每天晚上11点50添加淘礼金1个商品,用于兼容Android前端没有商品不显示banner的问题
     */
    @Scheduled(cron = "0 50 23 * * ? ")
    public void autoAddTLJBuyGoods() {
        if (!Constant.IS_TASK)
            return;
        String day = TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24L, "yyyy-MM-dd");
        List<TaoBaoGoodsBrief> list = tljBuyGoodsService.listPreGoods(1);
        Collections.shuffle(list);
        if (list.size() > 0)
            list = list.subList(0, 1);
        addTLJBuyGoods(list, day);
    }
    /**
@@ -170,8 +161,11 @@
        String day = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd");
        List<TaoBaoGoodsBrief> list = tljBuyGoodsService.listPreGoods(1);
        Collections.shuffle(list);
        if (list.size() > 20)
            list = list.subList(0, 20);
        List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
                .getConfigByTypeCache(TaoBaoUnionConfig.TYPE_TLJ_BUY);
        if (list.size() > 12 * configList.size())
            list = list.subList(0, 12 * configList.size());
        addTLJBuyGoods(list, day);
    }
fanli/src/main/java/com/yeshi/fanli/job/UpdateDaTaoKeJob.java
@@ -1,5 +1,7 @@
package com.yeshi.fanli.job;
import java.util.Date;
import javax.annotation.Resource;
import org.springframework.scheduling.annotation.Scheduled;
@@ -120,4 +122,14 @@
        }
    }
    /**
     * 删除过期数据(每10分钟删除一次)
     */
    @Scheduled(cron = "0 0/10 * * * ? ")
    public void doDeleteOutOfDate() {
        if (!Constant.IS_TASK)
            return;
        daTaoKeGoodsDetailV2Service.deleteOutOfDate(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24L));
    }
}
fanli/src/main/java/com/yeshi/fanli/job/UpdateTaoBaoGoodsJob.java
@@ -12,6 +12,7 @@
import com.yeshi.fanli.exception.ActivityException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.activity.ActivityService;
import com.yeshi.fanli.service.inter.brand.BrandClassShopGoodsService;
import com.yeshi.fanli.service.inter.brand.BrandClassShopService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.lable.LabelService;
@@ -23,6 +24,7 @@
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.util.CMQManager;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.cache.HttpGoodsCacheManager;
/**
 * 淘宝商品更细
@@ -63,6 +65,12 @@
    @Resource
    private TLJBuyGoodsService tljBuyGoodsService;
    @Resource
    private BrandClassShopGoodsService brandClassShopGoodsService;
    @Resource
    private HttpGoodsCacheManager httpGoodsCacheManager;
    // 动态商品更新 ,1个小时更新
    @Scheduled(cron = "0 0 */1 * * ?")
@@ -162,11 +170,29 @@
        }
    }
    // 更新品牌商品,每天早上6点执行一次
    // 更新增加品牌商品,每天早上6点执行一次
    @Scheduled(cron = "0 0 6 * * ? ")
    public void updateBrandGoods() {
    public void updateAddBrandGoods() {
        if (!Constant.IS_TASK)
            return;
        brandClassShopService.updateShopGoods();
    }
    // 更新原有精品库的品牌商品,每天凌晨3点执行一次
    @Scheduled(cron = "0 0 3 * * ? ")
    public void updateBrandGoods() {
        if (!Constant.IS_TASK)
            return;
        brandClassShopGoodsService.startUpdateGoods();
    }
    // 每天凌晨4点模拟请求
    @Scheduled(cron = "0 0 4 * * ? ")
    public void simulateRequest() {
        httpGoodsCacheManager.requestHomeRecommend();
        httpGoodsCacheManager.requestClassGoods();
        httpGoodsCacheManager.requestBrandGoods();
        httpGoodsCacheManager.requestDynamic();
        httpGoodsCacheManager.requestCommonTemplate();
    }
}
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2Mapper.xml
@@ -100,7 +100,7 @@
        h.`hb_pre_get_time` IS NOT
        NULL AND h.`hb_pre_get_time`
        <![CDATA[ <]]>
        NOW() limit #{count}
        NOW()  order by hb_pre_get_time desc limit #{count}
    </select>
    <!-- 获取用户奖金列表 -->
fanli/src/main/java/com/yeshi/fanli/mapping/taobao/TaoBaoUnionConfigMapper.xml
@@ -14,8 +14,10 @@
        <result column="tc_beizhu" property="beizhu" jdbcType="VARCHAR" />
        <result column="tc_appname" property="appName" jdbcType="VARCHAR" />
        <result column="tc_type" property="type" jdbcType="INTEGER" />
        <result column="tc_state" property="state" jdbcType="INTEGER" />
        <result column="tc_state_desc" property="stateDesc" jdbcType="VARCHAR" />
    </resultMap>
    <sql id="Base_Column_List">tc_id,tc_account,tc_account_id,tc_appkey,tc_appsecret,tc_appid,tc_default_pid,tc_beizhu,tc_appname,tc_type
    <sql id="Base_Column_List">tc_id,tc_account,tc_account_id,tc_appkey,tc_appsecret,tc_appid,tc_default_pid,tc_beizhu,tc_appname,tc_type,tc_state,tc_state_desc
    </sql>
    <select id="selectByPrimaryKey" resultMap="BaseResultMap"
        parameterType="java.lang.Long">
@@ -23,36 +25,34 @@
        <include refid="Base_Column_List" />
        from yeshi_ec_taobao_union_config where tc_id = #{id,jdbcType=BIGINT}
    </select>
    <select id="selectByType" resultMap="BaseResultMap"
        parameterType="java.lang.Integer">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_taobao_union_config where tc_type = #{type,jdbcType=INTEGER}
        from yeshi_ec_taobao_union_config where tc_type =
        #{type,jdbcType=INTEGER}
    </select>
    <select id="selectByAppId" resultMap="BaseResultMap"
        parameterType="java.lang.String">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_taobao_union_config where tc_appid = #{0}
    </select>
    <select id="selectByAppKey" resultMap="BaseResultMap"
        parameterType="java.lang.String">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_taobao_union_config where tc_appkey = #{0}
    </select>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from
        yeshi_ec_taobao_union_config where tc_id = #{id,jdbcType=BIGINT}
    </delete>
    <insert id="insert" parameterType="com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig"
        useGeneratedKeys="true" keyProperty="id">insert into
        yeshi_ec_taobao_union_config
        (tc_id,tc_account,tc_account_id,tc_appkey,tc_appsecret,tc_appid,tc_default_pid,tc_beizhu,tc_appname,tc_type)
        (tc_id,tc_account,tc_account_id,tc_appkey,tc_appsecret,tc_appid,tc_default_pid,tc_beizhu,tc_appname,tc_type,tc_state,tc_state_desc)
        values
        (#{id,jdbcType=BIGINT},#{account,jdbcType=VARCHAR},#{accountId,jdbcType=VARCHAR},#{appKey,jdbcType=VARCHAR},#{appSecret,jdbcType=VARCHAR},#{appId,jdbcType=VARCHAR},#{defaultPid,jdbcType=VARCHAR},#{beizhu,jdbcType=VARCHAR},#{appName,jdbcType=VARCHAR},#{type,jdbcType=INTEGER})
        (#{id,jdbcType=BIGINT},#{account,jdbcType=VARCHAR},#{accountId,jdbcType=VARCHAR},#{appKey,jdbcType=VARCHAR},#{appSecret,jdbcType=VARCHAR},#{appId,jdbcType=VARCHAR},#{defaultPid,jdbcType=VARCHAR},#{beizhu,jdbcType=VARCHAR},#{appName,jdbcType=VARCHAR},#{type,jdbcType=INTEGER},#{state,jdbcType=INTEGER},#{stateDesc,jdbcType=VARCHAR})
    </insert>
    <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig"
        useGeneratedKeys="true" keyProperty="id">
@@ -68,6 +68,8 @@
            <if test="beizhu != null">tc_beizhu,</if>
            <if test="appName != null">tc_appname,</if>
            <if test="type != null">tc_type,</if>
            <if test="state != null">tc_state,</if>
            <if test="stateDesc != null">tc_state_desc,</if>
        </trim>
        values
        <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -81,6 +83,8 @@
            <if test="beizhu != null">#{beizhu,jdbcType=VARCHAR},</if>
            <if test="appName != null">#{appName,jdbcType=VARCHAR},</if>
            <if test="type != null">#{type,jdbcType=INTEGER},</if>
            <if test="state != null">#{state,jdbcType=INTEGER}</if>
            <if test="stateDesc != null">#{stateDesc,jdbcType=VARCHAR}</if>
        </trim>
    </insert>
    <update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig">update
@@ -92,8 +96,9 @@
        #{appId,jdbcType=VARCHAR},tc_default_pid =
        #{defaultPid,jdbcType=VARCHAR},tc_beizhu =
        #{beizhu,jdbcType=VARCHAR},tc_appname =
        #{appName,jdbcType=VARCHAR},tc_type = #{type,jdbcType=INTEGER} where
        tc_id = #{id,jdbcType=BIGINT}
        #{appName,jdbcType=VARCHAR},tc_type = #{type,jdbcType=INTEGER}
        ,tc_state =#{state,jdbcType=INTEGER} ,tc_state_desc
        =#{stateDesc,jdbcType=VARCHAR} where tc_id = #{id,jdbcType=BIGINT}
    </update>
    <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig">
        update yeshi_ec_taobao_union_config
@@ -107,6 +112,8 @@
            <if test="beizhu != null">tc_beizhu=#{beizhu,jdbcType=VARCHAR},</if>
            <if test="appName != null">tc_appname=#{appName,jdbcType=VARCHAR},</if>
            <if test="type != null">tc_type=#{type,jdbcType=INTEGER},</if>
            <if test="state !=null">tc_state =#{state,jdbcType=INTEGER},</if>
            <if test="stateDesc !=null">tc_state_desc =#{stateDesc,jdbcType=VARCHAR},</if>
        </set>
        where tc_id = #{id,jdbcType=BIGINT}
    </update>
fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopGoodsServiceImpl.java
@@ -8,6 +8,7 @@
import com.yeshi.fanli.entity.brand.BrandClassShop;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.brand.BrandClassShopGoodsService;
import com.yeshi.fanli.service.inter.brand.BrandClassShopService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
@@ -38,19 +39,24 @@
    @Override
    public void startUpdateGoods() {
        long count = brandClassShopService.countQuery(null, null, BrandClassShop.STATE_VALID);
        int page = (int) (count % 100 == 0 ? count / 100 : count / 100 + 1);
        int goodsCount = 0;
        try {
            long count = brandClassShopService.countQuery(null, null, BrandClassShop.STATE_VALID);
            int page = (int) (count % 100 == 0 ? count / 100 : count / 100 + 1);
        for (int i = 0; i < page; i++) {
            List<BrandClassShop> shopList = brandClassShopService.listQuery(i * 100, 100, null, null,
                    BrandClassShop.STATE_VALID);
            // 每个品牌最多更新100个商品
            if (shopList != null)
                for (BrandClassShop shop : shopList) {
                    Long sellerId = shop.getShop().getId();
                    List<TaoBaoGoodsBrief> goodsList = listBrandShopGoods(sellerId, 1, 100);
                    taoBaoGoodsUpdateService.addUpdateQueueAsync(goodsList);
                }
            for (int i = 0; i < page; i++) {
                List<BrandClassShop> shopList = brandClassShopService.listQuery(i * 100, 100, null, null,
                        BrandClassShop.STATE_VALID);
                // 每个品牌最多更新100个商品
                if (shopList != null)
                    for (BrandClassShop shop : shopList) {
                        Long sellerId = shop.getShop().getId();
                        List<TaoBaoGoodsBrief> goodsList = listBrandShopGoods(sellerId, 1, 100);
                        taoBaoGoodsUpdateService.addUpdateQueueAsync(goodsList);
                    }
            }
        } finally {
            LogHelper.test("品牌商品更新数量:" + goodsCount);
        }
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/brand/BrandClassShopServiceImpl.java
@@ -3,7 +3,9 @@
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
@@ -311,6 +313,9 @@
            count = taoBaoShopService.countBrandShopinfo(cid);
        }
        // 淘宝商品信息过滤
        Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterTaoBaoGoods(listInfo);
        BigDecimal proportion = hongBaoManageService.getFanLiRate();
        for (TaoBaoShopVO taoBaoShopVO : listInfo) {
@@ -332,7 +337,8 @@
            List<TaoBaoGoodsBriefExtra> listGoods = new ArrayList<TaoBaoGoodsBriefExtra>();
            List<TaoBaoGoodsBrief> listGoodsBrief = taoBaoShopVO.getListGoodsBrief();
            for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
                listGoods.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null));
                listGoods.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsMap.get(taoBaoGoodsBrief.getAuctionId()),
                        proportion.toString(), null));
            }
            taoBaoShopVO.setListGoods(listGoods);
        }
@@ -340,6 +346,25 @@
        data.put("list", JsonUtil.getApiCommonGson().toJson(listInfo));
        return data;
    }
    /**
     * 获取过滤商品
     *
     * @param listInfo
     * @return
     */
    private Map<Long, TaoBaoGoodsBrief> getFilterTaoBaoGoods(List<TaoBaoShopVO> listInfo) {
        // 过滤商品
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        for (TaoBaoShopVO taoBaoShopVO : listInfo) {
            goodsList.addAll(taoBaoShopVO.getListGoodsBrief());
        }
        goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
        Map<Long, TaoBaoGoodsBrief> goodsMap = new HashMap<>();
        for (TaoBaoGoodsBrief goods : goodsList)
            goodsMap.put(goods.getAuctionId(), goods);
        return goodsMap;
    }
    @Override
@@ -407,6 +432,10 @@
        BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
        BigDecimal shareRate = hongBaoManageService.getShareRate();
        // 淘宝商品信息过滤
        Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterTaoBaoGoods(listInfo);
        for (TaoBaoShopVO taoBaoShopVO : listInfo) {
            Integer userType = taoBaoShopVO.getUserType();
@@ -433,11 +462,12 @@
            List<GoodsDetailVO> listGoods = new ArrayList<GoodsDetailVO>();
            List<TaoBaoGoodsBrief> listGoodsBrief = taoBaoShopVO.getListGoodsBrief();
            // 商品添加到更新队列
            taoBaoGoodsUpdateService.addUpdateQueueAsync(listGoodsBrief);
            for (TaoBaoGoodsBrief taoBaoGoodsBrief : listGoodsBrief) {
                GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate,
                        shareRate);
                GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory
                        .convertTaoBao(goodsMap.get(taoBaoGoodsBrief.getAuctionId()), null, fanLiRate, shareRate);
                listGoods.add(goodsDetailVO);
            }
            taoBaoShopVO.setListGoodsVO(listGoods);
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
@@ -1,10 +1,13 @@
package com.yeshi.fanli.service.impl.dynamic;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.annotation.Resource;
@@ -916,6 +919,37 @@
        return list;
    }
    private Map<Long, TaoBaoGoodsBrief> getFilterGoodsMap(List<DynamicInfo> list) {
        // 提取过滤商品
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        for (DynamicInfo dynamicInfo : list) {
            List<GoodsPicture> gpList = dynamicInfo.getImgs();
            if (gpList != null)
                for (GoodsPicture gp : gpList) {
                    if (gp != null && gp.getGoods() != null) {
                        TaoBaoGoodsBriefExtra newGoods = new TaoBaoGoodsBriefExtra();
                        try {
                            PropertyUtils.copyProperties(newGoods, gp.getGoods());
                            goodsList.add(newGoods);
                        } catch (IllegalAccessException e) {
                            e.printStackTrace();
                        } catch (InvocationTargetException e) {
                            e.printStackTrace();
                        } catch (NoSuchMethodException e) {
                            e.printStackTrace();
                        }
                    }
                }
        }
        goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
        Map<Long, TaoBaoGoodsBrief> map = new HashMap<>();
        if (goodsList != null)
            for (TaoBaoGoodsBrief goods : goodsList)
                map.put(goods.getAuctionId(), goods);
        return map;
    }
    @Override
    @Cacheable(value = "dynamicCache", key = "'queryV2-'+#platform+'-'+#version+'-'+#start+'-'+#count+'-'+#cid+'-'+#subId")
    public List<DynamicInfo> queryV2(int platform, int version, int start, int count, Long cid, Long subId) {
@@ -924,6 +958,9 @@
        // 需要更新的商品
        List<TaoBaoGoodsBrief> taoBaoGoodsUpdateList = new ArrayList<>();
        if (list != null && list.size() > 0) {
            // 提取商品
            Map<Long, TaoBaoGoodsBrief> goodsMap = getFilterGoodsMap(list);
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            for (DynamicInfo dynamicInfo : list) {
@@ -974,8 +1011,15 @@
                            continue;
                        }
                        // 过滤券信息与资金信息
                        goods.setCouponAmount(goodsMap.get(goods.getAuctionId()).getCouponAmount());
                        goods.setZkPrice(goodsMap.get(goods.getAuctionId()).getZkPrice());
                        goods.setCouponStartFee(goodsMap.get(goods.getAuctionId()).getCouponStartFee());
                        goods.setTkRate(goodsMap.get(goods.getAuctionId()).getTkRate());
                        GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBaoGoodsBriefExtra(goods, fanLiRate,
                                shareRate);
                        goodsNew.setGoodsVO(detailVO);
                        goodsNew.setGoods(null);
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonTemplateContentServiceImpl.java
@@ -23,6 +23,7 @@
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaobaoMeterialService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.util.Constant;
@@ -47,6 +48,9 @@
    @Resource
    private QualityGoodsService qualityGoodsService;
    @Resource
    private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
    private static List<CommonContentNav> getCommonNav() {
        List<CommonContentNav> navList = new ArrayList<>();
@@ -134,36 +138,43 @@
    @Cacheable(value = "commonContentCache", key = "#type+'-'+#cid+'-'+#page+'-'+#pageSize")
    @Override
    public CommonContentResult getContentList(CommonContentTypeEnum type, String cid, int page, int pageSize) {
        CommonContentResult result = null;
        if (type == CommonContentTypeEnum._9k9) {
            return get9K9Content(cid, page, pageSize);
            result = get9K9Content(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.juJia) {
            return getJuJiaShengHuoContent(cid, page, pageSize);
            result = getJuJiaShengHuoContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.muYin) {
            return getMuYinJingXuanContent(cid, page, pageSize);
            result = getMuYinJingXuanContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.meiShi) {
            return getYouXuanMeiShiContent(cid, page, pageSize);
            result = getYouXuanMeiShiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.chuanYiDaPei) {
            return getChuanYiDaPeiContent(cid, page, pageSize);
            result = getChuanYiDaPeiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.meiZhuangGehu) {
            return getMeiZhuangGeHuContent(cid, page, pageSize);
            result = getMeiZhuangGeHuContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.jingPinXieBao) {
            return getJingPinXieBaoContent(cid, page, pageSize);
            result = getJingPinXieBaoContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.chaoNanReMai) {
            return getChaoNanReMaiContent(cid, page, pageSize);
            result = getChaoNanReMaiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.shuMaShouJi) {
            return getShuMaShouJiContent(cid, page, pageSize);
            result = getShuMaShouJiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.yunDongKuXie) {
            return getYunDongKuXieContent(cid, page, pageSize);
            result = getYunDongKuXieContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.qiCheHuWai) {
            return getQiCheHuWaiContent(cid, page, pageSize);
            result = getQiCheHuWaiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.chaoPinReMai) {
            return getChaoPinReMaiContent(cid, page, pageSize);
            result = getChaoPinReMaiContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.chaoSheng) {
            return getCaoShengContent(cid, page, pageSize);
            result = getCaoShengContent(cid, page, pageSize);
        } else if (type == CommonContentTypeEnum.haoQuan) {
            return getHaoQuanContent(cid, page, pageSize);
            result = getHaoQuanContent(cid, page, pageSize);
        }
        return null;
        if (result != null) {// 商品信息过滤
            List<TaoBaoGoodsBrief> goodsList = taoBaoGoodsUpdateService
                    .filterImportantTaoBaoGoods(result.getGoodsList());
            result.setGoodsList(goodsList);
        }
        return result;
    }
    /**
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java
@@ -40,10 +40,12 @@
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.impl.monitor.BusinessEmergent110ServiceImpl;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.UserTLJBuyHistoryService;
@@ -113,6 +115,9 @@
    @Resource
    private TLJBuyGoodsService tljBuyGoodsService;
    @Resource
    private BusinessEmergent110Service businessEmergent110Service;
    @Override
    public void addShareGoodsHistory(UserShareGoodsHistory history) {
@@ -792,7 +797,8 @@
    }
    @Override
    public TaoBaoLink getTaoLiJinLinkForBuyWithOutFanLi(Long uid, Long auctionId) throws ShareGoodsException {
    public TaoBaoLink getTaoLiJinLinkForBuyWithOutFanLi(Long uid, Long auctionId, TaoKeAppInfo app)
            throws ShareGoodsException {
        if (uid == null || uid <= 0) {
            throw new ShareGoodsException(1, "用户ID不能为空");
        }
@@ -817,12 +823,16 @@
        }
        BigDecimal perface = TaoBaoUtil.getGoodsHongBaoMoney(goods, new BigDecimal(70));
        TaoKeAppInfo app = TaoBaoConstant.ownBuyApp;
        TaoLiJinDTO taoLiJinDTO = null;
        try {
            taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, "自购立减", perface, 1, new Date(currentTime), sendEndTime,
                    new Date(currentTime), sendEndTime, app);
            taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, "自购立减", perface, 1,
                    new Date(currentTime - 1000 * 60 * 10L), sendEndTime, new Date(currentTime - 1000 * 60 * 10L),
                    sendEndTime, app);
        } catch (TaoKeApiException e) {
            if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) {// 资金不足
                TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppKeyCache(app.getAppKey());
                businessEmergent110Service.tljNoMoney(config.getAccount());
            }
            LogHelper.errorDetailInfo(e, e.getMessage(), null);
            throw new ShareGoodsException(5, "生成推广链接失败");
        }
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/recommend/HomeRecommendGoodsServiceImpl.java
@@ -22,6 +22,7 @@
import com.yeshi.fanli.service.inter.goods.recommend.HomeRecommendGoodsService;
import com.yeshi.fanli.service.inter.goods.recommend.RecommendGoodsDeleteHistoryService;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
@@ -44,6 +45,9 @@
    @Resource
    private TLJBuyGoodsService tljBuyGoodsService;
    @Resource
    private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
    @Override
    public List<TaoBaoGoodsBrief> listGoodsByPage(Long uid, String device, String imei, String idfa, int page) {
@@ -192,6 +196,8 @@
        if (goodsList != null && goodsList.size() > 0)
            saveObjList(goodsList, name, key);
        // 商品信息过滤
        goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
        return goodsList;
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/homemodule/SpecialServiceImpl.java
@@ -2,6 +2,7 @@
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@@ -390,6 +391,8 @@
            }
        }
        int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
        // 处理9.9包邮
        if (listArc != null && VersionUtil.greaterThan_1_5_50(acceptData.getPlatform(), acceptData.getVersion()))
            for (Special s : listArc) {
@@ -399,6 +402,16 @@
                    params.put("key", CommonContentTypeEnum._9k9.name());
                    params.put("title", CommonContentTypeEnum._9k9.getDesc());
                    s.setParams(params.toString());
                } else if (s.getName().contains("自购立减")) {
                    if (hour < 6) {// 0-6点之间不进入自购立减的页面
                        s.setJumpDetail(jumpDetailV2Service.getByTypeCache("web"));
                        JSONObject params = new JSONObject();
                        params.put("url", configService.get("tlj_own_buy_nogoods"));
                        s.setParams(params.toString());
                    } else {
                        s.setJumpDetail(jumpDetailV2Service.getByTypeCache("tlj_own_buy"));
                        s.setParams(null);
                    }
                }
            }
fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityGoodsServiceImpl.java
@@ -25,6 +25,7 @@
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.LabelService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.util.RedisManager;
@@ -61,6 +62,9 @@
    
    @Resource
    private HongBaoManageService hongBaoManageService;
    @Resource
    private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
    
    @Override
@@ -187,6 +191,8 @@
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        for (QualityFactory qf : list)
            goodsList.add(qf.getTaoBaoGoodsBrief());
        //过滤商品信息
        goodsList=taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
        goodsList = daTaoKeGoodsDetailService.filterTaoBaoGoods(goodsList);// 过滤大淘客标题
        for (int i = 0; i < list.size(); i++) {
            if (i < goodsList.size())
fanli/src/main/java/com/yeshi/fanli/service/impl/monitor/BusinessEmergent110ServiceImpl.java
@@ -12,6 +12,7 @@
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
import com.yeshi.fanli.util.EmergencyUtil;
import com.yeshi.fanli.util.StringUtil;
@Service
public class BusinessEmergent110ServiceImpl implements BusinessEmergent110Service {
@@ -114,4 +115,10 @@
        }
    }
    @Override
    public void tljNoMoney(String account) {
        String key = "monitor-error-tlj-no-money-" + StringUtil.Md5(account);
        EmergencyUtil.baoJin(key, String.format("淘礼金账户余额不足【账号:%s】", account), phones);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -1167,6 +1167,8 @@
                                || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
                            if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
                                // 免单成功
                                order.setOtherState(2);
                            } else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
                                order.setOtherState(1);
                            }
                        }
@@ -1182,6 +1184,8 @@
                                || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
                            if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
                                // 免单成功
                                order.setOtherState(2);
                            } else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
                                order.setOtherState(1);
                            }
                        }
@@ -1197,6 +1201,8 @@
                                || CouponTypeEnum.welfareFreeCoupon.name().equals(systemCouponType)) {
                            if (UserSystemCouponRecord.STATE_SUCCESS == couponState) {
                                // 免单成功
                                order.setOtherState(2);
                            } else if (UserSystemCouponRecord.STATE_FREE_ON == couponState) {
                                order.setOtherState(1);
                            }
                        }
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -228,7 +228,7 @@
    @Override
    public void fanli() {
        // 获取主红包
        List<HongBaoV2> hongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByType(HongBao.TYPE_TAOBAO, 1000);
        List<HongBaoV2> hongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByType(HongBaoV2.TYPE_ZIGOU, 1000);
        //
        // /**
        // * 需要实时更新待返利的订单
@@ -292,6 +292,11 @@
    public void fanli(HongBaoV2 hb1) throws TaoBaoWeiQuanException {
        // 查询最新的红包数据
        hb1 = hongBaoV2Mapper.selectByPrimaryKeyForUpdate(hb1.getId());
        // 正常用户才能到账
        UserInfo mainUser = userInfoMapper.selectByPrimaryKey(hb1.getUserInfo().getId());
        if (mainUser == null || mainUser.getState() != UserInfo.STATE_NORMAL) {
            return;
        }
        // 查询红包相关联的订单
        HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByHongBaoId(hb1.getId());
        if (hongBaoOrder == null) {
@@ -576,6 +581,12 @@
                            || co.getSourceType() == Constant.SOURCE_TYPE_PDD) {
                        hongBaoList.remove(i);
                        i--;
                    } else {// 上级用户不是正常用户,订单均不能到账
                        UserInfo userInfo = userInfoMapper.selectByPrimaryKey(item.getUserInfo().getId());
                        if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) {
                            hongBaoList.remove(i);
                            i--;
                        }
                    }
                }
            }
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/ShareHotGoodsServiceImpl.java
@@ -21,6 +21,7 @@
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.util.StringUtil;
@@ -40,6 +41,9 @@
    @Resource
    private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
    @Resource
    private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
    @Override
    public void addShareHotGoods(ShareHotGoods goods) {
@@ -65,6 +69,10 @@
            for (ShareHotGoods shg : list)
                goodsList.add(shg.getGoods());
        }
        //过滤基本商品信息
        goodsList=taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
        // 过滤下线商品
        goodsList = taoBaoGoodsBriefService.filterOffLineGoods(goodsList);
        // 添加大淘客信息
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TLJBuyGoodsServiceImpl.java
@@ -2,6 +2,7 @@
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -17,12 +18,14 @@
import com.yeshi.fanli.dto.taobao.TaoLiJinDTO;
import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.util.StringUtil;
@@ -51,6 +54,9 @@
    @Resource
    private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
    @Resource
    private TaoBaoUnionConfigService taoBaoUnionConfigService;
    @Override
    public void addTLJBuyGoods(TLJBuyGoods goods, TaoKeAppInfo taoKeAppInfo) {
        if (goods == null || StringUtil.isNullOrEmpty(goods.getDay()) || goods.getGoods() == null)
@@ -63,30 +69,45 @@
        tljBuyGoodsDao.save(goods);
    }
    @Override
    public void addTLJBuyGoods(TLJBuyGoods goods) {
        List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
                .getConfigByTypeCache(TaoBaoUnionConfig.TYPE_TLJ_BUY);
        for (TaoBaoUnionConfig app : configList) {
            long count = tljBuyGoodsDao.countByDayAndAppKey(app.getAppKey(), goods.getDay());
            if (count < 12) {
                addTLJBuyGoods(goods, new TaoKeAppInfo(app.getAppKey(), app.getAppSecret(), app.getDefaultPid()));
                break;
            }
        }
    }
    @Cacheable(value = "commonContentCache", key = "'tljBuy-listByDay'+#day")
    @Override
    public List<TLJBuyGoods> listByDay(String day) {
        List<TLJBuyGoods> list = listByDay(day, 10);
        // if (list.size() <= 10)
        // return list;
        // else {
        // List<TLJBuyGoods> newList = new ArrayList<>();
        // for (int i = 0; i < 10; i++) {
        // newList.add(list.get(i));
        // }
        // return newList;
        // }
        return list;
        List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
                .getConfigByTypeCache(TaoBaoUnionConfig.TYPE_TLJ_BUY);
        List<TLJBuyGoods> goodsList = new ArrayList<>();
        for (TaoBaoUnionConfig appInfo : configList) {
            List<TLJBuyGoods> list = listByDay(appInfo.getAppKey(), day, 10);
            if (list != null && list.size() > 0)
                goodsList.addAll(list);
        }
        Collections.shuffle(goodsList);
        return goodsList;
    }
    @Override
    public List<TLJBuyGoods> listByDay(String day, int count) {
        List<TLJBuyGoods> list = tljBuyGoodsDao.listByDayOrderByUpdateTime(day, 1, count);
    public List<TLJBuyGoods> listByDay(String appKey, String day, int count) {
        List<TLJBuyGoods> list = tljBuyGoodsDao.listByDayOrderByUpdateTime(appKey, day, 1, count);
        List<TaoBaoGoodsBrief> goodsList = new ArrayList<>();
        if (list != null) {
            for (TLJBuyGoods shg : list)
                goodsList.add(shg.getGoods());
        }
        // 过滤基本商品信息
        goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList);
        // 过滤下线商品
        goodsList = taoBaoGoodsBriefService.filterOffLineGoods(goodsList);
        // 添加大淘客信息
@@ -136,12 +157,12 @@
    }
    @Override
    public boolean verifyCanCreateTLJ(Long auctionId) {
    public boolean verifyCanCreateTLJ(Long auctionId,TaoKeAppInfo app) {
        TaoLiJinDTO taoLiJinDTO = null;
        try {
            taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, "淘礼金验证", new BigDecimal("1.00"), 1, new Date(),
                    new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 6), new Date(),
                    new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 6), TaoBaoConstant.ownBuyApp);
                    new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 6), app);
        } catch (TaoKeApiException e) {
            if (e.getCode() == TaoKeApiException.CODE_TLJ_FORBIDDEN) {
                // 该商品不支持创建淘礼金红包
@@ -222,4 +243,5 @@
    public TLJBuyGoods selectByAuctionIdAndDay(Long auctionId, String day) {
        return tljBuyGoodsDao.selectByAuctionIdAndDay(auctionId, day);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java
@@ -330,52 +330,60 @@
    @Override
    public List<TaoBaoGoodsBrief> filterImportantTaoBaoGoods(List<TaoBaoGoodsBrief> goodsList) {
        Map<Long, TaoBaoGoodsBrief> finalMap = new HashMap<>();
        // 原始数据全覆盖
        for (TaoBaoGoodsBrief goods : goodsList) {
            finalMap.put(goods.getAuctionId(), goods);
        }
        List<TaoBaoGoodsBrief> tempGoodsList = new ArrayList<>();
        tempGoodsList.addAll(goodsList);
        // 先从redis里面取覆盖
        for (int i = 0; i < tempGoodsList.size(); i++) {
            TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(tempGoodsList.get(i).getAuctionId());
            if (goods != null) {
        // 商品过滤不允许出错
        try {
            Map<Long, TaoBaoGoodsBrief> finalMap = new HashMap<>();
            // 原始数据全覆盖
            for (TaoBaoGoodsBrief goods : goodsList) {
                finalMap.put(goods.getAuctionId(), goods);
                tempGoodsList.remove(i--);
            }
        }
        // 再从mongodb中取覆盖
        List<Long> auctionIds = new ArrayList<>();
        for (TaoBaoGoodsBrief goods : tempGoodsList) {
            auctionIds.add(goods.getAuctionId());
        }
        List<TaoBaoGoodsBrief> mList = taoBaoGoodsUpdateDao.listByAuctionIds(auctionIds);
        if (mList != null)
            for (TaoBaoGoodsBrief goods : mList) {
                if (goods.getUpdatetime().getTime() > System.currentTimeMillis() - 1000 * 60 * 60 * 24L)// 在1天内更新的数据才参与过滤
            List<TaoBaoGoodsBrief> tempGoodsList = new ArrayList<>();
            tempGoodsList.addAll(goodsList);
            // 先从redis里面取覆盖
            for (int i = 0; i < tempGoodsList.size(); i++) {
                TaoBaoGoodsBrief goods = taoBaoGoodsCacheUtil
                        .getCommonTaoBaoGoodsInfo(tempGoodsList.get(i).getAuctionId());
                if (goods != null) {
                    finalMap.put(goods.getAuctionId(), goods);
                    tempGoodsList.remove(i--);
                }
            }
        List<TaoBaoGoodsBrief> finalList = new ArrayList<>();
        for (TaoBaoGoodsBrief goods : goodsList) {
            TaoBaoGoodsBrief newGoods = finalMap.get(goods.getAuctionId());
            // 过滤价格,返利比例,券信息
            goods.setZkPrice(newGoods.getZkPrice());
            goods.setTkRate(newGoods.getTkRate());
            goods.setCouponAmount(goods.getCouponAmount());
            goods.setCouponActivityId(newGoods.getCouponActivityId());
            goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime());
            goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime());
            goods.setCouponStartFee(newGoods.getCouponStartFee());
            goods.setCouponTotalCount(newGoods.getCouponTotalCount());
            goods.setCouponLeftCount(newGoods.getCouponLeftCount());
            // 再从mongodb中取覆盖
            List<Long> auctionIds = new ArrayList<>();
            for (TaoBaoGoodsBrief goods : tempGoodsList) {
                auctionIds.add(goods.getAuctionId());
            }
            List<TaoBaoGoodsBrief> mList = taoBaoGoodsUpdateDao.listByAuctionIds(auctionIds);
            if (mList != null)
                for (TaoBaoGoodsBrief goods : mList) {
                    if (goods.getUpdatetime().getTime() > System.currentTimeMillis() - 1000 * 60 * 60 * 24L)// 在1天内更新的数据才参与过滤
                        finalMap.put(goods.getAuctionId(), goods);
                }
            finalList.add(goods);
            List<TaoBaoGoodsBrief> finalList = new ArrayList<>();
            for (TaoBaoGoodsBrief goods : goodsList) {
                TaoBaoGoodsBrief newGoods = finalMap.get(goods.getAuctionId());
                // 过滤价格,返利比例,券信息
                goods.setZkPrice(newGoods.getZkPrice());
                goods.setTkRate(newGoods.getTkRate());
                goods.setCouponAmount(newGoods.getCouponAmount());
                goods.setCouponActivityId(newGoods.getCouponActivityId());
                goods.setCouponEffectiveEndTime(newGoods.getCouponEffectiveEndTime());
                goods.setCouponEffectiveStartTime(newGoods.getCouponEffectiveStartTime());
                goods.setCouponStartFee(newGoods.getCouponStartFee());
                goods.setCouponTotalCount(newGoods.getCouponTotalCount());
                goods.setCouponLeftCount(newGoods.getCouponLeftCount());
                finalList.add(goods);
            }
            return finalList;
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
        }
        return finalList;
        return goodsList;
    }
    @Override
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoUnionConfigServiceImpl.java
@@ -21,6 +21,7 @@
    public List<TaoBaoUnionConfig> getConfigByType(int type) {
        return taoBaoUnionConfigMapper.selectByType(type);
    }
    @Cacheable(value = "configCache", key = "'getConfigByType-'+#type")
    @Override
    public List<TaoBaoUnionConfig> getConfigByTypeCache(int type) {
@@ -39,10 +40,17 @@
    public TaoBaoUnionConfig getConfigByAppId(String appId) {
        return taoBaoUnionConfigMapper.selectByAppId(appId);
    }
    @Cacheable(value = "configCache", key = "'getConfigByAppId-'+#appId")
    @Override
    public TaoBaoUnionConfig getConfigByAppIdCache(String appId) {
        return getConfigByAppId(appId);
    }
    @Cacheable(value = "configCache", key = "'getConfigByAppKeyCache-'+#appKey")
    @Override
    public TaoBaoUnionConfig getConfigByAppKeyCache(String appKey) {
        return taoBaoUnionConfigMapper.selectByAppKey(appKey);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java
@@ -43,7 +43,6 @@
        int totalCount = 0;
        try {
            DaTaoKeGoodsResult result = DaTaoKeApiUtil.listAll("1");
            int page = 0;
@@ -69,6 +68,8 @@
                    e.printStackTrace();
                }
            }
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e, "大淘客全量数据出错", "");
        } finally {
            LogHelper.test("大淘客新版商品同步数量:" + totalCount);
        }
@@ -271,4 +272,9 @@
            return new ArrayList<>();
    }
    @Override
    public void deleteOutOfDate(Date minTime) {
        daTaoKeGoodsDetailV2Dao.listAndRemoveByMinUpdateTime(minTime, 0, 3000);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/ShareGoodsService.java
@@ -3,6 +3,7 @@
import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.ShareGoodsException;
public interface ShareGoodsService {
@@ -139,6 +140,6 @@
     * @return
     * @throws ShareGoodsException
     */
    public TaoBaoLink getTaoLiJinLinkForBuyWithOutFanLi(Long uid,  Long auctionId) throws ShareGoodsException;
    public TaoBaoLink getTaoLiJinLinkForBuyWithOutFanLi(Long uid,  Long auctionId,TaoKeAppInfo app) throws ShareGoodsException;
}
fanli/src/main/java/com/yeshi/fanli/service/inter/monitor/BusinessEmergent110Service.java
@@ -30,5 +30,12 @@
     * @param identifyCode
     */
    public void taoBaoAPPKeyLimitError(String appKey, String identifyCode);
    /**
     * 淘礼金账户资金不足
     * @param account
     */
    public void tljNoMoney(String account);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/TLJBuyGoodsService.java
@@ -19,7 +19,15 @@
     * 
     * @param goods
     */
    public void addTLJBuyGoods(TLJBuyGoods goods,TaoKeAppInfo taoKeAppInfo);
    public void addTLJBuyGoods(TLJBuyGoods goods, TaoKeAppInfo taoKeAppInfo);
    /**
     * 添加自购立减商品
     *
     * @param goods
     * @param taoKeAppInfo
     */
    public void addTLJBuyGoods(TLJBuyGoods goods);
    /**
     * 根据日期查找
@@ -29,7 +37,15 @@
     */
    public List<TLJBuyGoods> listByDay(String day);
    public List<TLJBuyGoods> listByDay(String day, int count);
    /**
     * 根据appkey与日期查找
     *
     * @param appKey
     * @param day
     * @param count
     * @return
     */
    public List<TLJBuyGoods> listByDay(String appKey, String day, int count);
    /**
     * 根据主键删除
@@ -58,7 +74,7 @@
     * @param auctionId
     * @return
     */
    public boolean verifyCanCreateTLJ(Long auctionId);
    public boolean verifyCanCreateTLJ(Long auctionId,TaoKeAppInfo app);
    /**
     * 更新商品
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/TaoBaoUnionConfigService.java
@@ -2,8 +2,6 @@
import java.util.List;
import org.springframework.cache.annotation.Cacheable;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
public interface TaoBaoUnionConfigService {
@@ -36,5 +34,13 @@
    
    
    public TaoBaoUnionConfig getConfigByAppIdCache(String appId);
    /**
     * 根据appKey查询
     * @param appKey
     * @return
     */
    public TaoBaoUnionConfig getConfigByAppKeyCache(String appKey);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/dataoke/DaTaoKeGoodsDetailV2Service.java
@@ -1,5 +1,6 @@
package com.yeshi.fanli.service.inter.taobao.dataoke;
import java.util.Date;
import java.util.List;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -111,12 +112,20 @@
     * @return
     */
    public List<DaTaoKeDetailV2> listPreShareHotGoods(int page);
    /**
     * 拉取自购立减备选商品
     *
     * @param page
     * @return
     */
    public List<DaTaoKeDetailV2> listPreTLJBuyGoods(int page);
    /**
     * 删除过期数据
     *
     * @param minTime
     */
    public void deleteOutOfDate(Date minTime);
}
fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java
@@ -656,36 +656,38 @@
     * 重要的淘宝商品信息更新
     */
    public void doImportantTaoBaoGoodsUpdateJob() {
        executor.execute(new Runnable() {
            @Override
            public void run() {
                while (true) {
                    Map<String, Long> map = CMQManager.getInstance().consumeTBImpGoodsUpdateMsg(16);
                    if (map != null) {
                        Iterator<String> its = map.keySet().iterator();
                        while (its.hasNext()) {
                            String key = its.next();
                            try {
                                long startTime = System.currentTimeMillis();
                                TaoBaoGoodsBrief goods = TaoKeApiUtil.searchGoodsDetail(map.get(key));
                                // 更新一条数据需要的时间
                                taoBaoGoodsUpdateService.updateTaoBaoGoods(goods);
                                long time = System.currentTimeMillis() - startTime;
                                LogHelper.test("淘宝重要商品库更新时间:" + time);
                            } catch (Exception e) {
        // 开启2个线程做更新
        for (int i = 0; i < 2; i++)
            executor.execute(new Runnable() {
                @Override
                public void run() {
                    while (true) {
                        Map<String, Long> map = CMQManager.getInstance().consumeTBImpGoodsUpdateMsg(16);
                        if (map != null) {
                            Iterator<String> its = map.keySet().iterator();
                            while (its.hasNext()) {
                                String key = its.next();
                                try {
                                    LogHelper.errorDetailInfo(e);
                                } catch (Exception e1) {
                                    e1.printStackTrace();
                                    long startTime = System.currentTimeMillis();
                                    TaoBaoGoodsBrief goods = TaoKeApiUtil.searchGoodsDetail(map.get(key));
                                    // 更新一条数据需要的时间
                                    taoBaoGoodsUpdateService.updateTaoBaoGoods(goods);
                                    long time = System.currentTimeMillis() - startTime;
                                    LogHelper.test("淘宝重要商品库更新时间:" + time);
                                } catch (Exception e) {
                                    try {
                                        LogHelper.errorDetailInfo(e);
                                    } catch (Exception e1) {
                                        e1.printStackTrace();
                                    }
                                } finally {
                                    CMQManager.getInstance().deleteTBImpGoodsUpdateMsg(key);
                                }
                            } finally {
                                CMQManager.getInstance().deleteTBImpGoodsUpdateMsg(key);
                            }
                        }
                    }
                }
            }
        });
            });
    }
fanli/src/main/java/com/yeshi/fanli/util/TaoBaoConstant.java
@@ -17,28 +17,13 @@
    public static final String TAOBAO_COMMON_PID = "mm_124933865_43788020_437192946";
    // 淘宝将渠道ID处理成会员ID的pid
    public static final String TAOBAO_RELATION_AS_SPECIAL_PID = "mm_124933865_56750082_18689550042";
    //淘礼金渠道ID
    // 淘礼金渠道ID
    public static final String TAOBAO_TLJ_RELATION_PID_DEFAULT = "mm_124933865_56750082_19507100253";
    //淘礼金渠道会员
    // 淘礼金渠道会员
    public static final String TAOBAO_TLJ_RELATION_AS_SPECIAL_PID = "mm_124933865_56750082_19508150186";
    //淘礼金会员
    // 淘礼金会员
    public static final String TAOBAO_TLJ_SPECIAL_PID_DEFAULT = "mm_124933865_56750082_19509300170";
    // 自购立减PID
    public static TaoKeAppInfo ownBuyApp = new TaoKeAppInfo("24937414", "0457746e24622a6c8c7924288550af5f",
            "mm_133239778_45820106_699710614");
    public static TaoKeAppInfo[] ownBuyApps=new TaoKeAppInfo[]{
             new TaoKeAppInfo("27759529", "2c0ecd37cf53eff0439a386c4eba2772","mm_472550068_628200329_109272850337"),
             new TaoKeAppInfo("27743325", "527a23554f71557d7b786bc479fcd5fe","mm_472720008_629400173_109272950312"),
             new TaoKeAppInfo("27770097", "fd896b718e2b0a833f0b7524cb83d092","mm_474720121_631000170_109273750171"),
             new TaoKeAppInfo("27762518", "2b2077798b7f8c5c94d337ac69d86a83","mm_474970057_635750171_109272950316"),
             new TaoKeAppInfo("27757101", "47921196e59a7999637269f486865096","mm_476760152_635550267_109272750381"),
    };
    public static BigDecimal OWN_BUY_WITHOUT_FANLI_RATE = new BigDecimal(70);// 自购立减的比例
}
fanli/src/main/java/com/yeshi/fanli/util/cache/HttpGoodsCacheManager.java
New file
@@ -0,0 +1,174 @@
package com.yeshi.fanli.util.cache;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import org.yeshi.utils.HttpUtil;
import com.yeshi.fanli.dto.common.CommonContentNav;
import com.yeshi.fanli.dto.common.CommonContentTypeEnum;
import com.yeshi.fanli.entity.brand.BrandClass;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.service.inter.brand.BrandClassService;
import com.yeshi.fanli.service.inter.goods.CommonTemplateContentService;
import com.yeshi.fanli.service.inter.goods.GoodsClassService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
/**
 * 采用http请求触发商品缓存
 *
 * @author Administrator
 *
 */
@Component
public class HttpGoodsCacheManager {
    @Resource
    private CommonTemplateContentService commonTemplateContentService;
    @Resource
    private GoodsClassService goodsClassService;
    @Resource
    private BrandClassService brandClassService;
    private static String getSign(Map<String, String> params) {
        List<String> list = new ArrayList<>();
        Iterator<String> its = params.keySet().iterator();
        while (its.hasNext()) {
            String key = its.next();
            Object value = params.get(key);
            list.add(key + "=" + value.toString());
        }
        Collections.sort(list);
        String str = "";
        for (String st : list) {
            str += st + "&";
        }
        String sign = null;
        sign = StringUtil.Md5(str + Constant.systemCommonConfig.getSignKey());
        return sign;
    }
    private void request(String url, Map<String, String> par) {
        Map<String, String> params = new HashMap<>();
        params.put("packages", "com.yeshi.ec.rebate");
        params.put("Version", "46");
        params.put("appkey", "24587154");
        params.put("platform", "android");
        params.put("apiversion", "1");
        params.put("channel", "GuanWang");
        params.put("imei", "862977040115210");
        params.put("osVersion", "8.0.0");
        params.put("network", "WIFI");
        params.put("deviceType", "LND-AL30");
        params.put("time", System.currentTimeMillis() + "");
        params.put("Device", "da105e2c-a7e8-3739-8fb8-4100da3c3aac");
        if (par != null) {
            for (Iterator<String> its = par.keySet().iterator(); its.hasNext();) {
                String key = its.next();
                params.put(key, par.get(key));
            }
        }
        params.put("time", System.currentTimeMillis() + "");
        params.put("sign", getSign(params));
        String result = HttpUtil.post(url, params, null);
        System.out.println(result);
    }
    // 触发首页的商品更新
    public void requestHomeRecommend() {
        Map<String, String> params = new HashMap<>();
        params.put("goodsType", 1 + "");
        for (int p = 1; p < 5; p++) {
            params.put("page", p + "");
            request("http://api.flqapp.com/fanli/api/v2/recommend/getGoodList", params);
        }
    }
    // 触发通用模板
    public void requestCommonTemplate() {
        CommonContentTypeEnum[] types = CommonContentTypeEnum.values();
        for (int p = 1; p < 3; p++) {
            for (CommonContentTypeEnum type : types) {
                List<CommonContentNav> navList = commonTemplateContentService.getNavList(type);
                if (navList != null && navList.size() > 0)
                    for (CommonContentNav nav : navList) {
                        commonTemplateContentService.getContentList(type, nav.getCid(), p, 50);
                    }
                else {
                    commonTemplateContentService.getContentList(type, null, p, 50);
                }
            }
        }
    }
    // 触发分类商品
    public void requestClassGoods() {
        Map<String, String> params = new HashMap<>();
        List<GoodsClass> classList = goodsClassService.getEffectiveClassCache();
        for (int p = 1; p < 3; p++) {
            params.put("page", p + "");
            for (GoodsClass gc : classList)
                params.put("gcid", gc.getId() + "");
            request("http://api.flqapp.com/fanli/api/v2/class/getClassGoods", params);
        }
    }
    // 触发动态
    public void requestDynamic() {
        // 热销
        List<GoodsClass> list = new ArrayList<GoodsClass>();
        list.add(new GoodsClass(0L, "今日单品"));
        list.addAll(DaTaoKeUtil.goodsClasses);
        for (int p = 1; p < 5; p++) {
            Map<String, String> params = new HashMap<>();
            params.put("cid", 1 + "");
            params.put("page", p + "");
            for (GoodsClass gc : list) {
                params.put("subId", gc.getId() + "");
                request("http://api.flqapp.com/fanli/api/v2/dynamic/getList", params);
            }
            // 推荐
            params = new HashMap<>();
            params.put("cid", 2 + "");
            params.put("page", p + "");
            request("http://api.flqapp.com/fanli/api/v2/dynamic/getList", params);
            // 好店
            params = new HashMap<>();
            params.put("cid", 3 + "");
            params.put("page", p + "");
            request("http://api.flqapp.com/fanli/api/v2/dynamic/getList", params);
        }
    }
    // 触发品牌商品列表
    public void requestBrandGoods() {
        List<BrandClass> list = brandClassService.listBrandClassEffectiveCache();
        list.add(new BrandClass(0L));
        list.addAll(list);
        for (int p = 1; p < 5; p++) {
            Map<String, String> params = new HashMap<>();
            params.put("page", p + "");
            for (BrandClass gc : list) {
                params.put("cid", gc.getId() + "");
                request("http://api.flqapp.com/fanli/api/v2/brand/getShopList", params);
            }
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java
@@ -525,7 +525,13 @@
    private static DaTaoKeDetailV2 parseDaTaoKeDetailV2(JSONObject json) {
        DaTaoKeDetailV2 detail = gson.fromJson(json.toString(), DaTaoKeDetailV2.class);
        detail.setCreateTime(new Date(TimeUtil.convertToTimeTemp(json.optString("createTime"), "yyyy-MM-dd HH:mm:ss")));
        if (StringUtil.isNullOrEmpty(json.optString("createTime"))) {
            detail.setCreateTime(
                    new Date(TimeUtil.convertToTimeTemp(json.optString("onSaleTime"), "yyyy-MM-dd HH:mm:ss")));
        } else {
            detail.setCreateTime(
                    new Date(TimeUtil.convertToTimeTemp(json.optString("createTime"), "yyyy-MM-dd HH:mm:ss")));
        }
        return detail;
    }
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -1689,7 +1689,7 @@
    public static void taoKeContent() {
        Map<String, String> map = new HashMap<>();
        map.put("method", "taobao.tbk.content.get");
        map.put("adzone_id", TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
        map.put("adzone_id", TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT.split("_")[3]);
        map.put("type", "1");
        map.put("count", "100");
fanli/src/main/java/com/yeshi/fanli/vo/goods/MoneyInfoVO.java
@@ -1,8 +1,14 @@
package com.yeshi.fanli.vo.goods;
import java.io.Serializable;
import com.google.gson.annotations.Expose;
public class MoneyInfoVO {
public class MoneyInfoVO implements Serializable{
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    @Expose
    private String fanliMoney;// 返利金额
    @Expose
fanli/src/main/java/com/yeshi/fanli/vo/msg/ClientTextStyleVO.java
@@ -1,8 +1,14 @@
package com.yeshi.fanli.vo.msg;
import java.io.Serializable;
import com.google.gson.annotations.Expose;
public class ClientTextStyleVO {
public class ClientTextStyleVO implements Serializable{
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    @Expose
    private String content;
    @Expose