作者 cmy

Initial commit

正在显示 36 个修改的文件 包含 4796 行增加0 行删除

要显示太多修改。

为保证性能只显示 36 of 36+ 个文件。

Manifest-Version: 1.0
Class-Path:
... ...
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>RestartGateWay</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.sinocontact.app.App</param-value>
</context-param>
<listener>
<listener-class>org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener</listener-class>
</listener>
</web-app>
\ No newline at end of file
... ...
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
This is my JSP page. <br>
</body>
</html>
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.15.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.sinocontact</groupId>
<artifactId>poet_ready_system</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>prs</name>
<description/>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!--上传小说封面到OSS-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.8.3</version>
</dependency>
<!--腾讯云短信发送验证码-->
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
... ...
package com.sinocontact.app;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.web.MultipartAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration
@EnableTransactionManagement
@MapperScan(basePackages = "com.sinocontact.app.dao")
@SpringBootApplication
public class App extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(App.class);
}
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
... ...
package com.sinocontact.app.common;
/**
* 静态常量
* @author todd
* @since 2019/1/21
*/
public class CommonConstant {
//登录成功
public final static String SESSION_KEY="user";
/**
* 图形验证码
*/
public static final String VERCODE_KEY = "verCode";
/**
* 短信验证码
*/
public static final String PHONE = "phone";
/**
* 短信应用sdk APPID
*/
public final static Integer APP_ID = 1400182140;
/**
* 短信应用SDK APPkey
*/
public final static String APP_KEY = "215c6a0a0b4347b1034d0151a4a046dc";
/**
* 短信模板ID(注册验证模板)
*/
public final static Integer TEMPLATE_ID = 323792;
/**
* 短信模板id(找回密码)
*/
public static final Integer TEMPLATE_FORGET_ID = 274720;
/**
* 短信签名 “羲阳阅读网”
*/
public final static String SIGN = "羲阳阅读网";
/**
* 检索标记
*/
public final static Integer CLICK_FLAG = 1;
public final static Integer RECOMMEND_FLAG = 2;
public final static Integer COLLECT_FLAG = 3;
public final static Integer TOTAL_FLAG = 0;
/**
* 未登录
*/
public final static String ONE_MONTH_NO_LOGIN = "未登录";
/**
* 登录过
*/
public final static String ONE_MONTH_LOGIN = "登录过";
/**
* 分页数据大小
*/
public final static Integer PAGE_SIZE = 10;
/**
* 当昵称为空时留言显示
*/
public final static String NICKNAME_IS_NULL = "佚名";
}
... ...
package com.sinocontact.app.config;
import com.sinocontact.app.interceptor.SecurityInterceptor;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class AppWebConfig extends WebMvcConfigurerAdapter {
private static final Logger logger= Logger.getLogger(AppWebConfig.class);
/**
*添加资源路径
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
//添加静态资源路径
registry.addResourceHandler("/static/**").addResourceLocations("classPath/static/");
//添加其他资源路径
//....
}
/**
* 添加拦截器
*/
public void addInterceptors(InterceptorRegistry registry){
//添加一个登录拦截器
addSecurityInterceptors(registry);
}
/**
* 添加登录拦截器
* @author todd
* @since 2019/1/21
*/
private void addSecurityInterceptors(InterceptorRegistry registry){
InterceptorRegistration addInterceptor = registry.addInterceptor(new SecurityInterceptor());
//登录相关
addInterceptor.excludePathPatterns("/user/**");
// 拦截配置
addInterceptor.addPathPatterns("/**");
}
}
... ...
package com.sinocontact.app.controller;
import com.alibaba.fastjson.JSON;
import com.sinocontact.app.common.CommonConstant;
import com.sinocontact.app.dao.ranking.RankingMapper;
import com.sinocontact.app.entity.User;
import com.sinocontact.app.service.ranking.RankingService;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* 所有controller的基类
* @author todd
* @since 2019/1/22
*/
@Controller
public class BaseController {
private static final Logger logger = Logger.getLogger(BaseController.class);
//公用
private HttpServletRequest request ;
private HttpServletResponse response;
private Model model;
private HttpSession session;
public HttpServletRequest getRequest() {
return request;
}
public HttpServletResponse getResponse() {
return response;
}
public Model getModel() {
return model;
}
public HttpSession getSession() {
return session;
}
@ModelAttribute
public void setModel(HttpServletRequest request,HttpServletResponse response,Model model,HttpSession session){
this.model = model;
this.request = request;
this.response = response;
this.session = session;
}
/**
* 得到request中参数
* @author todd
* @since 2019/1/22
*/
public String getParameter(String name){
return this.getRequest().getParameter(name);
}
/**
* 添加页面变量属性
* @author todd
* @since 2019/1/22
*/
public void putObject(String name, Object obj){
model.addAttribute(name, obj);
}
/**
* 向cookie中写入一条记录
* @author todd
* @since 2019/1/22
*/
public void setCookieValue(String name, String value){
try{
Cookie cookie = new Cookie(name,value);
cookie.setPath("/");
response.addCookie(cookie);
}catch(Exception e){
logger.error("向cookie中写入name="+name+",value="+value+"出现异常:",e);
}
}
/**
* 设置cookie失效时间
* @param expiry 失效时间(秒)
* @author todd
* @since 2019/1/22
*/
public void setCookieValue(String name, String value, int expiry){
try{
Cookie cookie = new Cookie(name,value);
cookie.setMaxAge(expiry);
cookie.setPath("/");
response.addCookie(cookie);
}catch(Exception e){
logger.error("向cookie中写入name="+name+",value="+value+"出现异常:",e);
}
}
/**
* 删除指定的cookie
* @author todd
* @since 2019/1/22
*/
public void deleteCookie(String name){
try{
Cookie cookie = new Cookie(name,"");
cookie.setMaxAge(0);
cookie.setPath("/");
response.addCookie(cookie);
}catch(Exception e){
logger.error("删除cookie"+name+"出现异常:",e);
}
}
/**
* 从cookie中获取key为name的值
* @author todd
* @since 2019/1/22
*/
public String getCookieValue(String name){
String value = null;
try{
Cookie[] cookies = request.getCookies();
if(cookies == null)
return value;
//遍历方式查找Cookies中是否存在 name
for(Cookie c : cookies){
if(c.getName().equals(name) == true){//在cookies中找到name的cookie
value = c.getValue();
break;
}
}
}catch(Exception e){
value = null;
logger.error("获取cookie中name="+name+"的数据时出现异常:",e);
}
return value;
}
/**
* 把javabean转换为json字符串
* @author todd
* @since 2019/1/22
*/
public String renderJSON(Object javaObject){
return JSON.toJSON(javaObject).toString();
}
/**
* 获取用户信息
* @return User
* @author caoMingYang
* @since 2019/4/12 15:12
*/
public User getUserInfo(){
return (User) getSession().getAttribute(CommonConstant.SESSION_KEY);
}
/**
* 得到ip地址
* @author todd
* @since 2019/1/22
*/
public String getIp() {
String ip = getRequest().getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = getRequest().getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = getRequest().getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = getRequest().getRemoteAddr();
}
return ip;
}
}
... ...
package com.sinocontact.app.controller;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.common.CommonConstant;
import com.sinocontact.app.entity.Chapter;
import com.sinocontact.app.entity.Comment;
import com.sinocontact.app.entity.Novel;
import com.sinocontact.app.entity.User;
import com.sinocontact.app.service.HomeService;
import com.sun.org.apache.bcel.internal.generic.NOP;
import com.sun.org.apache.bcel.internal.generic.RET;
import com.sun.org.apache.regexp.internal.RE;
import org.apache.ibatis.annotations.Param;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.annotation.Schedules;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* 公共的控制类
* @author caoMingYang
* @since 2019/4/25 16:10
**/
@Controller
@RequestMapping("/home")
public class HomeController extends BaseController{
private static Logger logger = Logger.getLogger(HomeController.class);
@Autowired
private HomeService service;
/**
* 跳转到小说详情页面
* @param novelId 小说id
* @author caoMingYang
* @since 2019/4/25 16:17
*/
@RequestMapping("/novelInfo")
public String novelInfo(@RequestParam("novelId")Integer novelId){
Novel novel = service.getNovelById(novelId);
List<Chapter> chapterList = service.queryChapterList(novelId);
this.putObject("novel",novel);
this.putObject("list",chapterList);
return "views/home/novelInfo";
}
/**
* 通过小说id获取小说最新的章节
* @param novelId 小说id
* @return chapterList
* @author caoMingYang
* @since 2019/4/27 12:27
*/
@ResponseBody
@RequestMapping("/getNewChapter")
public String getNewChapter(@RequestParam("novelId")Integer novelId){
JSONObject job = new JSONObject();
List<Chapter> chapterList = service.queryFiveChapter(novelId);
if (null == chapterList){
job.put("code",-1);
job.put("msg","fail");
}else{
job.put("code",0);
job.put("msg","success");
job.put("data",chapterList);
}
return job.toJSONString();
}
/**
* 增加点击
* @param novelId 小说id
* @author caoMingYang
* @since 2019/4/26 0:13
*/
@ResponseBody
@RequestMapping("/addClick")
public String addClick(@RequestParam("novelId")Integer novelId){
JSONObject job = new JSONObject();
boolean flag = service.addClick(novelId);
if (flag) {
job.put("code", 0);
job.put("msg", "success");
}
return job.toJSONString();
}
/**
* 推荐小说
* @param novelId 小说id
* @author caoMingYang
* @since 2019/4/28 20:33
*/
@ResponseBody
@RequestMapping("/recommend")
public String recommend(@RequestParam("novelId")Integer novelId){
JSONObject job = new JSONObject();
User user = this.getUserInfo();
Integer num = service.updateRecommend(novelId,user);
if (num == 0){
job.put("code",0);
job.put("msg","success");
}else if (num == -1){
job.put("code",-1);
job.put("msg","推荐失败,系统异常!");
}else if (num == -2){
job.put("code",-1);
job.put("msg","今日已推荐三次,请明天再来!");
}
return job.toJSONString();
}
/**
* 通过小说id将小说加入书架
* @param novelId 小说id
* @author caoMingYang
* @since 2019/4/29 22:19
*/
@ResponseBody
@RequestMapping("/addBookCase")
public String addBookCase(@RequestParam("novelId")Integer novelId,
@RequestParam(value = "chapterId",defaultValue = "0")Integer chapterId){
JSONObject job = new JSONObject();
Integer num = service.addBookCase(novelId,this.getUserInfo(),chapterId);
if (num == -1){
job.put("code",-1);
job.put("msg","fail");
}else {
job.put("code",0);
job.put("msg","success");
}
return job.toJSONString();
}
/**
* 获取小说评论
* @param novelId 小说id
* @author caoMingYang
* @since 2019/4/27 17:35
*/
@ResponseBody
@RequestMapping("/getNovelComment")
public String getNovelComment(@RequestParam("novelId")Integer novelId){
JSONObject job = new JSONObject();
List<Comment> commentList = service.getNovelComment(novelId);
if (null != commentList){
job.put("code",0);
job.put("msg","success");
job.put("data",commentList);
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 通过id获取小说章节详情
* @param novelId 小说id
* @param chapterId 章节id
* @author caoMingYang
* @since 2019/5/11 13:23
*/
@ResponseBody
@RequestMapping("/getChapterInfo")
public String getChapterInfo(@RequestParam("novelId")Integer novelId,
@RequestParam("chapterId")Integer chapterId){
JSONObject job = new JSONObject();
Chapter chapter = service.getChapter(novelId, chapterId);
if (null != chapter){
job.put("code",0);
job.put("msg","success");
job.put("data",chapter);
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 获取章节内容
* @param novelId 小说id
* @param chapterId 章节id
* @author caoMingYang
* @since 2019/5/11 18:30
*/
@ResponseBody
@RequestMapping("/previousChapter")
public String previousChapter(@RequestParam("novelId")Integer novelId,
@RequestParam("chapterId")Integer chapterId){
JSONObject job = new JSONObject();
Chapter chapter = service.previousChapter(novelId, chapterId);
if (null != chapter){
if (chapter.getChapterId() != -1){
job.put("code",0);
job.put("msg","success");
job.put("data",chapter);
}else {
job.put("code",1);
job.put("msg","success");
}
}else {
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 获取章节内容
* @param novelId 小说id
* @param chapterId 章节id
* @author caoMingYang
* @since 2019/5/11 18:30
*/
@ResponseBody
@RequestMapping("/nextChapter")
public String nextChapter(@RequestParam("novelId")Integer novelId,
@RequestParam("chapterId")Integer chapterId){
JSONObject job = new JSONObject();
Chapter chapter = service.nextChapter(novelId, chapterId);
if (null != chapter){
if (chapter.getChapterId() != -1){
job.put("code",0);
job.put("msg","success");
job.put("data",chapter);
}else {
job.put("code",1);
job.put("msg","success");
}
}else {
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 保存用户评论
* @param novelId 小说id
* @param comment 评论
* @author caoMingYang
* @since 2019/5/25 13:53
*/
@ResponseBody
@RequestMapping("/saveComment")
public String saveComment(@RequestParam("novelId")Integer novelId,
@RequestParam(value = "comment",defaultValue = "")String comment){
JSONObject job = new JSONObject();
User user = (User) this.getSession().getAttribute(CommonConstant.SESSION_KEY);
boolean flag = service.saveComment(user.getUserId(),novelId,comment);
if (flag){
job.put("code",0);
job.put("msg","success");
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 更新用户推荐次数
* @author caoMingYang
* @since 2019/5/18 0:18
*/
@Scheduled(cron = "0 0 1 * * ?")
public void updateUserRecommendTimes(){
logger.info("推荐次数更新开始>>>>>>>>>>>>>>>>>>>>>>>>>");
Integer num = service.updateRecommendTimes();
if (num == -1 || num == 0){
logger.error("更新用户每日推荐次数异常");
}else {
logger.info("更新了【"+num+"】人的每日推荐次数!");
}
logger.info("推荐次数更新结束<<<<<<<<<<<<<<<<<<<<<<<<<");
}
}
... ...
package com.sinocontact.app.controller.authorCenter;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.common.CommonConstant;
import com.sinocontact.app.controller.BaseController;
import com.sinocontact.app.entity.Novel;
import com.sinocontact.app.entity.User;
import com.sinocontact.app.service.authorCenter.AuthorCenterService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.File;
import java.util.List;
/**
* 作者中心
* @author caoMingYang
* @Description TODO
* @since 2019/5/20 14:03
**/
@Controller
@RequestMapping("/author")
public class AuthorCenterController extends BaseController {
private static Logger logger = Logger.getLogger(AuthorCenterController.class);
@Autowired
private AuthorCenterService service;
/**
* 跳转到作者所有作品页面
*/
@RequestMapping("/index")
public String index(){
return "views/authorCenter/index";
}
/**
* 获取作者写的所有小说
* @param page 页码
* @param pageSize 一页数据条数
* @author caoMingYang
* @since 2019/5/20 22:51
*/
@ResponseBody
@RequestMapping("novelList")
public String novelList(@RequestParam(value = "page",defaultValue = "1")Integer page,
@RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize){
User user = (User) this.getSession().getAttribute(CommonConstant.SESSION_KEY);
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryNovelList(user.getUserId(),page,pageSize);
Integer count = service.queryNovelCount(user.getUserId());
job.put("code",0);
job.put("msg","success");
job.put("data",novelList);
job.put("count",count);
return job.toJSONString();
}
/**
* 通过id获取小说信息
* @param novelId 小说id
* @author caoMingYang
* @since 2019/5/21 21:27
*/
@ResponseBody
@RequestMapping("/novelInfo")
public String novelInfoById(@RequestParam("novelId")Integer novelId){
Novel novel = service.queryNovelInfo(novelId);
JSONObject job = new JSONObject();
if (null != novel){
job.put("code",0);
job.put("msg","success");
job.put("data",novel);
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 校验小说名称是否重复
* @param novelId 小说id
* @param novelName 小说名称
* @author caoMingYang
* @since 2019/5/24 21:28
*/
@ResponseBody
@RequestMapping("/checkNovelName")
public String checkNovelName(@RequestParam("novelId")Integer novelId,
@RequestParam(value = "novelName",defaultValue = "")String novelName){
JSONObject job = new JSONObject();
boolean flag = service.checkNovelName(novelId, novelName);
if (flag){
job.put("code",0);
job.put("msg","success");
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 更新小说基本信息
* @param novelId 小说id
* @param novelName 小说名称
* @param novelTypeStr 类型
* @param novelInfo 简介
* @param novelImg 封面
* @param keyword 关键字
* @param status 状态
* @author caoMingYang
* @since 2019/5/24 21:41
*/
@ResponseBody
@RequestMapping("/updateNovelInfo")
public String updateNovelInfo(@RequestParam("novelId")Integer novelId,
@RequestParam(value = "novelName",defaultValue = "")String novelName,
@RequestParam(value = "novelTypeStr",defaultValue = "")String novelTypeStr,
@RequestParam("novelInfo")String novelInfo,
@RequestParam(value = "novelImg",defaultValue = "")String novelImg,
@RequestParam("keyword")String keyword,
@RequestParam(value = "status",defaultValue = "1")Integer status){
JSONObject job = new JSONObject();
boolean flag = service.updateNovel(novelId,novelName,novelImg,novelInfo,novelTypeStr,keyword,status);
if (flag){
job.put("code",0);
job.put("msg","success");
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 跳转到上传页面
*/
@RequestMapping("/uploadNovel")
public String uploadNovel(){
return "views/authorCenter/upload";
}
/**
* 保存小说基本信息
* @param novelName 小说名称
* @param novelTypeStr 类型
* @param novelInfo 简介
* @param novelImg 封面
* @param keyword 关键字
* @param status 状态
* @author caoMingYang
* @since 2019/5/24 21:41
*/
@ResponseBody
@RequestMapping("/saveNovelInfo")
public String saveNovelInfo(@RequestParam(value = "novelName",defaultValue = "")String novelName,
@RequestParam(value = "novelTypeStr",defaultValue = "")String novelTypeStr,
@RequestParam("novelInfo")String novelInfo,
@RequestParam(value = "novelImg",defaultValue = "")String novelImg,
@RequestParam("keyword")String keyword,
@RequestParam(value = "status",defaultValue = "1")Integer status){
JSONObject job = new JSONObject();
User user = (User) this.getSession().getAttribute(CommonConstant.SESSION_KEY);
Integer novelId = 0;
try {
novelId = service.saveNovel(user, novelName, novelImg, novelInfo, novelTypeStr, keyword, status);
}catch (Exception e){
logger.error("保存小说信息异常",e);
}
if (novelId > 0){
job.put("code",0);
job.put("msg","success");
job.put("data",novelId);
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 保存小说章节
* @param chapterTitle 标题
* @param chapterContent 章节内容
* @param novelId 小说id
* @author caoMingYang
* @since 2019/5/25 1:22
*/
@ResponseBody
@RequestMapping("/uploadChapter")
public String uploadChapter(@RequestParam("chapterTitle")String chapterTitle,
@RequestParam("chapterNum")String chapterNumStr,
@RequestParam("chapterContent")String chapterContent,
@RequestParam("novelId")Integer novelId){
JSONObject job = new JSONObject();
Integer chapterNum = 0;
try {
chapterNum = service.saveChapter(chapterNumStr, chapterTitle, chapterContent, novelId);
}catch (Exception e){
logger.error("保存章节信息异常",e);
}
if (chapterNum > 0){
job.put("code",0);
job.put("msg","success");
job.put("data",chapterNum);
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
@ResponseBody
@RequestMapping("/queryChapterNum")
public String queryChapterNum(@RequestParam("novelId")Integer novelId){
JSONObject job = new JSONObject();
Integer num = service.queryChapterNum(novelId);
if (num > 0){
job.put("code",0);
job.put("msg","success");
job.put("data",num);
}else {
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
}
... ...
package com.sinocontact.app.controller.jsoup;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.controller.BaseController;
import com.sinocontact.app.entity.Chapter;
import com.sinocontact.app.entity.CrawlNovel;
import com.sinocontact.app.entity.DChapter;
import com.sinocontact.app.entity.Novel;
import com.sinocontact.app.service.jsoup.JSoupService;
import org.apache.log4j.Logger;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.List;
/**
* @author caoMingYang
* @Description TODO
* @since 2019/5/12 17:08
**/
@Controller
@EnableScheduling
@RequestMapping("/jsoup")
public class JSoupController extends BaseController {
private static final Logger logger = Logger.getLogger(JSoupController.class);
@Autowired
private JSoupService service;
/**
* 保存需要爬取的小说信息
* @param novelName 小说名称
* @param novelAuthor 作者
* @param flUrl 飞卢网地址
* @param ddUrl 顶点网地址
* @author caoMingYang
* @since 2019/5/12 17:11
*/
@ResponseBody
@RequestMapping("/saveNovelUrl")
public String saveNovelUrl(@RequestParam(value = "novelName",defaultValue = "")String novelName,
@RequestParam(value = "novelAuthor",defaultValue = "")String novelAuthor,
@RequestParam(value = "flUrl",defaultValue = "")String flUrl,
@RequestParam(value = "ddUrl",defaultValue = "")String ddUrl,
@RequestParam(value = "ddChapterUrl",defaultValue = "")String ddChapterUrl){
JSONObject job = new JSONObject();
boolean flag = service.saveNovelUrl(novelName, novelAuthor, flUrl, ddUrl,ddChapterUrl);
if (flag) {
job.put("code", 0);
job.put("msg", "success");
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 定时拉取存入待爬取小说表中的小说数据
*/
@Scheduled(cron = "0 0 1 * * ?")
// @Scheduled(cron = "5 * * * * ?")
public void crawlNovel(){
logger.info("爬取小说开始>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
List<CrawlNovel> crawlNovelList = service.queryNovelList();
if (null != crawlNovelList && crawlNovelList.size()>0){
logger.info("共有"+crawlNovelList.size()+"条待抓取记录...");
for (CrawlNovel crawlNovel : crawlNovelList){
logger.info("开始抓取,小说【"+crawlNovel.getNovelName()+"】");
try {
Document document = Jsoup.connect(crawlNovel.getDdUrl()).get();
//获取小说信息
Novel novel = service.getNovel(document);
//获取章节信息
List<DChapter> dChapters = new ArrayList<DChapter>();
Document chapterDocument = Jsoup.connect(crawlNovel.getDdChapterUrl()).get();
Elements elements = chapterDocument.getElementById("at").getElementsByTag("td");
for (Element element : elements){
DChapter dChapter = new DChapter();
Element a = element.getElementsByTag("a").first();
dChapter.setChapterName(a.text());
dChapter.setChapterUrl(a.attr("href"));
dChapters.add(dChapter);
}
//获取的章节信息
List<Chapter> chapterList = service.getChapterList(dChapters);
//获取关键字
String keyWord = service.getKeyWord(crawlNovel.getFlUrl());
novel.setKeyword(keyWord);
boolean flag = service.saveNovelInfo(novel,chapterList,crawlNovel.getId());
if (!flag){
logger.error("小说保存异常,名称【"+novel.getNovelName()+"】,作者【"+novel.getNovelAuthor()+"】");
}
}catch (Exception e){
logger.error("抓取小说异常",e);
}
}
}else{
logger.error("待爬取的小说为空!");
}
logger.info("小说爬取结束<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
}
}
... ...
package com.sinocontact.app.controller.library;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.controller.BaseController;
import com.sinocontact.app.entity.Novel;
import com.sinocontact.app.service.library.LibraryService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* 书库
* @author caoMingYang
* @since 2019/4/19 16:49
*/
@Controller
@RequestMapping("/library")
public class LibraryController extends BaseController {
private static final Logger logger = Logger.getLogger(LibraryController.class);
@Autowired
private LibraryService service;
/**
* 跳转到全部作品页面
* @author caoMingYang
* @since 2019/4/19 17:17
*/
@RequestMapping("/index")
public String libraryIndex(){
return "views/library/index";
}
/**
* 跳转到都市小说页面
* @author caoMingYang
* @since 2019/4/23 21:01
*/
@RequestMapping("/cityIndex")
public String cityIndex(){
List<Novel> hotNovelList = service.queryCityHotNovel();
putObject("hotNovelList",hotNovelList);
return "views/library/cityIndex";
}
/**
* 跳转到玄幻小说页面
* @author caoMingYang
* @since 2019/4/23 23:48
*/
@RequestMapping("/fantasy")
public String fantasyPage(){
List<Novel> hotNovelList = service.queryFantasyHotNovel();
putObject("hotNovelList",hotNovelList);
return "views/library/fantasy";
}
/**
* 跳转到仙侠小说页面
* @author caoMingYang
* @since 2019/4/24 20:24
*/
@RequestMapping("/fairySpiderman")
public String fairySpidermanPage(){
List<Novel> novelList = service.queryFairyHotNovel();
putObject("hotNovelList",novelList);
return "views/library/fairy";
}
/**
* 跳转到科幻小说页面
* @author caoMingYang
* @since 2019/4/24 20:47
*/
@RequestMapping("/scienceFiction")
public String scienceFiction(){
List<Novel> novelList = service.queryScienceFictionHotNovel();
putObject("hotNovelList",novelList);
return "views/library/scienceFiction";
}
/**
* 跳转到历史军事小说页面
* @author caoMingYang
* @since 2019/4/24 23:36
*/
@RequestMapping("/militaryHistory")
public String militaryHistory(){
List<Novel> novelList = service.queryMilitaryHistoryHotNovel();
putObject("hotNovelList",novelList);
return "views/library/militaryHistory";
}
/**
* 跳转到武侠小说页面
* @author caoMingYang
* @since 2019/4/24 23:39
*/
@RequestMapping("/dragon")
public String dragon(){
List<Novel> novelList = service.queryDragonHotNovel();
putObject("hotNovelList",novelList);
return "views/library/dragon";
}
/**
* 跳转到网游竞技页面
* @author caoMingYang
* @since 2019/4/24 23:40
*/
@RequestMapping("/athletic")
public String athletic(){
List<Novel> novelList = service.queryAthleticHotNovel();
putObject("hotNovelList",novelList);
return "views/library/athletic";
}
/**
* 跳转到悬疑灵异页面
* @author caoMingYang
* @since 2019/4/24 23:42
*/
@RequestMapping("/suspenseParanormal")
public String suspenseParanormal(){
List<Novel> novelList = service.querySuspenseParanormalHotNovel();
putObject("hotNovelList",novelList);
return "views/library/suspenseParanormal";
}
/**
* 跳转到其他小说页面
* @author caoMingYang
* @since 2019/4/24 23:43
*/
@RequestMapping("/other")
public String other(){
List<Novel> novelList = service.queryOtherHotNovel();
putObject("hotNovelList",novelList);
return "views/library/other";
}
/**
* 获取小说列表
* @param novelType 小说分类
* @param sortFlag 排序状态(点击、收藏、推荐、总)
* @param novelStatus 小说状态(连载、完结)
* @param novelWords 字数
* @param page 页码
* @author caoMingYang
* @since 2019/4/19 17:17
*/
@ResponseBody
@RequestMapping("/novelList")
public String novelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "novelType",defaultValue = "")String novelType,
@RequestParam(value = "sortFlag",defaultValue = "0")Integer sortFlag,
@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelWords",defaultValue = "")String novelWords,
@RequestParam(value = "page",defaultValue = "1")Integer page){
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryTotalNovel(page, sortFlag, novelType, novelStatus, novelWords, novelInfo);
Integer count = service.getNovelCount(sortFlag,novelType,novelStatus,novelWords,novelInfo);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
/**
* 获取都市小说列表
* @param sortFlag 排序状态(点击、收藏、推荐、总)
* @param novelStatus 小说状态(连载、完结)
* @param novelWords 字数
* @param page 页码
* @author caoMingYang
* @since 2019/4/23 23:17
*/
@ResponseBody
@RequestMapping("/cityNovelList")
public String cityNovelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "sortFlag",defaultValue = "0")Integer sortFlag,
@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelWords",defaultValue = "")String novelWords,
@RequestParam(value = "page",defaultValue = "1")Integer page){
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryTotalCityNovel(page, sortFlag, novelStatus, novelWords, novelInfo);
Integer count = service.getNovelCityCount(sortFlag,novelStatus,novelWords,novelInfo);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
/**
* 获取玄幻小说列表
* @param sortFlag 排序状态(点击、收藏、推荐、总)
* @param novelStatus 小说状态(连载、完结)
* @param novelWords 字数
* @param page 页码
* @author caoMingYang
* @since 2019/4/23 23:57
*/
@ResponseBody
@RequestMapping("/fantasyNovelList")
public String fantasyNovelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "sortFlag",defaultValue = "0")Integer sortFlag,
@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelWords",defaultValue = "")String novelWords,
@RequestParam(value = "page",defaultValue = "1")Integer page){
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryTotalFantasyNovel(page, sortFlag, novelStatus, novelWords, novelInfo);
Integer count = service.getNovelFantasyCount(sortFlag,novelStatus,novelWords,novelInfo);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
/**
* 获取仙侠小说列表
* @param sortFlag 排序状态(点击、收藏、推荐、总)
* @param novelStatus 小说状态(连载、完结)
* @param novelWords 字数
* @param page 页码
* @author caoMingYang
* @since 2019/4/24 20:25
*/
@ResponseBody
@RequestMapping("/fairyNovelList")
public String fairyNovelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "sortFlag",defaultValue = "0")Integer sortFlag,
@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelWords",defaultValue = "")String novelWords,
@RequestParam(value = "page",defaultValue = "1")Integer page){
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryTotalFairyNovel(page, sortFlag, novelStatus, novelWords, novelInfo);
Integer count = service.getNovelFairyCount(sortFlag,novelStatus,novelWords,novelInfo);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
/**
* 获取仙侠小说列表
* @param sortFlag 排序状态(点击、收藏、推荐、总)
* @param novelStatus 小说状态(连载、完结)
* @param novelWords 字数
* @param page 页码
* @author caoMingYang
* @since 2019/4/24 20:25
*/
@ResponseBody
@RequestMapping("/scienceFictionNovelList")
public String scienceFictionNovelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "sortFlag",defaultValue = "0")Integer sortFlag,
@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelWords",defaultValue = "")String novelWords,
@RequestParam(value = "page",defaultValue = "1")Integer page){
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryTotalScienceFictionNovel(page, sortFlag, novelStatus, novelWords, novelInfo);
Integer count = service.getNovelScienceFictionCount(sortFlag,novelStatus,novelWords,novelInfo);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
/**
* 获取历史军事小说列表
* @param sortFlag 排序状态(点击、收藏、推荐、总)
* @param novelStatus 小说状态(连载、完结)
* @param novelWords 字数
* @param page 页码
* @author caoMingYang
* @since 2019/4/24 20:25
*/
@ResponseBody
@RequestMapping("/militaryHistoryNovelList")
public String militaryHistoryNovelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "sortFlag",defaultValue = "0")Integer sortFlag,
@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelWords",defaultValue = "")String novelWords,
@RequestParam(value = "page",defaultValue = "1")Integer page){
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryTotalMilitaryHistoryNovel(page, sortFlag, novelStatus, novelWords, novelInfo);
Integer count = service.getNovelMilitaryHistoryCount(sortFlag,novelStatus,novelWords,novelInfo);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
/**
* 获取武侠小说列表
* @param sortFlag 排序状态(点击、收藏、推荐、总)
* @param novelStatus 小说状态(连载、完结)
* @param novelWords 字数
* @param page 页码
* @author caoMingYang
* @since 2019/4/24 20:25
*/
@ResponseBody
@RequestMapping("/dragonNovelList")
public String dragonNovelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "sortFlag",defaultValue = "0")Integer sortFlag,
@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelWords",defaultValue = "")String novelWords,
@RequestParam(value = "page",defaultValue = "1")Integer page){
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryTotalDragonNovel(page, sortFlag, novelStatus, novelWords, novelInfo);
Integer count = service.getNovelDragonCount(sortFlag,novelStatus,novelWords,novelInfo);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
/**
* 获取网游竞技小说列表
* @param sortFlag 排序状态(点击、收藏、推荐、总)
* @param novelStatus 小说状态(连载、完结)
* @param novelWords 字数
* @param page 页码
* @author caoMingYang
* @since 2019/4/24 20:25
*/
@ResponseBody
@RequestMapping("/athleticNovelList")
public String athleticNovelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "sortFlag",defaultValue = "0")Integer sortFlag,
@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelWords",defaultValue = "")String novelWords,
@RequestParam(value = "page",defaultValue = "1")Integer page){
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryTotalAthleticNovel(page, sortFlag, novelStatus, novelWords, novelInfo);
Integer count = service.getNovelAthleticCount(sortFlag,novelStatus,novelWords,novelInfo);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
/**
* 获取悬疑灵异小说列表
* @param sortFlag 排序状态(点击、收藏、推荐、总)
* @param novelStatus 小说状态(连载、完结)
* @param novelWords 字数
* @param page 页码
* @author caoMingYang
* @since 2019/4/24 20:25
*/
@ResponseBody
@RequestMapping("/suspenseParanormalNovelList")
public String suspenseParanormalNovelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "sortFlag",defaultValue = "0")Integer sortFlag,
@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelWords",defaultValue = "")String novelWords,
@RequestParam(value = "page",defaultValue = "1")Integer page){
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryTotalSuspenseParanormalNovel(page, sortFlag, novelStatus, novelWords, novelInfo);
Integer count = service.getNovelSuspenseParanormalCount(sortFlag,novelStatus,novelWords,novelInfo);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
/**
* 获取其他小说列表
* @param sortFlag 排序状态(点击、收藏、推荐、总)
* @param novelStatus 小说状态(连载、完结)
* @param novelWords 字数
* @param page 页码
* @author caoMingYang
* @since 2019/4/24 20:25
*/
@ResponseBody
@RequestMapping("/otherNovelList")
public String otherNovelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "sortFlag",defaultValue = "0")Integer sortFlag,
@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelWords",defaultValue = "")String novelWords,
@RequestParam(value = "page",defaultValue = "1")Integer page){
JSONObject job = new JSONObject();
List<Novel> novelList = service.queryTotalOtherNovel(page, sortFlag, novelStatus, novelWords, novelInfo);
Integer count = service.getNovelOtherCount(sortFlag,novelStatus,novelWords,novelInfo);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
}
... ...
package com.sinocontact.app.controller.memberCenter;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.controller.BaseController;
import com.sinocontact.app.entity.BookCaseInfo;
import com.sinocontact.app.service.memberCenter.BookCaseService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* 书架
* @author caoMingYang
* @since 2019/4/14 21:07
*/
@Controller
@RequestMapping("/bookCase")
public class BookCaseController extends BaseController {
private static Logger logger = Logger.getLogger(BookCaseController.class);
@Autowired
private BookCaseService service;
/**
* 书架首页
* @author caoMingYang
* @since 2019/4/14 21:09
*/
@RequestMapping("/index")
public String index(){
Integer userId = this.getUserInfo().getUserId();
List<BookCaseInfo> bookCaseInfoList = service.queryBookCaseList(userId);
this.putObject("data",bookCaseInfoList);
return "views/memberCenter/bookCase";
}
/**
* 删除书架中小说
* @param novelId 小说id
* @author caoMingYang
* @since 2019/4/15 10:41
*/
@ResponseBody
@RequestMapping("/deleteNovel")
public String deleteNovel(@RequestParam("novelId")Integer novelId){
JSONObject job = new JSONObject();
boolean flag = service.deleteNovel(this.getUserInfo().getUserId(),novelId);
if (flag){
job.put("code",0);
job.put("msg","success");
}else{
job.put("code",-1);
job.put("msg","fail");
}
String jsonText = job.toJSONString();
logger.info("deleteNovel>>>"+jsonText);
return jsonText;
}
}
... ...
package com.sinocontact.app.controller.memberCenter;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.common.CommonConstant;
import com.sinocontact.app.controller.BaseController;
import com.sinocontact.app.entity.User;
import com.sinocontact.app.service.memberCenter.UserBasicInfoService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 用户基本信息
* @author caoMingYang
* @since 2019/4/6 11:23
*/
@Controller
@RequestMapping("/memberCenter")
public class UserBasicInfoController extends BaseController {
private static Logger logger = Logger.getLogger(UserBasicInfoController.class);
@Autowired
private UserBasicInfoService service;
/**
* 用户信息首页
* @author caoMingYang
* @since 2019/4/6 11:25
*/
@RequestMapping("/baseInfo")
public String index(){
User user = (User) this.getSession().getAttribute(CommonConstant.SESSION_KEY);
putObject(CommonConstant.SESSION_KEY,user);
return "views/memberCenter/userInfo";
}
/**
* 跳转到修改密码页面
* @author caoMingYang
* @since 2019/4/14 11:54
*/
@RequestMapping("/password")
public String password(){
User user = (User) this.getSession().getAttribute(CommonConstant.SESSION_KEY);
putObject(CommonConstant.SESSION_KEY,user);
return "views/memberCenter/updatePassword";
}
/**
* 更新密码
* @param password 新密码
* @author caoMingYang
* @since 2019/4/14 12:14
*/
@ResponseBody
@RequestMapping("/updatePassword")
public String updatePassword(@RequestParam(value = "password",defaultValue = "")String password){
JSONObject job = new JSONObject();
boolean flag = service.updatePassword(password,this.getUserInfo().getUserId());
if (flag){
job.put("code",0);
job.put("msg","success");
User user = this.getUserInfo();
user.setPassword(password);
this.getSession().setAttribute(CommonConstant.SESSION_KEY,user);
}else{
job.put("code",-1);
job.put("msg","fail");
}
String jsonText = job.toJSONString();
logger.info("updatePassword>>>"+jsonText);
return jsonText;
}
/**
* 校验用户名是否存在
* @param account 用户名
* @author caoMingYang
* @since 2019/4/11 23:32
*/
@ResponseBody
@RequestMapping("checkAccount")
public String checkAccount(@RequestParam("account")String account){
JSONObject job = new JSONObject();
boolean flag = service.checkAccount(account,this.getUserInfo().getUserId());
if (!flag){
job.put("code",-1);
job.put("msg","此用户名已存在");
}else {
job.put("code",0);
job.put("msg","success");
}
String jsonText = job.toJSONString();
logger.info("checkAccount>>>>"+jsonText);
return jsonText;
}
/**
* 更新用户信息
* @param account 用户名称
* @param nickname 昵称
* @author caoMingYang
* @since 2019/4/12 15:01
*/
@ResponseBody
@RequestMapping("updateUserInfo")
public String updateUserInfo(@RequestParam(value = "account",defaultValue = "")String account,
@RequestParam(value = "nickname",defaultValue = "")String nickname){
JSONObject job = new JSONObject();
boolean flag = service.updateUserInfo(account,nickname,this.getUserInfo().getUserId());
if (flag){
job.put("code",0);
job.put("msg","success");
//更新session中用户信息
this.updateSessionUserCache(account,nickname,0);
}else{
job.put("code",-1);
job.put("msg","fail");
}
String jsonText = job.toJSONString();
logger.info("updateUserInfo>>>"+jsonText);
return jsonText;
}
/**
* 申请成为作者
* @author caoMingYang
* @since 2019/4/12 18:36
*/
@ResponseBody
@RequestMapping("applyForAuthor")
public String applyForAuthor(){
JSONObject job = new JSONObject();
boolean flag = service.applyForAuthor(this.getUserInfo().getUserId());
if (flag){
job.put("code",0);
job.put("msg","success");
this.updateSessionUserCache("","",1);
}else{
job.put("code",-1);
job.put("msg","fail");
}
String jsonText = job.toJSONString();
logger.info("applyForAuthor>>>"+jsonText);
return jsonText;
}
/**
* 更新session中的用户信息
* @param account 用户名
* @param nickname 昵称
* @param applyAuthorStatus 申请成为作者的状态
* @author caoMingYang
* @since 2019/4/14 11:55
*/
private void updateSessionUserCache(String account,String nickname,Integer applyAuthorStatus){
User user = service.getUser(this.getUserInfo().getUserId());
if (user !=null){
this.getSession().setAttribute(CommonConstant.SESSION_KEY,user);
}else{
User sessionUser = this.getUserInfo();
if (!StringUtils.isEmpty(account)){
sessionUser.setAccount(account);
}
if (!StringUtils.isEmpty(nickname)){
sessionUser.setNickname(nickname);
}
if (applyAuthorStatus == 1){
sessionUser.setApplyAuthorStatus(applyAuthorStatus);
}
this.getSession().setAttribute(CommonConstant.SESSION_KEY,sessionUser);
}
}
}
... ...
package com.sinocontact.app.controller.oss;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.controller.BaseController;
import com.sinocontact.app.service.oss.OSSService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
/**
* OSS 上传
* @author caoMingYang
* @Description TODO
* @since 2019/5/24 13:50
**/
@Controller
@RequestMapping("/oss")
public class OSSController extends BaseController {
private static Logger logger = Logger.getLogger(OSSController.class);
@Autowired
private OSSService service;
/**
* 上传图片
* @param file 图片文件
* @return 图片地址
* @author caoMingYang
* @since 2019/5/24 15:43
*/
@ResponseBody
@RequestMapping("/uploadImg")
public String uploadImg(@RequestParam("file") MultipartFile file){
JSONObject job = new JSONObject();
String imgUrl = service.uploadImg(file);
if (null != imgUrl){
logger.info("图片阿里云地址"+imgUrl);
job.put("code",0);
job.put("msg","success");
job.put("data",imgUrl);
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
}
... ...
package com.sinocontact.app.controller.ranking;
import com.sinocontact.app.controller.BaseController;
import com.sinocontact.app.entity.Novel;
import com.sinocontact.app.service.ranking.RankingService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 排行榜
* @author caoMingYang
* @since 2019/4/15 13:54
*/
@Controller
@RequestMapping("/ranking")
public class RankingController extends BaseController {
private static Logger logger = Logger.getLogger(RankingController.class);
@Autowired
private RankingService service;
/**
* 跳转到点击榜页面
* @author caoMingYang
* @since 2019/4/15 13:55
*/
@RequestMapping("/clickIndex")
public String clickIndex(@RequestParam(value = "page",defaultValue = "1")Integer page){
//获取点击榜小说
List<Novel> novelList = service.queryNovelListByPage(page);
//获取小说总条数
Integer count = service.queryNovelCount();
this.putObject("novelList",novelList);
this.putObject("count",count);
this.putObject("currentPage",page);
return "views/ranking/clickIndex";
}
/**
* 跳转到收藏榜页面
* @param page 当前页码
* @author caoMingYang
* @since 2019/4/18 23:36
*/
@RequestMapping("/collectIndex")
public String collectIndex(@RequestParam(value = "page",defaultValue = "1")Integer page){
List<Novel> novelList = service.queryCollectNovelList(page);
Integer count = service.queryNovelCount();
this.putObject("novelList",novelList);
this.putObject("count",count);
this.putObject("currentPage",page);
return "views/ranking/collectIndex";
}
/**
* 获取总排行榜数据
* @param page 页码
* @return novelList
* @author caoMingYang
* @since 2019/4/19 11:25
*/
@RequestMapping("/totalNumber")
public String totalNumber(@RequestParam(value = "page",defaultValue = "1")Integer page){
List<Novel> novelList = service.queryTotalNumber(page);
Integer count = service.queryNovelCount();
this.putObject("novelList",novelList);
this.putObject("count",count);
this.putObject("currentPage",page);
return "views/ranking/totalNumber";
}
/**
* 获取总推荐榜数据
* @param page 页码
* @return novelList
* @author caoMingYang
* @since 2019/4/19 11:25
*/
@RequestMapping("/recommendList")
public String recommendList(@RequestParam(value = "page",defaultValue = "1")Integer page){
List<Novel> novelList = service.queryRecommendList(page);
Integer count = service.queryNovelCount();
this.putObject("novelList",novelList);
this.putObject("count",count);
this.putObject("currentPage",page);
return "views/ranking/recommendList";
}
/**
* 获取最近更新数据
* @param page 页码
* @return novelList
* @author caoMingYang
* @since 2019/4/19 11:25
*/
@RequestMapping("/nowUpdate")
public String nowUpdate(@RequestParam(value = "page",defaultValue = "1")Integer page){
List<Novel> novelList = service.queryNowUpdate(page);
Integer count = service.queryNovelCount();
this.putObject("novelList",novelList);
this.putObject("count",count);
this.putObject("currentPage",page);
return "views/ranking/nowUpdate";
}
/**
* 获取最新入库数据
* @param page 页码
* @return novelList
* @author caoMingYang
* @since 2019/4/19 11:25
*/
@RequestMapping("/nowPutStorage")
public String nowPutStorage(@RequestParam(value = "page",defaultValue = "1")Integer page){
List<Novel> novelList = service.queryNowPutStorage(page);
Integer count = service.queryNovelCount();
this.putObject("novelList",novelList);
this.putObject("count",count);
this.putObject("currentPage",page);
return "views/ranking/nowPutStorage";
}
/**
* 获取字数排行数据
* @param page 页码
* @return novelList
* @author caoMingYang
* @since 2019/4/19 11:25
*/
@RequestMapping("/wordsList")
public String wordsList(@RequestParam(value = "page",defaultValue = "1")Integer page){
List<Novel> novelList = service.queryWordsList(page);
Integer count = service.queryNovelCount();
this.putObject("novelList",novelList);
this.putObject("count",count);
this.putObject("currentPage",page);
return "views/ranking/wordsList";
}
}
... ...
package com.sinocontact.app.controller.systemSetting;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.entity.NovelType;
import com.sinocontact.app.service.systemSetting.ClassifyManageService;
import org.apache.log4j.Logger;
import org.omg.PortableInterceptor.INACTIVE;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* 分类管理
* @author Cao
* @since 2019/3/16 16:58
*/
@Controller
@RequestMapping("/classifyManage")
public class ClassifyManageController {
private static Logger logger = Logger.getLogger(ClassifyManageService.class);
@Autowired
private ClassifyManageService service;
/**
* 跳转到分类列表页
*/
@RequestMapping("/classifyList")
public String classifyList(){
return "views/systemSetting/classifyManage/classifyList";
}
/**
* 获取分类列表
* @author Cao
* @param
* @since 2019/3/16 18:47
* @return json
*/
@ResponseBody
@RequestMapping(value = "/novelTypeList",produces = "application/json;charset=utf-8")
public String getNovelTypes(){
JSONObject job = new JSONObject();
//分类列表
List<NovelType> novelTypes = service.queryNovelTypeList();
//分类条数
Integer total = service.queryNovelTypeCount();
job.put("code",0);
job.put("msg","success");
job.put("count",total);
job.put("data",novelTypes);
String jsonText = job.toJSONString();
logger.info("分类列表获取成功>>>>>>>>"+jsonText);
return jsonText;
}
/**
* 删除分类信息
* @author Cao
* @param typeId 分类id
* @since 2019/3/17 13:47
* @return
*/
@ResponseBody
@RequestMapping("/delType")
public String delNovelType(@RequestParam("typeId")String typeId){
JSONObject job = new JSONObject();
Integer id = Integer.valueOf(typeId);
boolean flag = service.deleteNovelTypeById(id);
String jsonText = setJson(job,flag);
logger.info("删除分类信息>>>>>>"+jsonText);
return jsonText;
}
/**
* 添加分类信息
* @author Cao
* @param typeName 分类名称
* @since 2019/3/17 13:47
* @return
*/
@ResponseBody
@RequestMapping("/addType")
public String addNovelType(@RequestParam("typeName")String typeName){
JSONObject job = new JSONObject();
boolean flag = service.addNovelType(typeName);
String jsonText = setJson(job,flag);
logger.info("添加分类信息>>>>>>"+jsonText);
return jsonText;
}
/**
* 更新分类信息
* @author Cao
* @param typeName 分类名称
* @since 2019/3/17 13:47
* @return
*/
@ResponseBody
@RequestMapping("/updateType")
public String addNovelType(@RequestParam(value = "typeName",defaultValue = "")String typeName,@RequestParam(value = "typeId",defaultValue = "0")Integer typeId){
JSONObject job = new JSONObject();
boolean flag = service.updateNovelType(typeName,typeId);
String jsonText = setJson(job,flag);
logger.info("更新分类信息>>>>>>"+jsonText);
return jsonText;
}
/**
* 获取json字符串
* @author Cao
* @param job jsonObject flag true or false
* @since 2019/3/17 14:41
* @return
*/
private String setJson(JSONObject job,boolean flag){
if (!flag){
job.put("code",-1);
job.put("msg","fail");
}
job.put("code",0);
job.put("msg","success");
return job.toJSONString();
}
}
... ...
package com.sinocontact.app.controller.systemSetting;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.entity.Comment;
import com.sinocontact.app.entity.Novel;
import com.sinocontact.app.service.systemSetting.CommentManageService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.InputStreamReader;
import java.util.List;
/**
* 评论管理
* @author Cao
* @since 2019/3/16 16:59
*/
@Controller
@RequestMapping("/commentManage")
public class CommentManageController {
private static final Logger logger = Logger.getLogger(CommentManageController.class);
@Autowired
private CommentManageService service;
/**
* 跳转到评论管理首页
* @return java.lang.String
* @author caoMingYang
* @since 2019/3/30 14:34
*/
@RequestMapping("/index")
public String index(){
return "views/systemSetting/commentManage/commentList";
}
/**
* 获取小说列表
* @param novelInfo 作者或书名
* @param novelType 类型
* @param page 页码
* @param pageSize 当前页数据条数
* @return java.lang.String
* @author caoMingYang
* @since 2019/3/30 14:46
*/
@ResponseBody
@RequestMapping("/novelList")
public String novelList(@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "novelType",defaultValue = "")String novelType,
@RequestParam(value = "page",defaultValue = "1")Integer page,
@RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize){
JSONObject job = new JSONObject();
//获取小说信息
List<Novel> novelList = service.getNovelList(novelInfo, novelType, page, pageSize);
//获取小说总条数
Integer count = service.getNovelCount(novelInfo, novelType);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novelList);
String jsonText = job.toJSONString();
logger.info("获取小说列表>>>>>"+jsonText);
return jsonText;
}
/**
* 获取小说的评论列表
* @param startDate 开始时间
* @param endDate 结束时间
* @param commentInfo 评论
* @param page 页码
* @param pageSize 当前页最大数据
* @param novelId 小说id
* @author caoMingYang
* @since 2019/4/5 16:04
*/
@ResponseBody
@RequestMapping("/commentList")
public String commentList(@RequestParam(value = "startDate",defaultValue = "")String startDate,
@RequestParam(value = "endDate",defaultValue = "")String endDate,
@RequestParam(value = "commentInfo",defaultValue = "")String commentInfo,
@RequestParam(value = "page",defaultValue = "1")Integer page,
@RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize,
@RequestParam(value = "novelId")Integer novelId){
JSONObject job = new JSONObject();
//评论
List<Comment> commentList = service.getCommentList(startDate, endDate, commentInfo,novelId, page, pageSize);
//总数
Integer count = service.getCommentCount(startDate, endDate, commentInfo, novelId);
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",commentList);
String jsonText = job.toJSONString();
logger.info("获取小说评论列表>>>>"+jsonText);
return jsonText;
}
/**
* 和谐小说
* @param novelId 小说id
* @param commentId 评论id
* @author caoMingYang
* @since 2019/4/5 18:43
*/
@ResponseBody
@RequestMapping("/accordNovel")
public String accordNovel(@RequestParam(value = "novelId")Integer novelId,
@RequestParam(value = "commentId")Integer commentId,
@RequestParam(value = "accordReason",defaultValue = "")String accordReason){
JSONObject job = new JSONObject();
boolean flag = service.accordReason(novelId,commentId,accordReason);
if (flag){
job.put("code",0);
job.put("msg","success");
}else{
job.put("code",-1);
job.put("msg","fail");
}
String jsonText = job.toJSONString();
logger.info("和谐小说>>>>"+jsonText);
return jsonText;
}
}
... ...
package com.sinocontact.app.controller.systemSetting;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.controller.BaseController;
import com.sinocontact.app.entity.Novel;
import com.sinocontact.app.service.systemSetting.NovelManageService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 小说管理
* @author Cao
* @since 2019/3/16 12:19
*/
@Controller
@RequestMapping("/novelManage")
public class NovelManageController extends BaseController {
private static Logger logger = Logger.getLogger(NovelManageController.class);
@Autowired
private NovelManageService service;
/**
* 跳转到小说管理页面
* @author cao
* @since 2019/03/23 17:28:45
*/
@RequestMapping("/index")
public String index(){
return "views/systemSetting/novelManage/novelList";
}
/**
* 获取分类下拉数据
* @author cao
* @since 2019/03/24 1:01:23
*/
@ResponseBody
@RequestMapping(value = "/selectData",produces = "application/json;charset=utf-8")
public String getSelectData(){
JSONObject job = new JSONObject();
List<String> typeList = service.getNovelType();
if (null == typeList){
job.put("code",-1);
job.put("msg","fail");
}else{
job.put("code",0);
job.put("msg","success");
job.put("data",typeList);
}
String jsonText = job.toJSONString();
logger.info("获取分类下拉框数据》》》》"+jsonText);
return jsonText;
}
/**
* 获取所有小说信息
* @param novelStatus 状态
* @param novelType 类型
* @param novelInfo 作者或书名
* @author cao
* @since 2019/03/24 22:24:44
*/
@ResponseBody
@RequestMapping("/novelList")
public String novelList(@RequestParam(value = "novelStatus",defaultValue = "0")Integer novelStatus,
@RequestParam(value = "novelType",defaultValue = "")String novelType,
@RequestParam(value = "novelInfo",defaultValue = "")String novelInfo,
@RequestParam(value = "page",defaultValue = "1")Integer page,
@RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize){
logger.info("获取所有小说信息》》》novelStatus>>"+novelStatus+",novelType>>"+novelType+",novelInfo>>"+novelInfo+",page>>"+page+",pageSize>>"+pageSize);
//获取所有小说信息
List<Novel> novels = service.getNovelList(novelStatus,novelType,novelInfo,page,pageSize);
//获取总条数
Integer count = service.getNovelCount(novelStatus,novelType,novelInfo);
JSONObject job = new JSONObject();
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",novels);
String jsonText = job.toJSONString();
logger.info(jsonText);
return jsonText;
}
/**
* 上架小说
* @param novelIdArray 小说id
* @return java.lang.String
* @author caoMingYang
* @since 2019/3/27 22:40
*/
@ResponseBody
@RequestMapping(value = "checkNovelPass",produces = "application/json;charset=utf-8")
public String checkNovelPass(@RequestParam("novelIdArray")String novelIdArray,@RequestParam("reason")String reason){
Integer result = service.checkNovelPass(novelIdArray,reason);
JSONObject jsonObject = new JSONObject();
if (result == -1){
jsonObject.put("code",-1);
jsonObject.put("msg","fail");
}else{
jsonObject.put("code",0);
jsonObject.put("msg","success");
}
String jsonText = jsonObject.toJSONString();
logger.info("上架小说>>>>>>>"+jsonText);
return jsonText;
}
/**
* 和谐小说
* @param novelIdArray 小说id
* @return java.lang.String
* @author caoMingYang
* @since 2019/3/29 20:40
*/
@ResponseBody
@RequestMapping(value = "/checkNovelNoPass",produces = "application/json;charset=utf-8")
public String checkNovelNoPass(@RequestParam("novelIdArray")String novelIdArray,@RequestParam("reason")String reason){
Integer result = service.checkNovelNoPass(novelIdArray,reason);
JSONObject jsonObject = new JSONObject();
if (result == -1){
jsonObject.put("code",-1);
jsonObject.put("msg","fail");
}else{
jsonObject.put("code",0);
jsonObject.put("msg","success");
}
String jsonText = jsonObject.toJSONString();
logger.info("和谐小说>>>>>>>"+jsonText);
return jsonText;
}
}
... ...
package com.sinocontact.app.controller.systemSetting;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.entity.CheckUser;
import com.sinocontact.app.entity.User;
import com.sinocontact.app.service.systemSetting.UserManageService;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 用户管理
* @author Cao
* @since 2019/3/16 16:57
*/
@Controller
@RequestMapping("/userManage")
public class UserManageController {
private static Logger logger = Logger.getLogger(UserManageController.class);
@Autowired
private UserManageService service;
/**
* 用户首页
* @author todd
* @since 2019/3/19
*/
@RequestMapping("/index")
public String index(){
return "views/systemSetting/userManage/userList";
}
/**
* 获取所有的用户信息
* @author todd
* @since 2019/3/19
*/
@ResponseBody
@RequestMapping("/userList")
public String userList(@RequestParam(value = "startDate",defaultValue = "")String startDate,
@RequestParam(value = "endDate",defaultValue = "")String endDate,
@RequestParam(value = "userInfo",defaultValue = "")String userInfo,
@RequestParam(value = "role",defaultValue = "0")Integer role,
@RequestParam(value = "page",defaultValue = "1")Integer page,
@RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize){
logger.info("startDate>>>>"+startDate+" ,endDate>>>>"+endDate+" ,userInfo>>>>"+userInfo+" ,role>>>>"+role+" ,page>>>>"+page+" ,pageSize>>>>"+pageSize);
//所有用户信息
List<User> userList = service.getUserList(startDate,endDate,userInfo,role,page,pageSize);
//用户总条数
Integer userCount = service.getUserCount(startDate,endDate,userInfo,role);
JSONObject job = new JSONObject();
job.put("code",0);
job.put("msg","success");
job.put("count",userCount);
job.put("data",userList);
String jsonText = job.toJSONString();
logger.info("获取所有用户信息》》》》》》"+jsonText);
return jsonText;
}
/**
* 获取用户审核信息列表
* @author todd
* @since 2019/3/21
*/
@ResponseBody
@RequestMapping(value = "/userCheckList",produces = "application/json;charset=utf-8")
public String userCheckList(@RequestParam(value = "checkStatus",defaultValue = "0")Integer checkStatus,
@RequestParam(value = "page",defaultValue = "1")Integer page,
@RequestParam(value = "pageSize",defaultValue = "10")Integer pageSize){
logger.info("用户审核信息列表》》》 checkStatus>>>"+checkStatus+",page>>>"+page+",pageSize>>>"+pageSize);
//获取审核信息
List<CheckUser> checkUserList = service.getCheckUserList(checkStatus,page,pageSize);
//获取总条数
Integer count = service.getCheckUserCount(checkStatus);
JSONObject job = new JSONObject();
job.put("code",0);
job.put("msg","success");
job.put("count",count);
job.put("data",checkUserList);
String jsonText = job.toJSONString();
logger.info("获取所有用户审核信息》》》》"+jsonText);
return jsonText;
}
/**
* 审核用户权限申请
* @author todd
* @since 2019/3/22
*/
@ResponseBody
@RequestMapping(value = "/checkUser",produces = "application/json;charset=utf-8")
public String checkUser(@RequestParam("checkIdArray") String checkIdArray,
@RequestParam("userIdArray")String userIds){
logger.info("审核通过id》》》"+checkIdArray);
Integer code = 0;
try {
code = service.checkUserPass(checkIdArray,userIds);
}catch (Exception e){
logger.error("审核通过异常",e);
}
JSONObject job = new JSONObject();
if (code < 1){
job.put("code",-1);
job.put("msg","fail");
}else{
job.put("code",0);
job.put("msg","success");
}
String jsonText = job.toJSONString();
logger.info("审核用户权限为通过》》》》"+jsonText);
return jsonText;
}
/**
* 审核用户权限申请不通过
* @author todd
* @since 2019/3/22
*/
@ResponseBody
@RequestMapping(value = "checkUserNoPass",produces = "application/json;charset=utf-8")
public String checkUserNoPass(@RequestParam("checkIdArray")String checkIdArray){
logger.info("审核不通过id>>>>"+checkIdArray);
Integer code = service.checkUserNoPass(checkIdArray);
JSONObject job = new JSONObject();
if (code < 1){
job.put("code",-1);
job.put("msg","fail");
}else{
job.put("code",0);
job.put("msg","success");
}
String jsonText = job.toJSONString();
logger.info("审核用户权限为不通过》》》》"+jsonText);
return jsonText;
}
/**
* 获取用户近一个月登录情况
* @author todd
* @since 2019/3/19
*/
@ResponseBody
@RequestMapping(value = "/userLoginInfo",method = RequestMethod.POST ,produces = "application/json;charset=utf-8")
public String userLoginInfo(){
String eChartData = service.userLoginInfo();
JSONObject job = new JSONObject();
if (null == eChartData){
job.put("code",-1);
job.put("msg","fail");
}else{
job.put("code",0);
job.put("msg","success");
job.put("data",eChartData);
}
String jsonText = job.toJSONString();
logger.info("获取近一个月的用户登录情况》》》》》》》"+jsonText);
return jsonText;
}
}
... ...
package com.sinocontact.app.controller.user;
import com.alibaba.fastjson.JSONObject;
import com.sinocontact.app.common.CommonConstant;
import com.sinocontact.app.controller.BaseController;
import com.sinocontact.app.entity.Novel;
import com.sinocontact.app.entity.User;
import com.sinocontact.app.service.user.UserService;
import com.sinocontact.app.utils.VerifyCodeUtil;
import org.apache.ibatis.annotations.Param;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.OutputStream;
import java.util.List;
/**
* 用户登录
* @author todd
* @since 2019/1/21
*/
@Controller
@RequestMapping("/user")
public class UserController extends BaseController{
private static Logger logger = Logger.getLogger(UserController.class);
@Autowired
private UserService userService;
/**
* 跳转到用户登录界面
* @author todd
* @since 2019/1/23
*/
@RequestMapping("/login")
public String getUser(){
return "views/user/login";
}
/**
* 跳转到用户注册界面
* @author todd
* @since 2019/1/26
*/
@RequestMapping("/loginReg")
public String reg(){
return "views/user/reg";
}
/**
* 跳转到找回密码界面
* @author todd
* @since 2019/1/26
*/
@RequestMapping("/loginGetPassword")
public String getPassword(){
return "views/user/forget";
}
/**
* 检验用户登录信息
* @author todd
* @since 2019/1/23
*/
@ResponseBody
@RequestMapping(value="/loginCheck", produces = "application/json;charset=UTF-8")
public String checkLogin(@RequestParam(value = "username")String username,
@RequestParam(value = "password")String password,
@RequestParam(value = "code",defaultValue = "")String verifyCode) throws Exception{
String verCode = (String) this.getSession().getAttribute(CommonConstant.VERCODE_KEY);
//校验输入的用户名、密码和图形验证码获的状态码
Integer code = userService.checkUser(username,password,verifyCode,verCode);
JSONObject job = new JSONObject();
if (code == 1){ //登录成功
this.getSession().setAttribute(CommonConstant.SESSION_KEY,userService.getUserByAccount(username));
job.put("code",code);
job.put("msg","登录成功!");
}else if (code == -1){
job.put("code",code);
job.put("msg","密码或用户名有误,请重新输入!");
}else if (code == -2){
job.put("code",code);
job.put("msg","您输入的用户名不存在!");
}else if (code == -3){
job.put("code",code);
job.put("msg","验证码有误,请重新输入");
}
String jobText = job.toJSONString();
logger.info(jobText);
return jobText;
}
/**
* 校验找回密码的手机号
* @param phone 手机号
* @param verifyCode 图形验证码
* @param phoneCode 手机验证码
* @author caoMingYang
* @since 2019/5/4 10:09
*/
@ResponseBody
@RequestMapping("/forget")
public String checkForget(@RequestParam("phone")String phone,
@RequestParam("verifyCode")String verifyCode,
@RequestParam("phoneCode")String phoneCode){
JSONObject job = new JSONObject();
String sessionCode = (String) this.getSession().getAttribute(CommonConstant.VERCODE_KEY);
Integer num = userService.checkForget(phone,verifyCode,sessionCode,phoneCode);
this.getSession().setAttribute(CommonConstant.PHONE,phone);
if (num == 0){
job.put("code",0);
job.put("msg","success");
}else if (num == -1){
job.put("code",-1);
job.put("msg","手机号未注册,请先注册!");
}else if (num == -2){
job.put("code",-2);
job.put("msg","验证码超时,请重新获取!");
}else if (num == -3){
job.put("code",-3);
job.put("msg","验证码输入有误!");
}else if (num == -4){
job.put("code",-4);
job.put("msg","请先获取手机验证码!");
}else if (num == -5){
job.put("code",-5);
job.put("msg","图形验证码输入有误!");
}
return job.toJSONString();
}
/**
* 重置密码
* @param password 密码
* @author caoMingYang
* @since 2019/5/4 15:47
*/
@ResponseBody
@RequestMapping("/resetPassword")
public String resetPassword(@RequestParam("password")String password){
String phone = (String) this.getSession().getAttribute(CommonConstant.PHONE);
boolean flag = userService.updatePassword(phone,password);
JSONObject job = new JSONObject();
if (flag){
job.put("code",0);
job.put("msg","success");
}else{
job.put("code",-1);
job.put("msg","密码重置失败,请稍后再试!");
}
return job.toJSONString();
}
/**
* 获取短信验证码
* @author todd
* @since 2019/1/29
*/
@ResponseBody
@RequestMapping(value="/loginGetCode", produces = "application/json;charset=UTF-8")
public String getPhoneCode(@RequestParam("phone")String phone)throws Exception{
logger.info(phone);
Integer code = userService.getPhoneCode(phone);
JSONObject job = new JSONObject();
if (code == -1){//发送失败
job.put("code",code);
job.put("msg","验证码发送失败");
}else{
job.put("code",code);
job.put("msg","验证码发送成功");
}
String jobText = job.toJSONString();
logger.info(jobText);
return jobText;
}
/**
* 找回密码验证码
* @param phone 手机号
* @author caoMingYang
* @since 2019/5/4 9:35
*/
@ResponseBody
@RequestMapping("/forgetCode")
public String forgetCode(@RequestParam("phone")String phone){
JSONObject job = new JSONObject();
Integer num = userService.forgetCode(phone);
if (num == 0){
job.put("code",0);
job.put("msg","success");
}else{
job.put("code",-1);
job.put("msg","fail");
}
return job.toJSONString();
}
/**
* 保存用户的注册信息
* @param username 用户名
* @param password 密码
* @param phone 电话号码
* @param nickname 昵称
* @author caoMingYang
* @since 2019/5/2 11:02
*/
@ResponseBody
@RequestMapping(value = "/saveUser",method = RequestMethod.POST,produces = "application/json;charset=utf-8")
public String saveUser(@RequestParam("username")String username,
@RequestParam("password")String password,
@RequestParam("phone")String phone,
@RequestParam("nickname")String nickname,
@RequestParam("verifyCode")String verifyCode){
JSONObject job = new JSONObject();
Integer num = userService.saveUser(username, password, phone, nickname,verifyCode);
if (num == 1){
job.put("code",0);
job.put("msg","success");
}else if (num == 0){
job.put("code",-1);
job.put("msg","系统异常,请稍后再试!");
}else if (num == -1){
job.put("code",-1);
job.put("msg","验证码超时,请再次获取!");
}else if (num == -2){
job.put("code",-1);
job.put("msg","验证码错误!");
}else if (num == -3){
job.put("code",-1);
job.put("msg","请先获取短信验证码!");
}else if (num == -4){
job.put("code",-1);
job.put("msg","此号码已注册过,请直接登录或找回密码");
}
return job.toJSONString();
}
/**
* 获取图形验证码
* @param session
* @param response
* @author caoMingYang
* @since 2019/4/4 20:17
*/
@RequestMapping("/verifyCode")
public void generalVerify(HttpServletResponse response, HttpSession session){
response.setContentType("image/jpeg");
String verifyCode = VerifyCodeUtil.getRandomVerifyCode();
try {
OutputStream os = response.getOutputStream();
session.setAttribute(CommonConstant.VERCODE_KEY, verifyCode);
VerifyCodeUtil.outputImage(verifyCode, os);
os.close();
} catch (Exception e) {
logger.error("", e);
}
}
/**
* 跳转到首页
* @author todd
* @since 2019/1/30
*/
@RequestMapping("/index")
public String toIndex(){
User user = (User) this.getSession().getAttribute(CommonConstant.SESSION_KEY);
putObject("user",user);
//后台管理页面
if (user.getRole() == 100){
return "views/indexRear_end";
}
//前台网站页面
return "views/index";
}
/**
* 首页
* @author todd
* @since 2019/1/30
*/
@RequestMapping("/console")
public String console(){
List<Novel> hotNovelList = userService.queryHotNovel();
List<Novel> recommendList = userService.queryRecommendList();
List<Novel> nowUpdateList = userService.queryNowUpdate();
List<Novel> wordsList = userService.queryWordsList();
this.putObject("hotNovelList",hotNovelList);
this.putObject("recommendList",recommendList);
this.putObject("nowUpdateList",nowUpdateList);
this.putObject("wordsList",wordsList);
return "views/home/console";
}
/**
* 退出登录
* @author todd
* @since 2019/1/24
*/
@RequestMapping("/loginOut")
public String loginOut(){
this.getSession().removeAttribute(CommonConstant.SESSION_KEY);
return "views/user/login";
}
}
... ...
package com.sinocontact.app.dao;
import com.sinocontact.app.entity.Chapter;
import com.sinocontact.app.entity.Comment;
import com.sinocontact.app.entity.Novel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 公共dao
* @author caoMingYang
* @since 2019/4/25 16:13
*/
@Mapper
public interface HomeMapper {
/**
* 通过id获取小说信息
* @param novelId 小说id
* @return novel
* @throws Exception
* @author caoMingYang
* @since 2019/4/25 16:18
*/
Novel getNovelById(@Param("novelId")Integer novelId) throws Exception;
/**
* 添加点击
* @param novelId 小说id
* @return 影响行数
* @throws Exception
* @author caoMingYang
* @since 2019/4/26 0:14
*/
Integer addClick(@Param("novelId")Integer novelId,
@Param("novelClick")Integer novelClick) throws Exception;
/**
* 获取点击数量
* @param novelId 小说id
* @return 点击数量
* @throws Exception
* @author caoMingYang
* @since 2019/4/26 0:23
*/
Integer getNovelClick(@Param("novelId")Integer novelId) throws Exception;
/**
* 通过小说id获得最新的五条章节信息
* @param novelId 小说id
* @return chapterList
* @throws Exception 异常
* @author caoMingYang
* @since 2019/4/27 12:28
*/
List<Chapter> queryFiveChapter(@Param("novelId")Integer novelId)throws Exception;
/**
* 通过小说id获取用户评论
* @param novelId 小说id
* @return commentList
* @throws Exception
* @author caoMingYang
* @since 2019/4/27 17:38
*/
List<Comment> getNovelComment(@Param("novelId")Integer novelId)throws Exception;
/**
* 通过小说id获取小说所有章节
* @param novelId 小说 id
* @return chapterList
* @throws Exception
* @author caoMingYang
* @since 2019/4/27 22:33
*/
List<Chapter> queryChapterList(@Param("novelId")Integer novelId)throws Exception;
/**
* 通过用户id获取用户当前推荐次数
* @param userId 用户id
* @return 推荐次数
* @throws Exception
* @author caoMingYang
* @since 2019/5/3 9:48
*/
Integer queryRecommendNumById(@Param("userId")Integer userId)throws Exception;
/**
* 通过小说id更新小说推荐数
* @param novelId 小说id
* @return 影响行数
* @author caoMingYang
* @since 2019/4/28 20:37
*/
Integer updateRecommendById(@Param("novelId")Integer novelId);
/**
* 通过id更新用户每日推荐次数
* @param userId 用户id
* @author caoMingYang
* @since 2019/4/28 20:45
*/
Integer updateUserRecommendNum(@Param("userId")Integer userId);
/**
* 通过小说id和用户id判断小说是否在用户书架中
* @param novelId 小说id
* @param userId 用户id
* @throws Exception
* @author caoMingYang
* @since 2019/4/30 20:19
*/
Integer checkBookCase(@Param("novelId")Integer novelId,
@Param("userId")Integer userId,
@Param("chapterId")Integer chapterId)throws Exception;
/**
* 添加小说到用户书架
* @param novelId 小说id
* @param userId 用户id
* @param chapterId 章节id
* @throws Exception
* @author caoMingYang
* @since 2019/4/30 20:19
*/
Integer addBookCase(@Param("novelId")Integer novelId,
@Param("userId")Integer userId,
@Param(value = "chapterId")Integer chapterId)throws Exception;
/**
* 更新用户书架信息
* @param novelId 小说id
* @param userId 用户id
* @param chapterId 章节id
* @throws Exception
* @author caoMingYang
* @since 2019/5/1 8:23
*/
Integer updateBookCase(@Param("novelId")Integer novelId,
@Param("userId")Integer userId,
@Param("chapterId")Integer chapterId) throws Exception;
/**
* 通过id获取小说章节信息
* @param novelId 小说id
* @param chapterId 章节id
* @return chapter
* @throws Exception
* @author caoMingYang
* @since 2019/5/11 13:25
*/
Chapter getChapterInfo(@Param("novelId")Integer novelId,
@Param("chapterId")Integer chapterId) throws Exception;
/**
* 通过id获取小说章节信息
* @param novelId 小说id
* @param chapterId 章节id
* @return chapter
* @throws Exception
* @author caoMingYang
* @since 2019/5/11 13:25
*/
Chapter previousChapter(@Param("novelId")Integer novelId,
@Param("chapterId")Integer chapterId) throws Exception;
/**
* 获取是否存在上一章
* @param novelId 小说id
* @param chapterId 章节id
* @return 0 不存在
* @throws Exception
* @author caoMingYang
* @since 2019/5/11 19:00
*/
Integer previousChapterCount(@Param("novelId")Integer novelId,
@Param("chapterId")Integer chapterId)throws Exception;
/**
* 通过id获取小说章节信息
* @param novelId 小说id
* @param chapterId 章节id
* @return chapter
* @throws Exception
* @author caoMingYang
* @since 2019/5/11 13:25
*/
Chapter nextChapter(@Param("novelId")Integer novelId,
@Param("chapterId")Integer chapterId) throws Exception;
/**
* 是否存在下一章
* @param novelId 小说id
* @param chapterId 章节id
* @return 0 不存在
* @throws Exception
* @author caoMingYang
* @since 2019/5/11 13:25
*/
Integer nextChapterCount(@Param("novelId")Integer novelId,
@Param("chapterId")Integer chapterId) throws Exception;
/**
* 更新用户每日推荐次数
* @author caoMingYang
* @since 2019/5/18 0:23
*/
Integer updateRecommendTimes()throws Exception;
Integer saveComment(@Param("novelId")Integer novelId,
@Param("userId")Integer userId,
@Param("comment")String comment) throws Exception;
}
... ...
package com.sinocontact.app.dao.authorCenter;
import com.sinocontact.app.entity.Chapter;
import com.sinocontact.app.entity.Novel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 作者中心
*/
@Mapper
public interface AuthorCenterMapper {
/**
* 通过用户id获取用户创作的小说
* @param userId 用户id
* @param page 页码
* @param pageSize 一页数据条数
* @throws Exception
*/
List<Novel> queryNovelList(@Param("userId")Integer userId,
@Param("page")Integer page,
@Param("pageSize")Integer pageSize)throws Exception;
/**
* 获取用户创作的小说总条数
* @param userId 用户id
* @return 条数
* @throws Exception
* @author caoMingYang
* @since 2019/5/20 23:04
*/
Integer queryNovelCount(@Param("userId")Integer userId) throws Exception;
/**
* 通过id获取小说信息
* @param novelId 小说id
* @return novel
* @throws Exception
* @author caoMingYang
* @since 2019/5/21 21:30
*/
Novel queryNovelInfo(@Param("novelId")Integer novelId) throws Exception;
/**
* 校验小说名称是否重复
* @param novelId 小说id
* @param novelName 小说名称
* @return 大于0 重复
* @throws Exception
* @author caoMingYang
* @since 2019/5/24 21:30
*/
Integer checkNovelName(@Param("novelId")Integer novelId,
@Param("novelName")String novelName)throws Exception;
/**
* 更新小说信息
* @param novel 小说
* @throws Exception
* @author caoMingYang
* @since 2019/5/24 21:42
*/
Integer updateNovel(@Param("novel") Novel novel) throws Exception;
/**
* 保存小说信息
* @param novel 小说
* @throws Exception
* @author caoMingYang
* @since 2019/5/24 21:42
*/
Integer saveNovel(Novel novel) throws Exception;
/**
* 保存小说扩展表信息
* @param novelId 小说id
* @throws Exception
* @author caoMingYang
* @since 2019/5/24 23:54
*/
Integer saveNovelExt(@Param("novelId")Integer novelId) throws Exception;
/**
* 保存作者小说关联表信息
* @param novelId 小说id
* @param userId 用户id
* @throws Exception
* @author caoMingYang
* @since 2019/5/25 0:00
*/
Integer saveAuthorNovel(@Param("novelId")Integer novelId,
@Param("userId")Integer userId) throws Exception;
Integer saveChapter(Chapter chapter) throws Exception;
Integer queryNovelWords(@Param("novelId")Integer novelId) throws Exception;
Integer updateLastChapter(@Param("chapter")Chapter chapter,
@Param("novelId")Integer novelId,
@Param("words")Integer words) throws Exception;
String queryChapterNum(@Param("novelId")Integer novelId)throws Exception;
}
... ...
package com.sinocontact.app.dao.jsoup;
import com.sinocontact.app.entity.Chapter;
import com.sinocontact.app.entity.CrawlNovel;
import com.sinocontact.app.entity.Novel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 爬取小说
* @author caoMingYang
* @since 2019/5/12 17:14
*/
@Mapper
public interface JSoupMapper {
/**
* 保存待爬取小说信息
* @param novelName 名称
* @param novelAuthor 作者
* @param flUrl 飞卢网地址
* @param ddUrl 顶点网地址
* @return true 成功,false 失败
* @author caoMingYang
* @since 2019/5/12 17:14
*/
Integer saveNovelUrl(@Param("novelName")String novelName,
@Param("novelAuthor")String novelAuthor,
@Param("flUrl")String flUrl,
@Param("ddUrl")String ddUrl,
@Param("ddChapterUrl")String ddChapterUrl) throws Exception;
/**
* 获取待抓取小说信息
* @return crawlNovelList
* @throws Exception
* @author caoMingYang
* @since 2019/5/12 20:02
*/
List<CrawlNovel> queryNovelList() throws Exception;
/**
* 保存爬取的小说信息
* @param novel 小说
* @author caoMingYang
* @since 2019/5/14 20:40
*/
Integer saveNovelInfo(Novel novel)throws Exception;
/**
* 保存爬取小说扩展信息
* @param novel 小说信息
* @author caoMingYang
* @since 2019/5/14 21:00
*/
Integer saveNovelExtInfo(Novel novel)throws Exception;
/**
* 保存章节信息
* @param chapterList 章节信息
* @author caoMingYang
* @since 2019/5/14 20:43
*/
Integer saveChapterInfo(List<Chapter> chapterList)throws Exception;
/**
* 更新爬取成功小说的状态
* @param novelId 小说id
* @throws Exception
* @author caoMingYang
* @since 2019/5/17 8:32
*/
Integer updateCrawlNovel(@Param("id")Integer novelId)throws Exception;
}
... ...
package com.sinocontact.app.dao.library;
import com.sinocontact.app.entity.Novel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 书库
* @author caoMingYang
* @since 2019/4/19 16:52
*/
@Mapper
public interface LibraryMapper {
/**
* 获取全部作品页面数据
* @param page 页码
* @param pageSize 页数据条数
* @param novelType 类型
* @param sortFlag 检索标记
* @param startWords 开始字数
* @param endWords 结束字数
* @param novelStatus 状态
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/19 17:28
*/
List<Novel> queryTotalNovelList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize,
@Param("novelType")String novelType,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取小说总条数
* @param novelInfo 书名、作者
* @param novelType 类型
* @param endWords 结束字数
* @param novelStatus 状态
* @param sortFlag 排序
* @param startWords 开始字数
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/4/19 17:28
*/
Integer getNovelCount(@Param("novelType")String novelType,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取都市小说页面数据
* @param page 页码
* @param pageSize 页数据条数
* @param sortFlag 检索标记
* @param startWords 开始字数
* @param endWords 结束字数
* @param novelStatus 状态
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:17
*/
List<Novel> queryTotalCityNovelList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取都市小说总条数
* @param novelInfo 书名、作者
* @param endWords 结束字数
* @param novelStatus 状态
* @param sortFlag 排序
* @param startWords 开始字数
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/4/23 23:17
*/
Integer getNovelCityCount(@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取都市热门小说
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:32
*/
List<Novel> queryCityHotNovel()throws Exception;
/**
* 玄幻热门小说
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryFantasyHotNovel()throws Exception;
/**
* 获取玄幻小说页面数据
* @param page 页码
* @param pageSize 页数据条数
* @param sortFlag 检索标记
* @param startWords 开始字数
* @param endWords 结束字数
* @param novelStatus 状态
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryTotalFantasyNovelList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取玄幻小说总条数
* @param novelInfo 书名、作者
* @param endWords 结束字数
* @param novelStatus 状态
* @param sortFlag 排序
* @param startWords 开始字数
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/4/23 23:51
*/
Integer getNovelFantasyCount(@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 仙侠热门小说
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryFairyHotNovel()throws Exception;
/**
* 获取仙侠小说页面数据
* @param page 页码
* @param pageSize 页数据条数
* @param sortFlag 检索标记
* @param startWords 开始字数
* @param endWords 结束字数
* @param novelStatus 状态
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryTotalFairyNovelList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取仙侠小说总条数
* @param novelInfo 书名、作者
* @param endWords 结束字数
* @param novelStatus 状态
* @param sortFlag 排序
* @param startWords 开始字数
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/4/23 23:51
*/
Integer getNovelFairyCount(@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 科幻热门小说
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryScienceFictionHotNovel()throws Exception;
/**
* 获取科幻小说页面数据
* @param page 页码
* @param pageSize 页数据条数
* @param sortFlag 检索标记
* @param startWords 开始字数
* @param endWords 结束字数
* @param novelStatus 状态
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryTotalScienceFictionNovelList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取科幻小说总条数
* @param novelInfo 书名、作者
* @param endWords 结束字数
* @param novelStatus 状态
* @param sortFlag 排序
* @param startWords 开始字数
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/4/23 23:51
*/
Integer getNovelScienceFictionCount(@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 历史军事热门小说
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryMilitaryHistoryHotNovel()throws Exception;
/**
* 获取历史军事小说页面数据
* @param page 页码
* @param pageSize 页数据条数
* @param sortFlag 检索标记
* @param startWords 开始字数
* @param endWords 结束字数
* @param novelStatus 状态
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryTotalMilitaryHistoryNovelList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取历史军事小说总条数
* @param novelInfo 书名、作者
* @param endWords 结束字数
* @param novelStatus 状态
* @param sortFlag 排序
* @param startWords 开始字数
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/4/23 23:51
*/
Integer getNovelMilitaryHistoryCount(@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 武侠小说
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryDragonHotNovel()throws Exception;
/**
* 获取武侠小说页面数据
* @param page 页码
* @param pageSize 页数据条数
* @param sortFlag 检索标记
* @param startWords 开始字数
* @param endWords 结束字数
* @param novelStatus 状态
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryTotalDragonNovelList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取武侠小说总条数
* @param novelInfo 书名、作者
* @param endWords 结束字数
* @param novelStatus 状态
* @param sortFlag 排序
* @param startWords 开始字数
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/4/23 23:51
*/
Integer getNovelDragonCount(@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 网游竞技小说
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryAthleticHotNovel()throws Exception;
/**
* 获取网游竞技小说页面数据
* @param page 页码
* @param pageSize 页数据条数
* @param sortFlag 检索标记
* @param startWords 开始字数
* @param endWords 结束字数
* @param novelStatus 状态
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryTotalAthleticNovelList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取网游竞技小说总条数
* @param novelInfo 书名、作者
* @param endWords 结束字数
* @param novelStatus 状态
* @param sortFlag 排序
* @param startWords 开始字数
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/4/23 23:51
*/
Integer getNovelAthleticCount(@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 其他小说
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> querySuspenseParanormalHotNovel()throws Exception;
/**
* 获取其他小说页面数据
* @param page 页码
* @param pageSize 页数据条数
* @param sortFlag 检索标记
* @param startWords 开始字数
* @param endWords 结束字数
* @param novelStatus 状态
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryTotalSuspenseParanormalNovelList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取其他小说总条数
* @param novelInfo 书名、作者
* @param endWords 结束字数
* @param novelStatus 状态
* @param sortFlag 排序
* @param startWords 开始字数
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/4/23 23:51
*/
Integer getNovelSuspenseParanormalCount(@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 其他小说
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryOtherHotNovel()throws Exception;
/**
* 获取其他小说页面数据
* @param page 页码
* @param pageSize 页数据条数
* @param sortFlag 检索标记
* @param startWords 开始字数
* @param endWords 结束字数
* @param novelStatus 状态
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/23 23:50
*/
List<Novel> queryTotalOtherNovelList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize,
@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 获取其他小说总条数
* @param novelInfo 书名、作者
* @param endWords 结束字数
* @param novelStatus 状态
* @param sortFlag 排序
* @param startWords 开始字数
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/4/23 23:51
*/
Integer getNovelOtherCount(@Param("sortFlag")Integer sortFlag,
@Param("start")Integer startWords,
@Param("end")Integer endWords,
@Param("novelStatus")Integer novelStatus,
@Param("novelInfo")String novelInfo)throws Exception;
}
... ...
package com.sinocontact.app.dao.memberCenter;
import com.sinocontact.app.entity.BookCaseInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 书架
* @author caoMingYang
* @since 2019/4/14 21:44
*/
@Mapper
public interface BookCaseMapper {
/**
* 获取用户书架信息
* @param userId
* @return bookCaseList
* @throws Exception
* @author caoMingYang
* @since 2019/4/14 22:13
*/
List<BookCaseInfo> queryBookCaseList(@Param("userId")Integer userId)throws Exception;
/**
* 删除书架小说信息
* @param userId 用户id
* @param novelId 小说id
* @return int
* @throws Exception
* @author caoMingYang
* @since 2019/4/14 23:38
*/
Integer deleteNovelById(@Param("userId")Integer userId,
@Param("novelId")Integer novelId)throws Exception;
}
... ...
package com.sinocontact.app.dao.memberCenter;
import com.sinocontact.app.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author caoMingYang
* @since 2019/4/11 23:20
*/
@Mapper
public interface UserBasicInfoMapper {
/**
* 通过用户名获取用户信息
* @param account 用户名
* @return 数据条数
* @throws Exception
* @author caoMingYang
* @since 2019/4/11 23:21
*/
User userInfoByAccount(@Param("account")String account)throws Exception;
/**
* 更新用户信息
* @param account 用户名
* @param nickname 昵称
* @param userId 用户id
* @throws Exception
* @author caoMingYang
* @since 2019/4/12 15:03
*/
Integer updateUserInfo(@Param("account")String account,
@Param("nickname")String nickname,
@Param("userId")Integer userId)throws Exception;
/**
* 获取用户信息
* @param userId 用户id
* @return User
* @throws Exception
* @author caoMingYang
* @since 2019/4/12 16:57
*/
User getUser(@Param("userId")Integer userId)throws Exception;
/**
* 申请成为作者
* @param userId 用户id
* @throws Exception
* @author caoMingYang
* @since 2019/4/12 19:44
*/
Integer applyForAuthor(@Param("userId")Integer userId)throws Exception;
/**
* 更改用户申请状态
* @param userId 用户id
* @throws Exception
* @author caoMingYang
* @since 2019/4/12 20:59
*/
Integer updateApplyStatus(@Param("userId")Integer userId)throws Exception;
/**
* 更新用户密码
* @param password 密码
* @param userId 用户id
* @throws Exception
* @author caoMingYang
* @since 2019/4/14 12:19
*/
Integer updatePassword(@Param("password")String password,
@Param("userId")Integer userId) throws Exception;
}
... ...
package com.sinocontact.app.dao.ranking;
import com.sinocontact.app.entity.Novel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 排行榜
* @author caoMingYang
* @since 2019/4/15 13:58
*/
@Mapper
public interface RankingMapper {
/**
* 分页查询点击排行榜数据
* @param page 页码
* @param pageSize 一页数据条数
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/16 13:48
*/
List<Novel> queryClickNovelLimit(@Param("page")Integer page,
@Param("pageSize")Integer pageSize) throws Exception;
/**
* 获取收藏榜数据
* @param page 页码
* @param pageSize 页数据条数
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/18 23:40
*/
List<Novel> queryCollectList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize) throws Exception;
/**
* 获取总排行榜数据
* @param page 页码
* @param pageSize 页数据条数
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/19 11:25
*/
List<Novel> queryTotalNumber(@Param("page")Integer page,
@Param("pageSize")Integer pageSize)throws Exception;
/**
* 获取总推荐榜数据
* @param page 页码
* @param pageSize 页数据条数
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/19 11:25
*/
List<Novel> queryRecommendList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize)throws Exception;
/**
* 最近更新
* @param page 页码
* @param pageSize 页数据条数
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/19 11:25
*/
List<Novel> queryNowUpdate(@Param("page")Integer page,
@Param("pageSize")Integer pageSize)throws Exception;
/**
* 最新入库
* @param page 页码
* @param pageSize 页数据条数
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/19 11:25
*/
List<Novel> queryNowPutStorage(@Param("page")Integer page,
@Param("pageSize")Integer pageSize)throws Exception;
/**
* 字数排行
* @param page 页码
* @param pageSize 页数据条数
* @return novelList
* @throws Exception
* @author caoMingYang
* @since 2019/4/19 11:25
*/
List<Novel> queryWordsList(@Param("page")Integer page,
@Param("pageSize")Integer pageSize)throws Exception;
/**
* 获取小说总条数
* @return 总条数
* @throws Exception
* @author caoMingYang
* @since 2019/4/17 0:09
*/
int queryNovelCount()throws Exception;
}
... ...
package com.sinocontact.app.dao.systemSetting;
import com.sinocontact.app.entity.NovelType;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 分类管理
* @author Cao
* @since 2019/3/16 16:57
*/
@Mapper
public interface ClassifyManageMapper {
/**
* 获取所有的小说类型
* @author Cao
* @param
* @since 2019/3/16 18:09
* @return List<NovelType>
*/
List<NovelType> selectNovelTypeList();
/**
* 获取分类的总条数
* @author Cao
* @param
* @since 2019/3/16 19:26
* @return 条数
*/
Integer selectNovelTypeCount();
/**
* 更新分类信息
* @author Cao
* @param novelType 分类信息
* @since 2019/3/16 18:27
* @return
*/
Integer updateNovelType(NovelType novelType);
/**
* 通过id删除分类信息
* @author Cao
* @param typeId 分类ID
* @since 2019/3/16 18:28
* @return
*/
Integer deleteNovelTypeById(Integer typeId);
/**
* 添加分类信息
* @author Cao
* @param typeName 分类名称
* @since 2019/3/17 14:32
* @return
*/
Integer addNovelType(String typeName);
}
... ...
package com.sinocontact.app.dao.systemSetting;
import com.sinocontact.app.entity.Comment;
import com.sinocontact.app.entity.Novel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.omg.PortableInterceptor.INACTIVE;
import java.util.List;
/**
* 评论管理
* @author Cao
* @since 2019/3/16 16:56
*/
@Mapper
public interface CommentManageMapper {
/**
* 获取小说列表
* @param novelInfo 书名或作者
* @param novelType 分类
* @param page 页码
* @param pageSize 当前页数据条数
* @return novelList
* @author caoMingYang
* @since 2019/3/30 14:48
*/
List<Novel> getNovelList(@Param("novelInfo")String novelInfo,
@Param("novelType")String novelType,
@Param("page")Integer page,
@Param("pageSize")Integer pageSize)throws Exception;
/**
* 获取小说总条数
* @param novelInfo 书名、作者
* @param novelType 类型
* @return java.lang.Integer
* @author caoMingYang
* @since 2019/3/30 14:57
*/
Integer getNovelCount(@Param("novelInfo")String novelInfo,
@Param("novelType")String novelType)throws Exception;
/**
* 获取小说评论列表
* @param startDate 开始时间
* @param endDate 结束时间
* @param commentInfo 评论
* @param novelId 小说id
* @param page 页码
* @param pageSize 当前页数据条数
* @return commentList
* @throws Exception
* @author caoMingYang
* @since 2019/4/5 16:09
*/
List<Comment> getCommentList(@Param("startDate")String startDate,
@Param("endDate")String endDate,
@Param("commentInfo")String commentInfo,
@Param("novelId")Integer novelId,
@Param("page")Integer page,
@Param("pageSize")Integer pageSize) throws Exception;
/**
* 获取小说评论条数
* @param startDate 开始时间
* @param endDate 结束时间
* @param commentInfo 评论
* @param novelId 小说id
* @return num
* @throws Exception
* @author caoMingYang
* @since 2019/4/5 16:10
*/
Integer getCommentCount(@Param("startDate")String startDate,
@Param("endDate")String endDate,
@Param("commentInfo")String commentInfo,
@Param("novelId")Integer novelId)throws Exception;
/**
* 和谐评论
* @param commentId 评论id
* @param novelId 小说id
* @param accordReason 和谐理由
* @return num
* @author caoMingYang
* @since 2019/4/5 18:50
*/
Integer accordNovel(@Param("commentId")Integer commentId,
@Param("novelId")Integer novelId,
@Param("accordReason")String accordReason)throws Exception;
}
... ...
package com.sinocontact.app.dao.systemSetting;
import com.sinocontact.app.entity.Novel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
/**
* 小说管理
* @author Cao
* @since 2019/3/16 12:16
*/
@Mapper
public interface NovelManageMapper {
/**
* 获取所以分类信息
* @author cao
* @since 2019/03/24 1:00
* @return 分类信息
* @throws Exception
*/
List<String> getNovelType()throws Exception;
/**
* 获取所有的小说信息
* @param novelStatus 状态
* @param novelType 类型
* @param novelInfo 作者或书名
* @param page 当前页
* @param pageSize 每页数据条数
* @return 小说集合
* @throws Exception
* @author caoMingYang
* @since 2019/3/26 22:42
*/
List<Novel> getNovelList(@Param("novelStatus")Integer novelStatus,
@Param("novelType")String novelType,
@Param("novelInfo")String novelInfo,
@Param("page")Integer page,
@Param("pageSize")Integer pageSize)throws Exception;
/**
* 获取小说总条数
* @author caoMingYang
* @since 2019/3/26 23:02
*/
Integer getNovelCount(@Param("novelStatus")Integer novelStatus,
@Param("novelType")String novelType,
@Param("novelInfo")String novelInfo)throws Exception;
/**
* 批量和谐小说
* @param reason 和谐理由
* @param idList 小说id数组
* @return 受影响行数
* @author caoMingYang
* @since 2019/3/30 9:52
*/
Integer updateNovelNoPass(@Param("idList")List idList,@Param("reason")String reason)throws Exception;
/**
* 批量上架小说
* @param reason 上架理由
* @param idList 小说id数组
* @return 受影响行数
* @author caoMingYang
* @since 2019/3/30 9:52
*/
Integer updateNovelPass(@Param("idList")List idList,@Param("reason")String reason)throws Exception;
}
... ...
package com.sinocontact.app.dao.systemSetting;
import com.sinocontact.app.entity.CheckUser;
import com.sinocontact.app.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 用户管理
* @author Cao
* @Date 2019/3/10 18:37
*/
@Mapper
public interface UserManageMapper {
//获取所有的用户信息
List<User> getUserList(@Param("startDate")String startDate,
@Param("endDate")String endDate,
@Param("userInfo")String userInfo,
@Param("role")Integer role,
@Param("page")Integer page,
@Param("pageSize")Integer pageSize) throws Exception;
//获取所有用户总条数
Integer getUserCount(@Param("startDate")String startDate,
@Param("endDate")String endDate,
@Param("userInfo")String userInfo,
@Param("role")Integer role) throws Exception;
//获取所有用户
Integer getUserNum()throws Exception;
//获取近一个月登录的用户数量
Integer getUserLoginNum(@Param("startDate")String startDate,
@Param("endDate")String endDate) throws Exception;
//获取所有用户审核信息
List<CheckUser> getCheckUserList(@Param("checkStatus")Integer checkStatus,
@Param("page")Integer page,
@Param("pageSize")Integer pageSize) throws Exception;
//获取所有用户审核信息总条数
Integer getCheckUserCount(@Param("checkStatus")Integer checkStatus)throws Exception;
//审核通过
Integer checkUserPass(@Param("list")List<Integer> idList)throws Exception;
//更新用户权限
Integer updateUserRole(@Param("list")List<Integer> idList) throws Exception;
//审核不通过
Integer checkUserNoPass(@Param("list")List<Integer> idList) throws Exception;
}
... ...
package com.sinocontact.app.dao.user;
import com.sinocontact.app.entity.Novel;
import com.sinocontact.app.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.omg.PortableInterceptor.INACTIVE;
import java.util.List;
/**
* 用户登录
* @author todd
* @since 2019/1/21
*/
@Mapper
public interface UserMapper {
//通过用户名查询用户信息
User checkUser(String username)throws Exception;
//通过手机号查询用户信息
User getUserByPhone(String phone)throws Exception;
//更新用户登录时间
Integer updateLoginTime(Integer userId) throws Exception;
/**
* 保存用户注册信息
* @param username 用户名
* @param password 密码
* @param nickname 昵称
* @param phone 手机号
* @throws Exception
* @author caoMingYang
* @since 2019/5/2 11:05
*/
Integer saveUser(@Param("username")String username,
@Param("password")String password,
@Param("nickname")String nickname,
@Param("phone")String phone) throws Exception;
/**
* 校验此手机号是否注册
* @param phone 手机号
* @throws Exception
* @author caoMingYang
* @since 2019/5/4 10:20
*/
Integer checkPhone(@Param("phone")String phone) throws Exception;
/**
* 更新用户密码
* @param phone 手机号
* @param password 密码
* @throws Exception
* @author caoMingYang
* @since 2019/5/4 19:15
*/
Integer updatePassword(@Param("phone")String phone,
@Param("password")String password) throws Exception;
//热门小说
List<Novel> queryHotNovel()throws Exception;
//总推荐榜
List<Novel> queryRecommendList()throws Exception;
//总字数榜
List<Novel> queryWordsList()throws Exception;
//最新入库
List<Novel> queryNowUpdate()throws Exception;
}
... ...
package com.sinocontact.app.entity;
/**
* 作者和小说关联
* @author Cao
* @since 2019/3/16 16:34
*/
public class AuthorNovel {
/**
* ID
*/
private Integer id;
/**
* 用户ID
*/
private Integer userId;
/**
* 小说ID
*/
private Integer novelId;
/**
* 状态 0:有效;-1:无效
*/
private Integer status;
/**
* 创建时间
*/
private String createTime;
/**
* 更新时间
*/
private String updateTime;
@Override
public String toString() {
return "BookCaseInfo{" +
"id=" + id +
", userId=" + userId +
", novelId=" + novelId +
", status=" + status +
", createTime='" + createTime + '\'' +
", updateTime='" + updateTime + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getNovelId() {
return novelId;
}
public void setNovelId(Integer novelId) {
this.novelId = novelId;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
}
... ...
package com.sinocontact.app.entity;
/**
* 书架
* @author Cao
* @since 2019/3/16 16:34
*/
public class BookCaseInfo {
/**
* ID
*/
private Integer id;
/**
* 用户ID
*/
private Integer userId;
/**
* 小说ID
*/
private Integer novelId;
/**
* 小说名称
*/
private String novelName;
/**
* 章节id
*/
private Integer chapterId;
/**
* 章节名称
*/
private String chapterName;
/**
* 最新章节
*/
private String lastChapter;
/**
* 状态 0:有效;-1:无效
*/
private Integer status;
/**
* 创建时间
*/
private String createTime;
/**
* 更新时间
*/
private String updateTime;
@Override
public String toString() {
return "BookCaseInfo{" +
"id=" + id +
", userId=" + userId +
", novelId=" + novelId +
", novelName='" + novelName + '\'' +
", chapterId=" + chapterId +
", chapterName='" + chapterName + '\'' +
", status=" + status +
", createTime='" + createTime + '\'' +
", updateTime='" + updateTime + '\'' +
'}';
}
public String getLastChapter() {
return lastChapter;
}
public void setLastChapter(String lastChapter) {
this.lastChapter = lastChapter;
}
public String getNovelName() {
return novelName;
}
public void setNovelName(String novelName) {
this.novelName = novelName;
}
public Integer getChapterId() {
return chapterId;
}
public void setChapterId(Integer chapterId) {
this.chapterId = chapterId;
}
public String getChapterName() {
return chapterName;
}
public void setChapterName(String chapterName) {
this.chapterName = chapterName;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getNovelId() {
return novelId;
}
public void setNovelId(Integer novelId) {
this.novelId = novelId;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
}
... ...
package com.sinocontact.app.entity;
/**
* 小说章节
* @author Cao
* @since 2019/3/16 15:33
*/
public class Chapter {
/**
* 章节ID
*/
private Integer chapterId;
/**
* 小说ID
*/
private Integer novelId;
/**
* 章节名称
*/
private String chapterName;
/**
* 章节内容
*/
private String chapterContent;
/**
* 创建时间
*/
private String createTime;
/**
* 更新时间
*/
private String updateTime;
private Integer status;
@Override
public String toString() {
return "Chapter{" +
"chapterId=" + chapterId +
", novelId=" + novelId +
", chapterName='" + chapterName + '\'' +
", chapterContent='" + chapterContent + '\'' +
", createTime='" + createTime + '\'' +
", updateTime='" + updateTime + '\'' +
'}';
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getChapterId() {
return chapterId;
}
public void setChapterId(Integer chapterId) {
this.chapterId = chapterId;
}
public Integer getNovelId() {
return novelId;
}
public void setNovelId(Integer novelId) {
this.novelId = novelId;
}
public String getChapterName() {
return chapterName;
}
public void setChapterName(String chapterName) {
this.chapterName = chapterName;
}
public String getChapterContent() {
return chapterContent;
}
public void setChapterContent(String chapterContent) {
this.chapterContent = chapterContent;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
}
... ...