前言
✨博主介绍:一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码,帮你把毕设做成作品集。👍👍
👇精彩专栏 推荐订阅👇
海量实战库,源码任你选! 坐拥Java项目2000+套
海量实战库,源码任你选! 坐拥Python项目1000+套
海量实战库,源码任你选! 坐拥小程序/app项目500+套
✅获取源码请私信✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️
系统实现
前台用户功能实现
用户注册模块
用户在访问系统首页后,可选择点击“注册”按钮,进入相应的注册页面。在该页面中,用户需完成所有注册信息必填项,点击页面下方的“注册”按钮。系统在接收到表单数据并完成验证后,若信息无误,将提示注册成功。
注册界面
用户登录模块
用户在登录界面点击“登录”按钮后,需输入账号、密码以及验证码以完成身份验证操作。系统在前端会自动对所输入信息进行有效性校验。若校验通过且信息无误,则系统将允许用户成功登录并跳转至相应的功能界面;反之页面会弹出相应的提示信息,提醒用户重新输入或检查相关信息的正确性。
登录界面
前台首页模块
前台首页模块作为系统的重要入口,主要承担着信息展示与功能引导的核心功能。该模块不仅提供了系统搜索功能和主要功能模块的导航菜单,还集成了平台轮播图展示、游玩攻略、剧本信息推荐等板块,用户可以快速了解系统的主要服务内容,并便捷地进入相应功能界面进行操作。
首页界面
剧本信息模块
该模块主要以列表形式集中展示系统发布的各类剧本信息,提供了关键字搜索、筛选和排序等搜索功能。用户可以点击列表中某个剧本进入详情页面查看该剧本的详细内容,支持进行点赞、收藏和发表评论等操作。此外,普通用户可购买剧本,用户点击详情下方的“购买”进入页面确认信息后点击“提交”即可跳转支付页面,支持通过微信、支付宝等多种支付方式完成在线支付。
剧本信息界面
主持信息模块
该模块主要以列表形式集中展示系统发布的主持人信息,提供了关键字搜索及排序等搜索功能。用户可以点击列表中某个主持人进入详情页面查看该主持的详细内容,支持进行点赞、收藏及发表评论等操作。此外,普通用户点击详情页面右下角的客服头像可进入聊天页面跟主持人进行在线沟通。
主持信息界面
普通用户个人中心模块
个人中心模块主要为普通用户提供包括个人首页、剧本购买、组局信息、组局加入、投诉反馈、收藏记录、点赞记录及评论管理这些子功能,普通用户可根据自己的需求实现相应管理操作。
具体包括:用户可查看剧本购买详情及提交组局信息,并追踪其审核进度;可查看自己发起的组局信息详情及用户评论;可提交投诉反馈信息并跟踪处理结果;可查看组局加入详情。此外,可查看或取消收藏/点赞记录,并对已发表的评论进行集中管理。
普通用户个人中心界面
主持用户个人中心管理模块
个人中心模块主要为主持用户提供包括个人首页、主持信息、组局信息、收入信息、违规申诉、佣金提现、收藏记录、点赞记录及评论管理这些子功能,主持用户可根据自己的需求实现相应管理操作。
具体包括:支持发布主持信息,并能对已有信息进行查询、详情查看(含用户评论)、重置及删除等操作。可查看普通用户提交的组局详情并进行审核,同意组局后可以获得佣金;可添加主持信息,及查看已有主持信息的详情及用户评论,并可进行查询、重置和删除等操作;可进行佣金提现;可提交违规申诉信息并跟踪处理结果。同时支持查看或删除个人的收藏与点赞记录,并对已发表的评论进行集中管理。
主持用户个人中心界面
管理员功能实现
系统用户模块
管理员可查看和审核新注册的主持用户信息,支持单条或批量审核;可以对所有用户(普通用户、主持用户、管理员)信息执行增删改查等操作,涵盖基本信息维护、账户状态调整等功能。
系统用户界面
剧本信息管理模块
管理员可添加剧本信息,可以查看已有剧本的详情及其用户评论,并可进行查询、重置和删除等操作。以剧本信息列表为例。
剧本信息列表界面
组局信息管理模块
管理员可查看组局信息列表中某个组局信息的详情及其评论;点击“佣金”进入页面填写收入金额及收入备注等信息后点击“提交”即可生成收入信息;并支持查询、修改与删除等操作。
组局信息管理界面
投诉反馈管理模块
管理员可添加投诉反馈信息,可查看普通用户提交的投诉反馈详情并审核,支持执行单个或批量审核操作;此外,可对已有的投诉反馈进行查询、重置和删除等操作。
投诉反馈列表界面
违规申诉管理模块
管理员可添加违规申诉信息,可查看主持用户提交的违规申诉详情和在线佐证材料,支持执行单个或批量审核操作;此外,可对已有的违规申诉进行查询、重置和删除等操作。
违规申诉管理界面
系统管理模块
在该模块,管理员主要对系统轮播图及敏感词进行统一管理:支持新增、更换或删除轮播图,以灵活管控首页展示内容;同时提供对敏感词的增删改查功能。
轮播图管理界面
资源管理模块
该模块为管理员提供全面的通知信息发布与管理功能。管理员可在系统中新增通知公告,支持填写标题和正文内容;对已发布的通知公告可进行查询、编辑或删除操作。
通知公告管理界面
资源管理模块
在该模块,管理员主要对游玩攻略及攻略分类进行统一管理。管理员可以自定义设置攻略分类;可以发布新的攻略内容、更新已有的攻略详情以确保护内容的准确性、以及删除不再适用或过时的攻略信息,从而实现对游玩攻略的有序管理。
游玩攻略界面
数据库参考
CREATE TABLE `sensitive_vocabulary` ( `sensitive_vocabulary_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '敏感词汇ID', `sensitive_vocabulary` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '敏感词汇', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`sensitive_vocabulary_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='敏感词汇'; DROP TABLE IF EXISTS `user_group`; CREATE TABLE `user_group` ( `group_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户组ID', `display` smallint(4) unsigned NOT NULL DEFAULT '100' COMMENT '显示顺序', `name` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '名称', `description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL 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', `register` smallint(1) unsigned 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 '更新时间', PRIMARY KEY (`group_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户组'; DROP TABLE IF EXISTS `article`; CREATE TABLE `article` ( `article_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '文章id', `title` varchar(125) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '标题', `type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '文章分类', `hits` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '点击数', `praise_len` int(11) 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` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '来源', `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '来源地址', `tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '标签', `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '正文', `img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '封面图', `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '文章描述', PRIMARY KEY (`article_id`,`title`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='文章'; DROP TABLE IF EXISTS `access_token`; CREATE TABLE `access_token` ( `token_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '临时访问牌ID', `token` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '临时访问牌', `info` text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '信息', `maxage` int(2) NOT NULL DEFAULT '2' COMMENT '最大寿命:默认2小时', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用户编号', PRIMARY KEY (`token_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='登陆访问时长'; DROP TABLE IF EXISTS `code_token`; CREATE TABLE `code_token` ( `code_token_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '验证码ID', `token` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL COMMENT '令牌', `code` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci DEFAULT NULL COMMENT '验证码', `expire_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 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 (`code_token_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=COMPACT COMMENT='验证码'; DROP TABLE IF EXISTS `collect`; CREATE TABLE `collect` ( `collect_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '收藏ID', `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '收藏人ID', `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', `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '标题', `img` 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 '更新时间', PRIMARY KEY (`collect_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='收藏'; DROP TABLE IF EXISTS `customer_chat_group`; CREATE TABLE `customer_chat_group` ( `customer_chat_group_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '沟通群组ID', `member` text NOT NULL COMMENT '成员信息', `read_state` tinyint(4) NOT NULL DEFAULT '0' COMMENT '已读状态,0=未读,1=已读', `last_read_time` timestamp NULL DEFAULT NULL COMMENT '最后阅读时间', `unread_count` int(11) 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 '更新时间', PRIMARY KEY (`customer_chat_group_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='在线沟通群组表'; DROP TABLE IF EXISTS `notice`; CREATE TABLE `notice` ( `notice_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '公告ID', `title` varchar(125) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '标题', `content` longtext CHARACTER SET utf8 COLLATE utf8_general_ci 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 (`notice_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='公告';代码参考
/** * 佣金提现对象 */ @Autowired public CommissionWithdrawalController(CommissionWithdrawalService service) { setService(service); } @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { Map<String,Object> paramMap = service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry -> { Object value = entry.getValue(); return value instanceof String && ((String) value).isEmpty(); }); CommissionWithdrawal commission_withdrawal = new CommissionWithdrawal(); commission_withdrawal.setHost_user(paramMap.get("host_user")==null?null:Integer.valueOf(String.valueOf(paramMap.get("host_user")))); commission_withdrawal.setHost_name(paramMap.get("host_name")==null?null:String.valueOf(paramMap.get("host_name"))); if (paramMap.get("withdrawal_time" ) != null && !StringUtils.isEmpty(String.valueOf(paramMap.get("withdrawal_time" )))) { String timStr = String.valueOf(paramMap.get("withdrawal_time" )); commission_withdrawal.setWithdrawal_time(parseToTimestamp(timStr)); } else { commission_withdrawal.setWithdrawal_time(null); } commission_withdrawal.setWithdrawal_amount(paramMap.get("withdrawal_amount")==null?null:Double.valueOf(String.valueOf(paramMap.get("withdrawal_amount")))); commission_withdrawal.setWithdrawal_note(paramMap.get("withdrawal_note")==null?null:String.valueOf(paramMap.get("withdrawal_note"))); commission_withdrawal.setCreate_by(paramMap.get("create_by")==null?null:Integer.valueOf(String.valueOf(paramMap.get("create_by")))); this.addEntity(commission_withdrawal); String sql = "SELECT MAX(commission_withdrawal_id) AS max FROM "+"`commission_withdrawal`"; Integer max = service.selectBaseCount(sql); sql = ("SELECT count(*) as count FROM `host_user` INNER JOIN `commission_withdrawal` ON host_user.host_name=commission_withdrawal.host_name WHERE host_user.presuser_iding_commission < commission_withdrawal.withdrawal_amount AND commission_withdrawal.commission_withdrawal_id="+max).replaceAll("<","<"); Integer count = service.selectBaseCount(sql); if(count>0){ sql = "delete from "+"commission_withdrawal"+" WHERE "+"commission_withdrawal_id"+" ="+max; service.deleteBaseSql(sql); return error(30000,"金额不足"); } sql = "UPDATE `host_user` INNER JOIN `commission_withdrawal` ON host_user.host_name=commission_withdrawal.host_name SET host_user.presuser_iding_commission= host_user.presuser_iding_commission - commission_withdrawal.withdrawal_amount WHERE commission_withdrawal.commission_withdrawal_id="+max; service.updateBaseSql(sql); System.out.println("佣金提现新增成功"); return success(1); } @PostMapping("/set") @Transactional public Map<String, Object> set(HttpServletRequest request) throws IOException { Map<String,String> queryMap = service.readQuery(request); Map<String,String> configMap = service.readConfig(request); Map<String,Object> paramMap = service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry -> { Object value = entry.getValue(); return value instanceof String && ((String) value).isEmpty(); }); CommissionWithdrawal commission_withdrawal = new CommissionWithdrawal(); commission_withdrawal.setHost_user(paramMap.get("host_user")==null?null:Integer.valueOf(String.valueOf(paramMap.get("host_user")))); commission_withdrawal.setHost_name(paramMap.get("host_name")==null?null:String.valueOf(paramMap.get("host_name"))); if (paramMap.get("withdrawal_time" ) != null && !StringUtils.isEmpty(String.valueOf(paramMap.get("withdrawal_time" )))) { String timStr = String.valueOf(paramMap.get("withdrawal_time" )); commission_withdrawal.setWithdrawal_time(parseToTimestamp(timStr)); } else { commission_withdrawal.setWithdrawal_time(null); } commission_withdrawal.setWithdrawal_amount(paramMap.get("withdrawal_amount")==null?null:Double.valueOf(String.valueOf(paramMap.get("withdrawal_amount")))); commission_withdrawal.setWithdrawal_note(paramMap.get("withdrawal_note")==null?null:String.valueOf(paramMap.get("withdrawal_note"))); this.setEntity(queryMap,configMap,commission_withdrawal); System.out.println("佣金提现修改成功"); return success(1); /** * 组局信息对象 */ @Autowired public GroupBureauInformationController(GroupBureauInformationService service) { setService(service); } @PostMapping("/add") @Transactional public Map<String, Object> add(HttpServletRequest request) throws IOException { Map<String,Object> paramMap = service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry -> { Object value = entry.getValue(); return value instanceof String && ((String) value).isEmpty(); }); GroupBureauInformation group_bureau_information = new GroupBureauInformation(); group_bureau_information.setRegular_user(paramMap.get("regular_user")==null?null:Integer.valueOf(String.valueOf(paramMap.get("regular_user")))); group_bureau_information.setUser_name(paramMap.get("user_name")==null?null:String.valueOf(paramMap.get("user_name"))); group_bureau_information.setScript_title(paramMap.get("script_title")==null?null:String.valueOf(paramMap.get("script_title"))); group_bureau_information.setScript_cover(paramMap.get("script_cover")==null?null:String.valueOf(paramMap.get("script_cover"))); group_bureau_information.setScript_type(paramMap.get("script_type")==null?null:String.valueOf(paramMap.get("script_type"))); group_bureau_information.setGroup_bureau_no(paramMap.get("group_bureau_no")==null?null:String.valueOf(paramMap.get("group_bureau_no"))); group_bureau_information.setNumber_of_cast_members(paramMap.get("number_of_cast_members")==null?null:Double.valueOf(String.valueOf(paramMap.get("number_of_cast_members")))); group_bureau_information.setGroup_bureau_number(paramMap.get("group_bureau_number")==null?null:Double.valueOf(String.valueOf(paramMap.get("group_bureau_number")))); group_bureau_information.setScript_duration(paramMap.get("script_duration")==null?null:Double.valueOf(String.valueOf(paramMap.get("script_duration")))); group_bureau_information.setHost_user(paramMap.get("host_user")==null?null:Integer.valueOf(String.valueOf(paramMap.get("host_user")))); group_bureau_information.setHost_name(paramMap.get("host_name")==null?null:String.valueOf(paramMap.get("host_name"))); if (paramMap.get("appointment_time" ) != null && !StringUtils.isEmpty(String.valueOf(paramMap.get("appointment_time" )))) { String timStr = String.valueOf(paramMap.get("appointment_time" )); group_bureau_information.setAppointment_time(parseToTimestamp(timStr)); } else { group_bureau_information.setAppointment_time(null); } group_bureau_information.setParticipation_requirements(paramMap.get("participation_requirements")==null?null:String.valueOf(paramMap.get("participation_requirements"))); group_bureau_information.setComment_len(paramMap.get("comment_len")==null?null:Integer.valueOf(String.valueOf(paramMap.get("comment_len")))); group_bureau_information.setExamine_state(paramMap.get("examine_state")==null?null:String.valueOf(paramMap.get("examine_state"))); group_bureau_information.setExamine_reply(paramMap.get("examine_reply")==null?null:String.valueOf(paramMap.get("examine_reply"))); group_bureau_information.setGroup_bureau_join_limit_times(paramMap.get("group_bureau_join_limit_times")==null?null:String.valueOf(paramMap.get("group_bureau_join_limit_times"))); group_bureau_information.setIncome_information_limit_times(paramMap.get("income_information_limit_times")==null?null:String.valueOf(paramMap.get("income_information_limit_times"))); group_bureau_information.setExtra(paramMap.get("extra")==null?null:String.valueOf(paramMap.get("extra"))); group_bureau_information.setSource_table(paramMap.get("source_table")==null?null:String.valueOf(paramMap.get("source_table"))); group_bureau_information.setSource_id(paramMap.get("source_id")==null?null:Integer.valueOf(String.valueOf(paramMap.get("source_id")))); group_bureau_information.setSource_user_id(paramMap.get("source_user_id")==null?null:Integer.valueOf(String.valueOf(paramMap.get("source_user_id")))); group_bureau_information.setCreate_by(paramMap.get("create_by")==null?null:Integer.valueOf(String.valueOf(paramMap.get("create_by")))); this.addEntity(group_bureau_information); System.out.println("组局信息新增成功"); return success(1); } @PostMapping("/set") @Transactional public Map<String, Object> set(HttpServletRequest request) throws IOException { Map<String,String> queryMap = service.readQuery(request); Map<String,String> configMap = service.readConfig(request); Map<String,Object> paramMap = service.readBody(request.getReader()); paramMap.entrySet().removeIf(entry -> { Object value = entry.getValue(); return value instanceof String && ((String) value).isEmpty(); }); GroupBureauInformation group_bureau_information = new GroupBureauInformation(); group_bureau_information.setRegular_user(paramMap.get("regular_user")==null?null:Integer.valueOf(String.valueOf(paramMap.get("regular_user")))); group_bureau_information.setUser_name(paramMap.get("user_name")==null?null:String.valueOf(paramMap.get("user_name"))); group_bureau_information.setScript_title(paramMap.get("script_title")==null?null:String.valueOf(paramMap.get("script_title"))); group_bureau_information.setScript_cover(paramMap.get("script_cover")==null?null:String.valueOf(paramMap.get("script_cover"))); group_bureau_information.setScript_type(paramMap.get("script_type")==null?null:String.valueOf(paramMap.get("script_type"))); group_bureau_information.setGroup_bureau_no(paramMap.get("group_bureau_no")==null?null:String.valueOf(paramMap.get("group_bureau_no"))); group_bureau_information.setNumber_of_cast_members(paramMap.get("number_of_cast_members")==null?null:Double.valueOf(String.valueOf(paramMap.get("number_of_cast_members")))); group_bureau_information.setGroup_bureau_number(paramMap.get("group_bureau_number")==null?null:Double.valueOf(String.valueOf(paramMap.get("group_bureau_number")))); group_bureau_information.setScript_duration(paramMap.get("script_duration")==null?null:Double.valueOf(String.valueOf(paramMap.get("script_duration")))); group_bureau_information.setHost_user(paramMap.get("host_user")==null?null:Integer.valueOf(String.valueOf(paramMap.get("host_user")))); group_bureau_information.setHost_name(paramMap.get("host_name")==null?null:String.valueOf(paramMap.get("host_name"))); if (paramMap.get("appointment_time" ) != null && !StringUtils.isEmpty(String.valueOf(paramMap.get("appointment_time" )))) { String timStr = String.valueOf(paramMap.get("appointment_time" )); group_bureau_information.setAppointment_time(parseToTimestamp(timStr)); } else { group_bureau_information.setAppointment_time(null); } group_bureau_information.setParticipation_requirements(paramMap.get("participation_requirements")==null?null:String.valueOf(paramMap.get("participation_requirements"))); group_bureau_information.setComment_len(paramMap.get("comment_len")==null?null:Integer.valueOf(String.valueOf(paramMap.get("comment_len")))); group_bureau_information.setExamine_state(paramMap.get("examine_state")==null?null:String.valueOf(paramMap.get("examine_state"))); group_bureau_information.setExamine_reply(paramMap.get("examine_reply")==null?null:String.valueOf(paramMap.get("examine_reply"))); group_bureau_information.setGroup_bureau_join_limit_times(paramMap.get("group_bureau_join_limit_times")==null?null:String.valueOf(paramMap.get("group_bureau_join_limit_times"))); group_bureau_information.setIncome_information_limit_times(paramMap.get("income_information_limit_times")==null?null:String.valueOf(paramMap.get("income_information_limit_times"))); group_bureau_information.setSource_table(paramMap.get("source_table")==null?null:String.valueOf(paramMap.get("source_table"))); group_bureau_information.setSource_id(paramMap.get("source_id")==null?null:Integer.valueOf(String.valueOf(paramMap.get("source_id")))); group_bureau_information.setSource_user_id(paramMap.get("source_user_id")==null?null:Integer.valueOf(String.valueOf(paramMap.get("source_user_id")))); this.setEntity(queryMap,configMap,group_bureau_information); System.out.println("组局信息修改成功"); return success(1); } /** * 修改审核状态 * * @param id 要修改的记录ID * @param newState 新的审核状态 * @return 提示信息:审核成功/失败 */ @Transactional @GetMapping("/update_examine_state") public String updateExamineState(Long id, String newState) throws IOException { // 检查传入的状态是否合法 if (!newState.equals("未审核") && !newState.equals("已通过") && !newState.equals("未通过")) { return "非法的审核状态"; } Map<String,String> queryMap = new HashMap<>(); queryMap.put("id",String.valueOf(id)); // 根据ID查找记录 GroupBureauInformation group_bureau_information = service.findOne(queryMap); if (group_bureau_information!=null) { // 更新审核状态 group_bureau_information.setExamine_state(newState); this.setEntity(queryMap,new HashMap<>(),group_bureau_information); return "审核成功"; } else { return "审核失败:记录不存在";前端:基于Vue.js框架构建用户界面,使用HTML5、CSS3和JavaScript实现页面结构与交互逻辑,通过Vue Router管理路由,Vuex或Pinia维护全局状态。采用Element UI或Vant组件库快速搭建界面,Axios封装HTTP请求实现与后端的数据通信。
后端:基于SpringBoot框架搭建,遵循Controller-Service-Mapper三层架构。Controller层接收前
端请求并校验参数,Service层处理核心业务逻辑,Mapper层通过MyBatis或MyBatis-Plus完成数据库操作。使用Spring Security或Shiro结合JWT实现用户认证与权限控制。
数据库:采用MySQL存储持久化数据,Redis缓存热点信息以提升系统性能。
开发工具:使用IDEA开发后端,VSCode或HBuilderX开发前端,Git进行版本管理,Maven和npm
分别管理前后端依赖。
源码获取
私信联系我即可~
大家点赞、收藏、关注、评论啦
👇精彩专栏 推荐订阅👇
海量实战库,源码任你选! 坐拥Java项目2000+套
海量实战库,源码任你选! 坐拥Python项目1000+套
海量实战库,源码任你选! 坐拥小程序/app项目500+套
✅获取源码请私信✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️