计算机毕业设计 基于SpringBoot的校园闲置物品交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌
🍅文末获取源码联系🍅
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
————————————————
计算机毕业设计《1000套》✌

目录

1、项目介绍及开发技术

1.1 项目介绍

1.2 开发技术

2、系统功能设计结构图

3、功能截图

4、数据库表结构设计

5、关键代码

5.1 闲置物品Controller模块 

5.2 闲置物品Service模块 

5.3 闲置物品ServiceImpl模块

5.4 闲置物品Dao模块

6、论文目录结构

7、源码获取


1、项目介绍及开发技术

1.1 项目介绍

传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装校园闲置物品交易系统软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,校园闲置物品交易系统的有效运用可以帮助管理人员准确快速地处理信息。

校园闲置物品交易系统在对开发工具的选择上也很慎重,为了便于开发实现,选择的开发工具为Eclipse,选择的数据库工具为Mysql。以此搭建开发环境实现校园闲置物品交易系统的功能。其中管理员管理用户,新闻资讯。

校园闲置物品交易系统是一款运用软件开发技术设计实现的应用系统,在信息处理上可以达到快速的目的,不管是针对数据添加,数据维护和统计,以及数据查询等处理要求,校园闲置物品交易系统都可以轻松应对。

1.2 开发技术

Java开发语言、SpringBoot、MyBatisPlus、MySQL数据库、Maven、IDEA开发工具、JDK1.8+、Vue、HTML、CSS、JS。

2、系统功能设计结构图

3、功能截图

用户信息管理:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息,还进行了对用户名称的模糊查询的条件。

 闲置物品管理:查看已发布的闲置物品数据,修改闲置物品,闲置物品作废,即可删除,还进行了对闲置物品名称的模糊查询 闲置物品信息的类型查询等等一些条件。

资讯类型管理: 根据资讯类型进行条件查询,还可以对资讯类型进行新增、修改、查询操作等等。

资讯信息管理: 根据资讯信息进行新增、修改、查询操作等等。

4、数据库表结构设计

/*
SQLyog Ultimate v11.3 (64 bit)
MySQL - 5.7.32-log : Database - xiaoyuanxianzhiwupinjiaoyi
*********************************************************************
*//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`xiaoyuanxianzhiwupinjiaoyi` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `xiaoyuanxianzhiwupinjiaoyi`;/*Table structure for table `address` */DROP TABLE IF EXISTS `address`;CREATE TABLE `address` (`id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`yonghu_id` int(20) NOT NULL COMMENT '创建用户',`address_name` varchar(200) NOT NULL COMMENT '收货人 ',`address_phone` varchar(200) NOT NULL COMMENT '电话 ',`address_dizhi` varchar(200) NOT NULL COMMENT '地址 ',`isdefault_types` int(11) NOT NULL COMMENT '是否默认地址 ',`insert_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间 show3',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='收货地址';/*Data for the table `address` */insert  into `address`(`id`,`yonghu_id`,`address_name`,`address_phone`,`address_dizhi`,`isdefault_types`,`insert_time`,`update_time`,`create_time`) values (1,3,'收货人1','17703786901','地址1',1,'2023-02-18 14:14:35','2023-02-18 14:14:35','2023-02-18 14:14:35'),(2,2,'收货人2','17703786902','地址2',1,'2023-02-18 14:14:35','2023-02-18 14:14:35','2023-02-18 14:14:35'),(3,1,'收货人3','17703786903','地址3',2,'2023-02-18 14:14:35','2023-02-18 14:54:56','2023-02-18 14:14:35'),(4,1,'收货人4','17703786904','地址4',1,'2023-02-18 14:14:35','2023-02-18 14:14:35','2023-02-18 14:14:35'),(5,1,'收货人5','17703786905','地址5',1,'2023-02-18 14:14:35','2023-02-18 14:54:49','2023-02-18 14:14:35');/*Table structure for table `cart` */DROP TABLE IF EXISTS `cart`;CREATE TABLE `cart` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`yonghu_id` int(11) DEFAULT NULL COMMENT '所属用户',`shangpin_id` int(11) DEFAULT NULL COMMENT '闲置物品',`buy_number` int(11) DEFAULT NULL COMMENT '购买数量',`create_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`insert_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='购物车';/*Data for the table `cart` *//*Table structure for table `config` */DROP TABLE IF EXISTS `config`;CREATE TABLE `config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(100) NOT NULL COMMENT '配置参数名称',`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';/*Data for the table `config` */insert  into `config`(`id`,`name`,`value`) values (1,'轮播图1','upload/config1.jpg'),(2,'轮播图2','upload/config2.jpg'),(3,'轮播图3','upload/config3.jpg');/*Table structure for table `dictionary` */DROP TABLE IF EXISTS `dictionary`;CREATE TABLE `dictionary` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`dic_code` varchar(200) DEFAULT NULL COMMENT '字段',`dic_name` varchar(200) DEFAULT NULL COMMENT '字段名',`code_index` int(11) DEFAULT NULL COMMENT '编码',`index_name` varchar(200) DEFAULT NULL COMMENT '编码名字  Search111 ',`super_id` int(11) DEFAULT NULL COMMENT '父字段id',`beizhu` varchar(200) DEFAULT NULL COMMENT '备注',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COMMENT='字典';/*Data for the table `dictionary` */insert  into `dictionary`(`id`,`dic_code`,`dic_name`,`code_index`,`index_name`,`super_id`,`beizhu`,`create_time`) values (7,'shangpin_types','闲置物品类型',1,'闲置物品类型1',NULL,NULL,'2023-02-18 14:13:19'),(8,'shangpin_types','闲置物品类型',2,'闲置物品类型2',NULL,NULL,'2023-02-18 14:13:19'),(9,'shangxia_types','是否上架',1,'上架',NULL,NULL,'2023-02-18 14:13:19'),(10,'shangxia_types','是否上架',2,'下架',NULL,NULL,'2023-02-18 14:13:19'),(11,'shangjia_xingji_types','商家信用类型',1,'一级',NULL,NULL,'2023-02-18 14:13:19'),(12,'shangjia_xingji_types','商家信用类型',2,'二级',NULL,NULL,'2023-02-18 14:13:19'),(13,'shangjia_xingji_types','商家信用类型',3,'三级',NULL,NULL,'2023-02-18 14:13:19'),(18,'isdefault_types','是否默认地址',1,'否',NULL,NULL,'2023-02-18 14:13:19'),(19,'isdefault_types','是否默认地址',2,'是',NULL,NULL,'2023-02-18 14:13:19'),(20,'shangpin_order_types','订单类型',1,'已支付',NULL,NULL,'2023-02-18 14:13:19'),(21,'shangpin_order_types','订单类型',2,'退款',NULL,NULL,'2023-02-18 14:13:19'),(22,'shangpin_order_types','订单类型',3,'已发货',NULL,NULL,'2023-02-18 14:13:19'),(23,'shangpin_order_types','订单类型',4,'已收货',NULL,NULL,'2023-02-18 14:13:19'),(24,'shangpin_order_types','订单类型',5,'已评价',NULL,NULL,'2023-02-18 14:13:19'),(25,'shangpin_order_payment_types','订单支付类型',1,'现金',NULL,NULL,'2023-02-18 14:13:19'),(26,'news_types','资讯类型',1,'资讯类型1',NULL,NULL,'2023-02-18 14:13:19'),(27,'news_types','资讯类型',2,'资讯类型2',NULL,NULL,'2023-02-18 14:13:19'),(28,'sex_types','性别类型',1,'男',NULL,NULL,'2023-02-18 14:13:19'),(29,'sex_types','性别类型',2,'女',NULL,NULL,'2023-02-18 14:13:19');/*Table structure for table `news` */DROP TABLE IF EXISTS `news`;CREATE TABLE `news` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`news_name` varchar(200) DEFAULT NULL COMMENT '公告标题  Search111 ',`news_types` int(11) DEFAULT NULL COMMENT '公告类型  Search111 ',`news_photo` varchar(200) DEFAULT NULL COMMENT '公告图片',`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',`news_content` text COMMENT '公告详情',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='公告信息';/*Data for the table `news` */insert  into `news`(`id`,`news_name`,`news_types`,`news_photo`,`insert_time`,`news_content`,`create_time`) values (1,'公告标题1',1,'upload/news1.jpg','2023-02-18 14:14:35','公告详情1','2023-02-18 14:14:35'),(2,'公告标题2',1,'upload/news2.jpg','2023-02-18 14:14:35','公告详情2','2023-02-18 14:14:35'),(3,'公告标题3',1,'upload/news3.jpg','2023-02-18 14:14:35','公告详情3','2023-02-18 14:14:35'),(4,'公告标题4',1,'upload/news4.jpg','2023-02-18 14:14:35','公告详情4','2023-02-18 14:14:35'),(5,'公告标题5',2,'upload/news5.jpg','2023-02-18 14:14:35','公告详情5','2023-02-18 14:14:35');/*Table structure for table `shangjia` */DROP TABLE IF EXISTS `shangjia`;CREATE TABLE `shangjia` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`username` varchar(200) DEFAULT NULL COMMENT '账户 ',`password` varchar(200) DEFAULT NULL COMMENT '密码 ',`shangjia_name` varchar(200) DEFAULT NULL COMMENT '商家名称 Search111 ',`shangjia_phone` varchar(200) DEFAULT NULL COMMENT '联系方式',`shangjia_email` varchar(200) DEFAULT NULL COMMENT '邮箱',`shangjia_photo` varchar(200) DEFAULT NULL COMMENT '营业执照展示 ',`shangjia_xingji_types` int(11) DEFAULT NULL COMMENT '商家信用类型',`new_money` decimal(10,2) DEFAULT NULL COMMENT '现有余额',`shangjia_content` text COMMENT '商家简介 ',`shangjia_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow ',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='商家';/*Data for the table `shangjia` */insert  into `shangjia`(`id`,`username`,`password`,`shangjia_name`,`shangjia_phone`,`shangjia_email`,`shangjia_photo`,`shangjia_xingji_types`,`new_money`,`shangjia_content`,`shangjia_delete`,`create_time`) values (1,'a1','123456','商家名称1','17703786901','1@qq.com','upload/shangjia1.jpg',2,'504.72','商家简介1',1,'2023-02-18 14:14:35'),(2,'a2','123456','商家名称2','17703786902','2@qq.com','upload/shangjia2.jpg',2,'931.45','商家简介2',1,'2023-02-18 14:14:35'),(3,'a3','123456','商家名称3','17703786903','3@qq.com','upload/shangjia3.jpg',1,'840.99','商家简介3',1,'2023-02-18 14:14:35');/*Table structure for table `shangpin` */DROP TABLE IF EXISTS `shangpin`;CREATE TABLE `shangpin` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',`shangjia_id` int(11) DEFAULT NULL COMMENT '商家',`shangpin_name` varchar(200) DEFAULT NULL COMMENT '闲置物品名称 Search111',`shangpin_photo` varchar(200) DEFAULT NULL COMMENT '闲置物品照片',`shangpin_types` int(11) DEFAULT NULL COMMENT '闲置物品类型 Search111',`shangpin_kucun_number` int(11) DEFAULT NULL COMMENT '闲置物品库存',`shangpin_old_money` decimal(10,2) DEFAULT NULL COMMENT '原价 ',`shangpin_new_money` decimal(10,2) DEFAULT NULL COMMENT '现价',`shangpin_clicknum` int(11) DEFAULT NULL COMMENT '点击次数 ',`shangxia_types` int(11) DEFAULT NULL COMMENT '是否上架 ',`shangpin_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',`shangpin_content` text COMMENT '闲置物品简介 ',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show1 show2 photoShow homeMain',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='闲置物品';/*Data for the table `shangpin` */insert  into `shangpin`(`id`,`shangjia_id`,`shangpin_name`,`shangpin_photo`,`shangpin_types`,`shangpin_kucun_number`,`shangpin_old_money`,`shangpin_new_money`,`shangpin_clicknum`,`shangxia_types`,`shangpin_delete`,`shangpin_content`,`create_time`) values (1,1,'闲置物品名称1','upload/shangpin1.jpg',2,101,'830.43','420.05',111,1,1,'闲置物品简介1','2023-02-18 14:14:35'),(2,2,'闲置物品名称2','upload/shangpin2.jpg',2,101,'941.09','277.58',170,1,1,'闲置物品简介2','2023-02-18 14:14:35'),(3,2,'闲置物品名称3','upload/shangpin3.jpg',1,103,'893.64','367.77',426,1,1,'闲置物品简介3','2023-02-18 14:14:35'),(4,3,'闲置物品名称4','upload/shangpin4.jpg',1,103,'893.37','444.53',270,1,1,'闲置物品简介4','2023-02-18 14:14:35'),(5,2,'闲置物品名称5','upload/shangpin5.jpg',2,105,'849.38','327.02',360,2,1,'闲置物品简介5','2023-02-18 14:14:35');/*Table structure for table `shangpin_commentback` */DROP TABLE IF EXISTS `shangpin_commentback`;CREATE TABLE `shangpin_commentback` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`shangpin_id` int(11) DEFAULT NULL COMMENT '闲置物品',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`shangpin_commentback_text` text COMMENT '评论内容',`insert_time` timestamp NULL DEFAULT NULL COMMENT '评论时间',`reply_text` text COMMENT '回复内容',`update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='闲置物品评论';/*Data for the table `shangpin_commentback` */insert  into `shangpin_commentback`(`id`,`shangpin_id`,`yonghu_id`,`shangpin_commentback_text`,`insert_time`,`reply_text`,`update_time`,`create_time`) values (1,1,1,'评论内容1','2023-02-18 14:14:35','回复信息1','2023-02-18 14:14:35','2023-02-18 14:14:35'),(2,2,2,'评论内容2','2023-02-18 14:14:35','回复信息2','2023-02-18 14:14:35','2023-02-18 14:14:35'),(3,3,2,'评论内容3','2023-02-18 14:14:35','回复信息3','2023-02-18 14:14:35','2023-02-18 14:14:35'),(4,4,2,'评论内容4','2023-02-18 14:14:35','回复信息4','2023-02-18 14:14:35','2023-02-18 14:14:35'),(5,5,3,'评论内容5','2023-02-18 14:14:35','回复信息5','2023-02-18 14:14:35','2023-02-18 14:14:35'),(8,2,1,'购买完成可评论111','2023-02-18 14:56:51',NULL,NULL,'2023-02-18 14:56:51');/*Table structure for table `shangpin_order` */DROP TABLE IF EXISTS `shangpin_order`;CREATE TABLE `shangpin_order` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`shangpin_order_uuid_number` varchar(200) DEFAULT NULL COMMENT '订单号',`address_id` int(11) DEFAULT NULL COMMENT '收货地址 ',`shangpin_id` int(11) DEFAULT NULL COMMENT '闲置物品',`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',`buy_number` int(11) DEFAULT NULL COMMENT '购买数量',`shangpin_order_true_price` decimal(10,2) DEFAULT NULL COMMENT '实付价格',`shangpin_order_types` int(11) DEFAULT NULL COMMENT '订单类型 Search111',`shangpin_order_payment_types` int(11) DEFAULT NULL COMMENT '支付类型',`insert_time` timestamp NULL DEFAULT NULL COMMENT '订单创建时间',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='闲置物品订单';/*Data for the table `shangpin_order` */insert  into `shangpin_order`(`id`,`shangpin_order_uuid_number`,`address_id`,`shangpin_id`,`yonghu_id`,`buy_number`,`shangpin_order_true_price`,`shangpin_order_types`,`shangpin_order_payment_types`,`insert_time`,`create_time`) values (10,'1676703316536',3,4,1,1,'444.53',1,1,'2023-02-18 14:55:17','2023-02-18 14:55:17'),(11,'1676703316536',3,2,1,1,'277.58',5,1,'2023-03-18 14:55:17','2023-02-18 14:55:17'),(12,'1676703316536',3,3,1,1,'367.77',2,1,'2023-02-18 14:55:17','2023-02-18 14:55:17');/*Table structure for table `token` */DROP TABLE IF EXISTS `token`;CREATE TABLE `token` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`userid` bigint(20) NOT NULL COMMENT '用户id',`username` varchar(100) NOT NULL COMMENT '用户名',`tablename` varchar(100) DEFAULT NULL COMMENT '表名',`role` varchar(100) DEFAULT NULL COMMENT '角色',`token` varchar(200) NOT NULL COMMENT '密码',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',`expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='token表';/*Data for the table `token` */insert  into `token`(`id`,`userid`,`username`,`tablename`,`role`,`token`,`addtime`,`expiratedtime`) values (4,1,'a1','yonghu','用户','z4rryx9sym073tz153ngrzjkpyp9a5p5','2023-02-18 14:39:07','2023-02-18 15:54:05'),(5,1,'a1','shangjia','商家','hdvc2f32jhooiy1iiewp0t4he51x9rt1','2023-02-18 14:55:32','2023-02-18 15:55:32'),(6,2,'a2','shangjia','商家','5mzf4bu69maupgpmo2r6izz324tvetqi','2023-02-18 14:55:46','2023-02-18 15:55:46'),(7,1,'admin','users','管理员','mjz54vcqra54yhrozwl6095jozm14jcx','2023-02-18 14:56:05','2023-02-18 16:00:12');/*Table structure for table `users` */DROP TABLE IF EXISTS `users`;CREATE TABLE `users` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(100) NOT NULL COMMENT '用户名',`password` varchar(100) NOT NULL COMMENT '密码',`role` varchar(100) DEFAULT '管理员' COMMENT '角色',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员';/*Data for the table `users` */insert  into `users`(`id`,`username`,`password`,`role`,`addtime`) values (1,'admin','admin','管理员','2023-02-18 14:13:20');/*Table structure for table `yonghu` */DROP TABLE IF EXISTS `yonghu`;CREATE TABLE `yonghu` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`username` varchar(200) DEFAULT NULL COMMENT '账户',`password` varchar(200) DEFAULT NULL COMMENT '密码',`yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户姓名 Search111 ',`yonghu_phone` varchar(200) DEFAULT NULL COMMENT '联系方式',`yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '身份证号',`yonghu_photo` varchar(200) DEFAULT NULL COMMENT '用户头像',`sex_types` int(11) DEFAULT NULL COMMENT '性别',`yonghu_email` varchar(200) DEFAULT NULL COMMENT '电子邮箱',`new_money` decimal(10,2) DEFAULT NULL COMMENT '余额 ',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户';/*Data for the table `yonghu` */insert  into `yonghu`(`id`,`username`,`password`,`yonghu_name`,`yonghu_phone`,`yonghu_id_number`,`yonghu_photo`,`sex_types`,`yonghu_email`,`new_money`,`create_time`) values (1,'a1','123456','用户姓名1','17703786901','410224199010102001','upload/yonghu1.jpg',2,'1@qq.com','99388.21','2023-02-18 14:14:35'),(2,'a2','123456','用户姓名2','17703786902','410224199010102002','upload/yonghu2.jpg',2,'2@qq.com','110.32','2023-02-18 14:14:35'),(3,'a3','123456','用户姓名3','17703786903','410224199010102003','upload/yonghu3.jpg',1,'3@qq.com','271.95','2023-02-18 14:14:35');/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

5、关键代码

5.1 闲置物品Controller模块 

/*** 闲置物品* 后端接口* @author 学长编程* @email* WeChat jsjbysj88
*/
@RestController
@Controller
@RequestMapping("/shangpin")
public class ShangpinController {private static final Logger logger = LoggerFactory.getLogger(ShangpinController.class);private static final String TABLE_NAME = "shangpin";@Autowiredprivate ShangpinService shangpinService;@Autowiredprivate TokenService tokenService;@Autowiredprivate DictionaryService dictionaryService;@Autowiredprivate ShangpinOrderService shangpinOrderService;//级联表非注册的service//注册表service@Autowiredprivate YonghuService yonghuService;@Autowiredprivate ShangjiaService shangjiaService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永不会进入");else if("用户".equals(role))params.put("yonghuId",request.getSession().getAttribute("userId"));else if("商家".equals(role))params.put("shangjiaId",request.getSession().getAttribute("userId"));params.put("shangpinDeleteStart",1);params.put("shangpinDeleteEnd",1);CommonUtil.checkMap(params);PageUtils page = shangpinService.queryPage(params);//字典表数据转换List<ShangpinView> list =(List<ShangpinView>)page.getList();for(ShangpinView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c, request);}return R.ok().put("data", page);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);ShangpinEntity shangpin = shangpinService.selectById(id);if(shangpin !=null){//entity转viewShangpinView view = new ShangpinView();BeanUtils.copyProperties( shangpin , view );//把实体数据重构到view中//级联表 商家//级联表ShangjiaEntity shangjia = shangjiaService.selectById(shangpin.getShangjiaId());if(shangjia != null){BeanUtils.copyProperties( shangjia , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "shangjiaId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表view.setShangjiaId(shangjia.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody ShangpinEntity shangpin, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,shangpin:{}",this.getClass().getName(),shangpin.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永远不会进入");else if("商家".equals(role))shangpin.setShangjiaId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));Wrapper<ShangpinEntity> queryWrapper = new EntityWrapper<ShangpinEntity>().eq("shangjia_id", shangpin.getShangjiaId()).eq("shangpin_name", shangpin.getShangpinName()).eq("shangpin_types", shangpin.getShangpinTypes()).eq("shangpin_kucun_number", shangpin.getShangpinKucunNumber()).eq("shangpin_clicknum", shangpin.getShangpinClicknum()).eq("shangxia_types", shangpin.getShangxiaTypes()).eq("shangpin_delete", shangpin.getShangpinDelete());logger.info("sql语句:"+queryWrapper.getSqlSegment());ShangpinEntity shangpinEntity = shangpinService.selectOne(queryWrapper);if(shangpinEntity==null){shangpin.setShangpinClicknum(1);shangpin.setShangxiaTypes(1);shangpin.setShangpinDelete(1);shangpin.setCreateTime(new Date());shangpinService.insert(shangpin);return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody ShangpinEntity shangpin, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {logger.debug("update方法:,,Controller:{},,shangpin:{}",this.getClass().getName(),shangpin.toString());ShangpinEntity oldShangpinEntity = shangpinService.selectById(shangpin.getId());//查询原先数据String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("商家".equals(role))
//            shangpin.setShangjiaId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));//根据字段查询是否有相同数据Wrapper<ShangpinEntity> queryWrapper = new EntityWrapper<ShangpinEntity>().notIn("id",shangpin.getId()).andNew().eq("shangjia_id", shangpin.getShangjiaId()).eq("shangpin_name", shangpin.getShangpinName()).eq("shangpin_types", shangpin.getShangpinTypes()).eq("shangpin_kucun_number", shangpin.getShangpinKucunNumber()).eq("shangpin_clicknum", shangpin.getShangpinClicknum()).eq("shangxia_types", shangpin.getShangxiaTypes()).eq("shangpin_delete", shangpin.getShangpinDelete());logger.info("sql语句:"+queryWrapper.getSqlSegment());ShangpinEntity shangpinEntity = shangpinService.selectOne(queryWrapper);if("".equals(shangpin.getShangpinPhoto()) || "null".equals(shangpin.getShangpinPhoto())){shangpin.setShangpinPhoto(null);}if(shangpinEntity==null){shangpinService.updateById(shangpin);//根据id更新return R.ok();}else {return R.error(511,"表中有相同数据");}}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Integer[] ids, HttpServletRequest request){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());List<ShangpinEntity> oldShangpinList =shangpinService.selectBatchIds(Arrays.asList(ids));//要删除的数据ArrayList<ShangpinEntity> list = new ArrayList<>();for(Integer id:ids){ShangpinEntity shangpinEntity = new ShangpinEntity();shangpinEntity.setId(id);shangpinEntity.setShangpinDelete(2);list.add(shangpinEntity);}if(list != null && list.size() >0){shangpinService.updateBatchById(list);}return R.ok();}/*** 批量上传*/@RequestMapping("/batchInsert")public R save( String fileName, HttpServletRequest request){logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try {List<ShangpinEntity> shangpinList = new ArrayList<>();//上传的东西Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段Date date = new Date();int lastIndexOf = fileName.lastIndexOf(".");if(lastIndexOf == -1){return R.error(511,"该文件没有后缀");}else{String suffix = fileName.substring(lastIndexOf);if(!".xls".equals(suffix)){return R.error(511,"只支持后缀为xls的excel文件");}else{URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径File file = new File(resource.getFile());if(!file.exists()){return R.error(511,"找不到上传文件,请联系管理员");}else{List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件dataList.remove(0);//删除第一行,因为第一行是提示for(List<String> data:dataList){//循环ShangpinEntity shangpinEntity = new ShangpinEntity();
//                            shangpinEntity.setShangjiaId(Integer.valueOf(data.get(0)));   //商家 要改的
//                            shangpinEntity.setShangpinName(data.get(0));                    //闲置物品名称 要改的
//                            shangpinEntity.setShangpinPhoto("");//详情和图片
//                            shangpinEntity.setShangpinTypes(Integer.valueOf(data.get(0)));   //闲置物品类型 要改的
//                            shangpinEntity.setShangpinKucunNumber(Integer.valueOf(data.get(0)));   //闲置物品库存 要改的
//                            shangpinEntity.setShangpinOldMoney(data.get(0));                    //原价 要改的
//                            shangpinEntity.setShangpinNewMoney(data.get(0));                    //现价 要改的
//                            shangpinEntity.setShangpinClicknum(Integer.valueOf(data.get(0)));   //点击次数 要改的
//                            shangpinEntity.setShangxiaTypes(Integer.valueOf(data.get(0)));   //是否上架 要改的
//                            shangpinEntity.setShangpinDelete(1);//逻辑删除字段
//                            shangpinEntity.setShangpinContent("");//详情和图片
//                            shangpinEntity.setCreateTime(date);//时间shangpinList.add(shangpinEntity);//把要查询是否重复的字段放入map中}//查询是否重复shangpinService.insertBatch(shangpinList);return R.ok();}}}}catch (Exception e){e.printStackTrace();return R.error(511,"批量插入数据异常,请联系管理员");}}/*** 个性推荐*/@IgnoreAuth@RequestMapping("/gexingtuijian")public R gexingtuijian(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("gexingtuijian方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);List<ShangpinView> returnShangpinViewList = new ArrayList<>();//查询订单Map<String, Object> params1 = new HashMap<>(params);params1.put("sort","id");params1.put("yonghuId",request.getSession().getAttribute("userId"));PageUtils pageUtils = shangpinOrderService.queryPage(params1);List<ShangpinOrderView> orderViewsList =(List<ShangpinOrderView>)pageUtils.getList();Map<Integer,Integer> typeMap=new HashMap<>();//购买的类型listfor(ShangpinOrderView orderView:orderViewsList){Integer shangpinTypes = orderView.getShangpinTypes();if(typeMap.containsKey(shangpinTypes)){typeMap.put(shangpinTypes,typeMap.get(shangpinTypes)+1);}else{typeMap.put(shangpinTypes,1);}}List<Integer> typeList = new ArrayList<>();//排序后的有序的类型 按最多到最少typeMap.entrySet().stream().sorted((o1, o2) -> o2.getValue() - o1.getValue()).forEach(e -> typeList.add(e.getKey()));//排序Integer limit = Integer.valueOf(String.valueOf(params.get("limit")));for(Integer type:typeList){Map<String, Object> params2 = new HashMap<>(params);params2.put("shangpinTypes",type);PageUtils pageUtils1 = shangpinService.queryPage(params2);List<ShangpinView> shangpinViewList =(List<ShangpinView>)pageUtils1.getList();returnShangpinViewList.addAll(shangpinViewList);if(returnShangpinViewList.size()>= limit) break;//返回的推荐数量大于要的数量 跳出循环}//正常查询出来商品,用于补全推荐缺少的数据PageUtils page = shangpinService.queryPage(params);if(returnShangpinViewList.size()<limit){//返回数量还是小于要求数量int toAddNum = limit - returnShangpinViewList.size();//要添加的数量List<ShangpinView> shangpinViewList =(List<ShangpinView>)page.getList();for(ShangpinView shangpinView:shangpinViewList){Boolean addFlag = true;for(ShangpinView returnShangpinView:returnShangpinViewList){if(returnShangpinView.getId().intValue() ==shangpinView.getId().intValue()) addFlag=false;//返回的数据中已存在此商品}if(addFlag){toAddNum=toAddNum-1;returnShangpinViewList.add(shangpinView);if(toAddNum==0) break;//够数量了}}}else {returnShangpinViewList = returnShangpinViewList.subList(0, limit);}for(ShangpinView c:returnShangpinViewList)dictionaryService.dictionaryConvert(c, request);page.setList(returnShangpinViewList);return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);PageUtils page = shangpinService.queryPage(params);//字典表数据转换List<ShangpinView> list =(List<ShangpinView>)page.getList();for(ShangpinView c:list)dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段return R.ok().put("data", page);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);ShangpinEntity shangpin = shangpinService.selectById(id);if(shangpin !=null){//点击数量加1shangpin.setShangpinClicknum(shangpin.getShangpinClicknum()+1);shangpinService.updateById(shangpin);//entity转viewShangpinView view = new ShangpinView();BeanUtils.copyProperties( shangpin , view );//把实体数据重构到view中//级联表ShangjiaEntity shangjia = shangjiaService.selectById(shangpin.getShangjiaId());if(shangjia != null){BeanUtils.copyProperties( shangjia , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段view.setShangjiaId(shangjia.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody ShangpinEntity shangpin, HttpServletRequest request){logger.debug("add方法:,,Controller:{},,shangpin:{}",this.getClass().getName(),shangpin.toString());Wrapper<ShangpinEntity> queryWrapper = new EntityWrapper<ShangpinEntity>().eq("shangjia_id", shangpin.getShangjiaId()).eq("shangpin_name", shangpin.getShangpinName()).eq("shangpin_types", shangpin.getShangpinTypes()).eq("shangpin_kucun_number", shangpin.getShangpinKucunNumber()).eq("shangpin_clicknum", shangpin.getShangpinClicknum()).eq("shangxia_types", shangpin.getShangxiaTypes()).eq("shangpin_delete", shangpin.getShangpinDelete());logger.info("sql语句:"+queryWrapper.getSqlSegment());ShangpinEntity shangpinEntity = shangpinService.selectOne(queryWrapper);if(shangpinEntity==null){shangpin.setShangpinDelete(1);shangpin.setCreateTime(new Date());shangpinService.insert(shangpin);return R.ok();}else {return R.error(511,"表中有相同数据");}}}

5.2 闲置物品Service模块 

package com.service;import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.ShangpinEntity;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import java.util.List;/*** 闲置物品 服务类*/
public interface ShangpinService extends IService<ShangpinEntity> {/*** @param params 查询参数* @return 带分页的查询出来的数据*/PageUtils queryPage(Map<String, Object> params);}

5.3 闲置物品ServiceImpl模块

package com.service.impl;import com.utils.StringUtil;
import com.service.DictionaryService;
import com.utils.ClazzDiff;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.*;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import com.utils.PageUtils;
import com.utils.Query;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import com.dao.ShangpinDao;
import com.entity.ShangpinEntity;
import com.service.ShangpinService;
import com.entity.view.ShangpinView;/*** 闲置物品 服务实现类*/
@Service("shangpinService")
@Transactional
public class ShangpinServiceImpl extends ServiceImpl<ShangpinDao, ShangpinEntity> implements ShangpinService {@Overridepublic PageUtils queryPage(Map<String,Object> params) {Page<ShangpinView> page =new Query<ShangpinView>(params).getPage();page.setRecords(baseMapper.selectListView(page,params));return new PageUtils(page);}}

5.4 闲置物品Dao模块

package com.dao;import com.entity.ShangpinEntity;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;import org.apache.ibatis.annotations.Param;
import com.entity.view.ShangpinView;/*** 闲置物品 Dao 接口** @author */
public interface ShangpinDao extends BaseMapper<ShangpinEntity> {List<ShangpinView> selectListView(Pagination page,@Param("params")Map<String,Object> params);}

6、论文目录结构

7、源码获取

感谢大家的阅读,如有不懂的问题可以评论区交流或私聊!

喜欢文章可以点赞、收藏、关注、评论

获取源码请私信

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/653960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot(ssm医院疫情防控系统 疫苗核酸预约系统Java系统

springboot(ssm医院疫情防控系统 疫苗核酸预约系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&a…

多场景建模:腾讯3MN

3MN: Three Meta Networks for Multi-Scenario and Multi-Task Learning in Online Advertising Recommender Systems 背景 推荐领域的多场景多任务学习&#xff1a;维护单模型即可节省资源也可节省人力&#xff1b;各个场景的数据共享&#xff0c;理论上面学习是更加充分的 …

微信小程序Skyline在手机端不渲染的问题之一及其解决方式

问题&#xff1a;电脑端是skyline渲染&#xff0c;手机端是webview渲染?如何解? 开发者工具 当前渲染模式&#xff1a;Skyline 当进行预览时手机端却是: 请注意看轮播图的显示情况 请注意看轮播图的显示情况 请注意看轮播图的显示情况 从轮播图上来看,手机端是webview渲染…

“有国才有家”这个观点应该怎么理解?

​《有国才有家》这首歌由马仕健作词作曲&#xff0c;蒋国佳编曲&#xff0c;刘畅混音&#xff0c;马仕健演唱。 “家是最小国&#xff0c;国是千万家”。千百年来&#xff0c;“家国”这两个词一直紧紧联系在一起。“国家好&#xff0c;民族好&#xff0c;大家才会好”&#x…

【嵌入式学习】C++QT-Day3-C++基础

笔记 见我的博客&#xff1a;https://lingjun.life/wiki/EmbeddedNote/19Cpp 作业 设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函…

Linux文件管理(下)

上上篇介绍了Linux文件管理的上部分内容&#xff0c;这次继续将 Linux文件管理的剩余部分说完。内容如下。 一、查看文件内容 1、cat 命令 1.1 输出文件内容 基本语法&#xff1a; cat 文件名称主要功能&#xff1a;正序输出文件的内容。 eg&#xff1a;输出 readme.txt文…

力扣0112——路径总和

路径总和 难度&#xff1a;简单 题目描述 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xf…

对Spring当中AOP的理解

AOP(面向切面编程)全称Aspect Oriented Programminge AOP就是把系统中重复的代码抽取出来&#xff0c;单独开发&#xff0c;在系统需要时&#xff0c;使用动态代理技术&#xff0c;在不修改源码的基础上&#xff0c;将单独开发的功能通知织入(应用)到系统中的过程&#xff0c;完…

git从clone到pr的全流程

在使用 Git 和 GitHub 进行协作时&#xff0c;从克隆&#xff08;clone&#xff09;一个仓库到创建拉取请求&#xff08;Pull Request&#xff0c;简称 PR&#xff09;的全流程通常包括以下步骤&#xff1a; 1. 克隆远程仓库 首先&#xff0c;你需要将远程仓库克隆到你的本地…

chatgpt搭建

chatgpt两步搭建大法 部署docker环境 下载docker curl -fsSL https://get.docker.com -o get-docker.sh安装docker sh get-docker.sh运行docker服务 systemctl start docker查看运行状态 systemctl status docker设置docker开机自启 systemctl enable docker部署chatgpt…

慎投!这3本期刊诚信风险高,被警告和风险低的期刊选哪个?

近年来&#xff0c;学术界对学术诚信的关注越来越多&#xff0c;期刊的学术诚信风险也日益受到关注。科睿唯安在今年三月份剔除的35本SCI期刊中&#xff0c;绝大多数涉及学术诚信问题&#xff01;据官方介绍&#xff0c;其已正式开发了一款AI工具&#xff0c;可以锁定存在学术诚…

【JavaScript 基础入门】01 编程语言和计算机基础

编程语言和计算机基础 目录 编程语言和计算机基础1 - 编程语言1.1 编程1.2 计算机语言1.3 编程语言1.4 翻译器1.5 编程语言和标记语言区别1.6 总结 2 - 计算机基础2.1 计算机组成2.2 数据存储2.3 数据存储单位2.4 程序运行 1 - 编程语言 1.1 编程 编程&#xff1a; 就是让计算…

微信小程序(二十二)获取全局实例

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.全局实例的定义位置 2.全局实例中数据的修改方法 源码&#xff1a; app.js App({//数据可以包括在第二级globalData:{userInfo:null,token:1243,userInfo:null},//globalData并不是关键词&#xff0c;数据可以…

预制菜春节大洗牌,味知香、千味央厨谁是“硬菜”?

2024年春节预制菜销量走俏&#xff0c;预制菜依然是消费者“年夜饭”上的重头戏。各大生鲜平台、电商、商超、餐饮门店都纷纷开卖春节预制菜。 预制菜赛道两大“玩家”&#xff1a;“预制菜第一股”味知香(605089.SH&#xff09;、“餐饮供应链第一股”千味央厨(001215.SZ)均在…

jrt运维命令改造

以前发布网站都是定死网站放置路径的&#xff0c;现在JRT想面向更广范围推广&#xff0c;所以就不能明确确定网站放置目录&#xff0c;为此需要改造一下jrt命令和sh来满足目录不确定情况和多个程序用不同管理命令的要求。 以前是写死的&#xff0c;现在改为调程序运行目录的sh…

在Mixamo网站上,下载的模型导入unity后没有材质怎么解决

在Mixamo网站上&#xff0c;下载的模型导入unity后没有材质 1.导入的模型没有材质2.解决方法3.提取后就有材质了 1.导入的模型没有材质 2.解决方法 选中导入的模型 > 选择提取纹理>选择你要提取到的文件夹(默认是当前文件夹)>点击 fix now 3.提取后就有材质了

【漏洞复现】中移铁通禹路由器弱口令漏洞

Nx01 产品简介 中移禹路由器支持宽带拨号、动态IP和静态IP三种上网模式,一般中国移动宽带的光猫都是智能光猫也就是光猫带路由器功能,中移禹路由器作为二级路由使用。 Nx02 漏洞描述 中移禹路由器存在默认口令(admin)&#xff0c;攻击者可利用该漏洞获取敏感信息。 Nx03 产品…

《HTML 简易速速上手小册》第7章:HTML 多媒体与嵌入内容(2024 最新版)

文章目录 7.1 在HTML中嵌入视频和音频7.1.1 基础知识7.1.2 案例 1&#xff1a;嵌入视频文件7.1.3 案例 2&#xff1a;嵌入音频文件7.1.4 案例 3&#xff1a;创建一个视频和音频混合的播放列表 7.2 使用 <iframe> 嵌入外部内容7.2.1 基础知识7.2.2 案例 1&#xff1a;嵌入…

算法训练|下一个排列

31. 下一个排列 - 力扣&#xff08;LeetCode&#xff09; 总结&#xff1a;能读懂题目的意思&#xff0c;但是不知道如何下手 题解以及解法&#xff1a; 1、我们需要将一个左边的「较小数」与一个右边的「较大数」交换&#xff0c;以能够让当前排列变大&#xff0c;从而得到…

mysql面试题合集-分布式

前言 前文介绍了MySQL基础知识&#xff0c;现在继续介绍分布式数据库相关知识。 mysql分布式面试题合集 什么是分布式数据库&#xff1f;它与集中式数据库有何不同&#xff1f; 分布式数据库是一种数据库&#xff0c;其中数据和数据库管理系统功能分布在多个相互连接的数据库…