公司动态
springboot校园共享自行车管理系统09594-计算机课程设计、毕业设计
前言✨博主介绍一线全栈工程师毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码帮你把毕设做成作品集。精彩专栏 推荐订阅Java精品项目案例【3000套】Python精品项目案例【500套】uniapp/微信小程序/安卓app【800套】2026-2027届Java毕业设计优质选题汇总百个热门方向完整推荐✅2026-2027届Python毕业设计优质选题汇总百个热门方向完整推荐✅2026-2027届小程序/APP毕业设计优质选题汇总百个热门方向完整推荐✅✅获取源码请私信✅感兴趣的可以先收藏起来还有大家在毕设选题项目以及论文编写等相关问题都可以找我咨询希望帮助更多的人❤️系统实现普通用户角色功能实现租借信息管理租借信息管理功能主要是对用户的租借行为进行记录与查询。用户进入租借信息页面后,系统展示当前可租借的自行车列表,用户可以根据车辆位置、车型、评分等条件筛选目标车辆。用户选择车辆后查看详细信息,确认租借意向后提交租借申请。系统接收申请后验证用户状态,创建租借订单,更新车辆状态。用户可以查询自己的历史租借记录,查看订单详情,包括租借时间、归还时间、费用信息。租借信息管理界面评论管理评论管理功能主要是对用户的评价行为进行管理。用户完成租借订单后,可以对使用过的自行车进行评价。用户进入评价页面,选择评分星级,填写评价文字,上传评价图片。系统接收评价信息后进行内容审核,保存评价记录,更新车辆的平均评分。用户可以查看自己发表的评论,查看他人对车辆的评价。评论管理界面归还信息管理归还信息管理功能主要是对用户的归还操作进行记录。用户完成骑行后,进入归还信息提交页面,填写归还位置,上传归还照片。系统接收归还信息后验证位置的合理性,计算租借时长,生成费用明细。用户可以查看归还记录,确认归还状态,查看管理员的审核意见。归还信息管理界面意见反馈意见反馈功能主要是对用户提交的问题与建议进行收集。用户进入意见反馈页面,选择反馈类型,填写反馈内容,上传相关图片,留下联系方式。系统接收反馈信息后记录提交时间,将反馈状态设置为待处理。用户可以查询自己提交的反馈,查看处理进度,查看管理员的处理结果。意见反馈界面收藏记录管理收藏记录管理功能主要是对用户收藏的车辆进行管理。用户在浏览自行车列表时,可以将常用的车辆添加到收藏列表。用户进入收藏记录页面,查看已收藏的车辆信息,可以添加备注说明,方便后续快速查找。用户可以删除不再需要的收藏记录。收藏记录管理界面管理员角色功能实现自行车信息管理自行车信息管理功能主要是对车辆的基础数据进行维护。管理员进入自行车信息管理页面,可以添加新车辆,录入车辆编号、车型、颜色、投放位置等信息。管理员可以查询车辆列表,根据车辆状态、使用次数等条件筛选车辆。管理员可以查看车辆详情,包括当前位置、使用次数、平均评分、维护记录。管理员可以删除报废车辆的记录,查看用户对车辆的评论。自行车信息管理界面租借信息列表管理租借信息列表管理功能主要是对用户租借订单进行审核与处理。管理员进入租借信息列表页面,查看所有用户的租借订单,可以根据订单状态、用户信息、时间范围等条件筛选订单。管理员可以查看订单详情,包括租借时间、归还时间、租借位置、费用信息。管理员可以处理异常订单,删除无效订单,确认支付状态。租借信息列表管理界面归还信息管理归还信息管理功能主要是对用户归还记录进行核验与审核。管理员进入归还信息管理页面,查看所有用户的归还记录,可以根据审核状态、归还时间等条件筛选记录。管理员可以查看归还详情,包括归还位置、归还照片、位置验证状态。管理员可以审核归还信息,填写审核意见,确认归还的有效性。管理员可以处理异常归还,计算额外费用,完成订单结算。归还信息管理界面维护信息管理维护信息管理功能主要是对车辆维护任务进行调度与跟踪。管理员进入维护信息管理页面,可以创建维护任务,选择需要维护的车辆,填写维护类型、维护描述、计划维护时间。管理员可以查询维护任务列表,根据任务状态、车辆信息等条件筛选任务。管理员可以查看维护详情,包括实际维护时间、维护费用、维护结果。管理员可以删除已完成的维护记录。维护信息管理界面意见反馈管理意见反馈管理功能主要是对用户提交的反馈进行处理与回复。管理员进入意见反馈管理页面,查看所有用户的反馈信息,可以根据反馈类型、处理状态等条件筛选反馈。管理员可以查看反馈详情,包括反馈内容、反馈图片、用户联系方式。管理员可以批量审核反馈,标记反馈的有效性,填写处理结果,更新处理状态。管理员可以删除无效的反馈记录。意见反馈管理界面数据库参考CREATE TABLE praise ( praise_id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 点赞ID, user_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 点赞人, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, source_table varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源表, source_field varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源字段, source_id int(10) unsigned NOT NULL DEFAULT 0 COMMENT 来源ID, status tinyint(1) NOT NULL DEFAULT 1 COMMENT 点赞状态:1为点赞0已取消, img varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, title varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (praise_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT点赞; DROP TABLE IF EXISTS hits; CREATE TABLE hits ( hits_id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 点赞ID, user_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 点赞人, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, source_table varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源表, source_field varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源字段, source_id int(10) unsigned NOT NULL DEFAULT 0 COMMENT 来源ID, PRIMARY KEY (hits_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT用户点击; DROP TABLE IF EXISTS releasing_notices; CREATE TABLE releasing_notices ( notices_id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 通知ID, title varchar(255) DEFAULT NULL COMMENT 通知标题, type varchar(64) DEFAULT NULL COMMENT 通知方式, content varchar(255) DEFAULT NULL COMMENT 通知内容, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (notices_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8 ROW_FORMATDYNAMIC COMMENT通知发布; DROP TABLE IF EXISTS comment; CREATE TABLE comment ( comment_id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 评论ID, user_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 评论人ID, reply_to_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 回复评论ID, content longtext CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 内容, nickname varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 昵称, avatar varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 头像地址, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, source_table varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源表, source_field varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 来源字段, source_id int(10) unsigned NOT NULL DEFAULT 0 COMMENT 来源ID, hidden tinyint(4) DEFAULT 0 COMMENT 是否隐藏, sticky tinyint(4) DEFAULT 0 COMMENT 是否置顶, PRIMARY KEY (comment_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT评论; DROP TABLE IF EXISTS user; CREATE TABLE user ( user_id int(8) unsigned NOT NULL AUTO_INCREMENT COMMENT 用户ID, state smallint(1) unsigned NOT NULL DEFAULT 1 COMMENT 账户状态(1可用|2异常|3已冻结|4已注销), user_group varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 所在用户组, login_time timestamp NULL DEFAULT NULL COMMENT 上次登录时间, phone varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 手机号码, phone_state smallint(1) unsigned NOT NULL DEFAULT 0 COMMENT 手机认证(0未认证|1审核中|2已认证), username varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT COMMENT 用户名, nickname varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT COMMENT 昵称, password varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT COMMENT 密码, email varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT COMMENT 邮箱, email_state smallint(1) unsigned NOT NULL DEFAULT 0 COMMENT 邮箱认证(0未认证|1审核中|2已认证), avatar varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 头像地址, open_id varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 针对获取用户信息字段, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, vip_level varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 会员等级, vip_discount double(10,2) DEFAULT 0.00 COMMENT 会员折扣, integral int(11) DEFAULT 0 COMMENT 积分, balance double(10,2) DEFAULT 0.00 COMMENT 余额, ip varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT IPv4/IPv6地址, device_hash varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 设备指纹, emergency_name varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 紧急联系人, emergency_mobile varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 紧急联系电话, PRIMARY KEY (user_id) USING BTREE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT用户账户; CREATE TABLE bicycle_information(bicycle_information_id int(11) NOT NULL AUTO_INCREMENT COMMENT 自行车信息ID, bicycle_model varchar(64) comment 自行车型号, bicycle_pictures varchar(255) comment 自行车图片, bicycle_color varchar(64) comment 自行车颜色, bicycle_number varchar(64) comment 自行车编号, number_of_bicycles double(8,2) DEFAULT 0 comment 自行车数量, lease_price double(8,2) DEFAULT 0 comment 租赁价格, lease_deposit double(8,2) DEFAULT 0 comment 租赁押金, renting_rules longtext comment 租借规则, hits int(11) DEFAULT 0 NOT NULL comment 点击数, praise_len int(11) DEFAULT 0 NOT NULL comment 点赞数, collect_len int(11) DEFAULT 0 NOT NULL comment 收藏数, comment_len int(11) DEFAULT 0 NOT NULL comment 评论数, location_address varchar(64) DEFAULT NULL comment 当前位置, location_lng varchar(64) DEFAULT NULL comment 当前位置经度, location_lat varchar(64) DEFAULT NULL comment 当前位置纬度, rental_information_limit_times int(8) DEFAULT 0 NOT NULL comment 租借限制次数, maintenance_information_limit_times int(8) DEFAULT 0 NOT NULL comment 维护限制次数, create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, create_by int(11) DEFAULT 1 NOT NULL comment 创建用户ID, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (bicycle_information_id))ENGINEInnoDB DEFAULT CHARSETutf8mb4 comment 自行车信息;代码参考/** * 文章频道用于汇总浏览文章在不同频道下展示不同文章。(ArticleType)表控制层 */ RestController RequestMapping(article_type) public class ArticleTypeController extends BaseControllerArticleType, ArticleTypeService { /** * 服务对象 */ Autowired public ArticleTypeController(ArticleTypeService service) { setService(service); } PostMapping(/add) Transactional public MapString, Object add(HttpServletRequest request) throws IOException { ArticleType articleType JSON.parseObject(JSON.toJSONString(service.readBody(request.getReader())),ArticleType.class); articleType.setTypeId(null); if (articleType.getTypeId()!null){ throw new IllegalArgumentException(新增数据id必须为空); } if (articleType.getName() null || articleType.getName().trim().isEmpty()){ throw new IllegalArgumentException(名称不能为空); } this.addEntity(articleType); System.out.println(类型新增成功); return success(1); } PostMapping(/set) Transactional public MapString, Object set(HttpServletRequest request) throws IOException { this.service.update(this.service.readQuery(request), this.service.readConfig(request), this.service.readBody(request.getReader())); return success(1); } RequestMapping(value /del) Transactional public MapString, Object del(HttpServletRequest request) { this.service.delete(service.readQuery(request), service.readConfig(request)); return success(1); } RequestMapping(/get_list) public MapString, Object getList(HttpServletRequest request) { MapString, Object map this.service.selectToPage(service.readQuery(request), service.readConfig(request)); return success(map); /** * 维护信息(MaintenanceInformation)表控制层 * */ RestController RequestMapping(/maintenance_information) public class MaintenanceInformationController extends BaseControllerMaintenanceInformation, MaintenanceInformationService { /** * 维护信息对象 */ Autowired public MaintenanceInformationController(MaintenanceInformationService service) { setService(service); } PostMapping(/add) Transactional public MapString, Object add(HttpServletRequest request) throws IOException { MapString,Object paramMap service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry - { Object value entry.getValue(); return value instanceof String ((String) value).isEmpty(); }); MaintenanceInformation maintenance_information new MaintenanceInformation(); maintenance_information.setBicycle_model(paramMap.get(bicycle_model)null?null:String.valueOf(paramMap.get(bicycle_model))); maintenance_information.setBicycle_number(paramMap.get(bicycle_number)null?null:String.valueOf(paramMap.get(bicycle_number))); maintenance_information.setMaintenance_quantity(paramMap.get(maintenance_quantity)null?null:Double.valueOf(String.valueOf(paramMap.get(maintenance_quantity)))); maintenance_information.setMaintenance_reasons(paramMap.get(maintenance_reasons)null?null:String.valueOf(paramMap.get(maintenance_reasons))); maintenance_information.setMaintenance_remarks(paramMap.get(maintenance_remarks)null?null:String.valueOf(paramMap.get(maintenance_remarks))); maintenance_information.setExtra(paramMap.get(extra)null?null:String.valueOf(paramMap.get(extra))); maintenance_information.setSource_table(paramMap.get(source_table)null?null:String.valueOf(paramMap.get(source_table))); maintenance_information.setSource_id(paramMap.get(source_id)null?null:Integer.valueOf(String.valueOf(paramMap.get(source_id)))); maintenance_information.setSource_user_id(paramMap.get(source_user_id)null?null:Integer.valueOf(String.valueOf(paramMap.get(source_user_id)))); maintenance_information.setCreate_by(paramMap.get(create_by)null?null:Integer.valueOf(String.valueOf(paramMap.get(create_by)))); this.addEntity(maintenance_information); String sql SELECT MAX(maintenance_information_id) AS max FROM maintenance_information; Integer max service.selectBaseCount(sql); sql (SELECT count(*) as count FROM bicycle_information INNER JOIN maintenance_information ON bicycle_information.bicycle_numbermaintenance_information.bicycle_number WHERE bicycle_information.number_of_bicycles maintenance_information.maintenance_quantity AND maintenance_information.maintenance_information_idmax).replaceAll(#60;,); Integer count service.selectBaseCount(sql); if(count0){ sql delete from maintenance_information WHERE maintenance_information_id max; service.deleteBaseSql(sql); return error(30000,数量不足); } sql UPDATE bicycle_information INNER JOIN maintenance_information ON bicycle_information.bicycle_numbermaintenance_information.bicycle_number SET bicycle_information.number_of_bicycles bicycle_information.number_of_bicycles - maintenance_information.maintenance_quantity WHERE maintenance_information.maintenance_information_idmax; service.updateBaseSql(sql); System.out.println(维护信息新增成功); return success(1); } PostMapping(/set) Transactional public MapString, Object set(HttpServletRequest request) throws IOException { MapString,String queryMap service.readQuery(request); MapString,String configMap service.readConfig(request); MapString,Object paramMap service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry - { Object value entry.getValue(); return value instanceof String ((String) value).isEmpty(); }); MaintenanceInformation maintenance_information new MaintenanceInformation(); maintenance_information.setBicycle_model(paramMap.get(bicycle_model)null?null:String.valueOf(paramMap.get(bicycle_model))); maintenance_information.setBicycle_number(paramMap.get(bicycle_number)null?null:String.valueOf(paramMap.get(bicycle_number))); maintenance_information.setMaintenance_quantity(paramMap.get(maintenance_quantity)null?null:Double.valueOf(String.valueOf(paramMap.get(maintenance_quantity)))); maintenance_information.setMaintenance_reasons(paramMap.get(maintenance_reasons)null?null:String.valueOf(paramMap.get(maintenance_reasons))); maintenance_information.setMaintenance_remarks(paramMap.get(maintenance_remarks)null?null:String.valueOf(paramMap.get(maintenance_remarks))); maintenance_information.setSource_table(paramMap.get(source_table)null?null:String.valueOf(paramMap.get(source_table))); maintenance_information.setSource_id(paramMap.get(source_id)null?null:Integer.valueOf(String.valueOf(paramMap.get(source_id)))); maintenance_information.setSource_user_id(paramMap.get(source_user_id)null?null:Integer.valueOf(String.valueOf(paramMap.get(source_user_id)))); this.setEntity(queryMap,configMap,maintenance_information); System.out.println(维护信息修改成功); return success(1); /** * 归还信息(ReturnInformation)表控制层 * */ RestController RequestMapping(/return_information) public class ReturnInformationController extends BaseControllerReturnInformation, ReturnInformationService { /** * 归还信息对象 */ Autowired public ReturnInformationController(ReturnInformationService service) { setService(service); } PostMapping(/add) Transactional public MapString, Object add(HttpServletRequest request) throws IOException { MapString,Object paramMap service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry - { Object value entry.getValue(); return value instanceof String ((String) value).isEmpty(); }); ReturnInformation return_information new ReturnInformation(); return_information.setOrdinary_user(paramMap.get(ordinary_user)null?null:Integer.valueOf(String.valueOf(paramMap.get(ordinary_user)))); return_information.setUser_name(paramMap.get(user_name)null?null:String.valueOf(paramMap.get(user_name))); return_information.setUser_type(paramMap.get(user_type)null?null:String.valueOf(paramMap.get(user_type))); return_information.setBicycle_model(paramMap.get(bicycle_model)null?null:String.valueOf(paramMap.get(bicycle_model))); return_information.setBicycle_number(paramMap.get(bicycle_number)null?null:String.valueOf(paramMap.get(bicycle_number))); return_information.setLease_price(paramMap.get(lease_price)null?null:Double.valueOf(String.valueOf(paramMap.get(lease_price)))); return_information.setLease_deposit(paramMap.get(lease_deposit)null?null:Double.valueOf(String.valueOf(paramMap.get(lease_deposit)))); return_information.setQuantity_returned(paramMap.get(quantity_returned)null?null:String.valueOf(paramMap.get(quantity_returned))); if (return_information.getQuantity_returned() null || return_information.getQuantity_returned().trim().isEmpty()){ throw new IllegalArgumentException(归还数量不能为空); } if (paramMap.get(rental_time ) ! null !StringUtils.isEmpty(String.valueOf(paramMap.get(rental_time )))) { String timStr String.valueOf(paramMap.get(rental_time )); return_information.setRental_time(parseToTimestamp(timStr)); } else { return_information.setRental_time(null); } return_information.setRental_location(paramMap.get(rental_location)null?null:String.valueOf(paramMap.get(rental_location))); if (paramMap.get(return_time ) ! null !StringUtils.isEmpty(String.valueOf(paramMap.get(return_time )))) { String timStr String.valueOf(paramMap.get(return_time )); return_information.setReturn_time(parseToTimestamp(timStr)); } else { return_information.setReturn_time(null); } return_information.setPlace_of_return(paramMap.get(place_of_return)null?null:String.valueOf(paramMap.get(place_of_return))); return_information.setLease_duration(paramMap.get(lease_duration)null?null:Double.valueOf(String.valueOf(paramMap.get(lease_duration)))); return_information.setTotal_cost(paramMap.get(total_cost)null?null:Double.valueOf(String.valueOf(paramMap.get(total_cost)))); return_information.setNote_information(paramMap.get(note_information)null?null:String.valueOf(paramMap.get(note_information))); return_information.setPay_state(paramMap.get(pay_state)null?null:String.valueOf(paramMap.get(pay_state))); return_information.setPay_type(paramMap.get(pay_type)null?null:String.valueOf(paramMap.get(pay_type))); return_information.setExtra(paramMap.get(extra)null?null:String.valueOf(paramMap.get(extra))); return_information.setSource_table(paramMap.get(source_table)null?null:String.valueOf(paramMap.get(source_table))); return_information.setSource_id(paramMap.get(source_id)null?null:Integer.valueOf(String.valueOf(paramMap.get(source_id)))); return_information.setSource_user_id(paramMap.get(source_user_id)null?null:Integer.valueOf(String.valueOf(paramMap.get(source_user_id)))); return_information.setCreate_by(paramMap.get(create_by)null?null:Integer.valueOf(String.valueOf(paramMap.get(create_by)))); this.addEntity(return_information); String sql SELECT MAX(return_information_id) AS max FROM return_information; Integer max service.selectBaseCount(sql); sql UPDATE bicycle_information INNER JOIN return_information ON bicycle_information.bicycle_numberreturn_information.bicycle_number SET bicycle_information.number_of_bicycles bicycle_information.number_of_bicycles return_information.quantity_returned WHERE return_information.return_information_idmax; service.updateBaseSql(sql); System.out.println(归还信息新增成功); return success(1); } PostMapping(/set) Transactional public MapString, Object set(HttpServletRequest request) throws IOException { MapString,String queryMap service.readQuery(request); MapString,String configMap service.readConfig(request); MapString,Object paramMap service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry - { Object value entry.getValue(); return value instanceof String ((String) value).isEmpty(); }); ReturnInformation return_information new ReturnInformation(); return_information.setOrdinary_user(paramMap.get(ordinary_user)null?null:Integer.valueOf(String.valueOf(paramMap.get(ordinary_user)))); return_information.setUser_name(paramMap.get(user_name)null?null:String.valueOf(paramMap.get(user_name))); return_information.setUser_type(paramMap.get(user_type)null?null:String.valueOf(paramMap.get(user_type))); return_information.setBicycle_model(paramMap.get(bicycle_model)null?null:String.valueOf(paramMap.get(bicycle_model))); return_information.setBicycle_number(paramMap.get(bicycle_number)null?null:String.valueOf(paramMap.get(bicycle_number))); return_information.setLease_price(paramMap.get(lease_price)null?null:Double.valueOf(String.valueOf(paramMap.get(lease_price)))); return_information.setLease_deposit(paramMap.get(lease_deposit)null?null:Double.valueOf(String.valueOf(paramMap.get(lease_deposit)))); return_information.setQuantity_returned(paramMap.get(quantity_returned)null?null:String.valueOf(paramMap.get(quantity_returned))); if (paramMap.get(rental_time ) ! null !StringUtils.isEmpty(String.valueOf(paramMap.get(rental_time )))) { String timStr String.valueOf(paramMap.get(rental_time )); return_information.setRental_time(parseToTimestamp(timStr)); } else { return_information.setRental_time(null); } return_information.setRental_location(paramMap.get(rental_location)null?null:String.valueOf(paramMap.get(rental_location))); if (paramMap.get(return_time ) ! null !StringUtils.isEmpty(String.valueOf(paramMap.get(return_time )))) { String timStr String.valueOf(paramMap.get(return_time )); return_information.setReturn_time(parseToTimestamp(timStr)); } else { return_information.setReturn_time(null); } return_information.setPlace_of_return(paramMap.get(place_of_return)null?null:String.valueOf(paramMap.get(place_of_return))); return_information.setLease_duration(paramMap.get(lease_duration)null?null:Double.valueOf(String.valueOf(paramMap.get(lease_duration)))); return_information.setTotal_cost(paramMap.get(total_cost)null?null:Double.valueOf(String.valueOf(paramMap.get(total_cost)))); return_information.setNote_information(paramMap.get(note_information)null?null:String.valueOf(paramMap.get(note_information))); return_information.setPay_state(paramMap.get(pay_state)null?null:String.valueOf(paramMap.get(pay_state))); return_information.setPay_type(paramMap.get(pay_type)null?null:String.valueOf(paramMap.get(pay_type))); return_information.setSource_table(paramMap.get(source_table)null?null:String.valueOf(paramMap.get(source_table))); return_information.setSource_id(paramMap.get(source_id)null?null:Integer.valueOf(String.valueOf(paramMap.get(source_id)))); return_information.setSource_user_id(paramMap.get(source_user_id)null?null:Integer.valueOf(String.valueOf(paramMap.get(source_user_id)))); this.setEntity(queryMap,configMap,return_information); System.out.println(归还信息修改成功); return success(1); } /** * 修改支付状态 * * param id 要修改的记录ID * param newState 新的支付状态 * return 提示信息审核成功/失败 */ Transactional GetMapping(/update_pay_state) public String updatePayState(Long id, String newState) throws IOException { // 检查传入的状态是否合法 if (!newState.equals(未支付) !newState.equals(已支付)) { return 非法的支付状态; } MapString,String queryMap new HashMap(); queryMap.put(id,String.valueOf(id)); // 根据ID查找记录 ReturnInformation return_information service.findOne(queryMap); if (return_information!null) { // 更新支付状态 return_information.setPay_state(newState); this.setEntity(queryMap,new HashMap(),return_information); return 支付成功; } else { return 支付成功记录不存在;前端基于Vue.js框架构建用户界面使用HTML5、CSS3和JavaScript实现页面结构与交互逻辑通过Vue Router管理路由Vuex或Pinia维护全局状态。采用Element UI或Vant组件库快速搭建界面Axios封装HTTP请求实现与后端的数据通信。后端基于Spring Boot框架搭建遵循Controller-Service-Mapper三层架构。Controller层接收前端请求并校验参数Service层处理核心业务逻辑Mapper层通过MyBatis或MyBatis-Plus完成数据库操作。使用Spring Security或Shiro结合JWT实现用户认证与权限控制。数据库采用MySQL存储持久化数据Redis缓存热点信息以提升系统性能。开发工具使用IDEA开发后端VSCode或HBuilderX开发前端Git进行版本管理Maven和npm分别管理前后端依赖。精彩专栏 推荐订阅Java精品项目案例【3000套】Python精品项目案例【500套】uniapp/微信小程序/安卓app【800套】2026-2027届Java毕业设计优质选题汇总百个热门方向完整推荐✅2026-2027届Python毕业设计优质选题汇总百个热门方向完整推荐✅2026-2027届小程序/APP毕业设计优质选题汇总百个热门方向完整推荐✅✅获取源码请私信✅感兴趣的可以先收藏起来还有大家在毕设选题项目以及论文编写等相关问题都可以找我咨询希望帮助更多的人❤️