From f7b2baec57a19039ca85880bbba4e17fe27f0511 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 10 三月 2021 18:21:13 +0800 Subject: [PATCH] 删除冗余代码,初步优化首页的推荐专题,3.8.7之后在我的里面添加VIP分类 --- src/main/java/com/yeshi/buwan/controller/parser/UserParser.java | 256 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 191 insertions(+), 65 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java b/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java index 90e6900..1f3fd7e 100644 --- a/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java +++ b/src/main/java/com/yeshi/buwan/controller/parser/UserParser.java @@ -1,33 +1,39 @@ package com.yeshi.buwan.controller.parser; import com.yeshi.buwan.domain.*; +import com.yeshi.buwan.domain.Collection; +import com.yeshi.buwan.domain.system.DetailSystem; +import com.yeshi.buwan.domain.user.LoginUser; +import com.yeshi.buwan.dto.user.LoginInfoDto; +import com.yeshi.buwan.exception.user.LoginUserException; +import com.yeshi.buwan.exception.user.RegisterUserException; import com.yeshi.buwan.service.imp.*; -import com.yeshi.buwan.service.manager.SolrDataManager; +import com.yeshi.buwan.service.manager.SolrAlbumVideoDataManager; import com.yeshi.buwan.util.*; import com.yeshi.buwan.util.JuHe.VideoResourceUtil; import com.yeshi.buwan.util.annotation.RequireUid; import com.yeshi.buwan.util.email.MailSenderUtil; import com.yeshi.buwan.util.video.VideoCategoryConstant; +import com.yeshi.buwan.util.video.VideoConstant; import com.yeshi.buwan.vo.AcceptData; +import com.yeshi.buwan.vo.video.VideoListResultVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import java.io.File; import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; @Controller public class UserParser { @Resource private SystemService systemService; @Resource - private ConfigService configService; + private DetailSystemConfigService configService; @Resource private UserService userService; @Resource @@ -46,9 +52,10 @@ private BanQuanService banQuanService; @Resource private VideoInfoService videoInfoService; - @Resource - private SolrDataManager solrDataManager; + private SolrAlbumVideoDataManager solrDataManager; + @Resource + private ConfigParser configParser; public void getUid(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName()); @@ -65,7 +72,7 @@ object.put("Uid", uid); object.put("Portrait", userInfo.getPortrait()); object.put("Nickname", userInfo.getNickname()); - object.put("TopIcon", map.get("top_icon")); + object.put("ZiXun", map.get("zixun_url")); if (acceptData.getPlatform().equalsIgnoreCase("ios") && !"涓浗".equalsIgnoreCase(userInfo.getCountry()))// 姝e湪瀹℃牳鐨勭増鏈� object.put("CommentUrl", ""); @@ -86,7 +93,14 @@ object.put("WXShareIcon", map.get("wx_share_icon")); object.put("WXShareUrl", map.get("wx_share_url")); object.put("WXShareContent", map.get("wx_share_content")); - object.put("TuiGuang", map.get("taobao_tuiguang")); + + if ("qq".equalsIgnoreCase(acceptData.getChannel())) { + object.put("TopIcon", ""); + object.put("TuiGuang", ""); + } else { + object.put("TuiGuang", map.get("taobao_tuiguang")); + object.put("TopIcon", map.get("top_icon")); + } object.put("SOHU_partner", detailSystem.getSohuPartner()); object.put("SOHU_key", detailSystem.getSohuKey()); @@ -108,12 +122,22 @@ object.put("shopurl", map.get("shopurl")); object.put("copyplate", map.get("copy_plate")); - // 鏄惁骞垮憡鐐瑰嚮涓嬭浇 - if ("huawei".equalsIgnoreCase(acceptData.getChannel()) - && acceptData.getVersion() >= Integer.parseInt(map.get("ad_click_download_version"))) { + //寮�鍏宠缃� + String channel = acceptData.getChannel().toLowerCase(); + String adOpenSettings = map.get("ad_other_open_settings"); + JSONObject adOpenSettingsJson = JSONObject.fromObject(adOpenSettings); + + if (!adOpenSettingsJson.keySet().contains(channel.toLowerCase())) { + channel = "qq"; + } + + int closeVersion = adOpenSettingsJson.optInt(channel); + if (acceptData.getVersion() >= closeVersion) { object.put("adClickDownload", true); - } else + } else { object.put("adClickDownload", false); + } + // 骞垮憡绫诲瀷 object.put("adType", map.get("ad_type")); @@ -125,7 +149,15 @@ fullVideoVersion = json.optInt(acceptData.getChannel().toLowerCase(), 0); } - if (acceptData.getVersion() >= fullVideoVersion) {// 鏄惁灞忚斀璇︽儏椤靛叏灞忓箍鍛� + + ConfigParser.ADConfig adConfig = configParser.getAdShowType("ad_video_detail_full_video", acceptData.getChannel(), acceptData.getVersion(), map); + String type = adConfig == null ? "" : adConfig.getType(); + + if (!StringUtil.isNullOrEmpty(type)) {// 鏄惁灞忚斀璇︽儏椤靛叏灞忓箍鍛� + JSONObject adType = JSONObject.fromObject(map.get("ad_type")); + adType.put("videoDetailSplashAd", true); + object.put("adType", adType.toString()); + } else { JSONObject adType = JSONObject.fromObject(map.get("ad_type")); adType.put("videoDetailSplashAd", false); object.put("adType", adType.toString()); @@ -148,7 +180,7 @@ if (acceptData.getPlatform().equalsIgnoreCase("ios")) { if (Constant.IOSTest) { if (acceptData.getVersion() == 1) { - list = new ArrayList<String>(); + list = new ArrayList<>(); } } } @@ -167,7 +199,7 @@ private List<VideoDetailInfo> createSearchVideoDetailsVO(VideoInfo video) { List<VideoDetailInfo> detailList = new ArrayList<>(); if (video.getVideoType() != null && (Integer.parseInt(video.getVideoType().getId() + "") == VideoCategoryConstant.CATEGORY_DIANSHIJU || Integer.parseInt(video.getVideoType().getId() + "") == VideoCategoryConstant.CATEGORY_DONGMAN)) { - if (video.getVideocount() <= 5) { + if (video.getVideocount()!=null&& video.getVideocount() <= 5) { for (int i = 0; i < video.getVideocount(); i++) { VideoDetailInfo detail = new VideoDetailInfo(); detail.setTag((i + 1) + ""); @@ -232,7 +264,7 @@ object.put("data", array); out.print(JsonUtil.loadTrueJson(object.toString())); } else { - List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion()); + List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(detailSystem, acceptData.getVersion()); String cacheMD5 = "0"; if (resourceList != null && resourceList.size() > 0) for (Long l : resourceList) @@ -243,18 +275,12 @@ acceptData.getUid(), key, pageIndex, (StringUtil.isNullOrEmpty(contentType) ? 0 : Integer.parseInt(contentType)), acceptData.getSystem(), resourceList, cacheMD5); //缁勭粐鏁版嵁 - Set<Integer> albumCategorys = VideoCategoryConstant.getAlbumCategorys(); for (VideoInfo video : list) { //濡傛灉鏄鐗囷紝涓斾负5澶у垎绫� 灏遍噰鐢ㄧ珫鏉″睍绀� - /** - * 鏄笓杈戯紝骞朵笖涓烘鐗� - */ - //video.getVideoType() != null && albumCategorys.contains(Integer.parseInt(video.getVideoType().getId() + "")) && - if (video.getContentType() == 0) { + if (video.getShowType() == 1) { video.setVideoDetailList(createSearchVideoDetailsVO(video)); - video.setShowType(1); - } else - video.setShowType(0); + + } } cacheMD5 = "0"; if (list != null) { @@ -297,9 +323,110 @@ array.add(StringUtil.outPutResultJson(list.get(i))); } object.put("data", array); + if (pageIndex == 1) {//杩斿洖瀵艰埅鏍� + + } + out.print(JsonUtil.loadTrueJson(object.toString())); } } + + + // 鎼滅储 + public void searchNew(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { + //type: 0-鍏ㄩ儴 1- + String key = request.getParameter("Key"); + String type = request.getParameter("Type"); + String page = request.getParameter("Page"); + + if (StringUtil.isNullOrEmpty(key)) { + out.print(JsonUtil.loadFalseJson("璇蜂笂浼燢ey")); + return; + } + + if (StringUtil.isNullOrEmpty(type)) { + out.print(JsonUtil.loadFalseJson("璇蜂笂浼燭ype")); + return; + } + + int pageIndex = StringUtil.getPage(page); + if (pageIndex <= 0) { + pageIndex = 1; + } + + List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion()); + String cacheMD5 = "0"; + if (resourceList != null && resourceList.size() > 0) + for (Long l : resourceList) + cacheMD5 += "#" + l; + cacheMD5 = StringUtil.Md5(cacheMD5); + + VideoListResultVO videoListResultVO = searchService.searchNew(acceptData.getDetailSystem().getId(), request.getRemoteAddr(), + acceptData.getUid(), key, pageIndex, Integer.parseInt(type), + acceptData.getSystem(), resourceList, cacheMD5); + //缁勭粐鏁版嵁 + for (VideoInfo video : videoListResultVO.getVideoList()) { + //濡傛灉鏄鐗囷紝涓斾负5澶у垎绫� 灏遍噰鐢ㄧ珫鏉″睍绀� + if (video.getShowType() == 1) { + video.setVideoDetailList(createSearchVideoDetailsVO(video)); + } + } + cacheMD5 = "0"; + if (videoListResultVO.getVideoList() != null) { + for (VideoInfo info : videoListResultVO.getVideoList()) { + cacheMD5 += info.getId() + "#"; + } + } + List<VideoInfo> list = banQuanService.getBanQuanVideo(videoListResultVO.getVideoList(), acceptData.getDetailSystem().getId(), cacheMD5); + + JSONObject object = new JSONObject(); + object.put("count", Constant.isUpdate ? 19 + "" : videoListResultVO.getCount()); + JSONArray array = new JSONArray(); + for (int i = 0; i < list.size(); i++) { + if (JuheVideoUtil.isNeedDelete((VideoInfo) list.get(i), acceptData.getDetailSystem().getId())) { + list.remove(i); + i--; + } + } + + for (int i = 0; i < list.size(); i++) { + ((VideoInfo) list.get(i)) + .setPicture(VideoPictureUtil.getShowPicture((VideoInfo) list.get(i), acceptData.getPlatform(), acceptData.getVersion() + "")); + array.add(StringUtil.outPutResultJson(list.get(i))); + } + object.put("data", array); + if (pageIndex == 1) {//杩斿洖瀵艰埅鏍� + List<VideoType> typeList = new ArrayList<>(); + VideoType vt = new VideoType(); + vt.setId(0); + vt.setName("鍏ㄩ儴"); + typeList.add(vt); + Set<Long> set = new HashSet<>(); + for (VideoInfo videoInfo : list) { + if (videoInfo.getShowType() == 1 && videoInfo.getVideoType() != null) + set.add(videoInfo.getVideoType().getId()); + } + + for (Iterator<Long> its = set.iterator(); its.hasNext(); ) { + Long typeId = its.next(); + String typeName = VideoConstant.getMainCategoryName(typeId); + if (!StringUtil.isNullOrEmpty(typeName)) { + vt = new VideoType(); + vt.setId(typeId); + vt.setName(typeName); + typeList.add(vt); + } + } + JSONArray array1 = new JSONArray(); + for (VideoType vt1 : typeList) + array1.add(StringUtil.outPutResultJson(vt1)); + object.put("typeList", array1); + } + + out.print(JsonUtil.loadTrueJson(object.toString())); + + } + // 鐚滀綘鍠滄 public void guessLike(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { @@ -308,7 +435,7 @@ DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); - List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion()); + List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion()); List<VideoInfo> list1 = StringUtil.isNullOrEmpty(videoId) ? recommendService.guessLikeList(ds.getId(), 4, resourceList, CacheUtil.getMD5Long(resourceList)) : recommendService.guessLikeList(ds.getId(), 4, videoId, resourceList, @@ -318,7 +445,7 @@ list1 = videoInfoService.simpleRandomVideoList(4); } - List<VideoInfo> list = new ArrayList<VideoInfo>(); + List<VideoInfo> list = new ArrayList<>(); list.addAll(list1); if ("android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() < 35) { @@ -490,7 +617,7 @@ return; } - List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion()); + List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion()); DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); List<VideoInfo> list = recommendService.getRelativeVideoList(ds.getId(), 4, videoId, resourceList, @@ -529,7 +656,7 @@ return; } - List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getPlatform(), acceptData.getVersion()); + List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion()); DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); List<VideoInfo> list1 = recommendService.peopleSee(ds.getId(), 4, videoId, resourceList, @@ -538,7 +665,7 @@ list1 = videoInfoService.simpleRandomVideoList(4); } - List<VideoInfo> list = new ArrayList<VideoInfo>(); + List<VideoInfo> list = new ArrayList<>(); list.addAll(list1); if ("android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() < 35) { @@ -572,6 +699,7 @@ String pwd = request.getParameter("Pwd");// 瀵嗙爜 String nickName = request.getParameter("NickName");// 鏄电О String code = request.getParameter("VerifyCode");// 楠岃瘉鐮� + String portrait = request.getParameter("Portrait");// 楠岃瘉鐮� if (StringUtil.isNullOrEmpty(account)) { @@ -604,24 +732,22 @@ if (StringUtil.isNullOrEmpty(nickName)) nickName = "鏃犲悕姘�"; - DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); - // 娉ㄥ唽 --鐢ㄦ埛鍚�,鏄电О,瀵嗙爜 - LoginUser user = new LoginUser(); - user.setCreatetime(System.currentTimeMillis() + ""); - user.setDetailsystem(ds.getId()); - user.setDevice(acceptData.getDevice()); - user.setLoginType(3); - user.setName(nickName); - user.setOpenid(account); - user.setPwd(StringUtil.Md5(pwd)); - user.setPortrait(savePortrait(request)); - user.setIpinfo(ip + ":" + port); - String result = userService.registerByEmail(user); - if (result.contains("鎴愬姛")) + LoginInfoDto loginInfoDto = new LoginInfoDto(); + loginInfoDto.setEmail(account); + loginInfoDto.setSystemId(acceptData.getDetailSystem().getSystem().getId()); + loginInfoDto.setLoginType(LoginUser.LOGIN_TYPE_EMAIL); + loginInfoDto.setPwd(StringUtil.Md5(pwd)); + loginInfoDto.setIpInfo(ip + ":" + port); + loginInfoDto.setNickName(nickName); + + + try { + userService.register(loginInfoDto); out.print(JsonUtil.loadTrueJson("娉ㄥ唽鎴愬姛")); - else - out.print(JsonUtil.loadFalseJson(result)); + } catch (RegisterUserException e) { + out.print(JsonUtil.loadFalseJson(e.getMessage())); + } } /** @@ -678,17 +804,17 @@ // systemService.getDetailSystemByPackage(packageName); // 娉ㄥ唽 --鐢ㄦ埛鍚�,鏄电О,瀵嗙爜 - LoginUser user = new LoginUser(); - user.setDevice(acceptData.getDevice()); - user.setLoginType(3); - user.setOpenid(account); - user.setPwd(StringUtil.Md5(pwd)); - user.setPortrait("http://buwan-1255749512.file.myqcloud.com/resource/ic_portrait_default.png"); - user = userService.loginByEmail(user); - if (user == null || user.getState() != LoginUser.STATE_NORMAL) - out.print(JsonUtil.loadFalseJson("鐧诲綍澶辫触")); - else + LoginInfoDto loginInfoDto = new LoginInfoDto(); + loginInfoDto.setLoginType(LoginUser.LOGIN_TYPE_EMAIL); + loginInfoDto.setSystemId(acceptData.getDetailSystem().getSystem().getId()); + loginInfoDto.setEmail(account); + loginInfoDto.setPwd(StringUtil.Md5(pwd)); + try { + LoginUser user = userService.login(loginInfoDto); out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(user))); + } catch (LoginUserException e) { + out.print(JsonUtil.loadFalseJson(e.getMessage())); + } } /** @@ -703,6 +829,7 @@ String birthDay = request.getParameter("BirthDay");// 鐢熸棩 String personalSign = request.getParameter("PersonalSign");// 涓�х鍚� String loginUid = request.getParameter("LoginUid");// 涓�х鍚� + String portrait = request.getParameter("Portrait"); if (StringUtil.isNullOrEmpty(loginUid)) { out.print(JsonUtil.loadFalseJson("璇蜂笂浼燣oginUid")); return; @@ -713,7 +840,7 @@ if (user != null) { if (!StringUtil.isNullOrEmpty(nickName)) user.setName(nickName); - String potrait = savePortrait(request); + String potrait = savePortrait(portrait, request.getSession()); if (!StringUtil.isNullOrEmpty(potrait)) user.setPortrait(potrait); if (!StringUtil.isNullOrEmpty(sex)) @@ -777,7 +904,7 @@ } if (!verifyCode.equalsIgnoreCase(request.getSession().getAttribute(email) + "")) { - out.print(JsonUtil.loadTrueJson("楠岃瘉鐮侀敊璇�")); + out.print(JsonUtil.loadFalseJson("楠岃瘉鐮侀敊璇�")); return; } @@ -823,16 +950,15 @@ } - private String savePortrait(HttpServletRequest request) { - String base64 = request.getParameter("Portrait"); + public static String savePortrait(String base64, HttpSession session) { if (StringUtil.isNullOrEmpty(base64)) return ""; String fileName = "portrait_" + System.currentTimeMillis() + ".jpg"; // 瀹氫箟涓婁紶璺緞 - String path = request.getSession().getServletContext().getRealPath("upload") + "/" + fileName; - if (!new File(request.getSession().getServletContext().getRealPath("upload") + "/").exists()) - new File(request.getSession().getServletContext().getRealPath("upload") + "/").mkdirs(); + String path = session.getServletContext().getRealPath("upload") + "/" + fileName; + if (!new File(session.getServletContext().getRealPath("upload") + "/").exists()) + new File(session.getServletContext().getRealPath("upload") + "/").mkdirs(); boolean isS = StringUtil.generateImageFromBase64(base64, path); if (!isS) return ""; -- Gitblit v1.8.0