基于javaweb+mysql的+JPA电影售票网站购票平台管理系统(前台、后台)

基于javaweb+mysql的+JPA电影售票网站购票平台管理系统(前台、后台)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

前台:查看电影、影院、评论、购票下单等…………

后台: 管理电影、影院、排版、管理员、前端用户、订单等…………

前台

后台

技术框架

JavaWeb SpringBoot JPA Freemarker Bootstrap JavaScript SpringMVC MySQL


	 */
	private int height = fontsize+12;
	/**
	 * 干扰线条数
	 * 默认3条
	 */
	private int disturbline = 3;
	
	
	public CpachaUtil(){}
	
	/**
	 * 指定验证码长度
	 * @param vcodeLen 验证码长度
	 */
	public CpachaUtil(int vcodeLen) {
		this.vcodeLen = vcodeLen;
		this.width = (fontsize+1)*vcodeLen+10;
	}
	
	public CpachaUtil(int vcodeLen,int fontSize) {
		this.vcodeLen = vcodeLen;
	}
	
	/**
	 * 修改用户个人信息
	 * @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.getEmail());
		loginedUser.setMobile(user.getMobile());
	}
	
	public Integer getRateCount() {
		return rateCount;
	}

	public void setRateCount(Integer rateCount) {
		this.rateCount = rateCount;
	}

	@Override
	public String toString() {
		return "Movie [name=" + name + ", abs=" + abs + ", type=" + type
				+ ", area=" + area + ", directedBy=" + directedBy + ", actor="
				+ actor + ", language=" + language + ", time=" + time
				+ ", showTime=" + showTime + ", info=" + info + ", picture="
				+ picture + ", video=" + video + ", totalMoney=" + totalMoney
				+ ", rate=" + rate + "]";
	}

	

	
	 * @return 返回一个随机颜色
	 */
	private Color getRandomColor(){
		Random ran = new Random();
		return new Color(ran.nextInt(220), ran.nextInt(220), ran.nextInt(220)); 
	}
	/**
	 * @return 角度
	 */
	private double getTheta(){
		return ((int) (Math.random()*1000) % 2 == 0 ? -1 : 1)*Math.random();
	}

	/**
	 * @return 验证码字符个数
	 */
	public int getVcodeLen() {
		return vcodeLen;
	}
	/**
	 * 设置验证码字符个数
	 * @param vcodeLen
	 */
	public void setVcodeLen(int vcodeLen) {
		this.width = (fontsize+3)*vcodeLen+10;
	public Result<Boolean> login(@RequestParam(name="mobile",required=true)String mobile,
			@RequestParam(name="password")String password,
			@RequestParam(name="checkCode")String checkCode,
			@RequestParam(name="tag")Integer tag
			){
		Account account = null;
		if(tag == 1){
			//表示是密码登录
			if(StringUtils.isEmpty(password)){
				return Result.error(CodeMsg.ADMIN_PASSWORD_EMPTY);
			}
			account = accountService.find(mobile);
			if(account == null){
				return Result.error(CodeMsg.HOME_ACCOUNT_REGISTER_MOBILE_NO_EXIST);
			}
			//表示一切符合,开始检查密码是否正确
			if(!password.equals(account.getPassword())){
			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){
import com.demo.service.common.MovieService;
import com.demo.service.common.NewsService;

/**
 * 前台首页
 * @author Administrator
 *
 */
@RequestMapping("/home/index")
@Controller
public class IndexController {

	@Autowired
	private AreaService areaService;
	@Autowired
	private MovieService movieService;
	@Autowired
		if(account != null){
			return "redirect:/home/account/user-center";
		}
		return "home/index/register";
	}
	
	/**
	 * 退出登录
	 * @param model
	 * @return
	 */
	@RequestMapping(value="/logout",method=RequestMethod.GET)
	public String logout(Model model){
		SessionUtil.set(SessionConstant.SESSION_ACCOUNT_LOGIN_KEY, null);
		return "redirect:index";
	}
	
	/**
	 * @return
	 */
	@RequestMapping(value="/user-comment",method=RequestMethod.GET)
	public String userComment(Model model,@RequestParam(name="type",defaultValue="0")Integer type){
		Account account = (Account)SessionUtil.get(SessionConstant.SESSION_ACCOUNT_LOGIN_KEY);
		if(type != 0){
			model.addAttribute("cinemaCommentList", cinemaCommentService.findByAccount(account.getId()));
		}else{
			model.addAttribute("movieCommentList", movieCommentService.findByAccount(account.getId()));
		}
		model.addAttribute("type", type);
		return "home/account/user-comment";
	}
	
	/**
		//释放此图形的上下文以及它使用的所有系统资源
		g.dispose();
		
		return vcodeImage;
	}
	/**
	 * 获得旋转字体的验证码图片
	 * @param vcode
	 * @param drawline 是否画干扰线
	 * @return
	 */
	public BufferedImage generatorRotateVCodeImage(String vcode, boolean drawline){
		//创建验证码图片
		BufferedImage rotateVcodeImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		Graphics2D g2d = rotateVcodeImage.createGraphics();
		//填充背景色
		g2d.setColor(new Color(246, 240, 250));
		g2d.fillRect(0, 0, width, height);
		if(drawline){
import com.demo.entity.admin.OperaterLog;
import com.demo.entity.admin.OrderAuth;
import com.demo.entity.admin.Role;
import com.demo.entity.admin.User;
import com.demo.service.admin.OperaterLogService;
import com.demo.service.admin.OrderAuthService;
import com.demo.service.admin.UserService;
import com.demo.service.common.AccountService;
import com.demo.service.common.CinemaHallSessionService;
import com.demo.service.common.CinemaService;
import com.demo.service.common.MovieService;
import com.demo.service.common.OrderService;
import com.demo.service.common.PayLogService;

/**
 * 系统控制器
 * @author Administrator
 *
 */
@RequestMapping("/system")
@Controller
public class SystemController {

	
			return RuntimeConstant.RUN_ERROR_VIEW;
		}
		//订单状态都合适
		model.addAttribute("leftTime", orderTimeout - passTime);
		model.addAttribute("order", order);
		model.addAttribute("orderItemList", orderItemService.find(order.getId()));
		return "home/order/pay_order";
	}
	
	/**
	 * 订单支付
	 * @param sn
	 * @return
	 */
	@RequestMapping(value="order_pay",method=RequestMethod.POST)
	@ResponseBody
	/**
	 * 登录页面
	 * @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="/update-head-pic",method=RequestMethod.GET)
	public String updateHeadPic(Model model){
		return "home/account/update-head-pic";
	}
	
	/**
	 * 账户余额
	 * @param model
	 * @return
	 */
	@RequestMapping(value="/user-account",method=RequestMethod.GET)
	public String userAccount(Model model){
		Account account = (Account)SessionUtil.get(SessionConstant.SESSION_ACCOUNT_LOGIN_KEY);
		account = accountService.findById(account.getId());
	 * 删除订单
	 * @param order
	 * @return
	 */
	@org.springframework.transaction.annotation.Transactional
	public boolean delete(Order order) {
		List<OrderItem> orderItems = orderItemService.find(order.getId());
		orderItemService.deleteAll(orderItems);
		delete(order.getId());
		return true;
	}
	
	/**
		}
		if(tag == 2){
			//从session中获取短信验证码
			String smsCode = (String)SessionUtil.get("home_login_sms_code");
			if(smsCode == null){
				return Result.error(CodeMsg.SESSION_EXPIRED);
			}
			if(!smsCode.equalsIgnoreCase(checkCode)){
				return Result.error(CodeMsg.SMS_CODE_ERROR);
			}
			//短信验证码正确
			SessionUtil.set("home_login_sms_code", null);
			//检查手机号是否已经注册
			account = accountService.find(mobile);
			if(account == null){
				return Result.error(CodeMsg.HOME_ACCOUNT_REGISTER_MOBILE_NO_EXIST);
			}
		}
		//检查用户状态是否正常
		if(account.getStatus() != Account.account_status_able){
			return Result.error(CodeMsg.HOME_ACCOUNT_STATUS_ERROR);
		}
		SessionUtil.set(SessionConstant.SESSION_ACCOUNT_LOGIN_KEY, account);
		return Result.success(true);
	}

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值