package com.yuanlrc.movie.controller.admin;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
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 com.yuanlrc.movie.bean.CodeMsg;
import com.yuanlrc.movie.bean.PageBean;
import com.yuanlrc.movie.bean.Result;
import com.yuanlrc.movie.config.AppConfig;
import com.yuanlrc.movie.constant.SessionConstant;
import com.yuanlrc.movie.entity.admin.OperaterLog;
import com.yuanlrc.movie.entity.admin.OrderAuth;
import com.yuanlrc.movie.entity.admin.Role;
import com.yuanlrc.movie.entity.admin.User;
import com.yuanlrc.movie.service.admin.DatabaseBakService;
import com.yuanlrc.movie.service.admin.OperaterLogService;
import com.yuanlrc.movie.service.admin.OrderAuthService;
import com.yuanlrc.movie.service.admin.UserService;
import com.yuanlrc.movie.service.common.AccountService;
import com.yuanlrc.movie.service.common.CinemaHallSessionService;
import com.yuanlrc.movie.service.common.CinemaService;
import com.yuanlrc.movie.service.common.MovieService;
import com.yuanlrc.movie.service.common.OrderService;
import com.yuanlrc.movie.service.common.PayLogService;
import com.yuanlrc.movie.util.SessionUtil;
import com.yuanlrc.movie.util.StringUtil;
import com.yuanlrc.movie.util.ValidateEntityUtil;
/**
* 系统控制器
* @author Administrator
*
*/
@RequestMapping("/system")
@Controller
public class SystemController {
@Autowired
private OrderAuthService orderAuthService;
@Autowired
private OperaterLogService operaterLogService;
@Autowired
private UserService userService;
@Autowired
private DatabaseBakService databaseBakService;
@Autowired
private CinemaService cinemaService;
@Autowired
private MovieService movieService;
@Autowired
private AccountService accountService;
@Autowired
private OrderService orderService;
@Autowired
private CinemaHallSessionService cinemaHallSessionService;
@Autowired
private PayLogService payLogService;
@Value("${show.tips.text}")
private String showTipsText;
@Value("${show.tips.url.text}")
private String showTipsUrlText;
@Value("${show.tips.btn.text}")
private String showTipsBtnText;
@Value("${show.tips.url}")
private String showTipsUtl;
private Logger log = LoggerFactory.getLogger(SystemController.class);
/**
* 登录页面
* @param name
* @param model
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.GET)
public String login(Model model){
return "admin/system/login";
}
/**
* 用户登录提交表单处理方法
* @param request
* @param user
* @param cpacha
* @return
*/
@RequestMapping(value="/login",method=RequestMethod.POST)
@ResponseBody
public Result<Boolean> login(HttpServletRequest request,User user,String cpacha){
if(user == null){
return Result.error(CodeMsg.DATA_ERROR);
}
//用统一验证实体方法验证是否合法
CodeMsg validate = ValidateEntityUtil.validate(user);
if(validate.getCode() != CodeMsg.SUCCESS.getCode()){
return Result.error(validate);
}
//表示实体信息合法,开始验证验证码是否为空
if(StringUtils.isEmpty(cpacha)){
return Result.error(CodeMsg.CPACHA_EMPTY);
}
//说明验证码不为空,从session里获取验证码
Object attribute = request.getSession().getAttribute("admin_login");
if(attribute == null){
return Result.error(CodeMsg.SESSION_EXPIRED);
}
//表示session未失效,进一步判断用户填写的验证码是否正确
if(!cpacha.equalsIgnoreCase(attribute.toString())){
return Result.error(CodeMsg.CPACHA_ERROR);
}
//表示验证码正确,开始查询数据库,检验密码是否正确
User findByUsername = userService.findByUsername(user.getUsername());
//判断是否为空
if(findByUsername == null){
return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST);
}
//表示用户存在,进一步对比密码是否正确
if(!findByUsername.getPassword().equals(user.getPassword())){
return Result.error(CodeMsg.ADMIN_PASSWORD_ERROR);
}
//表示密码正确,接下来判断用户状态是否可用
if(findByUsername.getStatus() == User.ADMIN_USER_STATUS_UNABLE){
return Result.error(CodeMsg.ADMIN_USER_UNABLE);
}
//检查用户所属角色状态是否可用
if(findByUsername.getRole() == null || findByUsername.getRole().getStatus() == Role.ADMIN_ROLE_STATUS_UNABLE){
return Result.error(CodeMsg.ADMIN_USER_ROLE_UNABLE);
}
//检查用户所属角色的权限是否存在
if(findByUsername.getRole().getAuthorities() == null || findByUsername.getRole().getAuthorities().size() == 0){
return Result.error(CodeMsg.ADMIN_USER_ROLE_AUTHORITES_EMPTY);
}
//检查一切符合,可以登录,将用户信息存放至session
request.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY, findByUsername);
//销毁session中的验证码
request.getSession().setAttribute("admin_login", null);
//将登陆记录写入日志库
operaterLogService.add("用户【"+user.getUsername()+"】于【" + StringUtil.getFormatterDate(new Date(), "yyyy-MM-dd HH:mm:ss") + "】登录系统!");
log.info("用户成功登录,user = " + findByUsername);
return Result.success(true);
}
/**
* 登录成功后的系统主页
* @param model
* @return
*/
@RequestMapping(value="/index")
public String index(Model model){
model.addAttribute("operatorLogs", operaterLogService.findLastestLog(10));
model.addAttribute("userTotal", accountService.count());
model.addAttribute("movieTotal", movieService.count());
model.addAttribute("cinemaTotal", cinemaService.count());
model.addAttribute("orderTotal", orderService.count());
model.addAttribute("cinemaHallSessionTotal", cinemaHallSessionService.count());
model.addAttribute("payLogTotal", payLogService.count());
model.addAttribute("paySuccessTotal", payLogService.countPaySuccess());
model.addAttribute("moneyTotal", movieService.sumTotalMoney());
model.addAttribute("allPayLogList", payLogService.statsAll(5));
model.addAttribute("paidPayLogList", payLogService.statsPaid(5));
model.addAttribute("topMovieList", movieService.findTopMoneyList());
model.addAttribute("showTipsText", showTipsText);
model.addAttribute("showTipsUrlText", showTipsUrlText);
model.addAttribute("showTipsUtl", showTipsUtl);
model.addAttribute("showTipsBtnText", showTipsBtnText);
return "admin/system/index";
}
/**
* 注销登录
* @return
*/
@RequestMapping(value="/logout")
public String logout(){
User loginedUser = SessionUtil.getLoginedUser();
if(loginedUser != null){
SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY, null);
}
return "redirect:login";
}
/**
* 无权限提示页面
* @return
*/
@RequestMapping(value="/no_right")
public String noRight(){
return "admin/system/no_right";
}
/**
* 修改用户个人信息
* @return
*/
@RequestMapping(value="/update_userinfo",method=RequestMethod.GET)
public String updateUserInfo(){
return "admin/system/update_userinfo";
}
/**
* 修改个人信息保存
* @param user
* @return
*/
@RequestMapping(value="/update_userinfo",method=RequestMethod.POST)
public String updateUserInfo(User user){
User loginedUser = SessionUtil.getLoginedUser();
loginedUser.setEmail(user.getEm
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 -------- 下载后请首先打开README.md文件(如有),仅供学习参考。
资源推荐
资源详情
资源评论
收起资源包目录
基于Springboot+Freemarker+Mysql在线电影订票网站设计毕业设计源码.zip (1210个子文件)
logo_1.png.bak 2KB
.classpath 1KB
bootstrap.min.css 106KB
style.min.css 105KB
style.min.css 86KB
style.min.css 86KB
materialdesignicons.min.css 85KB
animate.css 71KB
bootstrap-datepicker3.css 22KB
jquery-confirm.min.css 22KB
bootstrap-datepicker3.min.css 21KB
ion.rangeSlider.min.css 11KB
bootstrap-datetimepicker.css 9KB
bootstrap-datetimepicker.min.css 8KB
jquery.flexslider.css 5KB
jquery.flexslider.css 5KB
bootstrap-colorpicker.css 5KB
bootstrap-colorpicker.min.css 4KB
main.css 3KB
main.css 3KB
imgareaselect-default.css 1KB
imgareaselect-default.css 1KB
jquery.tagsinput.min.css 903B
jquery.jRating.css 812B
jquery.jRating.css 812B
jquery.jPages.css 664B
jquery.jPages.css 664B
jqpagination.css 598B
jqpagination.css 598B
materialdesignicons.eot 286KB
detail.ftl 22KB
edit.ftl 13KB
update-head-pic.ftl 13KB
add.ftl 11KB
user-order-list.ftl 10KB
service-terms.ftl 10KB
edit.ftl 10KB
list.ftl 10KB
register.ftl 10KB
index.ftl 9KB
list.ftl 9KB
select_seat.ftl 9KB
index.ftl 9KB
add.ftl 9KB
header-menu.ftl 9KB
login-dialog.ftl 8KB
list.ftl 8KB
edit.ftl 8KB
list.ftl 8KB
update-pwd.ftl 8KB
add.ftl 8KB
list.ftl 8KB
list.ftl 8KB
list.ftl 8KB
operator_log_list.ftl 7KB
comment_list.ftl 7KB
comment_list.ftl 7KB
list.ftl 7KB
list.ftl 7KB
edit.ftl 7KB
join-us.ftl 7KB
edit.ftl 7KB
add.ftl 7KB
legal-statement.ftl 6KB
list.ftl 6KB
use-help.ftl 6KB
add.ftl 6KB
user-comment.ftl 6KB
list.ftl 6KB
edit.ftl 5KB
edit.ftl 5KB
add.ftl 5KB
add.ftl 5KB
list.ftl 5KB
feedback.ftl 5KB
user-pay-to-account.ftl 4KB
user-center.ftl 4KB
user-info.ftl 4KB
about-us.ftl 4KB
login.ftl 4KB
list.ftl 4KB
update_userinfo.ftl 4KB
cooperative-partner.ftl 3KB
user-account.ftl 3KB
header.ftl 3KB
edit.ftl 3KB
add.ftl 3KB
update_pwd.ftl 3KB
footer.ftl 3KB
detail.ftl 3KB
contact-us.ftl 3KB
icons.ftl 2KB
footer-js.ftl 2KB
footer.ftl 1KB
get_show_session.ftl 1KB
404.ftl 1KB
no_right.ftl 1KB
500.ftl 1KB
runtime_error.ftl 1KB
405.ftl 1KB
共 1210 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
资源评论
程皮
- 粉丝: 277
- 资源: 2566
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功