admin
2020-02-12 df7554c138d0366514968eba9a32670876510df7
Merge remote-tracking branch 'origin/div' into div
14个文件已修改
322 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/TestController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/ConfigAdminController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/DynamicController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/GoodsController.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/RecommendController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/SearchController.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserMsgController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/AppVersionInfo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/system/ConfigKeyEnum.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/config/BusinessSystemServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/env-sandbox/mongo.properties 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/TestController.java
@@ -5,6 +5,7 @@
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Iterator;
@@ -40,9 +41,11 @@
import com.yeshi.fanli.entity.bus.activity.RecommendActivity;
import com.yeshi.fanli.entity.dynamic.InviteMaterial;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.ActivityException;
import com.yeshi.fanli.exception.push.PushException;
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.activity.ActivityService;
import com.yeshi.fanli.service.inter.config.ConfigService;
@@ -61,6 +64,7 @@
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.push.OPPOPushUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import net.sf.json.JSONArray;
@@ -115,8 +119,6 @@
    @Resource
    private UserMoneyExtraService userMoneyExtraService;
    @RequestMapping(value = "kefu")
    public void kefu(HttpServletRequest request, PrintWriter out) {
@@ -435,5 +437,21 @@
            }
        } catch (Exception e) {
        }
    }
    }
    @RequestMapping("getTBGoodsCate")
    public void getTaoBaoGoodsCat(Long id, PrintWriter out) {
        TaoBaoGoodsBrief goods = null;
        try {
            goods = TaoKeApiUtil.getSimpleGoodsInfo(id);
        } catch (TaobaoGoodsDownException e) {
            e.printStackTrace();
        }
        if (goods == null)
            out.println("商品已下架");
        else
            out.println("<html><head><meta charset=utf-8></head><body>"
                    + String.format("cat_name:%s <br> cat_leaf_name:%s", goods.getRootCategoryName(), goods.getLeafName())
                    + "</body></html>");
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/admin/ConfigAdminController.java
@@ -169,10 +169,20 @@
            List<AppVersionInfo> listAndroid = new ArrayList<AppVersionInfo>();
            listAndroid.add(appVersionInfo);
            listAndroid.addAll(list2);
            //小程序版本
            List<AppVersionInfo> list3 = appVersionService
                    .getAppVersionInfoListByPlatform(AppVersionInfo.PLATFORM_XCX);
            if (list3 == null) {
                list3 = new ArrayList<AppVersionInfo>();
            }
            List<AppVersionInfo> listWxmp = new ArrayList<AppVersionInfo>();
            listWxmp.add(appVersionInfo);
            listWxmp.addAll(list3);
            JSONObject data = new JSONObject();
            data.put("android", listAndroid);
            data.put("ios", listIOS);
            data.put("wxmp", listWxmp);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/DynamicController.java
@@ -73,6 +73,7 @@
            JSONObject data = new JSONObject();
            data.put("list", gson.toJson(infoList));
            data.put("count", count);
            data.put("page",page);
            out.print(JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            out.print(JsonUtil.loadFalseResult(1, "获取数据失败"));
@@ -161,6 +162,7 @@
        Gson gson = gsonBuilder.create();
        JSONObject data = new JSONObject();
        data.put("count", count);
        data.put("page", page);
        data.put("list", gson.toJson(list));
        out.print(JsonUtil.loadTrueResult(data));
    }
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/GoodsController.java
@@ -45,6 +45,7 @@
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.ScanHistoryV2Service;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
@@ -87,11 +88,8 @@
@RequestMapping("/wxmp/api/v1/goods")
public class GoodsController {
    @Resource
    private ConfigService configService;
    @Resource
    private ShamUserService shamUserService;
@@ -102,11 +100,8 @@
    @Resource
    private HongBaoManageService hongBaoManageService;
    @Resource
    private UserInfoExtraService userInfoExtraService;
    @Resource
    private ScanHistoryV2Service scanHistoryV2Service;
@@ -131,16 +126,19 @@
    @Resource
    private QrCodeService qrCodeService;
    @Resource
    private ShareGoodsService shareGoodsService;
    @Resource
    private UserShareGoodsRecordService userShareGoodsRecordService;
    @Resource
    private SwiperPictureService swiperPictureService;
    @Resource
    private HongBaoV2CountService hongBaoV2CountService;
    /**
     * 一级分类
     * 
@@ -148,13 +146,38 @@
     * @param out
     */
    @RequestMapping(value = "getTopCategory", method = RequestMethod.POST)
    public void getTopCategory(WXMPAcceptData acceptData, PrintWriter out) {
    public void getTopCategory(WXMPAcceptData acceptData, Long uid, PrintWriter out) {
        JSONObject data = new JSONObject();
        data.put("list", configService.get(ConfigKeyEnum.jdWXMPClass.getKey()));
        String tips = null;
        if (uid == null || uid <= 0) {
            tips = configService.get(ConfigKeyEnum.tipGuideNewUser.getKey());
        } else {
            long rebateOrder = hongBaoV2CountService.countRebateOrder(uid);
            long shareOrInviteOrder = hongBaoV2CountService.countShareOrInviteOrder(uid);
            if (rebateOrder + shareOrInviteOrder >= 3) {
                // 熟客版
            } else if (rebateOrder <= 0 && shareOrInviteOrder <= 0) {
                // 新人版
                tips = configService.get(ConfigKeyEnum.tipGuideNewUser.getKey());
            } else if (rebateOrder > 0 && shareOrInviteOrder <= 0) {
                // 省钱版
                tips = configService.get(ConfigKeyEnum.tipGuideSaveMoney.getKey());
            } else {
                // 赚钱版
                tips = configService.get(ConfigKeyEnum.tipGuideShareInvite.getKey());
            }
        }
        if (!StringUtil.isNullOrEmpty(tips)) {
            JSONObject tipData = JSONObject.fromObject(tips);
            data.put("tipData", tipData);
        }
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 一级分类商品
     * 
@@ -167,7 +190,7 @@
            out.print(JsonUtil.loadFalseResult("分类ID为空"));
            return;
        }
        JSONObject data = new JSONObject();
        if (page == 1) {
            // 轮播图
@@ -185,11 +208,10 @@
                    params = JSONObject.fromObject(swiper.getParams());
                }
                swiper.setJumpDetail(JumpDetailUtil.getWXMPJumDetail(swiper.getJumpDetail()));
                swiper.setParams(null);
            }
            data.put("bannerList", JsonUtil.getApiCommonGson().toJson(picList));
        }
        JDFilter filterAPI = new JDFilter();
        filterAPI.setPageIndex(page);
        filterAPI.setPageSize(Constant.PAGE_SIZE);
@@ -197,7 +219,7 @@
        filterAPI.setIsHot(1); // 爆款
        filterAPI.setCid1(cid);
        JDSearchResult result = JDApiUtil.queryByKey(filterAPI);
        long count = 0;
        JSONArray array = new JSONArray();
        if (result != null) {
@@ -226,21 +248,24 @@
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 获取商品详情
     *
     * @param acceptData
     * @param goodsId 商品id
     * @param uid
     * @param code 邀请码
     * @param goodsType 商品类型
     * @param from 页面来源
     * @param goodsId
     *            商品id
     * @param uid
     * @param code
     *            邀请码
     * @param goodsType
     *            商品类型
     * @param from
     *            页面来源
     * @param out
     */
    @RequestMapping(value = "getGoodsDetial", method = RequestMethod.POST)
    public void getGoodsDetial(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from,
             Long uid, PrintWriter out) {
    public void getGoodsDetial(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Long uid,
            PrintWriter out) {
        if (goodsType == null || goodsType < 2 || goodsType > 3) {
            out.print(JsonUtil.loadFalseResult(1, "请传递正确平台参数"));
            return;
@@ -320,9 +345,7 @@
                    // 使用奖励券最高返
                    if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
                        maxMoneyPlus = "(京东plus返¥"
                                + JDUtil.getGoodsFanLiMoneyPlus(jdGoods,
                                        hongBaoManageService.getVIPFanLiRate())
                                + ")";
                                + JDUtil.getGoodsFanLiMoneyPlus(jdGoods, hongBaoManageService.getVIPFanLiRate()) + ")";
                    } else
                        maxMoneyPlus = "(京东plus最高返¥"
                                + fanliMoneyPlus.add(MoneyBigDecimalUtil.mul(fanliMoneyPlus, Constant.MAX_REWARD_RATE))
@@ -475,10 +498,10 @@
                goodsDetail.setShopInfo(null);
            }
        }
        GoodsDetailExtraVO extraVO = new GoodsDetailExtraVO();
        extraVO.setDetailUrl("http://apph5.banliapp.com/apppage/goods_img_pdd.html?id=" + id);
        String salesTip = pddGoods.getSalesTip();
        if (!StringUtil.isNullOrEmpty(salesTip)) {
            int indexOf = salesTip.indexOf("+");
@@ -657,20 +680,24 @@
        }
    }
    /**
     * 获取商品详情
     *
     * @param acceptData
     * @param goodsId 商品id
     * @param uid
     * @param code 邀请码
     * @param goodsType 商品类型
     * @param from 页面来源
     * @param goodsId
     *            商品id
     * @param uid
     * @param code
     *            邀请码
     * @param goodsType
     *            商品类型
     * @param from
     *            页面来源
     * @param out
     */
    @RequestMapping(value = "getBuyLink", method = RequestMethod.POST)
    public void getBuyLink(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from,
            String couponUrl, Long uid, String inviteCode, PrintWriter out) {
    public void getBuyLink(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, String couponUrl,
            Long uid, String inviteCode, PrintWriter out) {
        if (goodsId == null || goodsType == null) {
            out.print(JsonUtil.loadFalseResult(1, "商品信息传递错误"));
            return;
@@ -678,7 +705,7 @@
        // 判断是自购 还是根据邀请码
        boolean share = false;
        String subUnionId = "";
        if (uid != null) {
            UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
@@ -687,7 +714,7 @@
                return;
            }
            subUnionId = uid.toString();
        } else if ((uid == null || uid < 1) && !StringUtil.isNullOrEmpty(inviteCode) ) {
        } else if ((uid == null || uid < 1) && !StringUtil.isNullOrEmpty(inviteCode)) {
            try {
                UserInfo user = userInfoExtraService.getUserByInviteCode(inviteCode);
                if (user != null && user.getState() == UserInfo.STATE_NORMAL) {
@@ -697,8 +724,8 @@
            } catch (UserInfoExtraException e) {
                e.printStackTrace();
            }
        }
        }
        String jumpLink = null;
        if (goodsType.intValue() == Constant.SOURCE_TYPE_JD) { // 京东
            JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
@@ -706,7 +733,7 @@
                out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
                return;
            }
            String materialId = "https://item.jd.com/" + goodsId + ".html";
            if (StringUtil.isNullOrEmpty(couponUrl)) {
                JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(goods.getCouponInfoList(), goods.getPrice());
@@ -714,9 +741,8 @@
                    couponUrl = couponInfo.getLink();
                }
            }
            long position =  JDApiUtil.POSITION_FANLI;
            long position = JDApiUtil.POSITION_FANLI;
            if (share) {
                position = JDApiUtil.POSITION_SHARE;
            }
@@ -732,7 +758,7 @@
                out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
                return;
            }
            String position = PinDuoDuoApiUtil.PID_FANLI;
            if (share) {
                position = PinDuoDuoApiUtil.PID_SHARE;
@@ -747,17 +773,16 @@
            out.print(JsonUtil.loadFalseResult(1, "创建购买信息失败"));
            return;
        }
        JSONObject data = new JSONObject();
        data.put("goodsType", goodsType);
        data.put("jumpLink", jumpLink);
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 分享商品海报
     *
     * @param acceptData
     * @param goodsId
     * @param goodsType
@@ -767,36 +792,35 @@
     * @param out
     */
    @RequestMapping(value = "sharePoster", method = RequestMethod.POST)
    public void sharePoster(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type,
    public void sharePoster(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type,
            Long uid, PrintWriter out) {
        if (uid == null || uid < 1) {
            out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
            return;
        }
        if (goodsId == null || goodsType == null) {
            out.print(JsonUtil.loadFalseResult(1, "商品信息传递错误"));
            return;
        }
        if (type == null || type < 1 || type > 2) {
            out.print(JsonUtil.loadFalseResult(1, "分享类型错误"));
            return;
        }
        UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
        if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
            out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
            return;
        }
        String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
        if (StringUtil.isNullOrEmpty(inviteCode)) {
            out.print(JsonUtil.loadFalseResult(1, "邀请码未激活"));
            return;
        }
        if (goodsType.intValue() == Constant.SOURCE_TYPE_JD) { // 京东
            createPosterJD(acceptData, goodsId, goodsType, from, type, user, inviteCode, out);
        } else if (goodsType.intValue() == Constant.SOURCE_TYPE_PDD) { // 拼多多
@@ -805,43 +829,44 @@
            out.print(JsonUtil.loadFalseResult(1, "参数传递错误"));
        }
    }
    /**
     * 创建京东分享海报
     */
    private void createPosterJD(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type, UserInfo user,
            String inviteCode,  PrintWriter out) {
    private void createPosterJD(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type,
            UserInfo user, String inviteCode, PrintWriter out) {
        JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
        if (jdGoods == null) {
            out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
            return;
        }
        ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),acceptData.getVersion());
        ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
                acceptData.getVersion());
        GoodsDetailVO goods = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO);
        String scene = goodsType+"#"+goodsId+"#" + inviteCode;
        String scene = goodsType + "#" + goodsId + "#" + inviteCode;
        FileUploadResult uploadResult = null;
        if (type == 1) {
            String erCodeUrl = "https://wxmp.banliapp.com/goods?i="+ scene;
            String erCodeUrl = "https://wxmp.banliapp.com/goods?i=" + scene;
            uploadResult = qrCodeService.drawGoodsPoster(erCodeUrl, user.getPortrait(), goods);
        } else {
            String acessToken = WXUtil.getAcessToken(Constant.WXMP_APP_INFO.getAppId(), Constant.WXMP_APP_INFO.getAppSecret());
            String acessToken = WXUtil.getAcessToken(Constant.WXMP_APP_INFO.getAppId(),
                    Constant.WXMP_APP_INFO.getAppSecret());
            InputStream xcxCode = WXXCXUtil.getXCXCode(acessToken, "/pages/goods/goods", scene);
            uploadResult = qrCodeService.drawGoodsPosterXCX(xcxCode, user, goods);
        }
        try {
            userShareGoodsRecordService.saveShareRecord(user.getId(), CommonGoodsFactory.create(jdGoods));
        } catch (UserShareGoodsRecordException e) {
            e.printStackTrace();
        }
        String posterLink = uploadResult.getUrl();
        JSONObject data = new JSONObject();
        data.put("posterLink", posterLink);
        out.print(JsonUtil.loadTrueResult(data));
        com.yeshi.fanli.util.ThreadUtil.run(new Runnable() {
            @Override
            public void run() {
@@ -862,43 +887,44 @@
            }
        });
    }
    /**
     * 创建拼多多分享海报
     */
    private void createPosterPDD(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type, UserInfo user,
            String inviteCode,  PrintWriter out) {
    private void createPosterPDD(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type,
            UserInfo user, String inviteCode, PrintWriter out) {
        PDDGoodsDetail pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
        if (pddGoods == null) {
            out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
            return;
        }
        ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion());
        ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
                acceptData.getVersion());
        GoodsDetailVO goods = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO);
        String scene = goodsType+"#"+goodsId+"#" + inviteCode;
        String scene = goodsType + "#" + goodsId + "#" + inviteCode;
        FileUploadResult uploadResult = null;
        if (type == 1) {
            String erCodeUrl = "https://wxmp.banliapp.com/goods?info="+ scene;
            String erCodeUrl = "https://wxmp.banliapp.com/goods?info=" + scene;
            uploadResult = qrCodeService.drawGoodsPoster(erCodeUrl, user.getPortrait(), goods);
        } else {
            String acessToken = WXUtil.getAcessToken(Constant.WXMP_APP_INFO.getAppId(), Constant.WXMP_APP_INFO.getAppSecret());
            String acessToken = WXUtil.getAcessToken(Constant.WXMP_APP_INFO.getAppId(),
                    Constant.WXMP_APP_INFO.getAppSecret());
            InputStream xcxCode = WXXCXUtil.getXCXCode(acessToken, "/pages/goods/goods", scene);
            uploadResult = qrCodeService.drawGoodsPosterXCX(xcxCode, user, goods);
        }
        try {
            userShareGoodsRecordService.saveShareRecord(user.getId(), CommonGoodsFactory.create(pddGoods));
        } catch (UserShareGoodsRecordException e) {
            e.printStackTrace();
        }
        String posterLink = uploadResult.getUrl();
        JSONObject data = new JSONObject();
        data.put("posterLink", posterLink);
        out.print(JsonUtil.loadTrueResult(data));
        // 异步操作
        com.yeshi.fanli.util.ThreadUtil.run(new Runnable() {
            @Override
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/RecommendController.java
@@ -137,7 +137,6 @@
                    params = JSONObject.fromObject(swiper.getParams());
                }
                swiper.setJumpDetail(JumpDetailUtil.getWXMPJumDetail(swiper.getJumpDetail()));
                swiper.setParams(null);
            }
            // 圆形专题
@@ -157,7 +156,6 @@
                }
                
                special.setJumpDetail(JumpDetailUtil.getWXMPJumDetail(jumpDetail));
                special.setParams(null);
            }
            // 活动
@@ -172,7 +170,6 @@
                    params = JSONObject.fromObject(swiper.getParams());
                }
                swiper.setJumpDetail(JumpDetailUtil.getWXMPJumDetail(swiper.getJumpDetail()));
                swiper.setParams(null);
            }
            JSONObject data = new JSONObject();
@@ -221,6 +218,7 @@
            JSONObject data = new JSONObject();
            data.put("list", new JSONArray());
            data.put("count", 0);
            data.put("page", page);
            out.print(JsonUtil.loadTrueResult(data));
        }
    }
@@ -260,6 +258,7 @@
        data.put("list", array);
        data.put("count", count);
        data.put("page", page);
        out.print(JsonUtil.loadTrueResult(data));
    }
@@ -292,6 +291,7 @@
        JSONObject data = new JSONObject();
        data.put("list", array);
        data.put("count", count);
        data.put("page", page);
        out.print(JsonUtil.loadTrueResult(data));
    }
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/SearchController.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.controller.wxmp.v1;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -24,12 +25,15 @@
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.dto.pdd.PDDGoodsResult;
import com.yeshi.fanli.dto.pdd.PDDSearchFilter;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.search.HotSearch;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.brand.BrandInfoService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.HotSearchService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.manger.goods.jd.JDGoodsLinkParseManager;
import com.yeshi.fanli.tag.PageEntity;
@@ -66,7 +70,9 @@
    @Resource
    private JDGoodsLinkParseManager jdGoodsLinkParseManager;
    @Resource
    private HotSearchService hotSearchService;
    /**
     * 粘贴板信息推荐
@@ -82,7 +88,7 @@
            out.print(JsonUtil.loadFalseResult("值为空"));
            return;
        }
        // 去除前后空格
        int type = 1;
        text = text.trim();
@@ -163,7 +169,7 @@
                }
            }
        }
        if (commonGoods == null) {
            out.println(JsonUtil.loadFalseResult("暂未找到该商品,请稍后再试!"));
            return;
@@ -179,17 +185,48 @@
            data.put("goods", goodsJSON);
            out.print(JsonUtil.loadTrueResult(data));
            return;
        }
        }
        JSONObject data = new JSONObject();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        data.put("type", type);
        data.put("goods", gson.toJson(GoodsDetailVOFactory.convertCommonGoods(commonGoods, hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion()))));
        data.put("goods", gson.toJson(GoodsDetailVOFactory.convertCommonGoods(commonGoods,
                hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion()))));
        out.print(JsonUtil.loadTrueResult(data));
        return;
    }
    /**
     * 热门搜索
     *
     * @param acceptData
     * @param goodsType
     * @param out
     */
    @RequestMapping(value = "gethotsearch", method = RequestMethod.POST)
    public void getHotSearch(AcceptData acceptData, Integer goodsType, PrintWriter out) {
        // 默认淘宝
        if (goodsType == null) {
            goodsType = Constant.SOURCE_TYPE_TAOBAO;
        }
        List<HotSearch> list = hotSearchService.getHotSearchCache(goodsType);
        if (list == null || list.size() == 0) {
            out.print(JsonUtil.loadFalseResult("没有数据"));
            return;
        }
        List<String> hotSearchList = new ArrayList<String>();
        if(list!=null)
        for (HotSearch hot : list)
            hotSearchList.add(hot.getName());
        JSONObject data = new JSONObject();
        data.put("count", list.size());
        data.put("hotSearchList", hotSearchList);
        data.put("helpLink", configService.get(ConfigKeyEnum.newerGonglue.getKey()));
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 搜索候选词
@@ -253,11 +290,11 @@
            out.print(JsonUtil.loadFalseResult(1, "请输入搜索内容"));
            return;
        }
        if (page == null || page < 1) {
            page = 1;
        }
        final String searchkey = key.trim();
        if (searchkey.startsWith("http://") || searchkey.startsWith("https://")) {
            JSONObject data = new JSONObject();
@@ -279,7 +316,6 @@
            return;
        }
    }
    /**
     * 京东
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java
@@ -239,11 +239,11 @@
     * @param out
     */
    @UserActive(uid = "#uid")
    @RequestMapping(value = "getUserInfo", method = RequestMethod.POST)
    public void getuserinfoNew(AcceptData acceptData, Long uid, HttpServletRequest requst, PrintWriter out) {
    @RequestMapping(value = "getUserInfo")
    public void getuserinfoNew(WXMPAcceptData acceptData, Long uid, HttpServletRequest requst, PrintWriter out) {
        try {
            BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
                    acceptData.getPackages());
                    acceptData.getAppId());
            if (system == null) {
                out.print(JsonUtil.loadFalseResult("系统不存在"));
                return;
@@ -258,12 +258,12 @@
            // 添加用户活跃记录
            UserActiveLog userActiveLog = new UserActiveLog();
            userActiveLog.setChannel(acceptData.getChannel());
            userActiveLog.setChannel("wxmp");
            userActiveLog.setIp(requst.getRemoteHost());
            userActiveLog.setUid(userInfo.getId());
            userActiveLog.setVersionCode(acceptData.getVersion());
            userActiveLog.setOsVersion(acceptData.getOsVersion());
            userActiveLog.setDeviceType(acceptData.getDeviceType());
            userActiveLog.setOsVersion(acceptData.getWxVersion());
            userActiveLog.setDeviceType("wxmp");
            userActiveLog.setDevice(acceptData.getDevice());
            userActiveLogService.addUserActiveLog(userActiveLog);
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserMsgController.java
@@ -150,7 +150,7 @@
                
                commonMsgList.add(new UserCommonMsgVO(zhuShouMsg.getIcon(), zhuShouMsg.getTitle(),
                        zhuShouMsg.getUpdateTime(), UserCommonMsgVO.TYPE_ZHUSHOU, zhuShouMsg.getContent(), read,
                        wxmpJumDetail, null, 0));
                        wxmpJumDetail, zhuShouMsg.getParams(), 0));
                
                
            }
fanli/src/main/java/com/yeshi/fanli/entity/AppVersionInfo.java
@@ -15,7 +15,7 @@
public class AppVersionInfo {
    public final static String PLATFORM_ANDROID = "android";
    public final static String PLATFORM_IOS = "ios";
    public final static String PLATFORM_XCX = "小程序";
    public final static String PLATFORM_XCX = "wxmp";
    
    public AppVersionInfo(Long id) {
        super();
fanli/src/main/java/com/yeshi/fanli/entity/system/ConfigKeyEnum.java
@@ -166,7 +166,8 @@
    //文案转链
    convertDocWebLink("convert_doc_web_link","文案转链网页"),
    convertDocHelpLink("convert_doc_help_link","文案转链帮助网页"),
    convertDocTip("convert_doc_tip","文案转链温馨提示")
    convertDocTip("convert_doc_tip","文案转链温馨提示"),
    newerGonglue("newer_gonglue_url","新手攻略链接")
    ;
    private final String key;
fanli/src/main/java/com/yeshi/fanli/service/impl/config/BusinessSystemServiceImpl.java
@@ -22,6 +22,7 @@
    private static final String ANDROID = "ANDROID";
    private static final String IOS = "IOS";
    private static final String WEB = "WEB";
    private static final String WXMP = "WXMP";
    private static final Map<String, Integer> map = new HashMap<String, Integer>();
@@ -29,6 +30,7 @@
        map.put(ANDROID, 1);
        map.put(IOS, 2);
        map.put(WEB, 3);
        map.put(WXMP, 4);
    }
    @Override
fanli/src/main/java/com/yeshi/fanli/service/manger/ClipboardAnalysisManager.java
@@ -213,7 +213,7 @@
        } else if (typeSet.size() == 3) {// 口令+链接+文本
            List<String> tokenList = TaoBaoUtil.getTokenListFromText(text);
            List<String> urlList = HttpUtil.getUrlListFromText(text);
            if (text.startsWith("【") && tokenList != null && tokenList.size() == 1 && urlList != null
            if (text.contains("【") && tokenList != null && tokenList.size() == 1 && urlList != null
                    && urlList.size() == 1) {// Android淘宝链接复制
                CommonGoods goods = null;
                try {
@@ -222,9 +222,9 @@
                    e1.printStackTrace();
                }
                if (goods == null) {
                    if (text.trim().indexOf("【") == 0 && text.trim().indexOf("】") > 0) {
                    if (text.trim().indexOf("【") > -1 && text.trim().indexOf("】") > 0) {
                        // 截取标题
                        String title = text.trim().substring(1, text.trim().lastIndexOf("】"));
                        String title = text.trim().substring(text.trim().indexOf("【")+1, text.trim().lastIndexOf("】"));
                        goods = new CommonGoods();
                        goods.setTitle(title);
                        goods.setPicture("http://");
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -208,6 +208,9 @@
        } else
            goods.setMaterialLibType(0);
        goods.setRootCategoryName(item.optString("cat_name"));
        goods.setLeafName(item.optString("cat_leaf_name"));
        goods = loadYuShouInfo(goods, item);
        return goods;
    }
fanli/src/main/resource/env-sandbox/mongo.properties
@@ -1,9 +1,9 @@
mongo.dbname=flq
mongo.dbname=flq-wxmp
mongo.port=27017
ƒ
mongo.host=172.16.16.40
mongo.username=admin
mongo.password=123456
mongo.host=172.16.16.44
mongo.username=yeshi
mongo.password=Yeshi2016@
mongo.connectionsPerHost=8
mongo.threadsAllowedToBlockForConnectionMultiplier=4
mongo.connectTimeout=1000