基于javaweb的网吧计费管理系统(java+ssm+html+js+jsp+mysql)
基于javaweb的网吧计费管理系统(java+ssm+html+js+jsp+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的网吧计费管理系统(java+SSM+HTML+JS+jsp+mysql)
项目介绍
管理员角色包含以下功能: 登录与注册,会员管理,会员充值,烟饮料外卖,营业额信息统计,今日营业信息查看等功能。
环境需要
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.数据库:MySql 5.7版本;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+jsp
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
登录管理控制层:
@Controller
public class ForeLoginController extends BaseController {
@Resource(name = “userService”)
private UserService userService;
//登录页
@RequestMapping(value = “login”, method = RequestMethod.GET)
public String goToPage(HttpSession session, Map<String, Object> map) {
logger.info(“转到前台天猫-登录页”);
return “fore/loginPage”;
//登陆验证-ajax
@ResponseBody
@RequestMapping(value = “login/doLogin”, method = RequestMethod.POST, produces = “application/json;charset=utf-8”)
public String checkLogin(HttpSession session, @RequestParam String username, @RequestParam String password) {
logger.info(“用户验证登录”);
User user = userService.login(username, password);
JSONObject jsonObject = new JSONObject();
if (user == null) {
logger.info(“登录验证失败”);
jsonObject.put(“success”, false);
} else {
logger.info(“登录验证成功,用户ID传入会话”);
session.setAttribute(“userId”, user.getUser_id());
jsonObject.put(“success”, true);
return jsonObject.toJSONString();
//退出当前账号
@RequestMapping(value = “login/logout”, method = RequestMethod.GET)
public String logout(HttpSession session) {
Object o = session.getAttribute(“userId”);
if (o != null) {
session.removeAttribute(“userId”);
session.invalidate();
logger.info(“登录信息已清除,返回用户登录页”);
return “redirect:/login”;
用户管理控制层:
/**
- 后台管理-用户页
*/
@Controller
public class UserController extends BaseController{
@Resource(name=“userService”)
private UserService userService;
@Resource(name=“addressService”)
private AddressService addressService;
@Resource(name =“reviewService”)
private ReviewService reviewService;
@Resource(name = “productOrderItemService”)
private ProductOrderItemService productOrderItemService;
@Resource(name = “productService”)
private ProductService productService;
@Resource(name = “productImageService”)
private ProductImageService productImageService;
//转到后台管理-用户页-ajax
@RequestMapping(value = “admin/user”, method = RequestMethod.GET)
public String goUserManagePage(HttpSession session, Map<String, Object> map){
logger.info(“获取前十条用户信息”);
PageUtil pageUtil = new PageUtil(0, 10);
List userList = userService.getList(null, null, pageUtil);
map.put(“userList”, userList);
logger.info(“获取用户总数量”);
Integer userCount = userService.getTotal(null);
map.put(“userCount”, userCount);
logger.info(“获取分页信息”);
pageUtil.setTotal(userCount);
map.put(“pageUtil”, pageUtil);
logger.info(“转到后台管理-用户页-ajax方式”);
return “admin/userManagePage”;
//转到后台管理-用户详情页-ajax
@RequestMapping(value = “admin/user/{uid}”, method = RequestMethod.GET)
public String getUserById(HttpSession session, Map<String,Object> map, @PathVariable Integer uid/* 用户ID */){
logger.info(“获取user_id为{}的用户信息”,uid);
User user = userService.get(uid);
logger.info(“获取用户详情-所在地地址信息”);
Address address = addressService.get(user.getUser_address().getAddress_areaId());
Stack addressStack = new Stack<>();
//最后一级地址
addressStack.push(address.getAddress_name() + " ");
//如果不是第一级地址
while (!address.getAddress_areaId().equals(address.getAddress_regionId().getAddress_areaId())) {
address = addressService.get(address.getAddress_regionId().getAddress_areaId());
addressStack.push(address.getAddress_name() + " ");
StringBuilder builder = new StringBuilder();
while (!addressStack.empty()) {
builder.append(addressStack.pop());
logger.info(“所在地地址字符串:{}”, builder);
user.setUser_address(new Address().setAddress_name(builder.toString()));
logger.info(“获取用户详情-家乡地址信息”);
address = addressService.get(user.getUser_homeplace().getAddress_areaId());
//最后一级地址
addressStack.push(address.getAddress_name() + " ");
//如果不是第一级地址
while (!address.getAddress_areaId().equals(address.getAddress_regionId().getAddress_areaId())) {
address = addressService.get(address.getAddress_regionId().getAddress_areaId());
addressStack.push(address.getAddress_name() + " ");
builder = new StringBuilder();
while (!addressStack.empty()) {
builder.append(addressStack.pop());
logger.info(“家乡地址字符串:{}”, builder);
user.setUser_homeplace(new Address().setAddress_name(builder.toString()));
logger.info(“获取用户详情-购物车订单项信息”);
List productOrderItemList = productOrderItemService.getListByUserId(
user.getUser_id(), null
);
if (productOrderItemList != null) {
logger.info(“获取用户详情-购物车订单项对应的产品信息”);
for (ProductOrderItem productOrderItem : productOrderItemList) {
Integer productId = productOrderItem.getProductOrderItem_product().getProduct_id();
logger.warn(“获取产品ID为{}的产品信息”, productId);
Product product = productService.get(productId);
if (product != null) {
logger.warn(“获取产品ID为{}的第一张预览图片信息”, productId);
product.setSingleProductImageList(productImageService.getList(
productId, (byte) 0, new PageUtil(0, 1))
);
productOrderItem.setProductOrderItem_product(product);
user.setProductOrderItemList(productOrderItemList);
if (user.getUser_realname() != null) {
logger.info(“用户隐私加密”);
user.setUser_realname(user.getUser_realname().substring(0, 1) + “*”);
} else {
user.setUser_realname(“未命名”);
map.put(“user”,user);
logger.info(“转到后台管理-用户详情页-ajax方式”);
return “admin/include/userDetails”;
//按条件查询用户-ajax
@ResponseBody
@RequestMapping(value = “admin/user/{index}/{count}”, method = RequestMethod.GET, produces = “application/json;charset=UTF-8”)
public String getUserBySearch(@RequestParam(required = false) String user_name/* 用户名称 */,
@RequestParam(required = false) Byte[] user_gender_array/* 用户性别数组 */,
@RequestParam(required = false) String orderBy/* 排序字段 */,
@RequestParam(required = false,defaultValue = “true”) Boolean isDesc/* 是否倒序 */,
@PathVariable Integer index/* 页数 */,
@PathVariable Integer count/* 行数 */) throws UnsupportedEncodingException {
//移除不必要条件
Byte gender = null;
if (user_gender_array != null && user_gender_array.length == 1) {
gender = user_gender_array[0];
if (user_name != null) {
//如果为非空字符串则解决中文乱码:URLDecoder.decode(String,“UTF-8”);
user_name = “”.equals(user_name) ? null : URLDecoder.decode(user_name, “UTF-8”);
if (orderBy != null && “”.equals(orderBy)) {
orderBy = null;
//封装查询条件
User user = new User()
.setUser_name(user_name)
.setUser_gender(gender);
OrderUtil orderUtil = null;
if (orderBy != null) {
logger.info(“根据{}排序,是否倒序:{}”,orderBy,isDesc);
orderUtil = new OrderUtil(orderBy, isDesc);
JSONObject object = new JSONObject();
logger.info(“按条件获取第{}页的{}条用户”, index + 1, count);
PageUtil pageUtil = new PageUtil(index, count);
List userList = userService.getList(user, orderUtil, pageUtil);
object.put(“userList”, JSONArray.parseArray(JSON.toJSONString(userList)));
logger.info(“按条件获取用户总数量”);
Integer userCount = userService.getTotal(user);
object.put(“userCount”, userCount);
logger.info(“获取分页信息”);
pageUtil.setTotal(userCount);
object.put(“totalPage”, pageUtil.getTotalPage());
object.put(“pageUtil”, pageUtil);
return object.toJSONString();
基于javaweb的网吧计费管理系统(java+ssm+html+js+jsp+mysql)相关推荐
- 基于javaweb的律师事务所律师管理系统(java+ssm+html+js+jsp+mysql)
基于javaweb的律师事务所律师管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...
- 基于javaweb的物业缴费管理系统(java+ssm+html+js+jsp+mysql)
基于javaweb的物业缴费管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myec ...
- Java项目:网吧计费管理系统(java+SSM+HTML+JS+jsp+mysql)
源码获取:俺的博客首页 "资源" 里下载! 项目介绍 管理员角色包含以下功能: 登录与注册,会员管理,会员充值,烟饮料外卖,营业额信息统计,今日营业信息查看等功能. 环境需要 1. ...
- 基于javaweb的药品进货销售管理系统(java+ssm+html+js+jsp+mysql)
基于javaweb的药品进货销售管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...
- 基于javaweb的驾校预约管理系统(java+ssm+html+layui+bootstrap+mysql)
基于javaweb的驾校预约管理系统(java+ssm+html+layui+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/ ...
- 基于javaweb的房产中介管理系统(java+ssm+html+bootstrap+layui+mysql)
基于javaweb的房产中介管理系统(java+ssm+html+bootstrap+layui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/ ...
- 基于javaweb的物流快递管理系统(java+ssm+html+js+jsp+mysql)
基于javaweb的物流快递管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myec ...
- 基于javaweb的新闻管理系统(java+ssm+html+js+jsp+mysql)
基于javaweb的新闻管理系统(java+ssm+html+js+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecli ...
- 基于javaweb+mysql的律师事务所律师管理系统(java+SSM+HTML+JS+jsp+mysql)
项目介绍 管理员角色包含以下功能: 管理员登录,律师信息管理,预约审核管理,预约记录查看,拒绝预约查询,注册一个用户,个人信息修改等功能. 用户角色包含以下功能: 用户登录,律师信息查看,预约记录查询 ...
最新文章
- python获取按键状态_谁在用 python 弹奏一曲菊花台
- TreeSet,Hashset,Set集合转为整型数组
- unity collider rigidbody zz
- 拟态个人主页UI源码开源
- Debian/Ubuntu系统下,apt-get update 、apt-get upgrade 、apt-get dist-upgrade 命令之间的区别
- VMware: linux起步提示 memory for crashkernel(0*0 to 0*0)not within permissible
- 琉璃男主成毅手机壁纸,你要么?
- MyBatis入门让它跑起来
- 使用@Conditional条件注解
- 屏蔽CDSN烦人的广告
- docx文档怎么排列图片_打开.docx文件的6种方法分享:docx文件怎么打开?
- 使用工具YUMI制作多系统启动盘
- 学会它,能让你工作学习效率提升10倍!
- 打开 mhtml 文件 显示不全_解决 Nginx autoindex 显示文件名不全的问题
- Java中四种XML解析技术之不完全测试
- 硅基压力传感器—MEMS
- 全平台系统提权辅助工具 PEASS-ng
- 迅睿cms微信抖音小程序生成管理系统V1.0开源
- 重磅!Linux基金会白皮书:开源软件技术不受美国出口管制
- 一个简易的c语言病毒源码