Java项目:SpringBoot美容院后台管理系统

108 篇文章 2 订阅

作者主页:源码空间站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.数据库:MySql 5.7版本;

技术栈

1. 后端:SpringBoot

2. 前端:HTML+CSS+JavaScript+jsp

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

4. 运行项目,输入localhost:8080/ 登录

运行截图

代码相关

管理员控制器

/**
 * 管理员权限控制类
 */
@Controller("Admin")
@RequestMapping("/admin")
public class Adminontroller {

	@Autowired
	private PageService pageService;
	@Autowired
	private RoleService roleService;
	@Autowired
	private PageRoleService pageRoleService;
	@Autowired
	private UserRoleService userRoleService;
	@Autowired
	private UserService userService;

	private final Logger logger = LoggerFactory.getLogger(Adminontroller.class);

	/**
	 * Method name: page <BR>
	 * Description: 跳转到页面设置页面 <BR>
	 * 
	 * @param model
	 * @return String<BR>
	 */
	@RequestMapping("/page")
	public String page(Model model) {
		List<Page> pageList = pageService.getAllPage();
		model.addAttribute("pageList", pageList);
		return "sa/page";
	}

	/**
	 * Method name: role <BR>
	 * Description: 跳转到角色设置页面 <BR>
	 * 
	 * @param model
	 * @return String<BR>
	 */
	@RequestMapping("/role")
	public String role(Model model) {
		return "sa/role";
	}

	/**
	 * Method name: getAllRole <BR>
	 * Description: 获取所有权限 <BR>
	 * 
	 * @return List<Role><BR>
	 */
	@RequestMapping("/getAllRole")
	@ResponseBody
	public List<Role> getAllRole() {
		return roleService.getAllRole();
	}

	/**
	 * Method name: getAllPage <BR>
	 * Description: 获取所有页面 <BR>
	 * 
	 * @return List<Page><BR>
	 */
	@RequestMapping("/getAllPage")
	@ResponseBody
	public List<Page> getAllPage() {
		return pageService.getAllPage();
	}

	/**
	 * Method name: getPageByRole <BR>
	 * Description: 获取某个角色的权限页面 <BR>
	 */
	@RequestMapping("/getPageByRole")
	@ResponseBody
	public Object getPageByRole(Integer roleId) {
		return pageService.getAllPageByRoleId(roleId);
	}

	/**
	 * Method name: updatePageById <BR>
	 * Description: 根据页面id更新页面 <BR>
	 * 
	 * @param page
	 * @return ResultMap<BR>
	 */
	@RequestMapping("/updatePageById")
	@ResponseBody
	public ResultMap updatePageById(Page page) {
		return pageService.updatePageById(page);
	}

	/**
	 * Method name: addPage <BR>
	 * Description: 添加页面 <BR>
	 * 
	 * @param page
	 * @return Page<BR>
	 */
	@RequestMapping("/addPage")
	@ResponseBody
	public Page addPage(Page page) {
		return pageService.addPage(page);
	}

	/**
	 * Method name: delPageById <BR>
	 * Description: 根据页面id删除页面 <BR>
	 * 
	 * @param id
	 * @return ResultMap<BR>
	 */
	@RequestMapping("/delPageById")
	@ResponseBody
	public ResultMap delPageById(Integer id) {
		if (null == id) {
			return new ResultMap().fail().message("参数错误");
		}
		return pageService.delPageById(id);
	}

	/**
	 * Method name: addRole <BR>
	 * Description: 增加角色 <BR>
	 * 
	 * @param name
	 * @return String<BR>
	 */
	@RequestMapping("/addRole")
	@ResponseBody
	public String addRole(String name) {
		return roleService.addRole(name);
	}

	/**
	 * Method name: delManageRole <BR>
	 * Description: 根据角色id删除角色 <BR>
	 * 
	 * @param id
	 * @return String<BR>
	 */
	@RequestMapping("/delRole")
	@ResponseBody
	public String delRole(int id) {
		// 删除角色
		boolean flag1 = roleService.delRoleById(id);
		// 删除角色_权限表
		boolean flag2 = pageRoleService.delPageRoleByRoleId(id);
		// 删除某个角色的所有用户
		boolean flag3 = userRoleService.delUserRoleByRoleId(id);

		if (flag1 && flag2 && flag3) {
			return "SUCCESS";
		}
		return "ERROR";
	}

	/**
	 * Method name: updateRole <BR>
	 * Description: 根据权限id修改权限信息 <BR>
	 * 
	 * @param id
	 * @param name
	 * @return String<BR>
	 */
	@RequestMapping("/updateRole")
	@ResponseBody
	public String updateRole(Integer id, String name) {
		int n = roleService.updateRoleById(id, name);
		if (n != 0) {
			return "SUCCESS";
		}
		return "ERROR";
	}

	/**
	 * Method name: addPageRoleByRoleId <BR>
	 * Description: 增加某个角色的权限页面 <BR>
	 * 
	 * @param roleId
	 * @param pageIds
	 * @return String<BR>
	 */
	@RequestMapping("/addPageRoleByRoleId")
	@ResponseBody
	public String addPageRoleByRoleId(Integer roleId, Integer[] pageIds) {

		if (null == roleId) {
			return "ERROR";
		}

		// 先删除老的权限
		boolean flag1 = pageRoleService.delPageRoleByRoleId(roleId);
		boolean flag2 = pageRoleService.addPageRoles(roleId, pageIds);

		if (flag1 && flag2) {
			return "SUCCESS";
		}
		return "ERROR";
	}

	/**
	 * Method name: getAllUserByMap <BR>
	 * Description: 根据角色查询下面所有的人员/非角色下所有人员 <BR>
	 */
	@RequestMapping("/getAllUserByRoleId")
	@ResponseBody
	public Object getAllUserByRoleId(Integer roleId, String roleNot, Integer page, Integer limit) {
		if (null == roleNot) {
			return userService.getAllUserByRoleId(roleId, page, limit);
		}
		return userService.getAllUserByNotRoleId(roleId, page, limit);
	}

	/**
	 * Method name: delUserRoleByUserIdAndRoleId <BR>
	 * Description: 根据用户id权限id删除用户权限表 <BR>
	 * 
	 * @param userId
	 * @param roleId
	 * @return ResultMap<BR>
	 */
	@RequestMapping("/delUserRoleByUserIdAndRoleId")
	@ResponseBody
	public ResultMap delUserRoleByUserIdAndRoleId(String userId, Integer roleId) {
		return userRoleService.delUserRoleByUserIdAndRoleId(userId, roleId);
	}

	/**
	 * Method name: selectUserRole <BR>
	 * Description: 跳转到选择用户角色页面 <BR>
	 * 
	 * @return String<BR>
	 */
	@RequestMapping("/selectUserRole")
	public String selectUserRole() {
		return "sa/selectUserRole";
	}

	/**
	 * Method name: addUserRole <BR>
	 * Description: 增加用户的角色 <BR>
	 * 
	 * @param roleId
	 * @param userIds
	 * @return String<BR>
	 */
	@RequestMapping("/addUserRole")
	@ResponseBody
	public String addUserRole(Integer roleId, String[] userIds) {
		return userRoleService.addUserRole(roleId, userIds);
	}

	/**
	 * Method name: userAddPage <BR>
	 * Description: 用户添加页面 <BR>
	 * 
	 * @return String<BR>
	 */
	@RequestMapping(value = "/userAddPage")
	public String userAddPage() {
		return "sa/userAdd";
	}

	/**
	 * Method name: userPage <BR>
	 * Description: 用户管理页面 <BR>
	 * 
	 * @return String<BR>
	 */
	@RequestMapping(value = "/userPage")
	public String userPage() {
		return "sa/userList";
	}

	/**
	 * Method name: getAllUserByLimit <BR>
	 * Description: 根据条件获取所有用户 <BR>
	 * 
	 * @param userParameter
	 * @return Object<BR>
	 */
	@RequestMapping("/getAllUserByLimit")
	@ResponseBody
	public Object getAllUserByLimit(UserParameter userParameter) {
		return userService.getAllUserByLimit(userParameter);
	}

	/**
	 * Method name: getAllDelUserByLimit <BR>
	 * Description: 获取所有删除用户 <BR>
	 * 
	 * @param userParameter
	 * @return Object<BR>
	 */
	@RequestMapping("/getAllDelUserByLimit")
	@ResponseBody
	public Object getAllDelUserByLimit(UserParameter userParameter) {
		return userService.getAllDelUserByLimit(userParameter);
	}

	/**
	 * Method name: delUser <BR>
	 * Description: 批量删除用户 <BR>
	 * 
	 * @param ids
	 * @return String<BR>
	 */
	@RequestMapping(value = "delUser")
	@ResponseBody
	@Transactional
	public String delUser(Long[] ids) {
		Subject subject = SecurityUtils.getSubject();
		User user = (User) subject.getPrincipal();
		try {
			for (Long id : ids) {
				if (id.equals(user.getId())) {
					return "DontOP";
				}
				userService.delUserById(id);
			}
			return "SUCCESS";
		} catch (Exception e) {
			logger.error("根据用户id更新用户异常", e);
			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
			return "ERROR";
		}
	}

	/**
	 * Method name: addUserPage <BR>
	 * Description: 增加用户界面 <BR>
	 * 
	 * @return String<BR>
	 */
	@RequestMapping(value = "/addUserPage")
	public String addUserPage(Long userId, Model model) {
		model.addAttribute("manageUser", userId);
		if (null != userId) {
			User user = userService.selectByPrimaryKey(userId);
			model.addAttribute("manageUser", user);
		}
		return "sa/userAdd";
	}

	/**
	 * Method name: checkUserId <BR>
	 * Description: 检测用户账号是否存在 <BR>
	 * 
	 * @param userId
	 * @return User<BR>
	 */
	@ResponseBody
	@RequestMapping("/checkUserId")
	public User checkUserId(Long userId) {
		return userService.selectByPrimaryKey(userId);
	}

	/**
	 * Method name: addUser <BR>
	 * Description: 用户添加 <BR>
	 * 
	 * @param user
	 * @return String<BR>
	 */
	@ResponseBody
	@RequestMapping("/addUser")
	public String addUser(User user) {
		try {
			user.setPassword(MD5.md5(user.getPassword()));
			user.setCreateTime(new Date());
			userService.addUser(user);

			User u = userService.getUserByPhoneAndName(user.getPhone(), user.getName());

			String[] ids = new String[1];
			ids[0] = u.getId()+"";
			// 医生角色
			userRoleService.addUserRole(3, ids);
			return "SUCCESS";
		} catch (Exception e) {
			return "ERR";
		}
	}

	/**
	 * Method name: updateUser <BR>
	 * Description: 更新用户 <BR>
	 * 
	 * @param user
	 * @return String<BR>
	 */
	@ResponseBody
	@RequestMapping("/updateUser")
	public String updateUser(User user, Long oldId) {
		return userService.updateUser(oldId, user);
	}

	/**
	 * Method name: delUserPage <BR>
	 * Description: 已删除用户列表 <BR>
	 * 
	 * @return String<BR>
	 */
	@RequestMapping("/delUserPage")
	public String delUserPage() {
		return "sa/userDelPage";
	}
}

如果也想学习本系统,下面领取。回复:064springboot

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
国标美容美发管理系统是一款用于美容美发行业的管理系统。能够实现会员刷卡自动短信通知高级短信汇总功能。店里搞活动 一条短信通知所有客户的多项功能。 国标美容美发管理系统功能简介 1、会员刷卡自动短信通知高级短信汇总功能 2、店里搞活动 一条短信通知所有客户 3、一键查看整店营业状态,一键分析整店商务数据 4、全国最先进可满足任何美发店的多种提成设置规则 5、智能店内收支统计 如:员工借支 罚款 店内进货 等等 自动结算 6、一键算出所有员工工资 一键查看所有员工能力 7、一键打印工资表 员工考勤表 营业报表 8、会员消费刷卡 员工上班刷卡 一键查看所有迟到员工 9、锁定顾客 会员模式 实现会员充值 刷卡 会员资料记录 自动折扣 无限种会员模式自由创建 会员消费记录一键查询 会员密码管理等多种会员管理模式 10、打破传统复杂的操作 全新智能引擎 引导式操作 只要会拿鼠标就会使用本系统 11、工资全自动结算 实现一键结算所有员工工资 全球第一款支持高复杂提成高性能置 实现各种不同的提成方式 真正适用于各种美发店的智能系统 实现一键打印工资表 考勤表 开支表 等 12、精准的数据分析 精确快速分析店内营业状况 客流量 客单价 烫染 洗剪 销售 等复杂数据 年度营业额一键分析 一键就能显示所有营业额等 13、全新的考勤模式 员工上下班刷卡模式 管理人员一键式查看迟到早退员工 14、产品管理 产品入库出库盘点 反复费时的工作 本系统全自动操作 让您繁琐的工作变得简单轻松 15、账目管理 店内一切开支 借支 付款 等账目一目了然 国标美容美发管理系统 v46.68更新内容: 1、修复会员记录无法导出的BU 2、修复某些电脑载入查单窗口有时出错的问题 3、会员消费记录增加按卡号精确查询功能 国标美容美发管理系统截图
美容美发经营管理软件易售(Esale)是专为美容美发行业打造的,它把先进的经营理念融入其中,把会员制很好地结合进去。同时它也整合了员工考核、内部管理、经营管理和客户管理等很多其它方面的功能,所以它的功能是非常全面的。易售美容美发管理软件能极大地提升管理水平,不仅可以帮助企业控制成本,维护和开发客户,还能帮管理者洞悉经营中的真相,掌握第一手的真实数据。通过更科学的管理,提升企业盈利能力。易售-美容美发管理软件是一套专门为美容美发行业设计开发的智能经营管理软件,该系统把先进的经营理念融入其中,从管理者的角度出发,以客户管理为切入点,形成一套完整独到的不同于以往的管理系统。 1、功能强大,操作简单 本系统功能强大,基本包括美容美发店所有的经营活动,但操作界面非常简洁,操作流程严格按照实际的流程设计,使操作人员非常容易理解和操作。顾客一进店就对顾客进行登记,然后记录顾客消费的项目,到收银的时候直接收款就行,这样就大大减小顾客交钱等待的时间。 2、先进的会员卡管理 在系统中可以实行一卡通管理,顾客凭卡可以存钱、取钱、消费也可以凭卡使用已经购买的护理卡(包月卡)或疗程卡。每个卡都设有密码(像银行的一样,由顾客自己输入),只有系统管理员才有权限修改,保证顾客的资金安全。与护理卡(包月卡)、疗程卡有机结合,顾客购买护理卡或疗程卡都结合到会员卡中,避免顾客手上有几张卡。 3、工资自动生成 系统实时自动生成员工工资,包括基本工资、服务提成等项目,使复杂的工资变得清清楚楚,同时可以打印工资条和工资表。 4、考勤管理 系统可对员工考勤管理,考勤结果自动生产报表。每个员工的上下班时间、请假、迟到、早退、旷工等情况一目了然。 5、支持POS打印 本系统支持各种POS打印机,每次收钱都会打印出像超市收银一样的小票。 6、报表内容丰富 系统提供各种管理报表,经营分析报表,支持各种查询方式,满足美容美发店进行管理分析的需求。 7、系统安全可靠 系统对管理权限进行分级管理,使系统具有更高的保密性、安全性;同时系统提供备份功能,保证数据的稳定存储。 【软件特点】 功能齐全 易售美容美发管理软件与市场上现有同类软件相比,易售美容美发管理软件是功能最齐全的。覆盖了会员管理,收银管理,人事管理和物品管理等。 物超所值 在同类软件产品中,易售美容美发管理软件绝对是高性价比的一款产品。不仅因为它继承了易售软件一贯实用又容易的优良品质,更因为它经过上千家用户使用,产品成熟稳定,功能卓越。 简单易用 易售美容美发管理软件简单易用,从安装,到学习;从操作,到维护,易售美容美发管理软件都十分简单快捷,并易于上手,同时易售美容美发管理软件还支持各种外设硬件。 【软件功能】 会员管理:会员档案管理,客户流失提醒,短信群发,会员消费信息统计等。 收银管理:收银、卖卡、充值、积分、疗程及各种财务报表等。 销售管理:营业统计与分析,利润统计与分析,客户分析,物品分析等。 人事管理:员工考勤,员工业绩,员工提成,业绩统计与分析,员工技能分析等。 物品管理:仓库进销存,销售分析,消耗分析,缺货提醒等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值