基于java+ssm+jsp的山东红色旅游信息管理系统

项目介绍

有效的处理想要的相关信息和如何传播有效的信息,一直是人类不断探索的动力。人类文明火种的传承都是通过了多种媒介作为载体,也是随着社会生产力的发展不断的更新。随着互联网的到来,信息传播与管理都上升了一个新的台阶,并且方便应用的同时也要考虑信息传播的安全性,所以编程语言创建之初就考虑了这些问题。开发山东红色旅游信息管理系统程序,用户登录成功才可以访问相应的功能,不成功或者不登录直接拒绝访问某些功能,通过session会话的安全机制有效的区分是否为合法用户。山东红色旅游信息管理系统使用Java语言进行开发,后台用SSM框架实现,前端用JSP技术。程序有管理员和用户两个角色。管理员功能有个人中心,用户管理,景点类型管理,景点信息管理,门票购买管理,特产类型管理,产品商城管理,订单信息管理,天气预报管理,系统管理。用户可以注册登录,购买景点门票,购买特产,查看天气,查看公告,查看门票订单和特产订单等。用新技术开发的程序相比原有的线下办公模式不管是从成本上还是安全性方面,效率不仅大大提升还能解决线下办公的一些问题。数字化办公,信息化处理,让信息管理的效率提升也能降低成本,并且安全性也有保障,才是符合当今社会发展的应用。

4.1系统功能结构设计
在使用用例图绘制管理员的功能之后,需要对管理员的功能进行更加细致的设计,也是为下阶段的系统实现做好准备。设计管理员的功能使用结构图展示(见下图)。管理员功能有个人中心,用户管理,景点类型管理,景点信息管理,门票购买管理,特产类型管理,产品商城管理,订单信息管理,天气预报管理,系统管理。
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序/vue/爬虫/c#/asp.net

系统实现

5.1管理员功能介绍
5.1.1用户信息管理模块
管理员可以查询和删除以及批量删除用户的注册信息。
在这里插入图片描述

图5.1 用户信息管理模块页面

5.1.2 景点信息管理模块
管理员可以添加,修改,删除查询景点信息。
在这里插入图片描述

图5.2 景点信息管理模块页面

5.1.3 产品商城管理模块
管理员可以添加,修改,删除,查询商城产品信息。
在这里插入图片描述

图5.3 产品商城管理模块页面

5.1.4订单信息管理模块
管理员可以查看和搜索用户提交的产品订单信息。
在这里插入图片描述

图5.4 订单信息管理模块页面

5.2 用户功能介绍
5.2.1景点信息模块
用户可以在景点信息里购票操作。
在这里插入图片描述

图5.5 景点信息查询模块页面

5.2.2产品商城模块
用户可以在产品商城里面购买产品。
在这里插入图片描述

图5.6 产品商城模块页面

5.2.3门票购买模块
用户可以在门票购买里面查看自己的订单,并且可以查询和支付。
在这里插入图片描述

图5.7 门票购买模块页面

5.2.4订单信息模块
用户可以在订单信息里面查看购买的产品信息,并且可以进行支付操作。
在这里插入图片描述

图5.8 订单信息模块页面

核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.JingdianxinxiEntity;
import com.entity.view.JingdianxinxiView;

import com.service.JingdianxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;
import com.service.StoreupService;
import com.entity.StoreupEntity;

/**
 * 景点信息
 * 后端接口
 * @author 
 * @email 
 * @date 
 */
@RestController
@RequestMapping("/jingdianxinxi")
public class JingdianxinxiController {
    @Autowired
    private JingdianxinxiService jingdianxinxiService;


    @Autowired
    private StoreupService storeupService;

    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,JingdianxinxiEntity jingdianxinxi, 
		HttpServletRequest request){

        EntityWrapper<JingdianxinxiEntity> ew = new EntityWrapper<JingdianxinxiEntity>();
    	PageUtils page = jingdianxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jingdianxinxi), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,JingdianxinxiEntity jingdianxinxi, 
		HttpServletRequest request){
        EntityWrapper<JingdianxinxiEntity> ew = new EntityWrapper<JingdianxinxiEntity>();
    	PageUtils page = jingdianxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jingdianxinxi), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( JingdianxinxiEntity jingdianxinxi){
       	EntityWrapper<JingdianxinxiEntity> ew = new EntityWrapper<JingdianxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( jingdianxinxi, "jingdianxinxi")); 
        return R.ok().put("data", jingdianxinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(JingdianxinxiEntity jingdianxinxi){
        EntityWrapper< JingdianxinxiEntity> ew = new EntityWrapper< JingdianxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( jingdianxinxi, "jingdianxinxi")); 
		JingdianxinxiView jingdianxinxiView =  jingdianxinxiService.selectView(ew);
		return R.ok("查询景点信息成功").put("data", jingdianxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        JingdianxinxiEntity jingdianxinxi = jingdianxinxiService.selectById(id);
        return R.ok().put("data", jingdianxinxi);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        JingdianxinxiEntity jingdianxinxi = jingdianxinxiService.selectById(id);
        return R.ok().put("data", jingdianxinxi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody JingdianxinxiEntity jingdianxinxi, HttpServletRequest request){
    	jingdianxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(jingdianxinxi);

        jingdianxinxiService.insert(jingdianxinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody JingdianxinxiEntity jingdianxinxi, HttpServletRequest request){
    	jingdianxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(jingdianxinxi);

        jingdianxinxiService.insert(jingdianxinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody JingdianxinxiEntity jingdianxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(jingdianxinxi);
        jingdianxinxiService.updateById(jingdianxinxi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        jingdianxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<JingdianxinxiEntity> wrapper = new EntityWrapper<JingdianxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = jingdianxinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	





}

论文参考

在这里插入图片描述

目 录
目 录 IV
1 绪论 1
1.1研究背景 1
1.2目的和意义 1
1.3论文结构安排 2
2 开发环境 3
2.1 Mysql数据库 3
2.2 SSM框架 3
2.3 IDEA 开发工具 3
2.4 JSP技术 4
3 系统分析 5
3.1系统可行性分析 5
3.1.1 时间可行性分析 5
3.1.2 技术可行性分析 5
3.1.3 经济可行性分析 5
3.1.4 操作可行性分析 6
3.2系统性能分析 6
3.3系统流程分析 7
4 系统设计 9
4.1系统功能结构设计 9
4.2数据库设计 9
4.2.1数据库E-R图 10
4.2.2 数据库表结构 11
5 系统实现 16
5.1管理员功能介绍 16
5.1.1用户信息管理模块 16
5.1.2 景点信息管理模块 16
5.1.3 产品商城管理模块 17
5.1.4订单信息管理模块 17
5.2 用户功能介绍 18
5.2.1景点信息模块 18
5.2.2产品商城模块 19
5.2.3门票购买模块 19
5.2.4订单信息模块 20
6系统测试 21
6.1 本系统测试 21
6.2 测试结果分析 21
7 结论 22
7.1 设计工作总结 22
7.2 未来工作展望 22
参考文献 24
致 谢 25

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

q_2781179521

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值