作者主页:夜未央5788
简介: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版本;
技术栈
1. 后端:SpringBoot
2. 前端:Thymeleaf+html+layui
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中application.properties配置文件中的数据库配置改为自己的配置;
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
运行截图
后台页面
代码相关
公告管理控制器
/**
* 公告管理
*/
@Controller
public class NoticeController {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private NoticeService noticeService;
@RequestMapping("/noticeUi")
public String articleListUi() {
if (!LoginSession.getCurrentUser().getUsername().equals("admin")) {
return "client/html/index";
}
return "admin/notice/noticeList";
}
@RequestMapping("/noticeUiAdd")
public String articleAddUi() {
if (!LoginSession.getCurrentUser().getUsername().equals("admin")) {
return "client/html/index";
}
return "admin/notice/noticeAdd";
}
/**
* 高级查询公告列表
*
* @param page
* @param limit
* @param keyword1
* @param keyword2
* @return
*/
@ResponseBody
@RequestMapping("/admin/notice/list")
public ServerLayResult<Notice> list(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit", defaultValue = "10") Integer limit,
String keyword1, String keyword2) {
logger.info("" + keyword1 + "---->" + keyword2);
if (keyword1 != null && keyword1 != "" || keyword2 != null && keyword2 != "") {
List<Notice> notices = noticeService.selectByKeyWord(page, limit, keyword1, keyword2);
ServerLayResult result = new ServerLayResult(0, "", notices.size(), notices);
return result;
}
//封装数据
ServerLayResult result = new ServerLayResult(0, "", noticeService.count(), noticeService.selectAll(page, limit));
return result;
}
/**
* 根据ID删除公告
*
* @param id
* @return
*/
@ResponseBody
@RequestMapping("/admin/notice/del")
public Map<String, Object> delNotice(@RequestParam("id") int id) {
Map<String, Object> dataMap = new HashMap<>();
boolean isSuccess = noticeService.deleteByPrimaryKey(id);
dataMap.put("success", isSuccess);
return dataMap;
}
/**
* 更新公告
*
* @param notice
* @return
*/
@ResponseBody
@RequestMapping("/admin/notice/save")
public Map<String, Object> saveNotice(@RequestBody Notice notice) {
Map<String, Object> dataMap = new HashMap<>();
boolean isSuccess = noticeService.insert(notice);
dataMap.put("success", isSuccess);
return dataMap;
}
@ResponseBody
@RequestMapping("/admin/notice/update")
public Map<String, Object> updateNotice(@RequestBody Notice notice) {
Map<String, Object> dataMap = new HashMap<>();
boolean isSuccess = noticeService.updateByPrimaryKey(notice);
dataMap.put("success", isSuccess);
return dataMap;
}
}
文章标签管理控制器
/**
* 文章标签
*/
@RestController
public class LabelController {
@Autowired
private LabelService labelService;
@RequestMapping("/admin/label/list")
public List<Label> list() {
List<Label> labels = labelService.selectAll();
return labels;
}
}
留言管理控制器
/**
* 后台留言控制器
*/
@Controller
public class LeacotController {
@Autowired
private LeacotService leacotService;
@Autowired
private ReplyService replyService;
@RequestMapping("/leacotsView")
public String leacotUi() {
if (!LoginSession.getCurrentUser().getUsername().equals("admin")) {
return "client/html/index";
}
return "admin/leacots/leacotsList";
}
/**
* 用户留言列表
*
* @param page
* @param limit
* @param keyword1
* @return
*/
@ResponseBody
@RequestMapping("/admin/leacots/list")
public ServerLayResult leacotsList(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit", defaultValue = "10") Integer limit, String keyword1) {
if (keyword1 != null) {
List<Leacot> leacots = leacotService.selectByKeyWord(page, limit, keyword1);
ServerLayResult result = new ServerLayResult(0, "", leacots.size(), leacots);
return result;
}
ServerLayResult result = new ServerLayResult(0, "", leacotService
.count(), leacotService.selectAll(page, limit));
return result;
}
/**
* 根据ID删除 并且删除关联
*
* @param id
* @return
*/
@ResponseBody
@RequestMapping("/admin/leacots/del")
public Map<String, Object> del(@RequestParam("id") int id) {
Map<String, Object> dataMap = new HashMap<>();
boolean isSuccess = false;
Leacot leacot = leacotService.selectByPrimaryKey(id);
//删除关联
if (leacot != null) {
boolean delReply = replyService.deleteByPrimaryKey(leacot.getId());
if (delReply) {
boolean delete = leacotService.deleteByPrimaryKey(id);
isSuccess = true;
dataMap.put("success", isSuccess);
return dataMap;
}
}
dataMap.put("success", isSuccess);
return dataMap;
}
/**
* {id: "4", leacotsUser: "test", content: "测试留言内容", replyContent: "fsafsf", status: "on"}
*
* @param json
* @return
*/
@ResponseBody
@RequestMapping("/admin/leacots/update")
public Map<String, Object> update(@RequestBody JSONObject json) {
Map<String, Object> dataMap = new HashMap<>();
boolean isSuccess = false;
JSONObject data = JSON.parseObject(json.toJSONString());
Integer id = data.getInteger("id");
String leacotsUser = data.getString("leacotsUser");
String content = data.getString("content");
//回复内容
String replyContent = data.getString("replyContent");
//回复状态
String status = data.getString("status");
int temp = 0;
if (status != null) {
if (status.equals("on")) {
temp = 1;
}
}
//默认从session获得replyUser
Reply reply = new Reply(id, replyContent, new Date(), "admin");
//更新回复表
boolean updateReply = replyService.updateByPrimaryKey(reply);
Leacot leacot = new Leacot(id, content, new Date(), leacotsUser, reply, temp);
//更新留言表
boolean updateLeacot = leacotService.updateByPrimaryKey(leacot);
if (updateLeacot && updateReply) {
isSuccess = true;
dataMap.put("success", isSuccess);
return dataMap;
}
dataMap.put("success", isSuccess);
return dataMap;
}
}
如果也想学习本系统,下面领取。回复:049springboot