admin
2019-09-25 28a0efc6ec16f3f82eb8e16e87269300d6744fd4
金币版本拦截与频率拦截bug修改
6个文件已修改
188 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetFrequencyLimitAspect.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetVersionLimitAspect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
utils/src/main/java/org/yeshi/utils/HttpUtil.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetFrequencyLimitAspect.java
@@ -17,7 +17,6 @@
import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.stereotype.Component;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.annotation.integral.IntegralGetFrequencyLimit;
@@ -47,7 +46,7 @@
        return expression.getValue(context).toString();
    }
    @Around("execution(public * com.yeshi.fanli.service.impl.integral.*.*(..))")
    @Around("execution(public * com.yeshi.fanli.service.impl.user.integral.*.*(..))")
    public Object requestSerializable(ProceedingJoinPoint joinPoint) throws Throwable {
        Signature signature = joinPoint.getSignature();
        MethodSignature methodSignature = (MethodSignature) signature;
fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetVersionLimitAspect.java
@@ -46,7 +46,7 @@
        return expression.getValue(context).toString();
    }
    @Around("execution(public * com.yeshi.fanli.service.impl.integral.*.*(..))")
    @Around("execution(public * com.yeshi.fanli.service.impl.user.integral.*.*(..))")
    public Object requestSerializable(ProceedingJoinPoint joinPoint) throws Throwable {
        Signature signature = joinPoint.getSignature();
        MethodSignature methodSignature = (MethodSignature) signature;
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
@@ -34,6 +34,7 @@
import com.yeshi.fanli.exception.share.ShareGoodsException;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
@@ -45,11 +46,13 @@
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
@@ -99,10 +102,12 @@
    @Resource
    private UserShareGoodsGroupService userShareGoodsGroupService;
    @Resource
    private UserTaoLiJinRecordService userTaoLiJinRecordService;
    @Resource
    private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
    /**
     * 
@@ -171,11 +176,11 @@
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("商品信息获取失败")));
            return;
        }
        Long auctionId = record.getGoodsId();
        String tljLink = record.getSendUrl();
        BigDecimal tljMoney= record.getPerFace();
        BigDecimal tljMoney = record.getPerFace();
        TaoBaoGoodsBrief goods = null;
        try {
            goods = redisManager.getTaoBaoGoodsBrief(auctionId);
@@ -217,9 +222,9 @@
        } else {
            data.put("coupon", false);
        }
        data.put("tljMoney", tljMoney);
        out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
    }
@@ -238,6 +243,7 @@
    @RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
    public void getGoodsDetail(final AcceptData acceptData, final String id, String tid, String uid, String callback,
            PrintWriter out) {
        LogHelper.shareGoods("分享出去的H5访问: uid:" + uid + " id:" + id);
        long begin = java.lang.System.currentTimeMillis();
        if (StringUtil.isNullOrEmpty(id)) {
            out.print(JsonUtil.loadFalseResult(1, "请上传id"));
@@ -281,22 +287,14 @@
                    }
            } else {// 没有分享记录,需要直接分享
                List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
                        .getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
                String pid = null;
                ClientTBPid tbPid = tbPidService.getSharePid();
                if (tbPid != null)
                    pid = tbPid.getPid();
                else {
                    pid = configList.get(0).getDefaultPid();
                }
                LogHelper.test("没有分享记录:uid:" + uid + "  actionid:" + id);
                // 获取
                TaoKeAppInfo app = new TaoKeAppInfo();
                app.setAdzoneId(pid.split("_")[3]);
                app.setAppKey(configList.get(0).getAppKey());
                app.setAppSecret(configList.get(0).getAppSecret());
                app.setPid(pid);
                app.setPid(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT);
                app.setAdzoneId(app.getPid().split("_")[3]);
                app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
                app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
                try {
                    goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
                } catch (NumberFormatException e) {
@@ -309,6 +307,9 @@
                    if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
                        url = goods.getCouponLink();
                    }
                    String relationId = userExtraTaoBaoInfoService.getRelationIdByUid(Long.parseLong(uid));
                    if (!StringUtil.isNullOrEmpty(relationId))
                        url += "&relationId=" + relationId;
                    token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
                }
            }
@@ -384,7 +385,7 @@
            // 老版本兼容
            data.put("quan", true);
        }
        out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
        final String tempUid = uid;
@@ -404,11 +405,10 @@
        });
        return;
    }
    /**
     * 京东分享商品信息
     *
     * @param acceptData
     * @param id
     * @param uid
@@ -416,7 +416,7 @@
     * @param out
     */
    @RequestMapping(value = "getJDGoodsDetail")
    public void getJDGoodsDetail(final AcceptData acceptData, final Long id,  String uid, String callback,
    public void getJDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback,
            PrintWriter out) {
        if (id == null) {
            out.print(JsonUtil.loadFalseResult(1, "请上传id"));
@@ -442,7 +442,7 @@
            imageList = new ArrayList<>();
            imageList.add(jdGoods.getPicUrl());
        }
        boolean hasCoupon = false;
        String couponUrl = null;
        BigDecimal discount = new BigDecimal(0);
@@ -452,30 +452,31 @@
            discount = couponInfo.getDiscount();
            couponUrl = couponInfo.getLink();
        }
        boolean jdzy = false;
        String owner = jdGoods.getOwner();
        if (!StringUtil.isNullOrEmpty(owner) && "g".equalsIgnoreCase(owner)) {
            jdzy = true;
        }
        String materialId = "https://item.jd.com/" + id + ".html";
        String jumpLink = JDApiUtil.convertShortLink(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid);
        int priceType = 1;
        BigDecimal price = jdGoods.getPrice();;
        BigDecimal price = jdGoods.getPrice();
        ;
        JDPingouInfo pinGouInfo = jdGoods.getPinGouInfo();
        if (pinGouInfo != null) {
            priceType = 2; // 拼购价
            price =  pinGouInfo.getPingouPrice();
            price = pinGouInfo.getPingouPrice();
        }
        JSONObject data = new JSONObject();
        data.put("jdzy", jdzy);
        data.put("imgs", imageList);
        data.put("title", jdGoods.getSkuName());
        data.put("zkPrice", price);
        data.put("priceType", priceType);
        data.put("priceType", priceType);
        data.put("coupon", hasCoupon);
        data.put("couponAmount", discount);
        data.put("couponPrice", JDUtil.getQuanPrice(jdGoods));
@@ -489,7 +490,8 @@
            public void run() {
                try {
                    if (!StringUtil.isNullOrEmpty(tempUid))
                        userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id, Constant.SOURCE_TYPE_JD);
                        userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id,
                                Constant.SOURCE_TYPE_JD);
                } catch (NumberFormatException e) {
                    e.printStackTrace();
                } catch (UserShareGoodsRecordException e) {
@@ -499,10 +501,10 @@
        });
        return;
    }
    /**
     * 拼多多分享商品详情
     *
     * @param acceptData
     * @param id
     * @param uid
@@ -510,7 +512,7 @@
     * @param out
     */
    @RequestMapping(value = "getPDDGoodsDetail")
    public void getPDDGoodsDetail(final AcceptData acceptData, final Long id,  String uid, String callback,
    public void getPDDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback,
            PrintWriter out) {
        if (id == null) {
            out.print(JsonUtil.loadFalseResult(1, "请上传id"));
@@ -526,7 +528,7 @@
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("商品信息获取失败")));
            return;
        }
        List<String> imageList = null;
        String[] goodsGalleryUrls = pddGoods.getGoodsGalleryUrls();
        if (goodsGalleryUrls != null) {
@@ -539,7 +541,7 @@
                imageList.add(goodsImageUrl);
            }
        }
        BigDecimal hundred = new BigDecimal(100);
        Boolean hasCoupon = pddGoods.getHasCoupon();
        BigDecimal amount = new BigDecimal(0);
@@ -548,9 +550,9 @@
        } else {
            hasCoupon = false;
        }
        String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(id, PinDuoDuoApiUtil.PID_SHARE + "", uid);
        JSONObject data = new JSONObject();
        data.put("imgs", imageList);
        data.put("title", pddGoods.getGoodsName());
@@ -568,7 +570,8 @@
            public void run() {
                try {
                    if (!StringUtil.isNullOrEmpty(tempUid))
                        userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id, Constant.SOURCE_TYPE_PDD);
                        userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id,
                                Constant.SOURCE_TYPE_PDD);
                } catch (NumberFormatException e) {
                    e.printStackTrace();
                } catch (UserShareGoodsRecordException e) {
fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java
@@ -1,5 +1,6 @@
package com.yeshi.fanli.job.order.taobao;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -18,6 +19,7 @@
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil;
/**
@@ -46,6 +48,26 @@
    public void updateRelationAndSpecialOrder(long startTime, long endTime) {
        List<TaoBaoOrder> list = TaoKeOrderApiUtil.getTaoBaoSpecialOrderList(startTime, endTime, 1);
        List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getTaoBaoRelationOrderList(startTime, endTime, 1);
        if (list1 != null && list1.size() > 0)
            list.addAll(list1);
        // 爬取到的订单号
        if (list != null)
            for (TaoBaoOrder order : list) {
                LogHelper.orderInfo("爬取到的订单号:" + order.getOrderId());
            }
        addRelationAndSpecialOrder(list);
    }
    /**
     * 按付款时间查询
     *
     * @param startTime
     * @param endTime
     */
    public void updateRelationAndSpecialPaidOrder(long startTime, long endTime) {
        List<TaoBaoOrder> list = TaoKeOrderApiUtil.getTaoBaoSpecialOrderList(startTime, endTime, 2);
        List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getTaoBaoRelationOrderList(startTime, endTime, 2);
        if (list1 != null && list1.size() > 0)
            list.addAll(list1);
        // 爬取到的订单号
@@ -124,8 +146,10 @@
            return;
        // 爬取近20分钟的数据
        LogHelper.orderInfo("爬单:30s爬取一次单");
        long endTime = System.currentTimeMillis();
        Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime();
        long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis();
        updateRelationAndSpecialOrder(endTime - 1000 * 60 * 20L, endTime);
        updateRelationAndSpecialPaidOrder(endTime - 1000 * 60 * 20L, endTime);
        updateRelationAndSpecialSettleOrder(endTime - 1000 * 60 * 20L, endTime);
    }
@@ -135,23 +159,9 @@
        if (!Constant.IS_TASK)
            return;
        LogHelper.orderInfo("爬单:5min爬取一次单");
        long endTime = System.currentTimeMillis();
        Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime();
        long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis();
        updateRelationAndSpecialOrder(endTime - 1000 * 60 * 60 * 24L, endTime);
        updateRelationAndSpecialSettleOrder(endTime - 1000 * 60 * 60 * 24L, endTime);
    }
    // 每个小时更新
    @Scheduled(cron = "0 0 0/1 * * ? ")
    public void doJob3() {
        if (!Constant.IS_TASK)
            return;
        // Calendar calendar = Calendar.getInstance();
        // int h = calendar.get(Calendar.HOUR_OF_DAY);
        // // 每个小时更新100页数据
        // int fromPage = h * 100;
        // if (fromPage <= 0)
        // fromPage = 11;
        // int toPage = h * 100 + 100;
    }
}
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -2081,6 +2081,24 @@
            e.printStackTrace();
        }
    }
    /**
     * 获取淘宝系统时间
     *
     * @return
     */
    public static Date getTaoBaoSystemTime() {
        Map<String, String> map = new HashMap<>();
        map.put("method", "taobao.time.get");
        try {
            JSONObject json = TaoKeBaseUtil.baseRequest(map, false);
            String time = json.optJSONObject("time_get_response").optString("time");
            return new Date(TimeUtil.convertToTimeTemp(time, "yyyy-MM-dd HH:mm:ss"));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
class QuanInfo {
utils/src/main/java/org/yeshi/utils/HttpUtil.java
@@ -60,19 +60,20 @@
    }
    public static String getShortLink(String url) {
        String shortLink = getShortLink2(url);
        if (StringUtil.isNullOrEmpty(shortLink))
            shortLink = getShortLink3(url);
        if (StringUtil.isNullOrEmpty(shortLink))
            shortLink = getShortLink1(url);
        return shortLink;
        return url;
        // String shortLink = getShortLink3(url);
        // if (StringUtil.isNullOrEmpty(shortLink))
        // shortLink = getShortLink1(url);
        // if (StringUtil.isNullOrEmpty(shortLink))
        // shortLink = getShortLink2(url);
        // return shortLink;
    }
    private static String getShortLink1(String url) {
        try {
            String totalUrl = String.format(
                    "http://suo.im/api.htm?format=json&url=%s&key=5d7728078e676d45275f816b@681bb0446f1e6af4f8fc6ce3cad2a684",
                URLEncoder.encode(url));
                    URLEncoder.encode(url));
            String result = get(totalUrl, null);
            System.out.println(result);
            try {
@@ -85,14 +86,13 @@
        return null;
    }
    //搜狐网址
    // 搜狐网址
    private static String getShortLink2(String url) {
        try {
            String totalUrl = String.format(
                    "https://sohu.gg/api/?key=2zumZxsL8MuX&url=%s",
                    URLEncoder.encode(url,"UTF-8"));
            String totalUrl = String.format("https://sohu.gg/api/?key=2zumZxsL8MuX&url=%s",
                    URLEncoder.encode(url, "UTF-8"));
            String result = get(totalUrl, null);
            if(result!=null&&result.startsWith("http"))
            if (result != null && result.startsWith("http"))
                return result;
        } catch (Exception e) {
            e.printStackTrace();
@@ -103,11 +103,11 @@
    private static String getShortLink3(String url) {
        try {
            String totalUrl = String.format(
                    "http://api.t.sina.com.cn/short_url/shorten.json?source=2963429064&url_long=%s",
                    URLEncoder.encode(url));
                    "http://api.ft12.com/api.php?format=json&url=%s&apikey=Lqh4eXURkvKhbboXwz@ddd",
                    URLEncoder.encode(url, "UTF-8"));
            String result = get(totalUrl, null);
            JSONObject data = JSONArray.fromObject(result).optJSONObject(0);
            return data.optString("url_short");
            JSONObject data = JSONObject.fromObject(result);
            return data.optString("url");
        } catch (Exception e) {
            e.printStackTrace();
        }