徐州疫情最新政策如何提升网站seo排名
网站首页:
- 用户登录/注册:用户注册时进行用户名及笔名存在的限制
- 热门小说推荐:显示小说名及作者名,点击进入对应小说
- 小说类别:玄幻,武侠,言情,历史等,点击对用分类到分类下所有小说
- 最新小说:显示新更新的小说名称,点击进入对应小说
- 查询:根据小说名/笔名进行查询
登录注册:
- 注册:用户注册时进行用户名及笔名存在的限制,存在则不能注册成功显示已存在
- 登录:登录有用户名密码及图片验证的校验
用户:
- 网站首页
- 个人信息管理:邮箱,用户名,笔名
- 对小说进行评价
- 在线阅读小说(收费作品需要充值才能浏览):章节目录,添加到书架,下一章的点击按钮
- 购买VIP:每本付费小说下都能跳转到充值界面,未充值的用户浏览收费小说自动跳转到充值界面,充值后显示VIP剩余日期
- 我的全部作品:添加小说(小说名,小说封面,收费/免费,小说分类,小说简介),删除小说,章节管理(更新章节,删除章节),更改小说完结状态
- 我的书架:可以进行查看及删除
- 阅读记录:可以进行查看及删除
后台管理:
- 用户管理:有删除用户的权限
- 订单管理:所有购买VIP的订单的删除及查询
- 书评管理:书评敏感词审查及删除
- 分类管理:添加删除分类,所管理的分类在用户添加小说时给一个下拉框进行选择
package com.novel.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.novel.entity.Order;
import com.novel.entity.User;
import com.novel.service.OrderService;
import com.novel.util.AlipayConfig;
import com.novel.util.DateUtil;
import com.novel.util.Msg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
/*** @Author: * @Date: 2024/3/11 14:29* @Description: 订单管理*/
@Controller
@RequestMapping("/order")
public class OrderController {@Autowiredprivate OrderService orderService;/*** 跳转到后台订单管理* @return*/@RequestMapping("show")public String show(){return "orderManage";}/*** 订单列表* @param pn* @return*/@RequestMapping("/showjson")@ResponseBodypublic Msg getAllGoods(@RequestParam(value = "page",defaultValue = "1") Integer pn, HttpServletResponse response, Model model) {//一页显示几个数据PageHelper.startPage(pn, 10);List<Order> orderList = orderService.selectOrderList();orderList.forEach(order -> {order.setCreatetime1(DateUtil.getStringDate(order.getCreatetime()));order.setStarttime1(DateUtil.getStringDate(order.getStarttime()));order.setEndtime1(DateUtil.getStringDate(order.getEndtime()));});//显示几个页号PageInfo page = new PageInfo(orderList,5);return Msg.success("查询成功!").add("pageInfo", page);}/*** 删除* @param id* @return*/@RequestMapping(value = "/delete/{id}", method = RequestMethod.DELETE)@ResponseBodypublic Msg deleteUser(@PathVariable("id")Integer id) {orderService.deleteByPrimaryKey(id);return Msg.success("删除成功!");}/*** 跳转到充值页面*/@RequestMapping("toPayPage")public String toPayPage(HttpSession session, Model model){User user = (User) session.getAttribute("user");if(user==null){return "login";}Order order = orderService.selectOneOrder(user.getUserid());if(order!=null){int i = new Date().compareTo(order.getEndtime());if(i<0 || DateUtil.getStringDate(new Date()).equals(DateUtil.getStringDate(order.getEndtime()))){model.addAttribute("endtime",DateUtil.getStringDate(order.getEndtime()));}else{model.addAttribute("endtime","已过期,上次到期日:"+DateUtil.getStringDate(order.getEndtime()));}}else{model.addAttribute("endtime","无充值记录");}return "pay";}/*** 用户充值支付*/@RequestMapping("userPay")public void pay(Integer month,HttpServletResponse rep, Model model,HttpSession session){User user = (User) session.getAttribute("user");session.setAttribute("month",month);//接入支付宝沙箱支付
//获得初始化的AlipayClientAlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);//设置请求参数AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();alipayRequest.setReturnUrl(AlipayConfig.return_url);//alipayRequest.setNotifyUrl(AlipayConfig.notify_url);try{//商户订单号,商户网站订单系统中唯一订单号,必填String out_trade_no = UUID.randomUUID().toString();//付款金额,必填int total = month*10;String total_amount =String.valueOf(total);//订单名称,必填String subject ="用户"+user.getUsername()+"订单";//商品描述,可空String body = "";alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\","+ "\"total_amount\":\""+ total_amount +"\","+ "\"subject\":\""+ subject +"\","+ "\"body\":\""+ body +"\","+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");//请求String result = alipayClient.pageExecute(alipayRequest).getBody();rep.setContentType("text/html;charset=" + AlipayConfig.charset);//直接将完整的表单html输出到页面rep.getWriter().write(result);rep.getWriter().flush();rep.getWriter().close();}catch (Exception e){e.printStackTrace();}}/*** 支付成功以后回调* @return*/@RequestMapping("payreturn")public String payreturn(HttpSession session,Model model){User user = (User) session.getAttribute("user");int month = (int) session.getAttribute("month");Order order = orderService.selectOneOrder(user.getUserid());int num=0;if(order!=null){int i = new Date().compareTo(order.getEndtime());if(i<0 || DateUtil.getStringDate(new Date()).equals(DateUtil.getStringDate(order.getEndtime()))){//更新order.setEndtime(DateUtil.subMonth(order.getEndtime(),month));order.setMonth(order.getMonth()+month);order.setTotalmoney(order.getTotalmoney()+(month*10));orderService.updateByPrimaryKey(order);}else{num++;}}else{num++;}if(num>0){order = new Order();order.setUserid(user.getUserid());order.setUsername(user.getUsername());order.setCreatetime(new Date());order.setStarttime(new Date());order.setEndtime(DateUtil.subMonth(new Date(),month));order.setMonth(month);order.setTotalmoney(month*10);orderService.insert(order);}session.setAttribute("uservip",1);return "redirect:/order/toPayPage";}}
package com.novel.controller;import com.novel.entity.Category;
import com.novel.entity.Novel;
import com.novel.entity.NovelDetails;
import com.novel.entity.User;
import com.novel.service.CategoryService;
import com.novel.service.NovelDetailsService;
import com.novel.service.NovelService;
import com.novel.util.DateUtil;
import com.novel.util.Msg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.UUID;@Controller
@RequestMapping("usernovel")
public class NovelController {@Autowiredprivate NovelService novelService;@Autowiredprivate NovelDetailsService novelDetailsService;@Autowiredprivate CategoryService categoryService;@RequestMapping("queryNovel")public String queryNovel(Model model,Novel record){if(record==null){model.addAttribute("novelList",null);}else{List<Novel> novelList = novelService.selectAllNovel(record);model.addAttribute("novelList",novelList);}return "serch";}@RequestMapping("addNovel")public String insert( Novel novel, @RequestParam MultipartFile fileToUpload, HttpServletRequest request, HttpServletResponse response, HttpSession session){User user = (User) session.getAttribute("user");novel.setUserid(user.getUserid());novel.setPenname(user.getPenname());novel.setCreatetime(DateUtil.getStringDate(new Date()));novel.setUpdatetime(DateUtil.getStringDate());novel.setEndfinsh(0);//上传图片String name = UUID.randomUUID().toString();String newFileName = name + ".jpg";File newFile = new File(request.getServletContext().getRealPath("/image"), newFileName);newFile.getParentFile().mkdirs();try {fileToUpload.transferTo(newFile);} catch (IOException e) {e.printStackTrace();}novel.setImgpath("image/"+newFileName);Category category = categoryService.selectByPrimaryKey(novel.getCategoryId());novel.setCategoryName(category.getCategoryname());novelService.insert(novel);return "redirect:/usernovel/novelList";}/*** 我的所有小说* @param session* @param model* @return*/@RequestMapping("novelList")public String novelList( HttpSession session,Model model){User user = (User) session.getAttribute("user");Novel novel123 = new Novel();novel123.setUserid(user.getUserid());List<Novel> novelList = novelService.selectAllNovel(novel123);model.addAttribute("novelList",novelList);List<Category> categoryList = categoryService.selectByCategory();model.addAttribute("categoryList",categoryList);return "user_novel";}/*** 删除小说* @param novel* @return*/@RequestMapping("/deleteNovel")@ResponseBodypublic Msg deleteAddr(Novel novel) {novelService.deleteByPrimaryKey(novel.getNovelid());return Msg.success("删除成功");}/*** 修改小说* @return*/@RequestMapping("editNovel")public String editNovel(Novel novel,HttpSession session,Model model){novelService.updateByPrimaryKeySelective(novel);return "redirect:/usernovel/novelList";}/*** 完结小说* @return*/@RequestMapping("endNovel")public String endNovel(Novel novel){novel.setEndfinsh(1);novelService.updateByPrimaryKeySelective(novel);return "redirect:/usernovel/novelList";}/*** 查询某个小说下所有章节*/@RequestMapping("queryNovelByNovelId")public String queryNovelByNovelId(Integer novelId,Model model){Novel novel = novelService.selectByPrimaryKey(novelId);List<NovelDetails> novelDetailsList = novelDetailsService.selectAllNovelIdASC(novelId);model.addAttribute("novelDetailsList",novelDetailsList);model.addAttribute("novel",novel);return "user_novel_detail";}/*** 跳转到添加章节页面* @return*/@RequestMapping("toAddUserNovelDetail")public String toAddUserNovelDetail(Model model,Integer novelId){Novel novel = novelService.selectByPrimaryKey(novelId);model.addAttribute("novel",novel);return "user_addnoveldetail";}/*** 添加小说章节* @param novelDetails* @return*/@RequestMapping("addNovelDetail")public String addNovelDetail(NovelDetails novelDetails){String dateTime = DateUtil.getStringDate();novelDetails.setCreatetime(dateTime);novelDetailsService.insert(novelDetails);Novel novel = novelService.selectByPrimaryKey(novelDetails.getNovelid());novel.setUpdatetime(dateTime);novelService.updateByPrimaryKey(novel);return "redirect:/usernovel/queryNovelByNovelId?novelId="+novelDetails.getNovelid();}/*** 删除小说章节* @return*/@RequestMapping("deleteNovekDetail")public String deleteNovekDetail(Integer detailsid,Integer novelId){NovelDetails novelDetails = novelDetailsService.selectByPrimaryKey(detailsid);novelDetailsService.deleteByPrimaryKey(detailsid);return "redirect:/usernovel/queryNovelByNovelId?novelId="+novelDetails.getNovelid();}}