作者主页:源码空间站2022
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
本项目分为前后台,前台为普通用户角色,后台为管理员角色;
管理员角色包含以下功能:
一级分类管理,二级分类管理,公告管理,添加公告,游戏管理,用户信息管理,留言管理,管理员登录,订单管理等功能。
用户角色包含以下功能:
修改密码,发表留言,查看我的订单,查看游戏分类,查看游戏详情,查看购物车,用户登录,确认订单等功能。
由于本程序规模不大,可供课程设计,毕业设计学习演示之用
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7、8.0等版本均可;
技术栈
1. 后端:Spring springmvc mybatis
2. 前端:JSP+css+javascript+jQuery
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2.使用IDEA/Eclipse/MyEclipse导入项目,配置tomcat;
3. 将项目中config/jdbc.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/ 登录
用户账号/密码: user/123456
管理员账号/密码:admin/admin
运行截图
前台界面-用户角色
后台界面-管理员角色
相关代码
登录管理控制器
@Controller
public class LoginAction {
@Autowired
private LoginService loginService;
@Autowired
private PersonService personService;
//登录初始化页面
@RequestMapping("/loginInitAction")
public String loginInitAction(){
return "login";
}
//注册
@RequestMapping("/register")
public String register(String passwd, String username, String tel, String login_permession, Map<String, Object> map, HttpSession session){
if(personService.textTelExist(tel)){
map.put("registerTelError", "对不起,您输入的手机号码已经被注册过了。");
return "login";
}
String newId = loginService.getNewId();
loginService.addLogin(passwd, newId, login_permession);
personService.addPerson(username, newId, tel);
Login loginInfo = loginService.getRegisterLoginEntity();
if(loginInfo.getLogin_permission().equals("shop")){
session.setAttribute("shoploginSession", loginInfo);
session.setAttribute("shoploginSession_name", username);
return "/shop/index";
}else{
session.setAttribute("loginSession", loginInfo);
session.setAttribute("loginSession_name", username);
}
return "redirect:/indexInitAction";
}
//登录处理
@RequestMapping("/loginAction")
public String loginAction(Login login, Map<String, Object> map, HttpSession session){
Login queryLogin = loginService.queryLoginById(login.getLogin_id());
if(queryLogin == null){ //账号不存在
map.put("loginError", "账号或密码输入错误");
return "login";
}else if(! queryLogin.getLogin_password().equals(login.getLogin_password()) ){ //密码错误
System.out.println("---------error-------");
map.put("permission", queryLogin.getLogin_permission());
map.put("loginError1", "账号或密码输入错误");
return "login";
}else if(queryLogin.getLogin_permission().equals("admin")){ //管理员
System.out.println("---------admin-------");
session.setAttribute("adminloginSession", queryLogin);
return "admin/index";
}else if(queryLogin.getLogin_permission().equals("shop")){ //商家
System.out.println("---------shop-------");
session.setAttribute("shoploginSession", queryLogin);
session.setAttribute("shoploginSession_name", personService.queryPersonById(queryLogin.getLogin_id()).getPerson_name());
return "shop/index";
}else{ //用户
System.out.println("---------user--------");
session.setAttribute("loginSession", queryLogin);
session.setAttribute("loginSession_name", personService.queryPersonById(queryLogin.getLogin_id()).getPerson_name());
return "redirect:/indexInitAction";
}
}
//跳转到(用户或商家)主页。
@RequestMapping("/indexInitAction")
public String indexInit(HttpSession session, Map<String, Object> map){
Login login = (Login)session.getAttribute("loginSession");
if(login != null && login.getLogin_permission().equals("user") ){
Person person = personService.queryPersonById(login.getLogin_id());
session.setAttribute("loginSession_name", person.getPerson_name());
System.out.println("==========index=========" + login.getLogin_permission() + "===========");
}
return "/user/index";
}
//利用ajax确定修改后的电话号码没有被注册
@RequestMapping("/ajaxTextIdAndTel")
public void ajaxTextIdAndTel(HttpServletRequest request, HttpServletResponse response, String person_tel, String login_id) throws UnsupportedEncodingException{
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
boolean boolReturn = true;
Login login = loginService.queryLoginById(login_id);
if(login == null){
boolReturn = false;
}else{
Person person = personService.queryPersonById(login_id);
if( !person.getPerson_tel().equals(person_tel)){
boolReturn = false;
}
}
String json = new Gson().toJson(boolReturn);
try {
response.getWriter().print(json);
} catch (IOException e) {
e.printStackTrace();
}
}
//保存用户找回的的密码
@RequestMapping("/findSaveNewPwd")
public String findSaveNewPwd(Map<String, Object> map,Login login, HttpSession session){
loginService.saveLogin(login);
Login loginInfo = loginService.queryLoginById(login.getLogin_id());
if(loginInfo.getLogin_permission().equals("shop")){
session.setAttribute("shoploginSession", loginInfo);
}else{
session.setAttribute("loginSession", loginInfo);
}
return "redirect:/indexInitAction";
}
}
购物车管理控制器
@Controller
@RequestMapping("/shop")
public class ShopCarManageAction {
@Autowired
private CarService carService;
@Autowired
private BrandService brandService;
@Autowired
private PageService pageService;
//导航栏的搜索框
@RequestMapping("/navQueryIdOrName")
public String navQueryIdOrName(Map<String, Object> map, String car_name, HttpSession session){
Login login = (Login) session.getAttribute("shoploginSession");
if(login == null || !login.getLogin_permission().equals("shop")){
return "redirect:/loginInitAction";
}
map.put("carOnlineList", carService.shopQueryOnlineCarByIdOrName(car_name, login.getLogin_id()));
return "shop/carManage/car_online_list";
}
//商家查询全部在售车辆
@RequestMapping("/queryAllOnlineCar")
public String queryAllOnlineCar(Map<String, Object> map, HttpSession session, String currentpage){
Login login = (Login) session.getAttribute("shoploginSession");
if(login == null || !login.getLogin_permission().equals("shop")){
return "redirect:/loginInitAction";
}
List<Car> onlineCarList = carService.shopQueryAllOnlineCar(login.getLogin_id());
Page page = pageService.pageToCar(onlineCarList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > onlineCarList.size() ? onlineCarList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
onlineCarList = onlineCarList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "all");
map.put("carOnlineList", onlineCarList);
return "shop/carManage/car_online_list";
}
//根据id查询在售车辆
@RequestMapping("/queryOnlineCarById")
public String queryOnlineCarById(Map<String, Object> map, String car_id, String shop_id, String currentpage){
List<Car> onlineCarList = null;
if(car_id == null || car_id.equals("")){
onlineCarList = carService.shopQueryAllOnlineCar(shop_id);
}else{
onlineCarList = carService.shopQueryOnlineCarByIdOrName(car_id, shop_id);
}
Page page = pageService.pageToCar(onlineCarList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > onlineCarList.size() ? onlineCarList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
onlineCarList = onlineCarList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "idOrName");
map.put("carOnlineList", onlineCarList);
map.put("queryString", car_id);
return "shop/carManage/car_online_list";
}
//添加车辆初始化界面
@RequestMapping("/addCarInit")
public String addCarInit(Map<String, Object> map){
map.put("BrandList", brandService.queryAllBrand());
return "shop/carManage/car_add";
}
//添加车辆
@RequestMapping(value="/addCar", method=RequestMethod.POST)
public String addCar(@RequestParam("imgSrc")MultipartFile mf, Car car) throws IOException{
if(mf.getSize() != 0){ //上传的图片不为空
InputStream is = mf.getInputStream();
File target = new File(Constants.IMAGEPATH + mf.getOriginalFilename());
OutputStream os = null;
try{
os = new FileOutputStream(target, true);
int templeng = 0;
byte[] tempbyte = new byte[4096];
while((templeng = is.read(tempbyte)) != -1){
os.write(tempbyte, 0, templeng);
os.flush();
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
is.close();
os.close();
}catch (IOException e) {
e.printStackTrace();
}
}
car.setCar_img(mf.getOriginalFilename());
}else{ //用户上传图片为空
car.setCar_img("demo.jpg");
}
carService.addCar(car);
return "redirect:/shop/queryAllOnlineCar";
}
//查看单个车辆详情
@RequestMapping("/carDetail")
public String carDetails(Map<String, Object> map, String car_id){
List<Car> list = carService.queryOnlineCarById(car_id);
map.put("carDetail", list.get(0));
return "shop/carManage/car_details";
}
//在线车辆信息更新初始化页面
@RequestMapping("/carUpdateInit")
public String carUpdateInit(Map<String, Object> map, String car_id){
map.put("carUpdate", carService.queryOnlineCarById(car_id).get(0));
map.put("brandList",brandService.queryAllBrand());
return "shop/carManage/car_update";
}
//保存修改后的在售汽车
@RequestMapping(value="/saveCar", method=RequestMethod.POST)
public String saveOnlineCar(@RequestParam("imgSrc")MultipartFile mf, Map<String, Object> map, Car car) throws IOException{
if(mf.getSize() != 0){
InputStream is = mf.getInputStream();
File target = new File(Constants.IMAGEPATH + mf.getOriginalFilename());
OutputStream os = null;
try{
os = new FileOutputStream(target, true);
int templeng = 0;
byte[] tempbyte = new byte[4096];
while((templeng = is.read(tempbyte)) != -1){
os.write(tempbyte, 0, templeng);
os.flush();
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
is.close();
os.close();
}catch (IOException e) {
e.printStackTrace();
}
}
File deleteFile = new File(Constants.IMAGEPATH + car.getCar_img());
if (deleteFile.exists() && !car.getCar_img().equals("demo.jpg")){
deleteFile.delete();
}
car.setCar_img(mf.getOriginalFilename());
}
carService.saveCar(car);
return "redirect:/shop/queryAllOnlineCar";
}
//根据车辆将汽车下架
@RequestMapping("/carDownShelf")
public String carDownShelf(String car_id){
String operaDeleteId = carService.queryOnlineCarByIdOrName(car_id).get(0).getCar_shop_id();
carService.carDownShelf(car_id, operaDeleteId);
return "redirect:/shop/queryAllOnlineCar";
}
//下架车辆列表
@RequestMapping("/queryAllDownShelfCar")
public String queryAllDownShelfCar(Map<String, Object> map, HttpSession session, String currentpage){
Login login = (Login) session.getAttribute("shoploginSession");
if(login == null || !login.getLogin_permission().equals("shop")){
return "redirect:/loginInitAction";
}
List<Car> downCarList = carService.shopQueryAllDownShelfCar(login.getLogin_id());
Page page = pageService.pageToCar(downCarList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > downCarList.size() ? downCarList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
downCarList = downCarList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("queryKind", "all");
map.put("carDownShelfList", downCarList);
map.put("page", page);
return "shop/carManage/car_downShelf_list";
}
//下架车辆信息修改
@RequestMapping("/carUpdateDownShelf")
public String carUpdateDownShelf( Map<String, Object> map, String car_id){
map.put("carUpdateDownShelf", carService.queryDownShelfCarById(car_id).get(0));
map.put("brandList",brandService.queryAllBrand());
return "shop/carManage/car_update_downShelf";
}
//保存修改后的下架汽车
@RequestMapping(value="/saveDownShelfCar", method=RequestMethod.POST)
public String saveDownShelfCar(@RequestParam("imgSrc")MultipartFile mf, Map<String, Object> map, Car car) throws IOException{
if(mf.getSize() != 0){
InputStream is = mf.getInputStream();
File target = new File(Constants.IMAGEPATH + mf.getOriginalFilename());
OutputStream os = null;
try{
os = new FileOutputStream(target, true);
int templeng = 0;
byte[] tempbyte = new byte[4096];
while((templeng = is.read(tempbyte)) != -1){
os.write(tempbyte, 0, templeng);
os.flush();
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
is.close();
os.close();
}catch (IOException e) {
e.printStackTrace();
}
}
File deleteFile = new File(Constants.IMAGEPATH + car.getCar_img());
if (deleteFile.exists() && !car.getCar_img().equals("demo.jpg")){
deleteFile.delete();
}
car.setCar_img(mf.getOriginalFilename());
}
carService.saveCar(car);
return "redirect:/shop/queryAllDownShelfCar";
}
//根据编号查询下架车辆信息
@RequestMapping("/queryDownShelfCarById")
public String queryDownShelfCarById(Map<String, Object> map, String car_id, String shop_id, String currentpage){
List<Car> list = null;
if(car_id == null || car_id.equals("")){
list = carService.shopQueryAllDownShelfCar(shop_id);
}else{
list = carService.shopQueryDownShelfCarByIdOrName(car_id, shop_id);
}
Page page = pageService.pageToCar(list.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > list.size() ? list.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
list = list.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("queryKind", "idOrName");
map.put("page", page);
map.put("carDownShelfList", list);
map.put("queryString", car_id);
return "shop/carManage/car_downShelf_list";
}
//根据id将车辆上架
@RequestMapping("/carUpShelfById")
public String carUpShelfById(String car_id, Map<String, Object> map){
carService.carUpShelfById(car_id);
return "redirect:/shop/queryAllDownShelfCar";
}
//根据id彻底删除车辆信息
@RequestMapping("/carDelete")
public String carDelete(String car_id, Map<String, Object> map){
carService.carDelete(car_id);
return "redirect:/shop/queryAllDownShelfCar";
}
}
订单管理控制器
@Controller
@RequestMapping("/shopOrderManage")
public class ShopOrderManageAction {
@Autowired
private OrderService orderService;
@Autowired
private PageService pageService;
//未发货订单列表
@RequestMapping("/orderNotSendList")
public String orderNotSendList(Map<String, Object> map, HttpSession session,String currentpage){
Login login = (Login) session.getAttribute("shoploginSession");
if(login == null || !login.getLogin_permission().equals("shop")){
return "redirect:/loginInitAction";
}
List<Order> orderList = orderService.shopQueryAllPayOrder(login.getLogin_id());
Page page = pageService.pageToOrder(orderList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > orderList.size() ? orderList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
orderList = orderList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "all");
map.put("notSendOrder", orderList);
return "shop/orderManage/order_notSend";
}
//将订单发货,然后返回未发货订单列表
@RequestMapping("/sendOrderById")
public String sendOrderById(String order_id){
orderService.sendOrderById(order_id);
return "redirect:/shopOrderManage/orderNotSendList";
}
//订单信息详情
@RequestMapping("/orderDetails")
public String orderDetails(Map<String, Object> map, String order_id){
Order order = orderService.queryOrderById(order_id).get(0);
map.put("detailsOrder", order);
return "shop/orderManage/order_details";
}
//根据id查询未发货订单
@RequestMapping("/queryNotSendById")
public String queryNotSendById(Map<String, Object> map, String order_id, String order_shop_id, String currentpage){
List<Order> orderList = orderService.shopQueryPayOrderById(order_id, order_shop_id);
Page page = pageService.pageToOrder(orderList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > orderList.size() ? orderList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
orderList = orderList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "idOrName");
map.put("notSendOrder", orderList);
map.put("queryString", order_id);
return "shop/orderManage/order_notSend";
}
//已经发货未收货订单
@RequestMapping("/orderNotReceiveList")
public String orderNotReceiveList(Map<String, Object> map, String order_shop_id, String currentpage){
List<Order> orderList = orderService.shopQueryAllSendOrder(order_shop_id);
Page page = pageService.pageToOrder(orderList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > orderList.size() ? orderList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
orderList = orderList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "all");
map.put("notReceiveOrder", orderList);
return "shop/orderManage/order_notReceive";
}
//根据id查询未收货订单
@RequestMapping("/queryNotReceiveById")
public String queryNotReceiveById(Map<String, Object> map, String order_id, String order_shop_id, String currentpage){
List<Order> orderList = orderService.shopQuerySendOrderById(order_id, order_shop_id);
Page page = pageService.pageToOrder(orderList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > orderList.size() ? orderList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
orderList = orderList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "idOrName");
map.put("notReceiveOrder", orderList);
map.put("queryString", order_id);
return "shop/orderManage/order_notReceive";
}
//历史订单列表
@RequestMapping("/orderHistoryList")
public String orderHistoryList(Map<String, Object> map, String order_shop_id, String currentpage){
List<Order> orderList = orderService.shopQueryAllReceiveOrder(order_shop_id);
Page page = pageService.pageToOrder(orderList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > orderList.size() ? orderList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
orderList = orderList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "all");
map.put("HistoryOrder", orderList);
return "shop/orderManage/order_history";
}
//根据id查询历史订单
@RequestMapping("/queryHistoryById")
public String queryHistoryById(Map<String, Object> map, String order_id, String order_shop_id, String currentpage){
List<Order> orderList = orderService.shopQueryReceiveOrderById(order_id, order_shop_id);
Page page = pageService.pageToOrder(orderList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > orderList.size() ? orderList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
orderList = orderList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "idOrName");
map.put("HistoryOrder", orderList);
map.put("queryString", order_id);
return "shop/orderManage/order_history";
}
//用户已经删除订单(回收站订单)
@RequestMapping("/orderDeleteList")
public String orderDeleteList(Map<String, Object> map, String order_shop_id, String currentpage, HttpSession session){
List<Order> orderList = orderService.shopQueryAllDeleteOrder(order_shop_id);
Page page = pageService.pageToOrder(orderList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > orderList.size() ? orderList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
orderList = orderList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "all");
map.put("DeleteOrderList", orderList);
return "shop/orderManage/order_delete";
}
//根据id查询回收站的订单
@RequestMapping("/queryDeleteById")
public String queryDeleteById(Map<String, Object> map, String order_id, String order_shop_id, String currentpage){
List<Order> orderList = orderService.shopQueryDeleteOrderById(order_id, order_shop_id);
Page page = pageService.pageToOrder(orderList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > orderList.size() ? orderList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
orderList = orderList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "idOrName");
map.put("DeleteOrderList", orderList);
map.put("queryString", order_id);
return "shop/orderManage/order_delete";
}
//根据id彻底删除回收站的订单
@RequestMapping("/orderDeleteById")
public String orderDeleteById(String order_id, String order_shop_id, Map<String, Object> map, String currentpage){
orderService.orderDeleteById(order_id);
List<Order> orderList = orderService.shopQueryAllDeleteOrder(order_shop_id);
Page page = pageService.pageToOrder(orderList.size(), currentpage);
int subEnd = (page.getCurrentpage()-1)*page.getSize() + page.getSize() > orderList.size() ? orderList.size() : (page.getCurrentpage()-1)*page.getSize() + page.getSize();
orderList = orderList.subList( (page.getCurrentpage()-1)*page.getSize() , subEnd);
map.put("page", page);
map.put("queryKind", "all");
map.put("DeleteOrderList", orderList);
return "shop/orderManage/order_delete";
}
}
如果也想学习本系统,下面领取。关注并回复:254ssm