一、前言
快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择利用互联网进行线上打理各种事务,然后线上管理系统也就相继涌现。与此同时,人们开始接受方便的生活方式。他们不仅希望页面简单大方,还希望操作方便,可以快速锁定他们需要的线上管理方式。基于这种情况,我们需要这样一个界面简单大方、功能齐全的系统来解决用户问题,满足用户需求。
课题主要分为二大模块:即管理员模块和用户模块,主要功能包括:用户、区域、共享单车、单车租赁、租赁归还、报修信息、检修信息等;
二、开发环境
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7(一定要5.7版本)
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器
三、系统功能设计
一个用例图就能对应出系统中的一个功能过程,系统中完整的功能都是由许多不同的用例图所组成的。
共享单车信息系统分为二个部分,即管理员和用户。该系统是根据用户的实际需求开发的,贴近生活。从管理员处获得的指定账号和密码可用于进入系统和使用相关的系统应用程序。管理员拥有最大的权限,其次是用户。管理员一般负责整个系统的运行维护和总体协调。
四、系统数据库设计
概念设计是将整体分为在地面上表达出来的单个个体。E-R图形象的连接了实体模型和概念模型。因此,E-R图需要根据数据库表和表字段进行合理设计,表达的概念知识点用图形描述,可以直观地让相应人员清楚,并分解整个E-R图。我们通常表达不清晰没有概念的东西。但是通过E-R之间的联系,E-R模型法是对这种模糊概念的事务最简单、最常用的设计方法。
五、系统效果
六、核心代码
package com.entity;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.lang.reflect.InvocationTargetException;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.beanutils.BeanUtils;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.baomidou.mybatisplus.enums.IdType;
/**
* 在线客服
* 数据库通用操作实体类(普通增删改查)
* @author
* @email
* @date 2023-03-24 22:41:10
*/
@TableName("chat")
public class ChatEntity<T> implements Serializable {
private static final long serialVersionUID = 1L;
public ChatEntity() {
}
public ChatEntity(T t) {
try {
BeanUtils.copyProperties(this, t);
} catch (IllegalAccessException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 主键id
*/
@TableId
private Long id;
/**
* 用户id
*/
private Long userid;
/**
* 管理员id
*/
private Long adminid;
/**
* 提问
*/
private String ask;
/**
* 回复
*/
private String reply;
/**
* 是否回复
*/
private Integer isreply;
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat
private Date addtime;
public Date getAddtime() {
return addtime;
}
public void setAddtime(Date addtime) {
this.addtime = addtime;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
/**
* 设置:用户id
*/
public void setUserid(Long userid) {
this.userid = userid;
}
/**
* 获取:用户id
*/
public Long getUserid() {
return userid;
}
/**
* 设置:管理员id
*/
public void setAdminid(Long adminid) {
this.adminid = adminid;
}
/**
* 获取:管理员id
*/
public Long getAdminid() {
return adminid;
}
/**
* 设置:提问
*/
public void setAsk(String ask) {
this.ask = ask;
}
/**
* 获取:提问
*/
public String getAsk() {
return ask;
}
/**
* 设置:回复
*/
public void setReply(String reply) {
this.reply = reply;
}
/**
* 获取:回复
*/
public String getReply() {
return reply;
}
/**
* 设置:是否回复
*/
public void setIsreply(Integer isreply) {
this.isreply = isreply;
}
/**
* 获取:是否回复
*/
public Integer getIsreply() {
return isreply;
}
}
package com.entity.view;
import com.entity.DanchezulinEntity;
import com.baomidou.mybatisplus.annotations.TableName;
import org.apache.commons.beanutils.BeanUtils;
import java.lang.reflect.InvocationTargetException;
import java.io.Serializable;
/**
* 单车租赁
* 后端返回视图实体辅助类
* (通常后端关联的表或者自定义的字段需要返回使用)
* @author
* @email
* @date 2023-03-24 22:41:10
*/
@TableName("danchezulin")
public class DanchezulinView extends DanchezulinEntity implements Serializable {
private static final long serialVersionUID = 1L;
public DanchezulinView(){
}
public DanchezulinView(DanchezulinEntity danchezulinEntity){
try {
BeanUtils.copyProperties(this, danchezulinEntity);
} catch (IllegalAccessException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}