admin
2019-09-25 28a0efc6ec16f3f82eb8e16e87269300d6744fd4
金币版本拦截与频率拦截bug修改
6个文件已修改
134 ■■■■■ 已修改文件
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 43 ●●●● 补丁 | 查看 | 原始文档 | 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 24 ●●●● 补丁 | 查看 | 原始文档 | 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;
@@ -103,6 +106,8 @@
    @Resource
    private UserTaoLiJinRecordService userTaoLiJinRecordService;
    
    @Resource
    private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
    /**
     * 
@@ -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);
                }
            }
@@ -405,10 +406,9 @@
        return;
    }
    
    /**
     * 京东分享商品信息
     *
     * @param acceptData
     * @param id
     * @param uid
@@ -463,7 +463,8 @@
        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; // 拼购价
@@ -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) {
@@ -500,9 +502,9 @@
        return;
    }
    
    /**
     * 拼多多分享商品详情
     *
     * @param acceptData
     * @param id
     * @param uid
@@ -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,12 +60,13 @@
    }
    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) {
@@ -88,8 +89,7 @@
    //搜狐网址
    private static String getShortLink2(String url) {
        try {
            String totalUrl = String.format(
                    "https://sohu.gg/api/?key=2zumZxsL8MuX&url=%s",
            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"))
@@ -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();
        }