package com.yeshi.buwan.controller.parser;
|
|
import com.google.gson.Gson;
|
import com.google.gson.reflect.TypeToken;
|
import com.yeshi.buwan.domain.*;
|
import com.yeshi.buwan.domain.Collection;
|
import com.yeshi.buwan.domain.solr.SolrAlbumVideo;
|
import com.yeshi.buwan.domain.solr.SolrShortVideo;
|
import com.yeshi.buwan.domain.system.DetailSystem;
|
import com.yeshi.buwan.domain.system.DetailSystemConfig;
|
import com.yeshi.buwan.domain.user.LoginUser;
|
import com.yeshi.buwan.domain.video.InternetSearchVideo;
|
import com.yeshi.buwan.dto.log.BaseLog;
|
import com.yeshi.buwan.dto.search.SolrResultDTO;
|
import com.yeshi.buwan.dto.search.SolrShortVideoSearchFilter;
|
import com.yeshi.buwan.dto.search.SolrVideoSearchFilter;
|
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.videos.pptv.PPTVUtil;
|
import com.yeshi.buwan.service.imp.*;
|
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
|
import com.yeshi.buwan.service.inter.system.SystemConfigService;
|
import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager;
|
import com.yeshi.buwan.service.manager.search.SolrInternetSearchVideoDataManager;
|
import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager;
|
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.factory.VideoInfoFactory;
|
import com.yeshi.buwan.util.factory.vo.UserInfoVOFactory;
|
import com.yeshi.buwan.util.log.LoggerUtil;
|
import com.yeshi.buwan.util.log.UserActiveLogFactory;
|
import com.yeshi.buwan.util.video.VideoCategoryConstant;
|
import com.yeshi.buwan.util.video.VideoConstant;
|
import com.yeshi.buwan.util.video.VideoUtil;
|
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.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Controller;
|
import redis.clients.jedis.Jedis;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpSession;
|
import java.io.File;
|
import java.io.PrintWriter;
|
import java.lang.reflect.Type;
|
import java.util.*;
|
|
@Controller
|
public class UserParser {
|
|
Logger searchKeyLogger = LoggerFactory.getLogger("searchKey");
|
|
|
@Resource
|
private SystemService systemService;
|
@Resource
|
private DetailSystemConfigService configService;
|
@Resource
|
private UserService userService;
|
@Resource
|
private ShareService shareService;
|
@Resource
|
private SearchService searchService;
|
@Resource
|
private RecommendService recommendService;
|
@Resource
|
private CollectionService collectionService;
|
@Resource
|
private UserBannerService userBannerService;
|
@Resource
|
private VideoResourceUtil videoResouceUtil;
|
@Resource
|
private BanQuanService banQuanService;
|
@Resource
|
private VideoInfoService videoInfoService;
|
@Resource
|
private SolrAlbumVideoDataManager solrDataManager;
|
@Resource
|
private SolrInternetSearchVideoDataManager solrInternetSearchVideoDataManager;
|
|
@Resource
|
private SolrShortVideoDataManager solrShortVideoDataManager;
|
|
@Resource
|
private ConfigParser configParser;
|
@Resource
|
private SystemConfigService systemConfigService;
|
|
@Resource
|
private RedisManager redisManager;
|
|
public void getUid(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
|
String uid = userService.getUid(acceptData.getDevice(), acceptData.getSystem(), acceptData.getImei(), acceptData.getMac(), acceptData.getLat(), acceptData.getLng());
|
UserInfo userInfo = userService.getUserInfo(uid);
|
|
if (uid.equalsIgnoreCase("0")) {
|
out.print(JsonUtil.loadFalseJson("获取uid失败"));
|
return;
|
} else {
|
Map<String, String> map = configService.getConfigAsMap(acceptData.getChildDetailSystem(), acceptData.getVersion());
|
ShareContent share = shareService.getShareContent(detailSystem.getId());
|
JSONObject object = new JSONObject();
|
object.put("Uid", uid);
|
object.put("Portrait", userInfo.getPortrait());
|
object.put("Nickname", userInfo.getNickname());
|
|
object.put("ZiXun", map.get("zixun_url"));
|
if (acceptData.getPlatform().equalsIgnoreCase("ios") && !"中国".equalsIgnoreCase(userInfo.getCountry()))// 正在审核的版本
|
object.put("CommentUrl", "");
|
else if (share != null)
|
object.put("CommentUrl", share.getShareUrl());
|
object.put("IOSSlotID", "");
|
|
if (acceptData.getPlatform().equalsIgnoreCase("ios") && !"中国".equalsIgnoreCase(userInfo.getCountry())) {
|
object.put("IOSDownLoad", "0");// 是否显示下载 0-不下载 1-下载
|
} else
|
object.put("IOSDownLoad", "1");// 是否显示下载 0-不下载 1-下载
|
|
object.put("ShareContent", "业界良心!这是我用过最好的视频APP!最新的都有!");
|
if (share != null) {
|
object.put("ShareContent", share.getShareContent());
|
object.put("ShareUrl", share.getShareUrl());
|
}
|
object.put("WXShareIcon", map.get("wx_share_icon"));
|
object.put("WXShareUrl", map.get("wx_share_url"));
|
object.put("WXShareContent", map.get("wx_share_content"));
|
|
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());
|
|
if (acceptData.getPackageName().contains("com.ys"))
|
object.put("NoticeContent", map.get("play_notice_content_ys"));
|
else if (acceptData.getPackageName().contains("com.doudou")) {
|
object.put("NoticeContent", map.get("play_notice_content_doudou"));
|
} else
|
object.put("NoticeContent", map.get("play_notice_content"));
|
|
object.put("ShowMoreApp", map.get("show_more_app"));
|
object.put("ShowAd", map.get("show_ad"));
|
|
object.put("PPTVSO", map.get("pptvsourl"));
|
|
object.put("COMMENT_ALERT", map.get("comment_alert"));
|
|
object.put("evalueate", map.get("evalueate"));
|
object.put("shopurl", map.get("shopurl"));
|
object.put("copyplate", map.get("copy_plate"));
|
|
//开关设置
|
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 {
|
object.put("adClickDownload", false);
|
}
|
|
|
// 广告类型
|
object.put("adType", map.get("ad_type"));
|
|
// String fullVideoVersionChannels = map.get("video_detail_full_video_version_channel");
|
// JSONObject json = JSONObject.fromObject(fullVideoVersionChannels);
|
// if (json.optInt(acceptData.getChannel().toLowerCase(), 0) > 0) {
|
// }
|
|
|
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());
|
}
|
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
}
|
|
}
|
|
// 搜索
|
public void suggestSearch(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String key = request.getParameter("Key");
|
if (StringUtil.isNullOrEmpty(key)) {
|
out.print(JsonUtil.loadFalseJson("请上传Key"));
|
return;
|
}
|
|
List<String> list = solrDataManager.getSuggestKeyList(key); //searchService.suggestSearch(key, acceptData.getSystem());
|
if (acceptData.getPlatform().equalsIgnoreCase("ios")) {
|
if (Constant.IOSTest) {
|
if (acceptData.getVersion() == 1) {
|
list = new ArrayList<>();
|
}
|
}
|
}
|
List<String> list1 = solrInternetSearchVideoDataManager.getSuggestKeyList(key);
|
if (list1 != null) {
|
list.addAll(list1);
|
}
|
|
Set<String> set = new HashSet<>();
|
|
if (list != null) {
|
for (String st : list) {
|
set.add(st);
|
}
|
list.clear();
|
list.addAll(set);
|
}
|
|
//按关键词的匹配度排序
|
Comparator<String> cm = new Comparator<String>() {
|
@Override
|
public int compare(String o1, String o2) {
|
float s1 = CompareStrSimUtil.getSimilarityRatio(o1, key, true);
|
float s2 = CompareStrSimUtil.getSimilarityRatio(o2, key, true);
|
return s2 > s1 ? 1 : -1;
|
}
|
};
|
|
Collections.sort(list, cm);
|
|
|
JSONObject object = new JSONObject();
|
object.put("count", list.size() + "");
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < list.size(); i++) {
|
if (i < 10)
|
array.add(StringUtil.outPutResultJson(list.get(i)));
|
}
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
|
}
|
|
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() != null && video.getVideocount() <= 5) {
|
for (int i = 0; i < video.getVideocount(); i++) {
|
VideoDetailInfo detail = new VideoDetailInfo();
|
detail.setTag((i + 1) + "");
|
detailList.add(detail);
|
}
|
} else {
|
for (int i = 0; i < 3; i++) {
|
VideoDetailInfo detail = new VideoDetailInfo();
|
detail.setTag((i + 1) + "");
|
detailList.add(detail);
|
}
|
|
for (int i = video.getVideocount() - 3; i < video.getVideocount(); i++) {
|
VideoDetailInfo detail = new VideoDetailInfo();
|
detail.setTag((i + 1) + "");
|
detailList.add(detail);
|
}
|
}
|
}
|
|
return detailList;
|
}
|
|
|
// 搜索
|
public void search(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
|
String key = request.getParameter("Key");
|
String type = request.getParameter("Type");
|
|
|
String page = request.getParameter("Page");
|
String videoType = request.getParameter("VideoType");
|
|
|
String contentType = request.getParameter("ContentType");
|
|
|
if (StringUtil.isNullOrEmpty(key)) {
|
out.print(JsonUtil.loadFalseJson("请上传Key"));
|
return;
|
}
|
|
if (StringUtil.isNullOrEmpty(type)) {
|
out.print(JsonUtil.loadFalseJson("请上传Type"));
|
return;
|
}
|
|
|
int pageIndex = StringUtil.getPage(page);
|
if (pageIndex <= 0) {
|
pageIndex = 1;
|
}
|
|
DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
|
UserInfo user1 = userService.getUserInfo(acceptData.getUid());
|
if (Utils.isTest(request, user1, detailSystem.getId())) {
|
detailSystem = systemService.getDetailSystemById(40 + "");
|
JSONObject object = new JSONObject();
|
object.put("count", 0);
|
JSONArray array = new JSONArray();
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
} else {
|
List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(detailSystem, acceptData.getVersion(), acceptData.getChannel());
|
String cacheMD5 = "0";
|
if (resourceList != null && resourceList.size() > 0)
|
for (Long l : resourceList)
|
cacheMD5 += "#" + l;
|
cacheMD5 = StringUtil.Md5(cacheMD5);
|
|
List<VideoInfo> list = searchService.search(detailSystem.getId(), request.getRemoteAddr(),
|
acceptData.getUid(), key, pageIndex, (StringUtil.isNullOrEmpty(contentType) ? 0 : Integer.parseInt(contentType)),
|
acceptData.getSystem(), resourceList, cacheMD5);
|
//组织数据
|
for (VideoInfo video : list) {
|
//如果是正片,且为5大分类 就采用竖条展示
|
if (video.getShowType() == 1) {
|
video.setVideoDetailList(createSearchVideoDetailsVO(video));
|
|
}
|
}
|
cacheMD5 = "0";
|
if (list != null) {
|
for (VideoInfo info : list) {
|
cacheMD5 += info.getId() + "#";
|
}
|
}
|
list = banQuanService.getBanQuanVideo(list, detailSystem.getId(), cacheMD5);
|
|
JSONObject object = new JSONObject();
|
object.put("count", Constant.isUpdate ? 19 + "" : list.size());
|
JSONArray array = new JSONArray();
|
for (int i = 0; i < list.size(); i++) {
|
if (JuheVideoUtil.isNeedDelete((VideoInfo) list.get(i), detailSystem.getId())) {
|
list.remove(i);
|
i--;
|
}
|
}
|
|
List<String> keyList = banQuanService.getBanQuanKeyListAll(Integer.parseInt(detailSystem.getId()));
|
for (int i = 0; i < list.size(); i++) {
|
|
boolean delete = false;
|
for (int j = 0; j < keyList.size(); j++) {
|
if (list.get(i).getName().contains(keyList.get(j))) {
|
delete = true;
|
break;
|
}
|
}
|
if (delete) {
|
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) {//返回导航栏
|
|
}
|
|
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("请上传Key"));
|
return;
|
}
|
|
if (StringUtil.isNullOrEmpty(type)) {
|
out.print(JsonUtil.loadFalseJson("请上传Type"));
|
return;
|
}
|
|
final String id = StringUtil.Md5(String.format("%s#%s#%s#%s", acceptData.getDetailSystem().getId(), acceptData.getDevice(), key, type));
|
ThreadUtil.run(new Runnable() {
|
@Override
|
public void run() {
|
String redisKey = "search-" + id;
|
Jedis jedis = redisManager.getJedis();
|
try {
|
//重复请求过滤
|
if (jedis.setnx(redisKey, "1") <= 0) {
|
return;
|
}
|
jedis.expire(redisKey, 120);
|
JSONObject searchData = new JSONObject();
|
searchData.put("key", key);
|
searchData.put("type", type);
|
searchData.put("detailSystemId", acceptData.getDetailSystem().getId());
|
searchData.put("device", acceptData.getDevice());
|
searchData.put("createTime", System.currentTimeMillis());
|
searchKeyLogger.info(new Gson().toJson(searchData));
|
} finally {
|
jedis.close();
|
}
|
}
|
});
|
LoggerUtil.getUserActiveLogger().info(UserActiveLogFactory.createSearch(new BaseLog(acceptData, ""), key, type));
|
|
int pageIndex = StringUtil.getPage(page);
|
if (pageIndex <= 0) {
|
pageIndex = 1;
|
}
|
|
List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion(), acceptData.getChannel());
|
|
|
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--;
|
}
|
}
|
|
|
if (pageIndex == 1) {//返回导航栏
|
List<VideoType> typeList = new ArrayList<>();
|
VideoType vt = new VideoType();
|
vt.setId(0);
|
vt.setName("全部");
|
typeList.add(vt);
|
List<Long> set = new ArrayList<>();
|
//将视频内容分类并排序
|
Map<Long, List<VideoInfo>> videoMap = new HashMap<>();
|
for (int i = 0; i < list.size(); i++) {
|
VideoInfo videoInfo = list.get(i);
|
if (videoInfo.getShowType() == 1 && videoInfo.getVideoType() != null) {
|
if (videoMap.get(videoInfo.getVideoType().getId()) == null)
|
videoMap.put(videoInfo.getVideoType().getId(), new ArrayList<>());
|
videoMap.get(videoInfo.getVideoType().getId()).add(videoInfo);
|
if (!set.contains(videoInfo.getVideoType().getId()))
|
set.add(videoInfo.getVideoType().getId());
|
|
if (VersionUtil.isGraterThan390(acceptData.getPlatform(), acceptData.getVersion()) && (StringUtil.isNullOrEmpty(type) || type.equalsIgnoreCase("0"))) {
|
list.remove(i);
|
i--;
|
}
|
}
|
}
|
|
//重新组织数据
|
if (VersionUtil.isGraterThan390(acceptData.getPlatform(), acceptData.getVersion()) && (StringUtil.isNullOrEmpty(type) || type.equalsIgnoreCase("0"))) {
|
List<VideoInfo> albumVideoList = new ArrayList<>();
|
for (int i = 0; i < set.size(); i++) {
|
Long typeId = set.get(i);
|
String typeName = VideoConstant.getMainCategoryName(typeId);
|
if (!StringUtil.isNullOrEmpty(typeName)) {
|
videoMap.get(typeId).get(0).setAlbumMoreInfo(new VideoInfo.VideoAlbumMoreInfo(typeName, i + 1));
|
albumVideoList.addAll(videoMap.get(typeId));
|
}
|
}
|
list.addAll(0, albumVideoList);
|
}
|
|
|
for (int i = 0; i < set.size(); i++) {
|
Long typeId = set.get(i);
|
String typeName = VideoConstant.getMainCategoryName(typeId);
|
if (!StringUtil.isNullOrEmpty(typeName)) {
|
vt = new VideoType();
|
vt.setId(typeId);
|
vt.setName(typeName);
|
typeList.add(vt);
|
}
|
}
|
|
//韩剧不返回高清
|
if (!acceptData.getDetailSystem().getId().equalsIgnoreCase("48")) {
|
vt = new VideoType();
|
vt.setId(Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION);
|
vt.setName("高清");
|
typeList.add(vt);
|
}
|
|
|
JSONArray array1 = new JSONArray();
|
for (VideoType vt1 : typeList)
|
array1.add(StringUtil.outPutResultJson(vt1));
|
object.put("typeList", array1);
|
}
|
|
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);
|
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
|
}
|
|
|
@Resource
|
private InternetSearchVideoService internetSearchVideoService;
|
|
private void guessLikeForInternetSearch(AcceptData acceptData, String videoId, PrintWriter out) {
|
InternetSearchVideo internetSearchVideo = internetSearchVideoService.selectByPrimaryKey(videoId);
|
if (internetSearchVideo != null) {
|
int rootType = internetSearchVideo.getRootType();
|
SolrVideoSearchFilter filter = new SolrVideoSearchFilter();
|
filter.setVideoType(rootType);
|
filter.setResourceIds(Arrays.asList(new String[]{PPTVUtil.RESOURCE_ID + ""}));
|
filter.setSortKey("watchcount");
|
SolrResultDTO dto = solrDataManager.find(filter, 1, 20);
|
List<SolrAlbumVideo> solrAlbumVideoList = new ArrayList<>();
|
solrAlbumVideoList.addAll(dto.getVideoList());
|
List<VideoInfo> list = new ArrayList<>();
|
for (int i = 0; i < 4; i++) {
|
if (solrAlbumVideoList.size() > 0) {
|
int p = (int) (Math.random() * solrAlbumVideoList.size());
|
SolrAlbumVideo solrAlbumVideo = solrAlbumVideoList.get(p);
|
list.add(VideoInfoFactory.create(solrAlbumVideo));
|
solrAlbumVideoList.remove(p);
|
}
|
}
|
|
if (list.size() < 4) {
|
filter.setResourceIds(null);
|
dto = solrDataManager.find(filter, 1, 20);
|
solrAlbumVideoList.clear();
|
solrAlbumVideoList.addAll(dto.getVideoList());
|
for (int i = list.size(); i < 4; i++) {
|
if (solrAlbumVideoList.size() > 0) {
|
int p = (int) (Math.random() * solrAlbumVideoList.size());
|
SolrAlbumVideo solrAlbumVideo = solrAlbumVideoList.get(p);
|
list.add(VideoInfoFactory.create(solrAlbumVideo));
|
solrAlbumVideoList.remove(p);
|
}
|
}
|
}
|
|
|
JSONObject object = new JSONObject();
|
object.put("count", list.size() + "");
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < list.size(); i++) {
|
array.add(StringUtil.outPutResultJson(list.get(i)));
|
}
|
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
}
|
|
}
|
|
|
private void guessLikeForShortVideo(AcceptData acceptData, String videoId, PrintWriter out) {
|
SolrShortVideo solrShortVideo = solrShortVideoDataManager.findOne(videoId);
|
SolrShortVideoSearchFilter filter = new SolrShortVideoSearchFilter();
|
filter.setRootVideoType(solrShortVideo.getRootVideoType());
|
if (solrShortVideo.getArea() != null) {
|
filter.setAreas(Arrays.asList(solrShortVideo.getArea().split(",")));
|
}
|
|
SolrResultDTO dto = solrShortVideoDataManager.find(filter, 1, 10);
|
|
|
JSONObject object = new JSONObject();
|
object.put("count", dto.getVideoList().size() + "");
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < dto.getVideoList().size(); i++) {
|
SolrShortVideo temp = (SolrShortVideo) dto.getVideoList().get(i);
|
if (temp.getId().equalsIgnoreCase(videoId))
|
continue;
|
array.add(StringUtil.outPutResultJson(VideoInfoFactory.create(temp)));
|
}
|
if (array.size() % 2 != 0) {
|
array.remove(array.size() - 1);
|
}
|
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
}
|
|
// 猜你喜欢
|
public void guessLike(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
|
String videoId = request.getParameter("VideoId");
|
int fromtype = VideoUtil.getVideoFromType(videoId);
|
switch (fromtype) {
|
case HomeVideo.FROM_TYPE_INTERNET:
|
guessLikeForInternetSearch(acceptData, videoId, out);
|
return;
|
case HomeVideo.FROM_TYPE_SHORT:
|
guessLikeForShortVideo(acceptData, videoId, out);
|
return;
|
}
|
|
DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName());
|
|
List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion(), acceptData.getChannel());
|
List<VideoInfo> list1 = StringUtil.isNullOrEmpty(videoId)
|
? recommendService.guessLikeList(ds.getId(), 4, resourceList, CacheUtil.getMD5Long(resourceList))
|
: recommendService.guessLikeList(ds.getId(), 4, videoId, resourceList,
|
CacheUtil.getMD5Long(resourceList));
|
|
if ("ios".equalsIgnoreCase(acceptData.getPlatform())) { // 过审核时使用
|
list1 = videoInfoService.simpleRandomVideoList(4);
|
}
|
|
List<VideoInfo> list = new ArrayList<>();
|
list.addAll(list1);
|
|
if ("android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() < 35) {
|
if (list.size() > 3)
|
list = list.subList(0, 3);
|
} else if ("ios".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() < 15) {
|
if (list.size() > 3)
|
list = list.subList(0, 3);
|
}
|
|
JSONObject object = new JSONObject();
|
object.put("count", list.size() + "");
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < list.size(); i++) {
|
if (list.get(i).getPicture().contains("qiyi"))
|
list.get(i).setPicture(list.get(i).getPicture().replace(".jpg", "_260_360.jpg"));
|
array.add(StringUtil.outPutResultJson(list.get(i)));
|
}
|
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
|
}
|
|
// 获取热门搜索
|
public void getHotSearch(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
|
DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
|
List<String> list = searchService.getHotSearchList(detailSystem.getId());
|
JSONObject object = new JSONObject();
|
object.put("count", list.size() + "");
|
JSONArray array = new JSONArray();
|
for (int i = 0; i < list.size(); i++) {
|
array.add(StringUtil.outPutResultJson(list.get(i)));
|
}
|
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
|
}
|
|
|
//新版热门搜索
|
public void getHotSearchNew(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
DetailSystemConfig config = configService.getConfigByKey("hot_search", acceptData.getDetailSystem(), acceptData.getVersion());
|
if (config == null) {
|
out.print(JsonUtil.loadFalseJson("无内容"));
|
return;
|
}
|
String value = config.getValue();
|
Type type = new TypeToken<List<String>>() {
|
}.getType();
|
|
List<String> list = new Gson().fromJson(value, type);
|
|
|
JSONObject object = new JSONObject();
|
object.put("count", list.size() + "");
|
JSONArray array = new JSONArray();
|
for (int i = 0; i < list.size(); i++) {
|
array.add(list.get(i));
|
}
|
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
}
|
|
|
//获取搜索排行榜
|
public void getSearchRank(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
// try {
|
// Map<String, List<String>> map = IqiyiRankUtil.getRank(10);
|
// } catch (IOException e) {
|
// e.printStackTrace();
|
// }
|
|
//搜索排行
|
String value = systemConfigService.getConfigValueByKeyCache("searchRank");
|
|
Map<Integer, JSONObject> map = new TreeMap<>();
|
if (!StringUtil.isNullOrEmpty(value)) {
|
JSONObject root = JSONObject.fromObject(value);
|
for (Iterator<String> its = root.keys(); its.hasNext(); ) {
|
String key = its.next();
|
JSONArray array = root.optJSONArray(key);
|
JSONObject data = new JSONObject();
|
switch (key) {
|
case "热搜":
|
data.put("热搜榜", array);
|
map.put(0, data);
|
break;
|
case "电视剧":
|
data.put("电视剧榜", array);
|
map.put(1, data);
|
break;
|
case "电影":
|
data.put("电影榜", array);
|
map.put(2, data);
|
break;
|
case "综艺":
|
data.put("综艺榜", array);
|
map.put(3, data);
|
break;
|
case "动漫":
|
data.put("动漫榜", array);
|
map.put(4, data);
|
break;
|
}
|
}
|
}
|
|
JSONObject data = new JSONObject();
|
for (Iterator<Integer> its = map.keySet().iterator(); its.hasNext(); ) {
|
Integer key = its.next();
|
JSONObject item = map.get(key);
|
String k = item.keys().next().toString();
|
data.put(k, item.optJSONArray(k));
|
}
|
|
|
JSONObject object = new JSONObject();
|
object.put("data", data);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
}
|
|
// 获取用户信息
|
public void getUserInfo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
UserData data = userService.getUserData(acceptData.getUid());
|
out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(data)));
|
|
}
|
|
@RequireUid
|
// 获取收藏的视频
|
public void getCollectedVideo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String page = request.getParameter("Page");
|
String loginUid = request.getParameter("LoginUid");
|
int pageIndex = StringUtil.getPage(page);
|
|
if (pageIndex <= 0) {
|
out.print(JsonUtil.loadFalseJson("请上传Page"));
|
return;
|
}
|
|
List<VideoInfo> list = collectionService.getCollectVideo(acceptData.getUid(), loginUid, pageIndex);
|
JSONObject object = new JSONObject();
|
object.put("count", collectionService.getCollectVideoCount(acceptData.getUid()) + "");
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < list.size(); i++) {
|
array.add(StringUtil.outPutResultJson(list.get(i)));
|
}
|
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
|
}
|
|
// 搜藏送积分
|
@RequireUid
|
public void getScoreCollect(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String videoId = request.getParameter("VideoId");
|
String type = request.getParameter("Type");
|
String thirdType = request.getParameter("ThirdType");
|
|
String loginUid = request.getParameter("LoginUid");
|
|
if (StringUtil.isNullOrEmpty(videoId)) {
|
out.print(JsonUtil.loadFalseJson("请上传VideoId"));
|
return;
|
}
|
|
if (StringUtil.isNullOrEmpty(type)) {
|
out.print(JsonUtil.loadFalseJson("请上传Type"));
|
return;
|
}
|
|
|
if (type.equalsIgnoreCase("1")) {// 收藏
|
ScoreHelper helper = new ScoreHelper();
|
|
if (collectionService.isCollect(acceptData.getUid(), videoId)) {
|
helper.setScore("0");
|
} else {
|
VideoInfo vf = new VideoInfo();
|
vf.setId(videoId);
|
Collection c = new Collection();
|
c.setUser(new UserInfo(acceptData.getUid()));
|
if (!StringUtil.isNullOrEmpty(loginUid)) {
|
c.setLoginUser(new LoginUser(loginUid));
|
}
|
c.setVideo(vf);
|
c.setThirdType(thirdType);
|
c.setCreatetime((new StringBuilder(String.valueOf(System.currentTimeMillis()))).toString());
|
collectionService.saveCollection(c);
|
}
|
JSONObject object = new JSONObject();
|
object.put("GetScore", helper.getScore());
|
object.put("TotalScore", helper.getTotalScore());
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
} else// 取消收藏
|
{
|
String[] videoIds = videoId.split(",");
|
String[] thirdTypes = thirdType.split(",");
|
collectionService.cancelCollect(acceptData.getUid(), loginUid, videoIds, thirdTypes);
|
out.print(JsonUtil.loadTrueJson(""));
|
}
|
|
}
|
|
public void getUserBanner(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
|
List<UserBanner> list = userBannerService.getUserBannerList(detailSystem.getId());
|
long count = list.size();
|
|
JSONObject object = new JSONObject();
|
object.put("count", count + "");
|
JSONArray array = new JSONArray();
|
for (int i = 0; i < list.size(); i++) {
|
array.add(StringUtil.outPutResultJson(list.get(i)));
|
}
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
}
|
|
@RequireUid
|
public void updateUserInfo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String portrait = request.getParameter("Portrait");
|
String nickname = request.getParameter("Nickname");// 昵称
|
|
UserInfo user = userService.getUserInfo(acceptData.getUid());
|
if (!StringUtil.isNullOrEmpty(portrait))
|
user.setPortrait(portrait);
|
if (!StringUtil.isNullOrEmpty(nickname))
|
user.setNickname(nickname);
|
userService.updateUserInfo(user);
|
|
out.print(JsonUtil.loadTrueJson(""));
|
|
}
|
|
|
private void getRelativeVideosForInternetSearch(AcceptData acceptData, String videoId, PrintWriter out) {
|
InternetSearchVideo internetSearchVideo = internetSearchVideoService.selectByPrimaryKey(videoId);
|
if (internetSearchVideo != null) {
|
SolrVideoSearchFilter filter = new SolrVideoSearchFilter();
|
filter.setKey(internetSearchVideo.getName());
|
filter.setFuzzy(true);
|
SolrResultDTO dto = solrDataManager.find(filter, 1, 20);
|
List<SolrAlbumVideo> solrAlbumVideoList = new ArrayList<>();
|
solrAlbumVideoList.addAll(dto.getVideoList());
|
List<VideoInfo> list = new ArrayList<>();
|
for (int i = 0; i < 4; i++) {
|
if (i < solrAlbumVideoList.size()) {
|
SolrAlbumVideo solrAlbumVideo = solrAlbumVideoList.get(i);
|
list.add(VideoInfoFactory.create(solrAlbumVideo));
|
}
|
}
|
|
|
JSONObject object = new JSONObject();
|
object.put("count", list.size() + "");
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < list.size(); i++) {
|
array.add(StringUtil.outPutResultJson(list.get(i)));
|
}
|
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
}
|
|
}
|
|
|
private void getRelativeVideosForShortVideo(AcceptData acceptData, String videoId, PrintWriter out) {
|
SolrShortVideo solrShortVideo = solrShortVideoDataManager.findOne(videoId);
|
SolrShortVideoSearchFilter filter = new SolrShortVideoSearchFilter();
|
filter.setKey(solrShortVideo.getName());
|
filter.setFuzzy(true);
|
|
SolrResultDTO dto = solrShortVideoDataManager.find(filter, 1, 10);
|
|
|
JSONObject object = new JSONObject();
|
object.put("count", dto.getVideoList().size() + "");
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < dto.getVideoList().size(); i++) {
|
SolrShortVideo temp = (SolrShortVideo) dto.getVideoList().get(i);
|
if (temp.getId().equalsIgnoreCase(videoId))
|
continue;
|
array.add(StringUtil.outPutResultJson(VideoInfoFactory.create(temp)));
|
}
|
if (array.size() % 2 != 0) {
|
array.remove(array.size() - 1);
|
}
|
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
}
|
|
|
/**
|
* 相关视频
|
*
|
* @param request
|
* @
|
*/
|
public void getRelativeVideos(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String videoId = request.getParameter("VideoId");
|
if (StringUtil.isNullOrEmpty(videoId)) {
|
out.print(JsonUtil.loadFalseJson("请上传VideoId"));
|
return;
|
}
|
|
int fromtype = VideoUtil.getVideoFromType(videoId);
|
switch (fromtype) {
|
case HomeVideo.FROM_TYPE_INTERNET:
|
getRelativeVideosForInternetSearch(acceptData, videoId, out);
|
return;
|
case HomeVideo.FROM_TYPE_SHORT:
|
getRelativeVideosForShortVideo(acceptData, videoId, out);
|
return;
|
}
|
|
List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion(), acceptData.getChannel());
|
|
DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName());
|
List<VideoInfo> list = recommendService.getRelativeVideoList(ds.getId(), 4, videoId, resourceList,
|
CacheUtil.getMD5Long(resourceList));
|
if ("android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() < 35) {
|
if (list.size() > 3)
|
list = list.subList(0, 3);
|
} else if ("ios".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() < 15) {
|
if (list.size() > 3)
|
list = list.subList(0, 3);
|
}
|
JSONObject object = new JSONObject();
|
object.put("count", list.size() + "");
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < list.size(); i++) {
|
array.add(StringUtil.outPutResultJson(list.get(i)));
|
}
|
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
|
}
|
|
/**
|
* 大家都在看
|
*
|
* @param request
|
* @
|
*/
|
public void getPeopleSeeVideos(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String videoId = request.getParameter("VideoId");
|
|
if (StringUtil.isNullOrEmpty(videoId)) {
|
out.print(JsonUtil.loadFalseJson("请上传VideoId"));
|
return;
|
}
|
|
List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion(), acceptData.getChannel());
|
|
DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName());
|
List<VideoInfo> list1 = recommendService.peopleSee(ds.getId(), 4, videoId, resourceList,
|
CacheUtil.getMD5Long(resourceList));
|
if ("ios".equalsIgnoreCase(acceptData.getPlatform())) { // 过审核时使用
|
list1 = videoInfoService.simpleRandomVideoList(4);
|
}
|
|
List<VideoInfo> list = new ArrayList<>();
|
list.addAll(list1);
|
|
if ("android".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() < 35) {
|
if (list.size() > 3)
|
list = list.subList(0, 3);
|
} else if ("ios".equalsIgnoreCase(acceptData.getPlatform()) && acceptData.getVersion() < 15) {
|
if (list.size() > 3)
|
list = list.subList(0, 3);
|
}
|
|
JSONObject object = new JSONObject();
|
object.put("count", list.size() + "");
|
JSONArray array = new JSONArray();
|
|
for (int i = 0; i < list.size(); i++) {
|
array.add(StringUtil.outPutResultJson(list.get(i)));
|
}
|
|
object.put("data", array);
|
out.print(JsonUtil.loadTrueJson(object.toString()));
|
}
|
|
/**
|
* 注册
|
*
|
* @param request
|
* @param out
|
*/
|
public void register(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String account = request.getParameter("Email");// 邮箱
|
String pwd = request.getParameter("Pwd");// 密码
|
String nickName = request.getParameter("NickName");// 昵称
|
String code = request.getParameter("VerifyCode");// 验证码
|
String portrait = request.getParameter("Portrait");// 验证码
|
|
|
if (StringUtil.isNullOrEmpty(account)) {
|
out.print(JsonUtil.loadFalseJson("请上传Email"));
|
return;
|
}
|
|
if (StringUtil.isNullOrEmpty(pwd)) {
|
out.print(JsonUtil.loadFalseJson("请上传Pwd"));
|
return;
|
}
|
if (StringUtil.isNullOrEmpty(code)) {
|
out.print(JsonUtil.loadFalseJson("请上传VerifyCode"));
|
return;
|
}
|
|
if (!code.equalsIgnoreCase(request.getSession().getAttribute(account) + "")) {
|
out.print(JsonUtil.loadFalseJson("验证码错误"));
|
return;
|
}
|
|
if (!StringUtil.isNullOrEmpty(account) && !account.trim().endsWith("@qq.com")) {
|
out.print(JsonUtil.loadFalseJson("只支持QQ邮箱注册"));
|
return;
|
}
|
|
int port = request.getRemotePort();
|
String ip = getIp(request);
|
|
if (StringUtil.isNullOrEmpty(nickName))
|
nickName = "无名氏";
|
|
|
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("注册成功"));
|
} catch (RegisterUserException e) {
|
out.print(JsonUtil.loadFalseJson(e.getMessage()));
|
}
|
}
|
|
/**
|
* 发送验证码
|
*
|
* @param request
|
* @param out
|
*/
|
public void sendVerifyCode(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
|
final String account = request.getParameter("Email");// 邮箱
|
if (StringUtil.isNullOrEmpty(account)) {
|
out.print(JsonUtil.loadFalseJson("请上传Email"));
|
return;
|
}
|
if (!StringUtil.isNullOrEmpty(account) && !account.trim().endsWith("@qq.com")) {
|
out.print(JsonUtil.loadFalseJson("只支持QQ邮箱注册"));
|
return;
|
}
|
|
final String code = StringUtil.getVerifyCode();
|
request.getSession().setAttribute(account, code);
|
// new Thread(new Runnable() {
|
// public void run() {
|
// for (int i = 0; i < 3; i++) {
|
DetailSystem detailSystem = systemService.getDetailSystemByPackage(acceptData.getPackageName());
|
String title = "布丸社区注册验证码:" + code;
|
String content = "布丸社区注册验证码:" + code;
|
if (!detailSystem.getAppName().contains("布丸")) {
|
String name = detailSystem.getAppName();
|
title = name + "验证码:" + code;
|
content = title;
|
}
|
|
boolean isS = MailSenderUtil.sendEmail(account, "ysyz17784739772@126.com", "weikou2014", title,
|
content);
|
// }
|
|
// }).start();
|
out.print(JsonUtil.loadTrueJson("验证码发送成功"));
|
}
|
|
/**
|
* 登录
|
*
|
* @param request
|
* @param out
|
*/
|
public void login(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String account = request.getParameter("Email");// 邮箱
|
String pwd = request.getParameter("Pwd");// 密码
|
if (StringUtil.isNullOrEmpty(account)) {
|
out.print(JsonUtil.loadFalseJson("请上传Email"));
|
return;
|
}
|
|
if (StringUtil.isNullOrEmpty(pwd)) {
|
out.print(JsonUtil.loadFalseJson("请上传Pwd"));
|
return;
|
}
|
|
// DetailSystem ds =
|
// systemService.getDetailSystemByPackage(packageName);
|
// 注册 --用户名,昵称,密码
|
|
LoginInfoDto loginInfoDto = new LoginInfoDto();
|
loginInfoDto.setLoginType(LoginUser.LOGIN_TYPE_EMAIL);
|
loginInfoDto.setSystemId(acceptData.getDetailSystem().getSystem().getId());
|
loginInfoDto.setEmail(account);
|
loginInfoDto.setPwd(StringUtil.Md5(pwd));
|
loginInfoDto.setIpInfo(IPUtil.getRemotIP(request) + ":" + request.getRemotePort());
|
try {
|
LoginUser user = userService.login(loginInfoDto);
|
out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(user)));
|
} catch (LoginUserException e) {
|
out.print(JsonUtil.loadFalseJson(e.getMessage()));
|
}
|
}
|
|
/**
|
* 更改用户信息
|
*
|
* @param request
|
* @param out
|
*/
|
public void updateLoginUserInfo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String nickName = request.getParameter("NickName");// 昵称
|
String sex = request.getParameter("Sex");// 性别 0-女 1-男
|
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("请上传LoginUid"));
|
return;
|
}
|
|
// 注册 --用户名,昵称,密码
|
LoginUser user = userService.getLoginUser(loginUid);
|
if (user != null) {
|
if (!StringUtil.isNullOrEmpty(nickName))
|
user.setName(nickName);
|
String potrait = savePortrait(portrait, request.getSession());
|
if (!StringUtil.isNullOrEmpty(potrait))
|
user.setPortrait(potrait);
|
if (!StringUtil.isNullOrEmpty(sex))
|
user.setSex(sex);
|
if (!StringUtil.isNullOrEmpty(acceptData.getSign()))
|
user.setSign(personalSign);
|
if (!StringUtil.isNullOrEmpty(birthDay))
|
user.setBirthday(birthDay);
|
userService.updateLoginUserInfo(user);
|
}
|
|
out.print(JsonUtil.loadTrueJson("修改成功"));
|
|
}
|
|
/**
|
* 获取用户信息
|
*
|
* @param request
|
* @param out
|
*/
|
public void getLoginUserInfo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String loginUid = request.getParameter("LoginUid");// 个性签名
|
|
if (StringUtil.isNullOrEmpty(loginUid)) {
|
out.print(JsonUtil.loadFalseJson("请上传LoginUid"));
|
return;
|
}
|
|
// 注册 --用户名,昵称,密码
|
LoginUser user = userService.getLoginUser(loginUid);
|
if (user.getState() != null && user.getState() == LoginUser.STATE_UNREGISTER) {
|
out.print(JsonUtil.loadFalseJson("账户已注销"));
|
return;
|
}
|
//隐藏user中的email
|
user.setEmail(UserInfoVOFactory.getHiddenEmail(user.getEmail()));
|
if (user.getPortrait() != null && !user.getPortrait().startsWith("http"))
|
user.setPortrait("http://" + Constant.WEBSITE + "/BuWan" + user.getPortrait());
|
out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(user)));
|
}
|
|
/**
|
* 设置密码
|
*
|
* @param request
|
* @param out
|
*/
|
public void setPwd(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
String email = request.getParameter("Email");// 个性签名
|
String pwd = request.getParameter("Pwd");// 密码
|
String verifyCode = request.getParameter("VerifyCode");// 验证码
|
|
if (StringUtil.isNullOrEmpty(email)) {
|
out.print(JsonUtil.loadFalseJson("请上传Email"));
|
return;
|
}
|
|
if (StringUtil.isNullOrEmpty(pwd)) {
|
out.print(JsonUtil.loadFalseJson("请上传Pwd"));
|
return;
|
}
|
|
if (StringUtil.isNullOrEmpty(verifyCode)) {
|
out.print(JsonUtil.loadFalseJson("请上传VerifyCode"));
|
return;
|
}
|
|
if (!verifyCode.equalsIgnoreCase(request.getSession().getAttribute(email) + "")) {
|
out.print(JsonUtil.loadFalseJson("验证码错误"));
|
return;
|
}
|
|
// 注册 --用户名,昵称,密码
|
LoginUser user = userService.getLoginUserByOpenId(email);
|
if (user == null) {
|
out.print(JsonUtil.loadFalseJson("该用户不存在"));
|
} else {
|
user.setPwd(StringUtil.Md5(pwd));
|
userService.updateLoginUserInfo(user);
|
out.print(JsonUtil.loadTrueJson("密码设置成功"));
|
}
|
|
}
|
|
/**
|
* 设置密码
|
*
|
* @param request
|
* @param out
|
*/
|
public void unRegister(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
|
|
// 包名
|
|
|
String callback = request.getParameter("callback");
|
String loginUid = request.getParameter("LoginUid");
|
|
if (StringUtil.isNullOrEmpty(loginUid)) {
|
out.print(callback + "(" + JsonUtil.loadFalseJson("用户尚未登录", false) + ")");
|
return;
|
}
|
|
// 注册 --用户名,昵称,密码
|
try {
|
userService.unRegister(Long.parseLong(loginUid));
|
out.print(callback + "(" + JsonUtil.loadTrueJson("注销成功", false) + ")");
|
} catch (Exception e) {
|
out.print(callback + "(" + JsonUtil.loadFalseJson(e.getMessage(), false) + ")");
|
}
|
|
}
|
|
public static String savePortrait(String base64, HttpSession session) {
|
if (StringUtil.isNullOrEmpty(base64))
|
return "";
|
|
String fileName = "portrait_" + System.currentTimeMillis() + ".jpg";
|
// 定义上传路径
|
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 "";
|
|
try {
|
String result = COSManager.getInstance().uploadFile(new File(path), fileName);
|
if (!StringUtil.isNullOrEmpty(result))
|
return result;
|
} catch (IllegalStateException e) {
|
e.printStackTrace();
|
}
|
return "";
|
}
|
|
public void getIPInfo(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
|
String ip = request.getHeader("x-forwarded-for");
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
ip = request.getHeader("Proxy-Client-IP");
|
}
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
ip = request.getHeader("WL-Proxy-Client-IP");
|
}
|
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
ip = request.getHeader("X-Real-IP");
|
}
|
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
ip = request.getRemoteAddr();
|
}
|
out.print(ip + "-----" + IPUtil.getIPContry(request.getRemoteAddr()));
|
|
}
|
|
public static String getIp(HttpServletRequest request) {
|
String ip = request.getHeader("x-forwarded-for");
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
ip = request.getHeader("Proxy-Client-IP");
|
}
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
ip = request.getHeader("WL-Proxy-Client-IP");
|
}
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
ip = request.getHeader("HTTP_CLIENT_IP");
|
}
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
|
}
|
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
ip = request.getRemoteAddr();
|
}
|
return ip;
|
}
|
}
|