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) { @@ -436,4 +438,20 @@ } 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; @@ -141,6 +136,9 @@ @Resource private SwiperPictureService swiperPictureService; @Resource private HongBaoV2CountService hongBaoV2CountService; /** * 一级分类 * @@ -148,12 +146,37 @@ * @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())); out.print(JsonUtil.loadTrueResult(data)); 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)); } /** * 一级分类商品 @@ -185,7 +208,6 @@ params = JSONObject.fromObject(swiper.getParams()); } swiper.setJumpDetail(JumpDetailUtil.getWXMPJumDetail(swiper.getJumpDetail())); swiper.setParams(null); } data.put("bannerList", JsonUtil.getApiCommonGson().toJson(picList)); } @@ -226,21 +248,24 @@ out.print(JsonUtil.loadTrueResult(data)); } /** * 获取商品详情 * * @param acceptData * @param goodsId 商品id * @param goodsId * 商品id * @param uid * @param code 邀请码 * @param goodsType 商品类型 * @param from 页面来源 * @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)) @@ -657,20 +680,24 @@ } } /** * 获取商品详情 * * @param acceptData * @param goodsId 商品id * @param goodsId * 商品id * @param uid * @param code 邀请码 * @param goodsType 商品类型 * @param from 页面来源 * @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; @@ -715,7 +742,6 @@ } } long position = JDApiUtil.POSITION_FANLI; if (share) { position = JDApiUtil.POSITION_SHARE; @@ -754,10 +780,9 @@ out.print(JsonUtil.loadTrueResult(data)); } /** * 分享商品海报 * * @param acceptData * @param goodsId * @param goodsType @@ -784,7 +809,6 @@ 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)); @@ -806,18 +830,18 @@ } } /** * 创建京东分享海报 */ 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; @@ -826,7 +850,8 @@ 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); } @@ -863,18 +888,18 @@ }); } /** * 创建拼多多分享海报 */ 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; @@ -883,7 +908,8 @@ 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); } 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; @@ -67,6 +71,8 @@ @Resource private JDGoodsLinkParseManager jdGoodsLinkParseManager; @Resource private HotSearchService hotSearchService; /** * 粘贴板信息推荐 @@ -185,11 +191,42 @@ 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)); } /** * 搜索候选词 @@ -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