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

news2024/9/22 19:46:08

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

目录

1、项目介绍及开发技术

1.1 项目介绍

1.2 开发技术

2、系统功能设计结构图

3、功能截图

3.1 前台功能

3.2 后台功能

4、数据库表结构设计

5、关键代码

5.1 商品Controller模块 

5.2 商品Service模块 

5.3 商品ServiceImpl模块

5.4 商品Dao模块

6、论文目录结构

7、源码获取


1、项目介绍及开发技术

1.1 项目介绍

如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统二手物品交易信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个二手物品交易管理系统,可以解决许多问题。

二手物品交易管理系统按照操作主体分为管理员和用户。管理员的功能包括收货地址管理、购物车管理、字典管理、公告管理、商家管理、商品管理、用户咨询管理、商品收藏管理、商品评价管理、商品订单管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。

二手物品交易管理系统可以提高二手物品交易信息管理问题的解决效率,优化二手物品交易信息处理流程,保证二手物品交易信息数据的安全,它是一个非常可靠,非常安全的应用程序。

1.2 开发技术

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

2、系统功能设计结构图

3、功能截图

3.1 前台功能

登录

首页

公告管理

 商家

 商品

 商品咨询

购物车

3.2 后台功能

管理员在商家管理界面中可以对界面中显示,可以对商家信息的商家状态进行查看,可以添加新的商家信息等。

 管理员在商品管理界面中查看商品种类信息,商品描述信息,新增商品信息等。

 管理员在用户咨询管理界面中新增用户咨询,可以删除用户咨询。

 管理员在公告管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。

4、数据库表结构设计

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=15 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,1,'收货人1','17703786901','地址1',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(2,1,'收货人2','17703786902','地址2',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(3,3,'收货人3','17703786903','地址3',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(4,1,'收货人4','17703786904','地址4',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(5,3,'收货人5','17703786905','地址5',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(6,1,'收货人6','17703786906','地址6',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(7,3,'收货人7','17703786907','地址7',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(8,1,'收货人8','17703786908','地址8',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(9,3,'收货人9','17703786909','地址9',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(10,1,'收货人10','17703786910','地址10',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(11,3,'收货人11','17703786911','地址11',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(12,2,'收货人12','17703786912','地址12',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(13,1,'收货人13','17703786913','地址13',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36'),(14,3,'收货人14','17703786914','地址14',1,'2023-03-23 16:07:36','2023-03-23 16:07:36','2023-03-23 16:07:36');

/*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=2 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=24 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 (1,'sex_types','性别类型',1,'男',NULL,NULL,'2023-03-23 16:06:57'),(2,'sex_types','性别类型',2,'女',NULL,NULL,'2023-03-23 16:06:57'),(3,'gonggao_types','公告类型',1,'公告类型1',NULL,NULL,'2023-03-23 16:06:57'),(4,'gonggao_types','公告类型',2,'公告类型2',NULL,NULL,'2023-03-23 16:06:57'),(5,'shangjia_xingji_types','商家信用类型',1,'一级',NULL,NULL,'2023-03-23 16:06:57'),(6,'shangjia_xingji_types','商家信用类型',2,'二级',NULL,NULL,'2023-03-23 16:06:57'),(7,'shangjia_xingji_types','商家信用类型',3,'三级',NULL,NULL,'2023-03-23 16:06:57'),(8,'shangpin_types','商品类型',1,'商品类型1',NULL,NULL,'2023-03-23 16:06:57'),(9,'shangpin_types','商品类型',2,'商品类型2',NULL,NULL,'2023-03-23 16:06:57'),(10,'shangpin_types','商品类型',3,'商品类型3',NULL,NULL,'2023-03-23 16:06:57'),(11,'shangpin_types','商品类型',4,'商品类型4',NULL,NULL,'2023-03-23 16:06:57'),(12,'isdefault_types','是否默认地址',1,'否',NULL,NULL,'2023-03-23 16:06:57'),(13,'isdefault_types','是否默认地址',2,'是',NULL,NULL,'2023-03-23 16:06:57'),(14,'shangpin_chat_types','数据类型',1,'问题',NULL,NULL,'2023-03-23 16:06:57'),(15,'shangpin_chat_types','数据类型',2,'回复',NULL,NULL,'2023-03-23 16:06:57'),(16,'zhuangtai_types','状态',1,'未回复',NULL,NULL,'2023-03-23 16:06:57'),(17,'zhuangtai_types','状态',2,'已回复',NULL,NULL,'2023-03-23 16:06:57'),(18,'shangpin_collection_types','收藏表类型',1,'收藏',NULL,NULL,'2023-03-23 16:06:57'),(19,'shangpin_order_types','订单类型',101,'已支付',NULL,NULL,'2023-03-23 16:06:57'),(20,'shangpin_order_types','订单类型',102,'已退款',NULL,NULL,'2023-03-23 16:06:57'),(21,'shangpin_order_types','订单类型',103,'已发货',NULL,NULL,'2023-03-23 16:06:57'),(22,'shangpin_order_types','订单类型',104,'已收货',NULL,NULL,'2023-03-23 16:06:57'),(23,'shangpin_order_types','订单类型',105,'已评价',NULL,NULL,'2023-03-23 16:06:57');

/*Table structure for table `gonggao` */

DROP TABLE IF EXISTS `gonggao`;

CREATE TABLE `gonggao` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
  `gonggao_name` varchar(200) DEFAULT NULL COMMENT '公告名称 Search111  ',
  `gonggao_photo` varchar(200) DEFAULT NULL COMMENT '公告图片 ',
  `gonggao_types` int(11) NOT NULL COMMENT '公告类型 Search111 ',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '公告发布时间 ',
  `gonggao_content` longtext COMMENT '公告详情 ',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告';

/*Data for the table `gonggao` */

insert  into `gonggao`(`id`,`gonggao_name`,`gonggao_photo`,`gonggao_types`,`insert_time`,`gonggao_content`,`create_time`) values (1,'公告名称1','upload/gonggao1.jpg',1,'2023-03-23 16:07:36','公告详情1','2023-03-23 16:07:36'),(2,'公告名称2','upload/gonggao2.jpg',1,'2023-03-23 16:07:36','公告详情2','2023-03-23 16:07:36'),(3,'公告名称3','upload/gonggao3.jpg',2,'2023-03-23 16:07:36','公告详情3','2023-03-23 16:07:36'),(4,'公告名称4','upload/gonggao4.jpg',1,'2023-03-23 16:07:36','公告详情4','2023-03-23 16:07:36'),(5,'公告名称5','upload/gonggao5.jpg',1,'2023-03-23 16:07:36','公告详情5','2023-03-23 16:07:36'),(6,'公告名称6','upload/gonggao6.jpg',1,'2023-03-23 16:07:36','公告详情6','2023-03-23 16:07:36'),(7,'公告名称7','upload/gonggao7.jpg',1,'2023-03-23 16:07:36','公告详情7','2023-03-23 16:07:36'),(8,'公告名称8','upload/gonggao8.jpg',1,'2023-03-23 16:07:36','公告详情8','2023-03-23 16:07:36'),(9,'公告名称9','upload/gonggao9.jpg',1,'2023-03-23 16:07:36','公告详情9','2023-03-23 16:07:36'),(10,'公告名称10','upload/gonggao10.jpg',1,'2023-03-23 16:07:36','公告详情10','2023-03-23 16:07:36'),(11,'公告名称11','upload/gonggao11.jpg',2,'2023-03-23 16:07:36','公告详情11','2023-03-23 16:07:36'),(12,'公告名称12','upload/gonggao12.jpg',1,'2023-03-23 16:07:36','公告详情12','2023-03-23 16:07:36'),(13,'公告名称13','upload/gonggao13.jpg',2,'2023-03-23 16:07:36','公告详情13','2023-03-23 16:07:36'),(14,'公告名称14','upload/gonggao14.jpg',1,'2023-03-23 16:07:36','公告详情14','2023-03-23 16:07:36');

/*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` longtext 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','e10adc3949ba59abbe56e057f20f883e','商家名称1','17703786901','1@qq.com','/upload/1679623999099.jpg',1,'221.63','<p>商家介绍1</p>',1,'2023-03-23 16:07:36'),(2,'a2','e10adc3949ba59abbe56e057f20f883e','商家名称2','17703786902','2@qq.com','upload/shangjia2.jpg',2,'558.21','商家介绍2',1,'2023-03-23 16:07:36'),(3,'a3','e10adc3949ba59abbe56e057f20f883e','商家名称3','17703786903','3@qq.com','upload/shangjia3.jpg',2,'348.17','商家介绍3',1,'2023-03-23 16:07:36');

/*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_uuid_number` varchar(200) DEFAULT NULL COMMENT '商品编号',
  `shangpin_photo` varchar(200) DEFAULT NULL COMMENT '商品照片',
  `shangpin_types` int(11) DEFAULT NULL COMMENT '商品类型 Search111',
  `shangpin_kucun_number` int(11) DEFAULT NULL COMMENT '商品库存',
  `shangpin_new_money` decimal(10,2) DEFAULT NULL COMMENT '金额 ',
  `shangpin_clicknum` int(11) DEFAULT NULL COMMENT '商品热度',
  `shangpin_content` longtext COMMENT '商品介绍 ',
  `shangpin_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间  show1 show2 photoShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='商品';

/*Data for the table `shangpin` */

insert  into `shangpin`(`id`,`shangjia_id`,`shangpin_name`,`shangpin_uuid_number`,`shangpin_photo`,`shangpin_types`,`shangpin_kucun_number`,`shangpin_new_money`,`shangpin_clicknum`,`shangpin_content`,`shangpin_delete`,`insert_time`,`create_time`) values (1,2,'商品名称1','1679558856753','upload/shangpin1.jpg',1,101,'475.63',104,'商品介绍1',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(2,2,'商品名称2','1679558856727','upload/shangpin2.jpg',1,102,'321.34',181,'商品介绍2',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(3,3,'商品名称3','1679558856799','upload/shangpin3.jpg',4,103,'36.08',392,'商品介绍3',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(4,3,'商品名称4','1679558856784','upload/shangpin4.jpg',2,104,'136.40',479,'商品介绍4',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(5,3,'商品名称5','1679558856762','upload/shangpin5.jpg',3,105,'357.65',357,'商品介绍5',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(6,3,'商品名称6','1679558856787','upload/shangpin6.jpg',4,106,'191.31',278,'商品介绍6',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(7,1,'商品名称7','1679558856775','upload/shangpin7.jpg',3,107,'434.11',266,'商品介绍7',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(8,2,'商品名称8','1679558856806','upload/shangpin8.jpg',4,108,'145.20',403,'商品介绍8',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(9,1,'商品名称9','1679558856769','upload/shangpin9.jpg',3,107,'87.04',264,'商品介绍9',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(10,2,'商品名称10','1679558856756','upload/shangpin10.jpg',2,1010,'257.70',53,'商品介绍10',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(11,2,'商品名称11','1679558856797','upload/shangpin11.jpg',4,1011,'52.89',177,'商品介绍11',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(12,2,'商品名称12','1679558856773','upload/shangpin12.jpg',2,1012,'71.55',317,'商品介绍12',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(13,3,'商品名称13','1679558856730','upload/shangpin13.jpg',3,1013,'473.88',278,'商品介绍13',1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(14,1,'商品名称14','1679558856783','upload/shangpin14.jpg',3,1014,'338.87',103,'商品介绍14',1,'2023-03-23 16:07:36','2023-03-23 16:07:36');

/*Table structure for table `shangpin_chat` */

DROP TABLE IF EXISTS `shangpin_chat`;

CREATE TABLE `shangpin_chat` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '提问人',
  `shangjia_id` int(11) DEFAULT NULL COMMENT '回答人',
  `shangpin_chat_issue_text` longtext COMMENT '问题',
  `shangpin_chat_issue_photo` varchar(200) DEFAULT NULL COMMENT '问题图片 ',
  `issue_time` timestamp NULL DEFAULT NULL COMMENT '问题时间',
  `shangpin_chat_reply_text` longtext COMMENT '回复',
  `shangpin_chat_reply_photo` varchar(200) DEFAULT NULL COMMENT '回复图片 ',
  `reply_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',
  `zhuangtai_types` int(255) DEFAULT NULL COMMENT '状态',
  `shangpin_chat_types` int(11) DEFAULT NULL COMMENT '数据类型',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '提问时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='用户咨询';

/*Data for the table `shangpin_chat` */

insert  into `shangpin_chat`(`id`,`yonghu_id`,`shangjia_id`,`shangpin_chat_issue_text`,`shangpin_chat_issue_photo`,`issue_time`,`shangpin_chat_reply_text`,`shangpin_chat_reply_photo`,`reply_time`,`zhuangtai_types`,`shangpin_chat_types`,`insert_time`,`create_time`) values (1,2,3,'问题1','upload/shangpin_chat_issue1.jpg','2023-03-23 16:07:36','回复1','upload/shangpin_chat_reply1.jpg','2023-03-23 16:07:36',2,2,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(2,1,1,'问题2','upload/shangpin_chat_issue2.jpg','2023-03-23 16:07:36','回复2','upload/shangpin_chat_reply2.jpg','2023-03-23 16:07:36',2,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(3,3,2,'问题3','upload/shangpin_chat_issue3.jpg','2023-03-23 16:07:36','回复3','upload/shangpin_chat_reply3.jpg','2023-03-23 16:07:36',2,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(4,1,2,'问题4','upload/shangpin_chat_issue4.jpg','2023-03-23 16:07:36','回复4','upload/shangpin_chat_reply4.jpg','2023-03-23 16:07:36',1,2,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(5,1,1,'问题5','upload/shangpin_chat_issue5.jpg','2023-03-23 16:07:36','回复5','upload/shangpin_chat_reply5.jpg','2023-03-23 16:07:36',2,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(6,1,1,'问题6','upload/shangpin_chat_issue6.jpg','2023-03-23 16:07:36','回复6','upload/shangpin_chat_reply6.jpg','2023-03-23 16:07:36',1,2,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(7,2,1,'问题7','upload/shangpin_chat_issue7.jpg','2023-03-23 16:07:36','回复7','upload/shangpin_chat_reply7.jpg','2023-03-23 16:07:36',1,2,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(8,3,3,'问题8','upload/shangpin_chat_issue8.jpg','2023-03-23 16:07:36','回复8','upload/shangpin_chat_reply8.jpg','2023-03-23 16:07:36',1,2,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(9,2,3,'问题9','upload/shangpin_chat_issue9.jpg','2023-03-23 16:07:36','回复9','upload/shangpin_chat_reply9.jpg','2023-03-23 16:07:36',1,2,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(10,2,1,'问题10','upload/shangpin_chat_issue10.jpg','2023-03-23 16:07:36','回复10','upload/shangpin_chat_reply10.jpg','2023-03-23 16:07:36',2,2,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(11,2,1,'问题11','upload/shangpin_chat_issue11.jpg','2023-03-23 16:07:36','回复11','upload/shangpin_chat_reply11.jpg','2023-03-23 16:07:36',1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(12,3,1,'问题12','upload/shangpin_chat_issue12.jpg','2023-03-23 16:07:36','回复12','upload/shangpin_chat_reply12.jpg','2023-03-23 16:07:36',1,2,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(13,1,2,'问题13','upload/shangpin_chat_issue13.jpg','2023-03-23 16:07:36','回复13','upload/shangpin_chat_reply13.jpg','2023-03-23 16:07:36',1,2,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(14,2,2,'问题14','upload/shangpin_chat_issue14.jpg','2023-03-23 16:07:36','回复14','upload/shangpin_chat_reply14.jpg','2023-03-23 16:07:36',1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(15,1,1,'126156',NULL,'2023-03-23 16:17:12',NULL,NULL,NULL,2,1,'2023-03-23 16:17:13','2023-03-23 16:17:13'),(16,1,1,NULL,NULL,NULL,'666',NULL,'2023-03-23 16:17:24',NULL,2,'2023-03-23 16:17:24','2023-03-23 16:17:24'),(17,1,1,'亚压实度',NULL,'2023-03-24 10:12:16',NULL,NULL,NULL,2,1,'2023-03-24 10:12:17','2023-03-24 10:12:17'),(18,1,1,NULL,NULL,NULL,'不算大大',NULL,'2023-03-24 10:14:27',NULL,2,'2023-03-24 10:14:27','2023-03-24 10:14:27');

/*Table structure for table `shangpin_collection` */

DROP TABLE IF EXISTS `shangpin_collection`;

CREATE TABLE `shangpin_collection` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `shangpin_id` int(11) DEFAULT NULL COMMENT '商品',
  `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
  `shangpin_collection_types` int(11) DEFAULT NULL COMMENT '类型',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='商品收藏';

/*Data for the table `shangpin_collection` */

insert  into `shangpin_collection`(`id`,`shangpin_id`,`yonghu_id`,`shangpin_collection_types`,`insert_time`,`create_time`) values (1,1,2,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(2,2,1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(3,3,1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(4,4,1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(5,5,1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(6,6,3,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(7,7,1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(8,8,2,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(9,9,2,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(10,10,1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(11,11,1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(12,12,1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(13,13,3,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(14,14,1,1,'2023-03-23 16:07:36','2023-03-23 16:07:36'),(15,9,1,1,'2023-03-24 10:11:56','2023-03-24 10:11:56');

/*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` longtext COMMENT '评价内容',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '评价时间',
  `reply_text` longtext COMMENT '回复内容',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 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-03-23 16:07:36','回复信息1','2023-03-23 16:07:36','2023-03-23 16:07:36'),(2,2,1,'评价内容2','2023-03-23 16:07:36','回复信息2','2023-03-23 16:07:36','2023-03-23 16:07:36'),(3,3,3,'评价内容3','2023-03-23 16:07:36','回复信息3','2023-03-23 16:07:36','2023-03-23 16:07:36'),(4,4,1,'评价内容4','2023-03-23 16:07:36','回复信息4','2023-03-23 16:07:36','2023-03-23 16:07:36'),(5,5,3,'评价内容5','2023-03-23 16:07:36','回复信息5','2023-03-23 16:07:36','2023-03-23 16:07:36'),(6,6,1,'评价内容6','2023-03-23 16:07:36','回复信息6','2023-03-23 16:07:36','2023-03-23 16:07:36'),(7,7,1,'评价内容7','2023-03-23 16:07:36','回复信息7','2023-03-23 16:07:36','2023-03-23 16:07:36'),(8,8,3,'评价内容8','2023-03-23 16:07:36','回复信息8','2023-03-23 16:07:36','2023-03-23 16:07:36'),(9,9,2,'评价内容9','2023-03-23 16:07:36','回复信息9','2023-03-23 16:07:36','2023-03-23 16:07:36'),(10,10,2,'评价内容10','2023-03-23 16:07:36','回复信息10','2023-03-23 16:07:36','2023-03-23 16:07:36'),(11,11,3,'评价内容11','2023-03-23 16:07:36','回复信息11','2023-03-23 16:07:36','2023-03-23 16:07:36'),(12,12,3,'评价内容12','2023-03-23 16:07:36','回复信息12','2023-03-23 16:07:36','2023-03-23 16:07:36'),(13,13,2,'评价内容13','2023-03-23 16:07:36','回复信息13','2023-03-23 16:07:36','2023-03-23 16:07:36'),(14,14,3,'评价内容14','2023-03-23 16:07:36','回复信息14','2023-03-23 16:07:36','2023-03-23 16:07:36'),(15,9,1,'不是','2023-03-24 10:14:09','好的','2023-03-24 10:14:17','2023-03-24 10:14:09');

/*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 '订单编号 Search111 ',
  `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_courier_name` varchar(200) DEFAULT NULL COMMENT '快递公司',
  `shangpin_order_courier_number` varchar(200) DEFAULT NULL COMMENT '快递单号',
  `shangpin_order_types` int(11) DEFAULT NULL COMMENT '订单类型 Search111 ',
  `insert_time` timestamp NULL DEFAULT NULL COMMENT '订单创建时间',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 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_courier_name`,`shangpin_order_courier_number`,`shangpin_order_types`,`insert_time`,`create_time`) values (1,'1679623947195',1,9,1,1,'87.04',NULL,NULL,102,'2023-03-24 10:12:27','2023-03-24 10:12:27'),(2,'1679623970357',1,9,1,2,'174.08','321','1032132231',105,'2023-03-24 10:12:50','2023-03-24 10:12:50');

/*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=4 DEFAULT CHARSET=utf8 COMMENT='token表';

/*Data for the table `token` */

insert  into `token`(`id`,`userid`,`username`,`tablename`,`role`,`token`,`addtime`,`expiratedtime`) values (1,1,'a1','yonghu','用户','oeyl26x0cz8mk02mnaayoh1fi5tgckwp','2023-03-23 16:10:14','2023-03-24 11:10:29'),(2,1,'admin','users','管理员','xl4jvuk12cetsdb250zsbtrzeehz4dbh','2023-03-23 16:14:10','2023-03-24 11:14:57'),(3,1,'a1','shangjia','商家','n58palo16a6pnjn57xa417bu23bpqyxr','2023-03-23 16:16:34','2023-03-24 11:13:06');

/*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','21232f297a57a5a743894a0e4a801fc3','管理员','2023-03-23 16:06:57');

/*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 '性别',
  `new_money` decimal(10,2) DEFAULT NULL COMMENT '余额 ',
  `yonghu_email` varchar(200) 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`,`new_money`,`yonghu_email`,`create_time`) values (1,'a1','e10adc3949ba59abbe56e057f20f883e','用户姓名1','17703786901','410224199010102001','upload/yonghu1.jpg',1,'633.14','1@qq.com','2023-03-23 16:07:36'),(2,'a2','e10adc3949ba59abbe56e057f20f883e','用户姓名2','17703786902','410224199010102002','upload/yonghu2.jpg',2,'219.76','2@qq.com','2023-03-23 16:07:36'),(3,'a3','e10adc3949ba59abbe56e057f20f883e','用户姓名3','17703786903','410224199010102003','upload/yonghu3.jpg',2,'761.45','3@qq.com','2023-03-23 16:07:36');

/*!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("/shangpinChat")
public class ShangpinChatController {
    private static final Logger logger = LoggerFactory.getLogger(ShangpinChatController.class);

    private static final String TABLE_NAME = "shangpinChat";

    @Autowired
    private ShangpinChatService shangpinChatService;

    @Autowired
    private TokenService tokenService;

    @Autowired
    private AddressService addressService;//收货地址
    @Autowired
    private CartService cartService;//购物车
    @Autowired
    private DictionaryService dictionaryService;//字典
    @Autowired
    private GonggaoService gonggaoService;//公告
    @Autowired
    private ShangjiaService shangjiaService;//商家
    @Autowired
    private ShangpinService shangpinService;//商品
    @Autowired
    private ShangpinCollectionService shangpinCollectionService;//商品收藏
    @Autowired
    private ShangpinCommentbackService shangpinCommentbackService;//商品评价
    @Autowired
    private ShangpinOrderService shangpinOrderService;//商品订单
    @Autowired
    private YonghuService yonghuService;//用户
    @Autowired
    private UsersService usersService;//管理员


    /**
    * 后端列表
    */
    @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"));
        CommonUtil.checkMap(params);
        PageUtils page = shangpinChatService.queryPage(params);

        //字典表数据转换
        List<ShangpinChatView> list =(List<ShangpinChatView>)page.getList();
        for(ShangpinChatView 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);
        ShangpinChatEntity shangpinChat = shangpinChatService.selectById(id);
        if(shangpinChat !=null){
            //entity转view
            ShangpinChatView view = new ShangpinChatView();
            BeanUtils.copyProperties( shangpinChat , view );//把实体数据重构到view中
            //级联表 用户
            //级联表
            YonghuEntity yonghu = yonghuService.selectById(shangpinChat.getYonghuId());
            if(yonghu != null){
            BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "yonghuId"
, "shangjiaId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
            view.setYonghuId(yonghu.getId());
            }
            //级联表 商家
            //级联表
            ShangjiaEntity shangjia = shangjiaService.selectById(shangpinChat.getShangjiaId());
            if(shangjia != null){
            BeanUtils.copyProperties( shangjia , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "yonghuId"
, "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 ShangpinChatEntity shangpinChat, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,shangpinChat:{}",this.getClass().getName(),shangpinChat.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");
        else if("用户".equals(role))
            shangpinChat.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
        else if("商家".equals(role))
            shangpinChat.setShangjiaId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<ShangpinChatEntity> queryWrapper = new EntityWrapper<ShangpinChatEntity>()
            .eq("yonghu_id", shangpinChat.getYonghuId())
            .eq("shangjia_id", shangpinChat.getShangjiaId())
            .eq("zhuangtai_types", shangpinChat.getZhuangtaiTypes())
            .eq("shangpin_chat_types", shangpinChat.getShangpinChatTypes())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ShangpinChatEntity shangpinChatEntity = shangpinChatService.selectOne(queryWrapper);
        if(shangpinChatEntity==null){
            shangpinChat.setInsertTime(new Date());
            shangpinChat.setCreateTime(new Date());
            shangpinChatService.insert(shangpinChat);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody ShangpinChatEntity shangpinChat, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        logger.debug("update方法:,,Controller:{},,shangpinChat:{}",this.getClass().getName(),shangpinChat.toString());
        ShangpinChatEntity oldShangpinChatEntity = shangpinChatService.selectById(shangpinChat.getId());//查询原先数据

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("用户".equals(role))
//            shangpinChat.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
//        else if("商家".equals(role))
//            shangpinChat.setShangjiaId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
        if("".equals(shangpinChat.getShangpinChatIssuePhoto()) || "null".equals(shangpinChat.getShangpinChatIssuePhoto())){
                shangpinChat.setShangpinChatIssuePhoto(null);
        }
        if("".equals(shangpinChat.getShangpinChatReplyPhoto()) || "null".equals(shangpinChat.getShangpinChatReplyPhoto())){
                shangpinChat.setShangpinChatReplyPhoto(null);
        }

            shangpinChatService.updateById(shangpinChat);//根据id更新
            return R.ok();
    }


    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        List<ShangpinChatEntity> oldShangpinChatList =shangpinChatService.selectBatchIds(Arrays.asList(ids));//要删除的数据
        shangpinChatService.deleteBatchIds(Arrays.asList(ids));

        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<ShangpinChatEntity> shangpinChatList = 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){
                            //循环
                            ShangpinChatEntity shangpinChatEntity = new ShangpinChatEntity();
//                            shangpinChatEntity.setYonghuId(Integer.valueOf(data.get(0)));   //提问人 要改的
//                            shangpinChatEntity.setShangjiaId(Integer.valueOf(data.get(0)));   //回答人 要改的
//                            shangpinChatEntity.setShangpinChatIssueText(data.get(0));                    //问题 要改的
//                            shangpinChatEntity.setShangpinChatIssuePhoto("");//详情和图片
//                            shangpinChatEntity.setIssueTime(sdf.parse(data.get(0)));          //问题时间 要改的
//                            shangpinChatEntity.setShangpinChatReplyText(data.get(0));                    //回复 要改的
//                            shangpinChatEntity.setShangpinChatReplyPhoto("");//详情和图片
//                            shangpinChatEntity.setReplyTime(sdf.parse(data.get(0)));          //回复时间 要改的
//                            shangpinChatEntity.setZhuangtaiTypes(Integer.valueOf(data.get(0)));   //状态 要改的
//                            shangpinChatEntity.setShangpinChatTypes(Integer.valueOf(data.get(0)));   //数据类型 要改的
//                            shangpinChatEntity.setInsertTime(date);//时间
//                            shangpinChatEntity.setCreateTime(date);//时间
                            shangpinChatList.add(shangpinChatEntity);


                            //把要查询是否重复的字段放入map中
                        }

                        //查询是否重复
                        shangpinChatService.insertBatch(shangpinChatList);
                        return R.ok();
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            return R.error(511,"批量插入数据异常,请联系管理员");
        }
    }

    /**
    * 前端列表
    */
    @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 = shangpinChatService.queryPage(params);

        //字典表数据转换
        List<ShangpinChatView> list =(List<ShangpinChatView>)page.getList();
        for(ShangpinChatView 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);
        ShangpinChatEntity shangpinChat = shangpinChatService.selectById(id);
            if(shangpinChat !=null){


                //entity转view
                ShangpinChatView view = new ShangpinChatView();
                BeanUtils.copyProperties( shangpinChat , view );//把实体数据重构到view中

                //级联表
                    YonghuEntity yonghu = yonghuService.selectById(shangpinChat.getYonghuId());
                if(yonghu != null){
                    BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYonghuId(yonghu.getId());
                }
                //级联表
                    ShangjiaEntity shangjia = shangjiaService.selectById(shangpinChat.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 ShangpinChatEntity shangpinChat, HttpServletRequest request){
        logger.debug("add方法:,,Controller:{},,shangpinChat:{}",this.getClass().getName(),shangpinChat.toString());
        Wrapper<ShangpinChatEntity> queryWrapper = new EntityWrapper<ShangpinChatEntity>()
            .eq("yonghu_id", shangpinChat.getYonghuId())
            .eq("shangjia_id", shangpinChat.getShangjiaId())
            .eq("shangpin_chat_issue_text", shangpinChat.getShangpinChatIssueText())
            .eq("shangpin_chat_reply_text", shangpinChat.getShangpinChatReplyText())
            .eq("zhuangtai_types", shangpinChat.getZhuangtaiTypes())
            .eq("shangpin_chat_types", shangpinChat.getShangpinChatTypes())
//            .notIn("shangpin_chat_types", new Integer[]{102})
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ShangpinChatEntity shangpinChatEntity = shangpinChatService.selectOne(queryWrapper);
        if(shangpinChatEntity==null){
            shangpinChat.setInsertTime(new Date());
            shangpinChat.setCreateTime(new Date());
        shangpinChatService.insert(shangpinChat);

            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

}

5.2 商品Service模块 

/**
 * 用户咨询 服务类
 */
public interface ShangpinChatService extends IService<ShangpinChatEntity> {

    /**
    * @param params 查询参数
    * @return 带分页的查询出来的数据
    */
     PageUtils queryPage(Map<String, Object> params);

}

5.3 商品ServiceImpl模块

**
 * 用户咨询 服务实现类
 */
@Service("shangpinChatService")
@Transactional
public class ShangpinChatServiceImpl extends ServiceImpl<ShangpinChatDao, ShangpinChatEntity> implements ShangpinChatService {

    @Override
    public PageUtils queryPage(Map<String,Object> params) {
        Page<ShangpinChatView> page =new Query<ShangpinChatView>(params).getPage();
        page.setRecords(baseMapper.selectListView(page,params));
        return new PageUtils(page);
    }
}

5.4 商品Dao模块

/**
 * 用户咨询 Dao 接口
 *
 * @author 
 */
public interface ShangpinChatDao extends BaseMapper<ShangpinChatEntity> {

   List<ShangpinChatView> selectListView(Pagination page,@Param("params")Map<String,Object> params);

}

6、论文目录结构

7、源码获取

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

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

获取源码请私信

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

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

相关文章

【一文带你掌握Java中方法定义、调用和重载的技巧】

方法的定义和调用 方法的定义 方法&#xff08;method&#xff09;是一段用于实现特定功能的代码块&#xff0c;类似于其他编程语言中的函数&#xff08;function&#xff09;。方法被用来定义类或类的实例的行为特征和功能实现。方法是类和对象行为特征的抽象表示。方法与面向…

『PyTorch』张量和函数之gather()函数

文章目录 PyTorch中的选择函数gather()函数 参考文献 PyTorch中的选择函数 gather()函数 import torch a torch.arange(1, 16).reshape(5, 3) """ result: a [[1, 2, 3],[4, 5, 6],[7, 8, 9],[10, 11, 12],[13, 14, 15]] """# 定义两个index…

圆通速递查询,圆通速递单号查询,一键复制查询好的物流信息

批量查询圆通速递单号的物流信息&#xff0c;并将查询好的物流信息一键复制出来。 所需工具&#xff1a; 一个【快递批量查询高手】软件 圆通速递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;第一次使用的朋友记得先注册&…

002.Java实现两数相加

题意 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示两数之和的新链表。 示例 输入&#xff1a;l1[2,4,3],l2[5,6,4] 输出…

ChatGPT4 Excel 高级复杂函数案例实践

案例需求: 需求中需要判断多个条件进行操作。 可以让ChatGPT来实现这样的操作。 Prompt:有一个表格B2单元格为入职日期,C2单元格为员工等级(A,B,C),D2单元格为满意度分数(1,2,3,4,5)请给入职一年以上,员工等级为A级并且满意度在3分以上的人发4000元奖金,给入…

普冉(PUYA)单片机开发笔记(10): I2C通信-配置从机

概述 I2C 常用在某些型号的传感器和 MCU 的连接&#xff0c;速率要求不高&#xff0c;距离很短&#xff0c;使用简便。 I2C的通信基础知识请参见《基础通信协议之 IIC详细讲解 - 知乎》。 PY32F003 可以复用出一个 I2C 接口&#xff08;PA3&#xff1a;SCL&#xff0c;PA2&a…

计算机组成原理-函数调用的汇编表示(call和ret指令 访问栈帧 切换栈帧 传递参数和返回值)

文章目录 call指令和ret指令高级语言的函数调用x86汇编语言的函数调用call ret指令小结其他问题 如何访问栈帧函数调用栈在内存中的位置标记栈帧范围&#xff1a;EBP ESP寄存器访问栈帧数据&#xff1a;push pop指令访问栈帧数据&#xff1a;mov指令小结 如何切换栈帧函数返回时…

深度学习记录--矩阵维数

如何识别矩阵的维数 如下图 矩阵的行列数容易在前向和后向传播过程中弄错&#xff0c;故写这篇文章来提醒易错点 顺便起到日后查表改错的作用 本文仅作本人查询参考(摘自吴恩达深度学习笔记)

Flink系列之:SQL提示

Flink系列之&#xff1a;SQL提示 一、动态表选项二、语法三、例子四、查询提示五、句法六、加入提示七、播送八、随机散列九、随机合并十、嵌套循环十一、LOOKUP十二、进一步说明十三、故障排除十四、连接提示中的冲突案例十五、什么是查询块 SQL 提示可以与 SQL 语句一起使用来…

MyBatis Plus 大数据量查询优化

大数据量操作的场景大致如下&#xff1a; 数据迁移 数据导出 批量处理数据 在实际工作中当指定查询数据过大时&#xff0c;我们一般使用分页查询的方式一页一页的将数据放到内存处理。但有些情况不需要分页的方式查询数据或分很大一页查询数据时&#xff0c;如果一下子将数…

【单元测试】Junit 4--junit4 内置Rule

1.0 Rules ​ Rules允许非常灵活地添加或重新定义一个测试类中每个测试方法的行为。测试人员可以重复使用或扩展下面提供的Rules之一&#xff0c;或编写自己的Rules。 1.1 TestName ​ TestName Rule使当前的测试名称在测试方法中可用。用于在测试执行过程中获取测试方法名称…

MATLAB 计算两片点云间的最小距离(2种方法) (39)

MATLAB 计算两片点云间的最小距离 (39) 一、算法介绍二、算法实现1.常规计算方法2.基于KD树的快速计算一、算法介绍 假设我们现在有两片点云 1 和 2 ,需要计算二者之间的最小距离,这里提供两种计算方法,分别是常规计算和基于KD树近邻搜索的快速计算方法,使用的测试数据如…

Java 分布式框架 —— Dubbo 快速入门

1 分布式系统中的相关概念 1.1 大型互联网项目架构目标 传统项目和互联网项目 传统项目&#xff1a;例如 OA、HR、CRM 等&#xff0c;服务对象为&#xff1a;企业员工 互联网项目&#xff1a;天猫、微信、百度等&#xff0c;服务对象为&#xff1a;全体网民 互联网项目特点…

2 使用postman进行接口测试

上一篇&#xff1a;1 接口测试介绍-CSDN博客 拿到开发提供的接口文档后&#xff0c;结合需求文档开始做接口测试用例设计&#xff0c;下面用最常见也最简单的注册功能介绍整个流程。 说明&#xff1a;以演示接口测试流程为主&#xff0c;不对演示功能做详细的测试&#xff0c;…

JVM学习之JVM概述

JVM的整体结构 Hotspot VM是目前市面上高性能虚拟机代表作之一 它采用解释器与即时编译器并存的架构 在今天&#xff0c;Java程序的运行性能已经达到了可以和C/C程序一较高下的地步 Java代码执行流程 具体图为 JVM架构模型 Java编译器输入的指令流基本上是一种基于 栈的指令…

drf入门规范

一 Web应用模式 在开发Web应用中&#xff0c;有两种应用模式&#xff1a; 1.1 前后端不分离 1.2 前后端分离 二 API接口 为了在团队内部形成共识、防止个人习惯差异引起的混乱&#xff0c;我们需要找到一种大家都觉得很好的接口实现规范&#xff0c;而且这种规范能够让后端写…

【MySQL内置函数】

目录&#xff1a; 前言一、日期函数获取日期获取时间获取时间戳在日期上增加时间在日期上减去时间计算两个日期相差多少天当前时间案例&#xff1a;留言板 二、字符串函数查看字符串字符集字符串连接查找字符串大小写转换子串提取字符串长度字符串替换字符串比较消除左右空格案…

79.55 Gbps!已经初步测得VMWare ESXi 6.7的vSwitch转发性能

正文共&#xff1a;1234 字 14 图&#xff0c;预估阅读时间&#xff1a;1 分钟 在前面的文章中&#xff0c;我们提到了测试主要分为3个内容&#xff1a; 一是测试iperf和iperf3两个工具的实用性&#xff0c;目前的结论是iperf可以支持多CPU、多线程&#xff0c;整体测试结果比i…

Linux——进程创建与进程终止

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、进程创建1、fork函数初识2、fork函数返回值3、写时拷贝4、fork常规用法5、fork调用失败的…

Java从properties文件读取内容

例如&#xff0c;项目文件布局&#xff1a; test.properties文件的内容为&#xff1a; name thb pass 223355主类文件&#xff1a; package com.thb;import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java…