计算机毕业设计-基于Java+SSM架构的理发店会员管理系统项目开发实战(附源码+论文)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:Java毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀 Python毕业设计
🌎微信小程序毕业设计

开发环境

  • 开发语言:Java
  • 框架:ssm
  • JDK版本:JDK1.8
  • 服务器:tomcat7
  • 数据库:mysql 5.7
  • 数据库工具:Navicat12
  • 开发软件:eclipse/myeclipse/idea
  • Maven包:Maven3.3.9
  • 浏览器:谷歌浏览器

论文目录

【如需全文请按文末获取联系】

在这里插入图片描述
在这里插入图片描述

一、项目简介

理发店会员管理系统是在MySQL中建立数据表保存信息,运用SSM框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。系统实现的功能包括商铺管理,美发管理,用户预约管理,用户分享管理,留言管理等功能。

二、系统设计

2.1软件功能模块设计

设计的管理员的详细功能见下图,管理员登录进入本人后台之后,管理美发,商铺,优惠活动,用户分享信息,审核用户预约的美发信息。
在这里插入图片描述

设计的用户的详细功能见下图,用户预约美发,查看并评论商铺,优惠活动以及用户分享信息。
在这里插入图片描述

2.2数据库设计

(1)设计的商铺实体,其具备的属性见下图。
在这里插入图片描述
(2)设计的美发实体,其具备的属性见下图。
在这里插入图片描述

(3)设计的用户实体,其具备的属性见下图。
在这里插入图片描述
(5)设计的各实体间关系见下图。
在这里插入图片描述

三、系统项目部分截图

3.1管理员功能实现

美发信息管理
管理员权限中的美发信息管理,其运行效果见下图。管理员查看美发相关评论,修改美发信息,查询美发信息。
在这里插入图片描述
用户预约管理
管理员权限中的用户预约管理,其运行效果见下图。管理员需要审核用户预约的美发,查看用户是否完成支付。
在这里插入图片描述
用户分享管理
管理员权限中的用户分享管理,其运行效果见下图。管理员查看用户分享的信息,查询,修改用户的分享信息。
在这里插入图片描述

3.2用户功能实现

商铺信息
用户权限中的商铺信息,其运行效果见下图。用户查看商铺介绍,评论商铺。
在这里插入图片描述
美发信息
用户权限中的美发信息,其运行效果见下图。用户收藏美发信息,评论美发信息,预约美发。
在这里插入图片描述
优惠活动
用户权限中的优惠活动,其运行效果见下图。用户查看优惠活动详细信息,评论优惠活动。
在这里插入图片描述

四、部分核心代码

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.MeifaxinxiEntity;
import com.entity.view.MeifaxinxiView;

import com.service.MeifaxinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 美发信息
 * 后端接口
 * @author 
 * @email 
 * @date 2021-03-26 22:27:10
 */
@RestController
@RequestMapping("/meifaxinxi")
public class MeifaxinxiController {
    @Autowired
    private MeifaxinxiService meifaxinxiService;
    


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

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(MeifaxinxiEntity meifaxinxi){
        EntityWrapper< MeifaxinxiEntity> ew = new EntityWrapper< MeifaxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( meifaxinxi, "meifaxinxi")); 
		MeifaxinxiView meifaxinxiView =  meifaxinxiService.selectView(ew);
		return R.ok("查询美发信息成功").put("data", meifaxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        MeifaxinxiEntity meifaxinxi = meifaxinxiService.selectById(id);
        return R.ok().put("data", meifaxinxi);
    }

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


    /**
     * 赞或踩
     */
    @RequestMapping("/thumbsup/{id}")
    public R thumbsup(@PathVariable("id") String id,String type){
        MeifaxinxiEntity meifaxinxi = meifaxinxiService.selectById(id);
        if(type.equals("1")) {
        	meifaxinxi.setThumbsupnum(meifaxinxi.getThumbsupnum()+1);
        } else {
        	meifaxinxi.setCrazilynum(meifaxinxi.getCrazilynum()+1);
        }
        meifaxinxiService.updateById(meifaxinxi);
        return R.ok();
    }

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

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

        meifaxinxiService.insert(meifaxinxi);
        return R.ok();
    }

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

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        meifaxinxiService.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<MeifaxinxiEntity> wrapper = new EntityWrapper<MeifaxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


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


}

获取源码或论文

如需对应的论文或源码,以及其他定制需求,也可以下方微❤联系。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值