图书管理系统(已完成)
¥350
图书列表展示(ListBookServlet)
添加图书(AddBookServlet)
编辑图书(EditBookServlet)
删除图书(DeleteBookServlet)
数据库连接池管理(DBUtil)
前后端数据交互
JSP页面展示
工具用eclipse,需要写注释
智慧城市数据采集及实现数据分析可视化(已完成)
¥600
具体需求和甲方交谈
数据可视化加功能(已完成)
¥1000
然后点击系统名称进入第二个页面。第二个页面展示 当前系统在item 表中的检查项,类似于上面图,如果检查项多的话,就堆到下面展示,然后点击对应的条数,跳转到详情页面
贪吃蛇小游戏(已完成)
¥100
编写一个贪吃蛇小游戏
社团管理项目(已完成)
¥300
5.2 系统功能模块实现
5.2.1 用户注册功能实现
系统用户注册是新用户进入系统的关键入口,用户在注册页面填姓名、账号、密码等信息,前端实时校验格式并加密密码,通过HTTPS传至服务器。服务器查询数据库,若用户名和账号未被注册,就存入用户信息,分配初始权限与角色,返回欢迎消息引导登录;若验证失败,服务器向用户反馈错误,同时记录日志,防范异常注册[24]。
代码5-1 用户注册功能主要代码
public R addInfo(Users users) {
if(usersService.getUserByUserName(users.getUserName()) == null){
users.setId(IDUtils.makeIDByCurrent());
users.setCreateTime(DateUtils.getNowDate());
Log.info("添加系统用户,传入参数:{}", users);
usersService.add(users);
return R.success();
}else{
return R.warn("用户账号已存在,请重新输入");
}
}
用户注册界面实现,如图5-2所示:

图5-2 用户注册界面
5.2.2 用户登录功能实现
登录模块作为系统核心入口,承担用户身份验证与权限分配职责。用户于登录界面输入账号和密码,前端校验格式,对密码哈希加密后,通过HTTPS传至服务器。服务器查询数据库,验证账号、密码及账户状态。验证通过,生成会话令牌,依用户角色跳转对应界面;失败则返回错误信息,记录日志防暴力破解[25]。
代码5-3 用户登录功能主要代码
public R login(String userName, String passWord, HttpSession session){
Log.info("用户登录,用户名:{}, 用户密码:{}", userName, passWord);
Users user = usersService.getUserByUserName(userName);
if(user == null) {
return R.error("输入的用户名不存在");
}else {
if(passWord.equals(user.getPassWord().trim())) {
String token = IDUtils.makeIDByUUID();
cacheHandle.addUserCache(token, user.getId());
return R.success("登录成功", token);
}else {
return R.error("输入的密码错误");
}
}
}

用户登录界面实现,如图5-4所示:

图5-4 用户登录界面
5.2.3 用户退出功能实现
用户退出功能通过在显眼处设 “退出登录” 按钮触发。前端点击后弹出确认提示,确认后带身份令牌向服务器发HTTP请求。服务器验证身份,通过后销毁会话、让令牌失效并记录用户ID、时间、IP等日志,再返回成功响应。前端收到响应,重定向用户到登录或首页,清除本地缓存。若遇网络或服务器异常,前端给出错误提示,以此保障用户安全退出,维护系统安全与数据完整[26]。


代码5-5 用户退出功能主要代码
@RequestMapping("/exit")
@ResponseBody
public R exit(String token) {
Log.info("用户退出系统并移除登录信息");
cacheHandle.removeUserCache(token);
return R.success();
}
用户退出界面实现,如图5-6所示:
图5-6 用户退出界面
5.2.4 用户信息编辑功能实现
用户信息编辑让用户能自主管理个人信息。点击 “个人信息” 弹出窗口显示现有信息,可直接修改姓名、年龄等,性别单选切换。前端先校验,检查密码、账号等是否合规,不合规就提示重改。校验通过后信息加密传服务器,服务器验身份权限,查有无冲突,正常就更新数据库并记录日志,有问题就返回错误,成功则前端刷新展示新信息[27]。
代码5-7 用户信息编辑功能主要代码
public R updInfo(Users users) {
Log.info("修改系统用户,传入参数:{}", users);
usersService.update(users);
return R.success();
}
用户编辑信息界面,如图5-8:

图5-8 用户信息编辑界面
5.2.5 用户密码修改功能实现
修改密码模块供用户更新账户密码。用户在修改页面输入原、新密码及确认新密码,前端校验新密码强度与输入一致性。加密信息经HTTPS传至服务器,服务器验证原密码、检查新密码安全策略。验证通过,更新数据库密码为加密哈希值,清除客户端会话令牌促使用户重登。操作后返回提示、记录日志,防范暴力破解与密码泄露,保障账户安全[28]。
代码5-9 用户密码修改功能主要代码
public R pwd(String token, String password) {
Log.info("修改用户密码,{}", password);
Users user = usersService.getOne(cacheHandle.getUserInfoCache(token));
user.setPassWord(password);
usersService.update(user);
return R.success();
}
用户密码修改界面,如图5-10所示:

图5-10 用户密码修改界面
5.2.6 入团申请处理功能实现
加入社团模块支持用户申请入社。用户在申请界面填信息,前端校验完整性后上传数据与目标社团ID至服务器。服务器将请求存入待审核队列并通知社长。社长在管理界面审核,选“同意”,服务器更新社团成员表,标记用户“已加入”并通知;选“拒绝”,记录原因反馈用户。模块要保障数据一致,防重复申请与状态异常,提供审核日志供追溯[29]。
代码5-11 入团申请处理功能主要代码
@GetMapping("/info")
@ResponseBody
public R getInfo(String id) {
Log.info("查找指定申请记录,ID:{}", id);
ApplyLogs applyLogs = applyLogsService.getOne(id);
return R.successData(applyLogs);
}
@GetMapping("/page")
@ResponseBody
public R getPageInfos(Long pageIndex, Long pageSize,
String token, String teamName, String userName) {
Users user = usersService.getOne(cacheHandle.getUserInfoCache(token));
if (user.getType() == 0) {
Log.info("分页查看全部申请记录,当前页码:{},"
+ "每页数据量:{}, 模糊查询,团队名称:{},用户姓名:{}", pageIndex,
pageSize, teamName, userName);
PageData page = applyLogsService.getPageInfo(pageIndex, pageSize, null, teamName, userName);
return R.successData(page);
} else if (user.getType() == 1) {
Log.info("团队管理员查看申请记录,当前页码:{},"
+ "每页数据量:{}, 模糊查询,团队名称:{},用户姓名:{}", pageIndex,
pageSize, teamName, userName);
PageData page = applyLogsService.getManPageInfo(pageIndex, pageSize, user.getId(), teamName, userName);
return R.successData(page);
} else {
Log.info("分页用户相关申请记录,当前页码:{},"
+ "每页数据量:{}, 模糊查询,团队名称:{},用户姓名:{}", pageIndex,
pageSize, teamName, userName);
PageData page = applyLogsService.getPageInfo(pageIndex, pageSize, user.getId(), teamName, null);
return R.successData(page);
}
}
@PostMapping("/add")
@ResponseBody
public R addInfo(String token, ApplyLogs applyLogs) {
Users user = usersService.getOne(cacheHandle.getUserInfoCache(token));
if(applyLogsService.isApply(user.getId(), applyLogs.getTeamId())){
applyLogs.setId(IDUtils.makeIDByCurrent());
applyLogs.setUserId(user.getId());
applyLogs.setCreateTime(DateUtils.getNowDate());
Log.info("添加申请记录,传入参数:{}", applyLogs);
applyLogsService.add(applyLogs);
return R.success();
}else{
return R.warn("申请审核中,请耐心等待");
}
}
@PostMapping("/upd")
@ResponseBody
public R updInfo(ApplyLogs applyLogs) {
Log.info("修改申请记录,传入参数:{}", applyLogs);
applyLogsService.update(applyLogs);
return R.success();
}
@PostMapping("/del")
@ResponseBody
public R delInfo(String id) {
Log.info("删除申请记录, ID:{}", id);
ApplyLogs applyLogs = applyLogsService.getOne(id);
applyLogsService.delete(applyLogs);
return R.success();
}


入团申请处理界面,如图5-12所示:

图5-12 入团申请处理界面
5.2.7 社团活动管理功能实现
社团活动管理模块负责社团活动管理。管理员在创建界面填活动信息,经前端校验后上传服务器,服务器存储信息、生成活动ID并推送给成员。成员报名时,前端校验后上传请求,服务器查名额,有名额则记录报名信息并更新剩余名额,无名额则反馈失败。设有可选审核环节,由管理员决定是否通过报名。模块保障数据一致、避免异常,提供管理日志供追溯[30]。后台主要代码:
代码5-13 社团活动管理功能主要代码
@PostMapping("/add")
@ResponseBody
public R addInfo(Activities activities) {
activities.setId(IDUtils.makeIDByCurrent());
Log.info("添加活动信息,传入参数:{}", activities);
activitiesService.add(activities);
return R.success();
}
@PostMapping("/upd")
@ResponseBody
public R updInfo(Activities activities) {
Log.info("修改活动信息,传入参数:{}", activities);
activitiesService.update(activities);
return R.success();
}
@PostMapping("/del")
@ResponseBody
public R delInfo(String id) {
Log.info("删除活动信息, ID:{}", id);
Activities activities = activitiesService.getOne(id);
activitiesService.delete(activities);
return R.success();
}

社团活动管理界面,如图5-14所示:

图5-14社团活动管理界面
5.2.8 社团成员管理功能实现
社团成员管理在社团管理页面操作。成员查询时,用户在管理区域输姓名、学号等条件,前端校验后发GET请求至服务器,服务器解析验证参数,于数据库筛选成员信息并以JSON返回;成员删除时,在查询列表旁点删除按钮,前端弹出确认提示,确认后发DELETE请求并携带成员唯一标识,服务器验证标识,无误则从数据库删除信息并记录日志,实现查询与删除功能[31]。
代码5-15 社团成员管理功能主要代码
@PostMapping("/del")
@ResponseBody
public R delInfo(String id) {
Members members = membersService.getOne(id);
if(membersService.isManager(members.getTeamId(), members.getUserId())){
return R.warn("社团管理员无法移除");
}else{
Log.info("删除成员信息, ID:{}", id);
membersService.delete(members);
return R.success();
}
}
社团成员管理界面,如图5-16所示
图5-16社团成员管理界面
5.2.9 活动报名处理功能实现
活动报名处理依托前后端协作。前端展示社团活动列表,用户点击活动进入报名页填信息提交。前端校验格式后将请求与信息发至后端。后端接收后验证用户身份权限,核查活动状态与报名规则,如是否逾期、名额是否满员等。验证通过,后端存储报名信息并返回成功响应,前端提示用户报名成功;验证失败,后端返回错误信息,前端展示提示引导用户处理[32]。
代码5-17 活动报名处理功能主要代码
@PostMapping("/add")
@ResponseBody
public R addInfo(String token, ActiveLogs activeLogs) {
Users user = usersService.getOne(cacheHandle.getUserInfoCache(token));
if(activeLogsService.isActive(activeLogs.getActiveId(), user.getId())){
activeLogs.setId(IDUtils.makeIDByCurrent());
activeLogs.setUserId(user.getId());
activeLogs.setCreateTime(DateUtils.getNowDate());
Log.info("添加报名记录,传入参数:{}", activeLogs);
activeLogsService.add(activeLogs);
return R.success();
}else{
return R.warn("该活动您已参与,请勿重复报名");
}
}
图5-18 活动报名处理界面
活动报名处理界面,如图5-18所示
5.2.10 系统用户管理功能实现
系统用户管理依赖前后端协作。前端展示管理界面,“信息查询” 区支持按账号、姓名、电话搜索,下方表格呈现用户ID、账号等信息,并有编辑、删除按钮。用户操作时,前端校验数据格式后传请求至后端。后端接请求先验权限,管理员可处理操作:添加用户查信息合规与重复;修改信息确保准确合规;删除用户校验关联数据。操作后,后端更新数据库并反馈结果,前端展示操作结果提示[33]。
代码5-19 系统用户管理功能主要代码
@PostMapping("/upd")
@ResponseBody
public R updInfo(Users users) {
Log.info("修改系统用户,传入参数:{}", users);
usersService.update(users);
return R.success();
}
@PostMapping("/del")
@ResponseBody
public R delInfo(String id) {
if(usersService.isRemove(id)){
Log.info("删除系统用户, ID:{}", id);
Users users = usersService.getOne(id);
usersService.delete(users);
return R.success();
}else{
return R.warn("用户存在关联社团,无法移除");
}
}
}
系统用户管理界面,如图5-20所示
图5-20 系统用户管理界面
5.2.11 社团类型管理功能实现
社团类型管理靠前后端协作完成。前端展示管理界面,有查询框可按类型名称等搜索,还设新增、修改、删除按钮。用户操作时,前端校验数据格式后发请求到后端。后端接收后先验证权限,仅系统管理员可操作。新增时,检查新类型名称合规且无重复;修改时,保证信息准确不重复;删除前,校验有无关联社团,有关联则禁止删除。操作结束,后端更新数据库并反馈结果,前端展示操作成败提示[34]。
代码5-21 社团类型管理功能主要代码
@PostMapping("/add")
@ResponseBody
public R addInfo(TeamTypes teamTypes) {
teamTypes.setId(IDUtils.makeIDByCurrent());
teamTypes.setCreateTime(DateUtils.getNowDate());
Log.info("添加社团类型,传入参数:{}", teamTypes);
teamTypesService.add(teamTypes);
return R.success();
}
@PostMapping("/upd")
@ResponseBody
public R updInfo(TeamTypes teamTypes) {
Log.info("修改社团类型,传入参数:{}", teamTypes);
teamTypesService.update(teamTypes);
return R.success();
}
社团类型管理界面,如图5-22所示
图5-22 社团类型管理界面
5.2.12 社团信息管理功能实现
社团信息管理功能由前后端协作完成。前端有查询区和操作按钮,用户操作时先进行数据格式校验再传请求至后端。后端验证操作者权限,新增时查信息完整合法,编辑时验信息准确合规,删除前查关联数据。操作后更新数据库,反馈结果给前端,由前端展示提示[35]。
代码5-23 社团信息管理功能主要代码
@PostMapping("/add")
@ResponseBody
public R addInfo(Teams teams) {
teams.setId(IDUtils.makeIDByCurrent());
teams.setCreateTime(DateUtils.getNowDate("yyyy-MM-dd"));
Log.info("添加社团信息,传入参数:{}", teams);
teamsService.add(teams);
return R.success();
}

社团信息管理界面,如图5-24所示

图5-24 社团信息管理功能界面
5.2.13 系统通知管理功能实现
系统通知管理依托前后端协作。前端通知管理界面可发布、编辑、删除、查询通知。用户输入信息,前端校验后传至后端。后端验权,仅管理员可操作,新增查信息完整,编辑保内容合规,删除处理关联。后端存信息入库,发布则推送给用户,反馈结果,前端显示操作提示[36]。

代码5-25 系统通知管理主要代码
@PostMapping("/add")
@ResponseBody
public R addInfo(Notices notices) {
notices.setId(IDUtils.makeIDByCurrent());
notices.setCreateTime(DateUtils.getNowDate("yyyy-MM-dd"));
if(StringUtils.isNullOrEmpty(notices.getTeamId())){
notices.setTeamId(null);
}
Log.info("添加通知记录,传入参数:{}", notices);
noticesService.add(notices);
return R.success();
}

系统通知管理界面,如图5-26所示

图5-26系统通知管理功能界面
5.2.14 缴费信息管理功能实现
缴费信息管理是社团财务管理核心,可高效处理成员缴费事务。信息展示与查询时,以表格呈现社团名、成员信息、缴费时间和金额等,通过“费用记录管理”快速访问,还能按多条件精准搜索。添加信息,点击“+”弹出窗口录入费用、社团及用户ID 等,前端校验格式,服务器验权后存入数据库并记录操作,失败则给出提示[37]。




代码5-27 缴费信息管理主要代码
@Controller
@RequestMapping("/payLogs")
public class PayLogsController extends BaseController {
protected static final Logger Log = LoggerFactory.getLogger(PayLogsController.class);
@Autowired
private CacheHandle cacheHandle;
@Autowired
private UsersService usersService;
@Autowired
private PayLogsService payLogsService;
@RequestMapping("")
public String index() {
return "pages/PayLogs";
}
@GetMapping("/info")
@ResponseBody
public R getInfo(String id) {
Log.info("查找指定缴费记录,ID:{}", id);
PayLogs payLogs = payLogsService.getOne(id);
return R.successData(payLogs);
}
@PostMapping("/add")
@ResponseBody
public R addInfo( PayLogs payLogs) {
payLogs.setId(IDUtils.makeIDByCurrent());
payLogs.setCreateTime(DateUtils.getNowDate());
Log.info("添加缴费记录,传入参数:{}", payLogs);
payLogsService.add(payLogs);
return R.success();
}
@PostMapping("/upd")
@ResponseBody
public R updInfo(PayLogs payLogs) {
Log.info("修改缴费记录,传入参数:{}", payLogs);
payLogsService.update(payLogs);
return R.success();
}
@PostMapping("/del")
@ResponseBody
public R delInfo(String id) {
Log.info("删除缴费记录, ID:{}", id);
PayLogs payLogs = payLogsService.getOne(id);
payLogsService.delete(payLogs);
return R.success();
}
缴费信息管理界面,如图5-28所示:

图5-28 缴费信息管理界面



基于视觉的实验接线智能识别技术研究(已完成)
¥600
基于yolov5来做,要能够实
现导线及导线端了的检测识别,最
终通过pyqt显示出来,以及帮我
修改论文。
NFC生成好评(已接单)
¥750
https://www.iesdouyin.com/share/video/7434725981354511657/?region=CN&mid=7434725768267189033&u_code=0&video_share_track_ver=&titleType=title&share_sign=WNwS_s8CnO1g0j64lFaPJSzUggUiGj1VU1eDKbAWS70-&share_version=850&ts=1747323214&from_aid=482431&from_ssr=1
就像视频里那样用能生成好评之类的
学生管理系统论文编写(5月31日之前交付)
¥50
需要和甲方商量,需要写论文
论文修改(已完成)
¥300
我找人给我改了一下然后他把改的代码发我了 但是我不会放进去,他能帮我整进去然后根据我系统的数据库画er图,
项目修改(已完成)
¥1000
设置三个角色,学生,老师
和管理员,学生有签到、查看
课程信息、请假等功能,教师
可以有创建编辑课程信息、行
为识别、数据统计等功能,管
理员可以有用户管理、设备管
理、系统配置等功能,教师和
学生页面可以复用,功能上做
区分。前端vue进行修改,符合论文
和我发的这段

项目技术栈:

项目需求描述:

项目接单要求:

项目如何接单:

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637