基于java+ssm+vue的社区养老服务微信小程序

项目介绍

随着计算机技术的成熟,互联网的建立,如今,PC平台上有许多关于社区养老服务方面的应用程序,但由于使用时间和地点上的限制,用户在使用上存在着种种不方便,而开发一款基于微信小程序的社区养老服务系统,能够有效地解决这个问题。

本文主要介绍了基于微信小程序的社区养老服务系统的开发过程,对开发环境、系统设计、系统实现、系统测试方面进行分析。在设计时对微信客户端进行了充分的了解,掌握微信平台通过的接口,同时系统采用MYSQL数据库进行数据的储存,充分的保证了系统的稳定性、安全性。
通过本系统满足了不同权限用户的功能需求,包括用户、服务人员以及管理员。

“操作简单,功能实用”这是本软件设计的核心理念,本系统力求创造最好的用户体验。
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,微信开发者工具,jdk1.8,maven
支持定做:java/php/python/android/小程序vue/爬虫/c#/asp.net

系统实现

5.1微信端功能模块的实现
5.1.1微信端注册登录界面
没有账号的用户可进行注册操作,注册后可进行登录系统,在登录时可选择登录类型,微信端注册登录界面展示如图5.1所示。
在这里插入图片描述

图5.1 微信端注册登录界面

5.1.2首页界面
用户登录后可进入首页查看相关信息,首页界面展示如图5.2所示。
在这里插入图片描述

图5.2首页界面

5.1.3服务产品详情界面
用户可选择服务产品查看详情信息,并可进行预约和投诉操作,服务产品详情界面展示如图5.3所示。
在这里插入图片描述

图5.3 服务产品详情界面.

5.1.4服务投诉界面
用户可进行服务投诉操作,服务投诉界面展示如图5.4所示。
在这里插入图片描述

图5.4 服务投诉界面

5.1.5服务预约界面
用户登录后可选择服务进行预约操作,服务预约界面展示如图5.5所示。
在这里插入图片描述

图5.5 服务预约界面

5.1.6我的界面
用户在我的界面可选择模块进行相应操作,我的界面展示如图5.6所示。
在这里插入图片描述

图5.6 我的界面

5.2服务端功能模块的实现
5.2.1服务端登录界面
管理员和服务人员要想进入对于角色后台进行管理操作,必须登录对应角色后台,服务端登录界面展示如图5.7所示。
在这里插入图片描述

图5.7服务端登录界面

5.2.2用户管理界面
管理员和服务人员均可进行用户管理操作,用户管理界面如图5.8所示。
在这里插入图片描述

图5.8 用户管理界面

5.2.3服务人员管理界面
管理员在服务人员管理界面可查看所有服务人员信息,对已有服务人员信息可进行编辑和删除操作,服务人员管理界面如图5.9所示。
在这里插入图片描述

图5.9 服务人员管理界面

5.2.4服务产品管理界面
管理员和服务人员均可增删改查服务产品信息,服务产品管理界面展示如图5.10所示。
在这里插入图片描述

图5.10 服务产品管理界面

5.2.5服务预约管理界面
管理员和服务人员均可查看服务预约信息,并可对其进行审核、修改和删除操作,服务预约管理界面展示如图5.11所示。
在这里插入图片描述

图5.11 服务预约管理界面

5.2.6活动管理界面
管理员和服务人员均可增删改查活动信息,活动管理界面展示如图5.12所示。
在这里插入图片描述

图5.12 活动管理界面

5.2.7视频管理界面
管理员和服务人员均可查看、添加、修改和删除视频信息,视频管理界面展示如图5.13所示。
在这里插入图片描述

图5.13 视频管理界面

核心代码

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.FuwuchanpinEntity;
import com.entity.view.FuwuchanpinView;

import com.service.FuwuchanpinService;
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 
 */
@RestController
@RequestMapping("/fuwuchanpin")
public class FuwuchanpinController {
    @Autowired
    private FuwuchanpinService fuwuchanpinService;
    


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

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(FuwuchanpinEntity fuwuchanpin){
        EntityWrapper< FuwuchanpinEntity> ew = new EntityWrapper< FuwuchanpinEntity>();
 		ew.allEq(MPUtil.allEQMapPre( fuwuchanpin, "fuwuchanpin")); 
		FuwuchanpinView fuwuchanpinView =  fuwuchanpinService.selectView(ew);
		return R.ok("查询服务产品成功").put("data", fuwuchanpinView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        FuwuchanpinEntity fuwuchanpin = fuwuchanpinService.selectById(id);
        return R.ok().put("data", fuwuchanpin);
    }

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


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

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

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

        fuwuchanpinService.insert(fuwuchanpin);
        return R.ok();
    }

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

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


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


}

论文参考

在这里插入图片描述
目 录
摘 要 I
Abstract II
目 录 III
第1章 绪论 1
1.1研究背景 1
1.2设计原则 1
1.3研究内容 1
第2章 关键技术简介 3
2.1微信Web开发者工具 3
2.2微信小程序API接口 3
2.3 MYSQL数据库 3
2.4 Java简介 3
第3章 系统分析 5
3.1 可行性分析 5
3.1.1技术可行性 5
3.1.2 经济可行性 5
3.1.3 操作可行性 5
3.1.4法律可行性 5
3.2 系统性能分析 6
3.3 系统功能分析 6
3.4 系统流程分析 6
3.4.1登录流程 6
3.4.2添加信息流程 7
3.4.3注册流程 7
3.4.4修改密码流程 8
第4章 系统设计 10
4.1系统设计要求 10
4.2系统开发流程设计 10
4.3系统结构设计 10
4.4系统数据库设计 11
4.4.1 数据库E-R图设计 11
4.4.2 数据库表设计 13
第5章 系统的实现 16
5.1微信端功能模块的实现 16
5.1.1微信端注册登录界面 16
5.1.2首页界面 16
5.1.3服务产品详情界面 17
5.1.4服务投诉界面 18
5.1.5服务预约界面 18
5.1.6我的界面 19
5.2服务端功能模块的实现 19
5.2.1服务端登录界面 19
5.2.2用户管理界面 20
5.2.3服务人员管理界面 20
5.2.4服务产品管理界面 21
5.2.5服务预约管理界面 21
5.2.6活动管理界面 22
5.2.7视频管理界面 22
第6章 系统测试 24
6.1 测试目的 24
6.2 测试整体步骤 24
6.3 测试方法 25
6.4测试分析 25
第7章 总结 26
致 谢 27
参考文献 28

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值