package com.luochen.web.controllers;
import com.luochen.web.Dao.*;
import com.luochen.web.Dao.interf.*;
import com.luochen.web.register.utils.CodeUtils;
import com.luochen.web.register.utils.MailUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.swing.text.html.Option;
import java.math.BigInteger;
import java.util.*;
import static com.luochen.tools.RandomNums.getCurrentTimeStr;
import static com.luochen.tools.RandomNums.randomArray;
import static com.luochen.web.register.tools.registerKits.testUserAccount;
import static org.apache.hadoop.fs.FileSystem.LOG;
@SuppressWarnings("deprecation")
@Controller
@EnableAutoConfiguration
public class PagesController {
@Autowired
private UserAccountRepository userAccountRepository;
@Autowired
private ItemSimRepository itemSimRepository;
@Autowired
private UserCFRepository userCFRepository;
@RequestMapping("/test")
public String test()
{
return "pages/readMore";
}
@RequestMapping("pages/getNewsContent")
@ResponseBody
public ajaxNews getNewsContent(@RequestParam("id")String id, HttpSession session)
{
ItemSim temp=itemSimRepository.findNews(Long.valueOf(id));
ajaxNews news=new ajaxNews();
news.setTitle(temp.getArticleTitle());
news.setContent(temp.getArticleContent());
// System.out.println(session.getAttribute("usrId")+","+id+","+"1"+","+getCurrentTimeStr());
LOG.fatal(session.getAttribute("usrId")+","+id+","+"1"+","+getCurrentTimeStr());
return news;
}
@RequestMapping("/pages")
public String readMore(@RequestParam("id")String id, Model model)
{
model.addAttribute("id",id);
return "pages/readMore";
}
@RequestMapping("/index")
public String hello(HttpSession session)
{
session.setAttribute("channel","recommend");
return "pages/index";
}
@ResponseBody
@RequestMapping("pages/getNews")
public List<ajaxNews> getNews(@RequestParam("id")String id,HttpSession session) {
System.out.println(id);
List<ajaxNews> ajaxNewsList=new ArrayList();
Long newsNum = itemSimRepository.findCount();
if(id.isEmpty()||session.getAttribute("visitedFlag")=="visited")
{
//Long newsNum = itemSimRepository.findCount();
int randomNewsId[] = randomArray(0, newsNum.intValue(), 6);
for (int i = 0; i < 6; ++i) {
System.out.println(randomNewsId[i]);
ItemSim temp = itemSimRepository.findNews((long) randomNewsId[i]);
// ItemSim temp = targetNews.get();
ajaxNews temp1 = new ajaxNews();
temp1.setTitle(temp.getArticleTitle());
// temp1.setContent(temp.getContent().substring(0, 80) + "....");
temp1.setUrl("/pages?id=" + randomNewsId[i]);
ajaxNewsList.add(temp1);
}
return ajaxNewsList;
}
else
{
session.setAttribute("visitedFlag","visited");
List<Long> userId=new ArrayList<>();
Optional<UserCF> userCF=userCFRepository.findById(Long.parseLong(id));
UserCF temp=userCF.get();
String recommendStr=temp.getRecommendStr();
String recommendIds[]= recommendStr.split(",");
for (int i=0;i<recommendIds.length;++i)
{
Optional<ItemSim> targetNews=itemSimRepository.findById(Long.parseLong(recommendIds[i]));
ItemSim tempItemSim=targetNews.get();
ajaxNews temp1=new ajaxNews();
temp1.setTitle(tempItemSim.getArticleTitle());
temp1.setUrl("/pages?id=" + recommendIds[i]);
ajaxNewsList.add(temp1);
}
if(recommendIds.length<6)
{
int randomNewsId[] = randomArray(0, newsNum.intValue(), 6-recommendIds.length);
for (int i = 0; i < randomNewsId.length; ++i) {
System.out.println(randomNewsId[i]);
Optional<ItemSim> targetNews = itemSimRepository.findById((long) randomNewsId[i]);
ItemSim temp2 = targetNews.get();
ajaxNews temp1 = new ajaxNews();
temp1.setTitle(temp2.getArticleTitle());
// temp1.setContent(temp.getContent().substring(0, 80) + "....");
temp1.setUrl("/pages?id=" + randomNewsId[i]);
ajaxNewsList.add(temp1);
}
}
return ajaxNewsList;
}
}
@RequestMapping("Login")
public String Login()
{
return "pages/login";
}
@RequestMapping("register")
public String Register()
{
return "pages/register";
}
@RequestMapping("about")
public String About(){return "pages/about";}
@RequestMapping("dealRegister")
public String dealRegister(@RequestParam("username")String username, @RequestParam("password")String password, @RequestParam("email")String email,HttpSession session)
{
if(testUserAccount(username,password,email))
{
if(userAccountRepository.findByUsername(username,email).isEmpty())
{
int id;
try {
id = Integer.parseInt(userAccountRepository.findLastAccount())+1;
}catch (Exception e)
{
id=1;
}
try {
String code = CodeUtils.generateUniqueCode() + CodeUtils.generateUniqueCode();
new Thread(new MailUtils(email,code)).start();
userAccount userAccount = new userAccount();
userAccount.setId(id);
userAccount.setUsername(username);
userAccount.setPassword(password);
userAccount.setEmail(email);
userAccount.setState(0);
userAccount.setCode(code);
userAccountRepository.save(userAccount);
session.setAttribute("msg","激活邮件成功发送,请前往邮箱激活!");
}catch (Exception e)
{
e.printStackTrace();
session.setAttribute("msg","邮件发送失败,请重新操作!");
}
return "redirect:/success.html";
}
else
{
session.setAttribute("msg","该用户名或邮箱已被注册,请重新输入!");
return "redirect:/register.html";
}
}
else
{
return "pages/error";
}
}
@RequestMapping("activateAccount")
public String activateAccount(@RequestParam("code")String code, HttpServletRequest request)
{
List<userAccount> opt=userAccountRepository.findByCode(code);
if(!opt.isEmpty())
{
userAccount userAccount=opt.get(0);
userAccount.setState(1);
userAccountRepository.save(userAccount);
request.setAttribute("msg","激活成功,请前往登录");
request.setAttribute("url","http://localhost:8080/Login");
}
else
{
request.setAttribute("msg","激活码有误!");
}
return "pages/activateResult";
}
@PostMapping(value = "dealLogin")
public String dealLogin(@RequestParam("name")String name, @RequestParam("password")String password, HttpSession session)
{
try {
List<userAccount> userAccList = userAccountRep
没有合适的资源?快使用搜索试试~ 我知道了~
基于Spark的新闻推荐系统,包含爬虫项目、web网站以及spark推荐系统.zip
共1790个文件
js:595个
pyc:318个
py:315个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 158 浏览量
2023-11-03
21:51:47
上传
评论
收藏 25.46MB ZIP 举报
温馨提示
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 -------- 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
资源推荐
资源详情
资源评论
收起资源包目录
基于Spark的新闻推荐系统,包含爬虫项目、web网站以及spark推荐系统.zip (1790个子文件)
caps.asp 1KB
CreateObject.asp 494B
tut1.asp 147B
test1.asp 88B
test.asp 73B
frowny.bmp 3KB
smiley.bmp 3KB
python.bmp 778B
zoo.cfg 1003B
scrapy.cfg 257B
PagesController.class 11KB
ItemSimilarity$.class 11KB
UserCF$.class 8KB
KafkaConsumer$.class 6KB
newsLog.class 6KB
UserRating.class 5KB
ItemSimilarity$$anonfun$main$1.class 5KB
ItemSimilarity$$typecreator1$1.class 3KB
MailUtils.class 3KB
ItemSimilarity$$typecreator2$1.class 3KB
ItemSimilarity$$anonfun$main$1$$anonfun$apply$mcVI$sp$1.class 3KB
UserCF$$anonfun$main$1.class 3KB
newsLog$.class 2KB
UserRating$.class 2KB
KafkaConsumer$$anonfun$main$1$$anonfun$apply$1.class 2KB
RecommendKits$.class 2KB
KafkaConsumer$$anonfun$main$1.class 2KB
KafkaConsumer$$anonfun$3.class 2KB
ItemSim.class 2KB
ItemSimilarity$$anonfun$4.class 2KB
KafkaConsumer$$anonfun$2.class 2KB
RecommendKits$$anonfun$splitWordToSeq$1.class 2KB
ItemSimilarity$$anonfun$1.class 2KB
ItemSimilarity$$anonfun$main$2.class 2KB
MyMvcConf$1.class 2KB
DemoApplication.class 2KB
userAccount.class 2KB
RandomNums.class 2KB
UserCF$$typecreator1$1.class 1KB
DBLocalUtils$.class 1KB
KafkaConsumer$$anonfun$4.class 1KB
registerKits.class 1KB
UserCF$$anonfun$1.class 1KB
user.class 1KB
ItemSimilarity$$anonfun$3.class 1KB
ItemSimilarity$$anonfun$2.class 1KB
KafkaConsumer$$anonfun$1.class 1KB
account.class 1KB
UserAccountRepository.class 1KB
DBLocalUtils.class 1KB
ItemSimRepository.class 995B
ajaxNews.class 964B
UserCF.class 954B
MyMvcConf.class 893B
RecommendKits.class 880B
MailUtils$1.class 880B
UserCF.class 848B
DemoApplicationTests.class 739B
ItemSimilarity.class 706B
KafkaConsumer.class 699B
CodeUtils.class 612B
UserCFRepository.class 337B
log4j-flume-kafka.conf 1KB
stylesheet.css 19KB
stylesheet.css 19KB
font-awesome.min.css 17KB
font-awesome.min.css 17KB
style.css 13KB
style.css 13KB
style.css 11KB
style.css 11KB
style.css 9KB
style.css 9KB
style1.css 9KB
style1.css 9KB
style2.css 8KB
style2.css 8KB
style.css 7KB
style.css 7KB
style.css 7KB
style.css 7KB
screen.css 6KB
screen.css 6KB
milk.css 5KB
milk.css 5KB
style-narrower.css 4KB
style-narrower.css 4KB
skel.css 4KB
skel.css 4KB
ui.css 2KB
ui.css 2KB
style.css 2KB
style.css 2KB
cmxform.css 1014B
cmxform.css 1014B
cmxformTemplate.css 993B
cmxformTemplate.css 993B
reset.css 790B
reset.css 790B
core.css 683B
共 1790 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18
资源评论
程皮
- 粉丝: 268
- 资源: 2567
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功