作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
本项目分为前后台,并且有管理员与客户两种角色,
管理员角色包含以下功能:
管理员登录,订单管理,摄影师管理,级别管理,标签管理,摄影地点管理,客片管理,轮播图管理,资讯管理等功能。
客户角色包含以下功能:
客户首页,客片欣赏,预约摄影师,会员登录,填写预约摄影师信息,查看活动,订单查看等功能。
ps:管理员登录地址在页面最下面,这个程序是一个很好的模板源码,在不修改一行代码的情况下可以轻松的修改为类似健身俱乐部的网站。
环境需要
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版本;
6.是否Maven项目:是;
技术栈
1. 后端:SpringBoot
2. 前端:HTML+Bootstrap+jQuery
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 4. 运行项目,前台地址输入http://localhost:8080/ 登录
用户账号/密码: 测试/123456
后台地址输入http://localhost:8080/manage/login.html 登录
管理员账号/密码:admin/admin
运行截图
客户角色
管理端角色
代码相关
管理员控制器
@Controller
@RequestMapping("/admin")
@Scope("prototype")
public class AdminController {private static final Logger logger = LoggerFactory.getLogger(AdminController.class);private ReturnResult returnResult = new ReturnResult();@Resource(name = "adminService")private IAdminService adminService;/*** 管理员登录* @param admin* @param session* @return*/@RequestMapping(value = "login", method = RequestMethod.POST)@ResponseBodypublic ReturnResult login(TAdmin admin, HttpSession session) {returnResult.setStatus(ReturnCodeType.FAILURE);try {admin = adminService.login(admin);if (admin != null) {admin.setPassword(null);session.setAttribute("admin", admin);returnResult.setStatus(ReturnCodeType.SUCCESS);}} catch (Exception e) {logger.error("登录失败:" + e);}return returnResult;}/*** 从session获取管理员信息* @param session* @return*/@RequestMapping(value="getAdminInfo", method = RequestMethod.POST)@ResponseBodypublic ReturnResult getAdminInfo(HttpSession session) {returnResult.setStatus(ReturnCodeType.FAILURE);TAdmin admin = (TAdmin) session.getAttribute("admin");if (admin != null) {returnResult.setStatus(ReturnCodeType.SUCCESS).setData(admin);} else {logger.info("获取管理员信息失败:管理员未登录");}return returnResult;}/*** 退出* @param session* @return*/@RequestMapping(value="logout", method = RequestMethod.POST)@ResponseBodypublic ReturnResult logout(HttpSession session) {session.invalidate();return returnResult.setStatus(ReturnCodeType.SUCCESS);}}
拍摄景点控制器
@Controller
@Scope("prototype")
public class SpotsController {private static final Logger logger = LoggerFactory.getLogger(SpotsController.class);private ReturnResult returnResult = new ReturnResult();@Resource(name = "spotsService")private ISpotsService spotsService;/*** 添加拍摄景点* * @param spots* @param HttpServletRequest* @return*/@RequestMapping(value = "addSpots", method = RequestMethod.POST)@ResponseBodypublic ReturnResult addSpots(TSpots spots, HttpServletRequest request) {returnResult.setStatus(ReturnCodeType.FAILURE);try {Map<String, String> map = OperationFileUtil.multiFileUpload(request,request.getServletContext().getRealPath("/") + "uploads/spots/");String filePath = "";for (Map.Entry<String, String> entry : map.entrySet()) {filePath = entry.getValue();}filePath = filePath.replace(request.getServletContext().getRealPath("/"), "/");spots.setPath(filePath);spots.setCreatetime(new Date());spotsService.insert(spots);returnResult.setStatus(ReturnCodeType.SUCCESS);} catch (Exception e) {logger.error("新增spots失败" + e);}return returnResult;}/*** 修改spots* @param spots* @return*/@RequestMapping(value = "updateSpots", method = RequestMethod.POST)@ResponseBodypublic ReturnResult updateSpots(TSpots spots) {returnResult.setStatus(ReturnCodeType.FAILURE);try {spotsService.updateBySQL("UPDATE t_spots SET name='" + spots.getName() + "',content='"+spots.getContent()+"', status="+spots.getStatus()+" WHERE id=" + spots.getId());returnResult.setStatus(ReturnCodeType.SUCCESS);} catch (Exception e) {logger.error("修改spots失败" + e);}return returnResult;}/*** 分页获取spots* @return*/@RequestMapping(value = "getSpotsListByPage", method = RequestMethod.POST)@ResponseBodypublic ReturnResult getSpotsListByPage(PageVO page) {returnResult.setStatus(ReturnCodeType.FAILURE);try {Map<String, Object> resultMap = new HashMap<String, Object>();StringBuffer sql = new StringBuffer("SELECT DISTINCT * FROM t_spots WHERE 1=1");List<Map<String, Object>> results = spotsService.selectPageBySQL(sql.toString(), page.getPage() - 1,page.getRows());if (!results.isEmpty() && results != null) {int total = spotsService.selectCount(new TSpots());int rows = page.getRows();rows = rows == 0 ? 10 : rows;resultMap.put("total", (total % rows != 0 ? (total / rows + 1) : (total / rows)));resultMap.put("page", page.getPage());resultMap.put("records", total);resultMap.put("rows", results);returnResult.setStatus(ReturnCodeType.SUCCESS).setData(resultMap);}}catch (Exception e) {logger.error("分页获取spots失败" + e);}return returnResult;}/*** 根据获取id spots* @param id* @return*/@RequestMapping(value = "getSpotsById", method = RequestMethod.POST)@ResponseBodypublic ReturnResult getSpotsById(Integer id) {returnResult.setStatus(ReturnCodeType.FAILURE);try {returnResult.setStatus(ReturnCodeType.SUCCESS).setData(spotsService.selectByPrimaryKey(id));}catch (Exception e) {logger.error("根据获取spots失败" + e);}return returnResult;}/*** 获取所有启用的spots* @return*/@RequestMapping(value = "getAllSpots", method = RequestMethod.POST)@ResponseBodypublic ReturnResult getAllSpots() {returnResult.setStatus(ReturnCodeType.FAILURE);try {returnResult.setStatus(ReturnCodeType.SUCCESS).setData(spotsService.getAllSpots());} catch (Exception e) {logger.error("获取所有启用spots失败" + e);}return returnResult;}/*** 获取所有5条启用的spots* @return*/@RequestMapping(value = "getFiveSpots", method = RequestMethod.POST)@ResponseBodypublic ReturnResult getFiveSpots() {returnResult.setStatus(ReturnCodeType.FAILURE);try {returnResult.setStatus(ReturnCodeType.SUCCESS).setData(spotsService.selectBySQL("select * from t_spots ORDER BY id DESC limit 0,5"));} catch (Exception e) {logger.error("获取所有5条启用的spots失败" + e);}return returnResult;}}
如果也想学习本系统,下面领取。回复:068springboot