当前位置: 首页 > news >正文

java 基本微信小程序的心理咨询服务系统 uniapp 小程序

随着计算机技术的发展,带来社会各行业的进步,信息化逐渐运用到人们的生活中。传统模式的会员心理健康管理满足不了现代人的生活追求,服务质量、服务速度,之前的很多网站由于功能、或者框架设计等原因,无法完美的展现它的特色,优势,浪费了很多资源。使用管理系统进行管理,成本大大减小,同时可借助互联网强大的流量入口,因而也降低了推广的难度。因此设计一个心理咨询服务微信小程序来解决会员心理健康管理的问题,一方面可以更好的展现系统直观性,另一方面可以更好的来适应时代的发展。
请添加图片描述
环境需要
1.运行环境:微信开发者工具,最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。
2.IDE环境:IDEA,Eclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7/Tomcat8/Tomcat9版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本或以上版本;
6.是否Maven项目:是;
技术栈
后端:Spring+SpringMVC+Mybatis+Springboot
小程序端:uni-app+微信开发者工具混合开发模式请添加图片描述
心理服务平台包括用户管理、系统管理、咨询管理、心理知识、系统管理、心理测试管理、心理问答管理。
用户管理包括管理员管理、心理医生管理、会员用户管理。当前台会员进行注册的时候,权限设为会员。管理员用户权限设置为管理员。虽然数据存储在一个数据库表,但是在登录的时候使用权限类别进行区分,管理员用户无法通过客户端进行登录。同理,客户端用户也无法登陆管理员端。
心理医生发布心理知识的信息,信息发布后的音乐在微信小程序客户端浏览查看。

请添加图片描述

主要功能:
会员管理。会员用户的注册、登录。会员在个人中心,进行个人信息的修改和用户密码的修改,系统注销等操作。
心理医生管理,管理员录入心理医生,修改心理医生信息。在前台可以查看心理医生风采,包括心理医生的介绍和个人图片信息。
其中图片是保存在服务器端,数据库记录对应的图片链接地址,在资源类信息保存中还可以通过二进制进行保存。本系统为了降低数据库的负荷,把图片以文件格式进行存储,这样既减轻了服务器的数据库的存储,也提高了图片数据传输的速度。会员发布后,在管理端对数据进行管理,删除一些违法违规的记录。没有删除的记录将在客户端首页进行展示,用于其他会员查看。会员可以通过心理知识的分类进行搜索,不同分类对应了不同的心理知识。也可以通过关键字进行检索。
更改个人信息:用户登录后可以对个人信息进行修改,确保用户信息的准确性和实效性。
心理测试:为用户提供一些心理小测试,用户可以根据测试结果对自己的心理状态有一个大概的了解。
心理知识:里面有各个专题的心理知识,比如人际社交、家庭关系等。
心理咨询:主要是学生用户进行心理咨询。
购物车:课程购买的添加和删除,课程支付。
请添加图片描述

本文先提出了开发心理服务平台的背景意义,然后通过功能性和非功能性分析阐述本系统的需求,然后从功能设计和数据库设计两方面进行系统的设计建模。在技术实现部分采用了Java作为开发后台的编程语言,客户端使用微信小程序技术,数据库选择MySQL。最后进行了代码的编写,并说明了实现流程。最终,通过软件测试来验证心理服务平台的功能要求。综合表明,本心理服务平台满足了会员心理健康管理的基本业务,帮助用户及时在线咨询心理问题,并为健康平台管理员提供了高效的管理模式。


/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

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

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 使用工具简介 4
2.2 环境配置 4
2.3 B/S结构简介 4
2.4 MySQL数据库 5
2.5 框架介绍 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37

相关文章:

  • JQ----事件
  • FPGA 20个例程篇:16.HDMI显示彩色风景图
  • 【云原生之Docker实战】使用Docker部署NPS内网穿透工具
  • 应对过载- go-zero源码阅读
  • Python 的“self“参数是什么?
  • 模拟前端ADC芯片LH001-91,用于开发心电、脑电医疗设备
  • CAPL 封装了的SeedKey解锁函数,高复用性
  • 异常数据处理——3σ原则、箱线图
  • vue3.0 + tsx 构建el-button
  • 基于JAVA的TCP网络QQ聊天工具系统
  • 【WLAN】【调试】netsh wlan常用命令使用说明
  • 教程图文详解 - 网络安全(第八章)
  • Python数据分析案例08——预测泰坦尼克号乘员的生存(机器学习全流程)
  • 计算机四级——操作系统原理常用知识点个人总结(上)
  • 【学姐面试宝典】—— 前端基础篇Ⅰ
  • [译]如何构建服务器端web组件,为何要构建?
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • FineReport中如何实现自动滚屏效果
  • JavaScript HTML DOM
  • Java超时控制的实现
  • JAVA多线程机制解析-volatilesynchronized
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Promise面试题,控制异步流程
  • Python实现BT种子转化为磁力链接【实战】
  • swift基础之_对象 实例方法 对象方法。
  • vue2.0项目引入element-ui
  • 对象引论
  • 关于for循环的简单归纳
  • 配置 PM2 实现代码自动发布
  • 详解NodeJs流之一
  • 用简单代码看卷积组块发展
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (二)springcloud实战之config配置中心
  • (二十三)Flask之高频面试点
  • (强烈推荐)移动端音视频从零到上手(上)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • *Django中的Ajax 纯js的书写样式1
  • .bat文件调用java类的main方法
  • .cfg\.dat\.mak(持续补充)
  • .NET CLR Hosting 简介
  • .net core webapi 大文件上传到wwwroot文件夹
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Core引入性能分析引导优化
  • .NET4.0并行计算技术基础(1)
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .Net语言中的StringBuilder:入门到精通
  • ??javascript里的变量问题
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯