(Source code attached) springboot campus second-hand platform computer graduation set 12903

Table of contents

Summary

1Introduction _

1.1 Research significance

1.2 Development status

1. 3Introduction to springboot framework

1. 4 Paper structure and chapter arrangement

2 Campus second-hand platform system analysis 

2.1 Feasibility analysis

2.1.1 Technical feasibility analysis

2.1.2 Economic feasibility analysis

2.1.3 Legal feasibility analysis

2.2 System function analysis

2.2.1 Functional analysis

2.2.2 Non-functional analysis

2.3 System use case analysis

2.4 System process analysis

2.4.1 Data flow

2.4.2Business process

2.5 Summary of this chapter

3 Overall design of campus second-hand platform

3.1 System function module design

3.1.1 Overall functional module design

3.1.2 User module design

3.1.3 Comment management module design

3.1.4 Product management module design

3.2 Database design

3.2.1 Database conceptual structure design

3.3.2 Database logical structure design

3.4 Summary of this chapter

4 Detailed design and implementation of campus second-hand platform 

4.1 User function module

4.1.1 Front page interface

4.1.2 User registration interface

4.1.3 User login interface

4.1.4 Product information interface

4.1.5 Purchase interface

4.1. 6 Transaction information interface

4.2 Manager function module

4.2.1 Bulletin board management interface

4.2.2 Resource management interface

4.2.3 System user management interface

4.2.4 Product information management interface

4.2. 5Purchase  order management interface

5 system test

5.1 System test cases

5.2 System test results

in conclusion

references

Acknowledgments  

Summary

In the information society, there is a need for targeted ways to obtain information, but the expansion of the ways is basically the direction that people strive for. Due to deviations in the perspective, people can often obtain different types of information, which is also the most difficult problem for technology to overcome. subject. In view of the problems such as campus second-hand platform, we conduct research and analysis on how to use computer campus second-hand platform, and then develop and design a campus second-hand platform to solve the problem.

The main functional modules of the campus second-hand platform include product information, product classification, purchase orders and other information maintenance. It adopts an object-oriented development model for software development and hardware installation, which can well meet the needs of actual use and improve the corresponding For software construction and program coding, MySQL is used as the main storage unit for background data, and Java technology and Ajax technology are used for coding and development of business systems to realize all functions of this system. This report first analyzes the background, role, and significance of the research, laying the foundation for the rationality of the research work. Analyze the various needs and technical issues of the campus second-hand platform, prove the necessity and technical feasibility of the system, and then give a basic introduction to the technical software and design ideas that need to be used in the design system, and finally realize the campus second-hand platform and Deployment runs using it.

Keywords : springboot; campus second-hand platform; MySQL

Abstract

In the information society, there is a need for targeted information acquisition channels, but the expansion of channels is basically the direction of people's efforts. Due to the deviation in perspective, people often can obtain different types of information, which is also the most difficult topic for technology to overcome. To address issues such as campus second-hand platforms, research and analyze how to use computer campus second-hand platforms, and then develop and design a campus second-hand platform to solve the problem.

The main functional modules of the campus second-hand platform include maintenance of product information, product classification, purchase orders, and other information. It adopts an object-oriented development model for software development and hardware installation, which can effectively meet practical usage needs. It improves the corresponding software installation and program coding work, adopts MySQL as the main storage unit for backend data, and adopts Java technology Ajax technology is used for coding and developing business systems, achieving all the functions of this system. This report first analyzes the background, role, and significance of the research, laying the foundation for the rationality of the research work. Analyze the various requirements and technical issues of the campus second-hand platform, prove the necessity and technical feasibility of the system, and then provide a basic introduction to the technical software and design ideas required for designing the system. Finally, implement the campus second-hand platform and deploy it for operation.

Keywords:springboot; Campus second-hand platform; MySQL

1Introduction _

1.1 Research significance

With the development of society, low-carbon economy has become the theme of today's world development, and the recycling and recycling of items have become the focus of social attention. The survey found that with the increase in the purchasing power of college students and the acceleration of product upgrades, there are a large number of idle items on university campuses, such as books, clothing, electronic products, etc. However, there is generally a lack of convenient and effective ways to dispose of these idle items, resulting in a lot of unnecessary waste. Therefore, building a second-hand goods trading website based on the Internet provides a good idea to solve this problem, and it also caters to the characteristics of contemporary college students who are keen on the Internet. Because the campus second-hand goods trading website specifically serves college students, compared with traditional second-hand goods trading websites, it has the characteristics of clearer market segmentation and more targeted services. It is easier to gain recognition from the student group and is conducive to cultivating students' low-carbon attitudes. Awareness and social responsibility not only have extensive economic benefits, but also have far-reaching social benefits.

As a new type of e-commerce, campus e-commerce refers to serving teachers and students within the scope of the campus, relying on the campus network, and being independently operated by students to meet the needs of units, enterprises or individuals on campus for business, work and study. , a business form needed for activities in all aspects of life, with the characteristics of small scope, high credibility, and strong operability. And according to the different product demand types of consumers, a variety of campus e-commerce websites can be established. So we want to build a small second-hand goods trading website to meet the needs of school students for second-hand goods.

1.2 Development status

Compared with other countries, our country's software industry is relatively backward and started relatively late in informatization construction. However, with the continuous development of our country's economy and the continuous improvement of network technology, our country is also constantly exploring the software industry. Some results have also been obtained. my country's software industry has developed rapidly. More and more software systems have appeared in people's sight, and they have gradually changed the way people live and work. However, with regard to the construction of informatization, compared with many developed countries, due to the backwardness of informatization and insufficient funds, China's campus second-hand platform development is still relatively backward. Therefore, we must continue to work hard to explore and strive to develop a A practical information-based campus second-hand platform to realize the informatization of the campus second-hand platform. Therefore, this topic takes the campus second-hand platform as an example, with the purpose of developing a practical campus second-hand platform.

The campus second-hand platform uses Java language, springboot framework, and MySQL database support to jointly complete the development of the website system, realizing the informatization of the campus second-hand platform. Users can have a very good campus second-hand platform experience, and administrators can also use the The system performs more convenient management operations and realizes the previously specified plan.

1.3Introduction to springboot framework

The Spring framework is an open source application framework on the Java platform that provides a container with control inversion characteristics. Although the Spring framework itself has no restrictions on the programming model, its frequent use in Java applications made it so popular that it was later used as a supplement or even a substitute for the EJB (Enterprise JavaBeans) model. The Spring framework provides a series of solutions for development, such as utilizing the core features of inversion of control and implementing inversion of control through dependency injection to implement containerization of the managed object life cycle, using aspect-oriented programming for declarative transaction management, and integration A variety of persistence technologies manage data access, provide a large number of excellent web frameworks to facilitate development, and so on. The Spring framework has the Inversion of Control (IOC) feature. IOC is designed to facilitate project maintenance and testing. It provides a method for unified configuration and management of Java objects through Java's reflection mechanism. The Spring framework uses containers to manage the life cycle of objects. The container can configure objects by scanning XML files or specific Java annotations on classes. Developers can obtain objects through dependency lookup or dependency injection. Spring framework has aspect-oriented programming(AOP) framework, the Spring AOP framework is based on the proxy mode and is configurable at runtime; the AOP framework mainly modularizes cross-concerns between modules. The AOP framework of the Spring framework only provides basic AOP features. Although it cannot be compared with the AspectJ framework, it can also meet basic needs through integration with AspectJ. Transaction management, remote access and other functions under the Spring framework can be realized by using Spring AOP technology. Spring's transaction management framework brings an abstraction mechanism to the Java platform that enables local and global transactions, as well as nested transactions, to work with savepoints and in almost any environment on the Java platform. Spring integrates a variety of transaction templates. The system can configure transactions through transaction templates, XML or Java annotations, and the transaction framework integrates functions such as messaging and caching. Spring's data access framework solves common difficulties developers encounter when using databases in their applications. It not only provides support for all popular data access frameworks such as Java: JDBC, iBATS/MyBATIs, Hibernate, Java Data Objects (JDO), ApacheOJB and ApacheCayne, but can also be used with Spring's transaction management to provide data access. Flexible abstraction. The Spring framework did not initially intend to build its own Web MVC framework . During the development process, its developers believed that the separation between the presentation layer and the request processing layer of the existing StrutsWeb framework, as well as between the request processing layer and the model, was not enough, so they created SpringMVC.

1.4 Paper structure and chapter arrangement

This article is divided into six chapters, and the chapters are arranged as follows:

The first chapter is the introduction. This chapter provides a detailed discussion and explanation of the background, status and significance of the system designed and implemented, and also briefly introduces the structure of the overall framework of the paper.

Chapter 2 is system requirements analysis. The main work done in this chapter is to analyze the technical, economic and operational feasibility of the system; it also analyzes the overall functional requirements and use cases of the system.

Chapter 3 is the design of the system, which mainly designs the functional structure of the system, and analyzes the conceptual structure and physical structure design of the system database.

Chapter 4 is about the implementation of the system. According to the division of system functions, the front-end ordinary user functions and back-end administrator functions that the system needs to implement are analyzed and explained respectively.

Chapter 5: System Testing. Mainly test some interfaces of the system and test the main functions

Chapter 6: Summary.

2 Analysis of campus second-hand platform system

System requirements analysis is a key link in system development. It plays a connecting role in the design and implementation of the system. System requirements analysis is to dig out the requirements of the system that needs to be built. If the analysis is accurate, it can accurately solve the problems encountered in reality. If the analysis is not in place, it will affect the implementation of the later system. Requirements analysis also accounts for a very large proportion of the excellence of a system. If the requirements analysis is not in place, the subsequent system design will be a design that deviates from navigation.

2.1 Feasibility analysis

System feasibility analysis is a discussion of system feasibility. When discussing the feasibility of the system, we mainly analyze it from the technical feasibility, economic feasibility and legal feasibility. If the three levels are passed, we think the system is relatively feasible.

2.1.1 Technical feasibility analysis

The campus second-hand platform uses the mysql database for storage and development tools such as IDEA and Tomcat are used in development , which can bring a lot of convenience to our writing work. The system is developed using the springboot framework, which makes the system more scalable and maintainable, reduces Java configuration code, and simplifies programming code. Currently, the springboot framework is also one of the frameworks chosen by many companies.

2.1.2 Economic feasibility analysis

From the economic feasibility point of view, the project requires a development PC during the development phase, and a web server and database server during the production phase. From an economic point of view, a personal PC is not too much of a problem. In terms of later system deployment and production, the investment in servers will not be too high, and it is relatively feasible from an economic perspective.

2.1.3 Legal feasibility analysis

From a legal perspective, the system has no other legal issues with third parties . The system database uses the Mysql open source community database and the framework uses the open source springboot. System information and related content are also legal. The source code is managed using git open source, so it is legally feasible.

2.2 System function analysis

2.2.1 Functional analysis

I divide the campus second-hand platform into three parts: administrator module, seller user module and ordinary user module.

Ordinary user management module:

(1) User registration and login: Visitors can enter the system at any time and browse the information in the system. However, if they want to operate product information, they must have an account in this system. If they do not have an account, they can register as a user to perform related operations. , at the same time, users can also control personal information and operation information through the "My Account" button.

(2) Check the homepage information of the campus second-hand platform: The homepage information of the campus second-hand platform includes bulletin board, transaction information, transaction information, product information, and mine (my account, my collection, personal center).

(3) Transaction information: When the user clicks the "Transaction Information" menu button, all transaction information published by the administrator in the background will be displayed. You can view details, collect, like, comment, etc.;

(4) Bulletin Board: Users can view the bulletin board posted by the backend administrator. When they find the bulletin board they want to know about, they can enter to view the detailed introduction.

(5) Product information: When the user clicks the "Product Information" menu button, all product information released by the administrator in the background will be displayed. It supports searching for product information by keywords. Select the required product information and click to enter. Detailed introduction interface of product information. In the detailed interface, you can view the product name, product type, product specifications, transaction location, seller user, seller name and other information of the product information. At the same time, you can purchase, like, collect, and comment;

(6) Purchase: When the user wants to make a purchase on the product information details interface, click the "Purchase" button below, and it will jump to the purchase information filling interface. Enter the purchase information according to the interface prompts, click the "Submit" button, and the purchase is completed. finished;

(7) My Account: When the user clicks the "My" button in the upper right corner, a submenu will appear. Clicking "My Account" can set and manage personal information, passwords for logging into the system, and information collected by oneself;

Administrator management module:

Administrators include administrators and ordinary users. Administrators have the highest authority and can add, delete, modify, and check information on campus second-hand platforms.

(1) Carousel image: The administrator can click the "Carousel image" menu to add, delete, modify, and check the carousel image displayed on the home page.

(2) Bulletin Board: Administrators can click on the "Bulletin Board" menu to view all bulletin board information in the system. Administrators can modify existing bulletin boards, add new bulletin boards, or delete bulletin boards.

(3) System user: When the administrator clicks the "System User" menu, the three submenus of administrator, seller user and ordinary user will be displayed. The administrator can add, delete, modify and check the information of these three roles;

(4)Resource management: When the administrator clicks the "Resource Management " menu, the two submenus of transaction information and information classification will be displayed . The administrator can update and maintain the functions involved in these two departments to better serve front-end users;

(5) Module management: Under the "Module Management" menu, all information operated by ordinary users and seller users in the system can be managed, including product classification, product information, and purchase orders.

2.2.2 Non-functional analysis

The non-functional requirements of the campus second-hand platform include the security, reliability, performance, scalability, etc. of the campus second-hand platform. The details can be expressed in the following 3-1 table:

Table 3-1 Non-functional requirements table for campus second-hand platform

safety

Mainly refers to the installation of the campus second-hand platform database, the use of the database and the setting of passwords must comply with standards.

reliability

Reliability means that the campus second-hand platform can operate according to the instructions submitted by the user. After testing, the reliability is more than 90%.

performance

Performance is a necessary condition for campus second-hand platforms to occupy the market, so it is best to have good performance.

Scalability

For example, the database reserves multiple attributes, such as the use of interfaces, to ensure the non-functional requirements of the system.

Ease of use

Users only need to follow the page display content of the campus second-hand platform and operate.

maintainability

The maintainability of campus second-hand platform development is very important. After testing, there is no problem with maintainability.

2.3 System use case analysis

The complete UML use case diagrams of the campus second-hand platform are Figure 2-1 and Figure 2-2 respectively.

Figure 2-1 is a use case display of ordinary user roles.

Figure 2-1 Use case diagram of ordinary user roles on the campus second-hand platform

Figure 2-2 is a use case demonstration of the administrator role.

Figure 2-2 Campus second-hand platform administrator role use case diagram

2.4 System process analysis

2. 4.1 Data flow

One of the main purposes of developing a campus second-hand platform is to enable users to purchase product information. Figure 2-3 is the data flow diagram of the system.

Figure 2-3 Expanded view of product information purchase operation

2.4.2 Business process

After analyzing the data flow of the campus second-hand platform, let’s look at the business process of the system. Figure 2-4 is the business flow chart:

Figure 2-4 Business flow chart

2.5 Summary of this chapter

This chapter mainly determines the functions to be realized by the entire campus second-hand platform through feasibility analysis, functional requirements analysis, system use case analysis, and system process analysis of the campus second-hand platform. At the same time, it also provides standards for code implementation and testing of campus second-hand platforms.

3 Overall design of campus second-hand platform

The main content discussed in this chapter includes the functional module design and database system design of the campus second-hand platform.

3.1 System function module design

3.1.1 Overall functional module design

In the previous chapter, the functional requirements and non-functional requirements of the system were mainly analyzed, and the use cases in the second-hand platform of this campus were analyzed based on the requirements. Then the next step is to start designing the architecture, main functions and database of this campus’s second-hand platform. The campus second-hand platform is derived based on the demand analysis in the previous chapter, and its overall design module diagram is shown in Figure 3-1.

Figure 3-1 Campus second-hand platform function module diagram

3.1.2 User module design

The users of this system include administrators and users. The functions of the two user modules are basically the same. Users have one more registration function than administrators. Therefore, the structure diagram of the user module is used as an example for analysis. The user module structure diagram is used as an example for analysis. ,As shown below:

Figure 3-2 User module structure diagram

3.1.3 Comment management module design

The campus second-hand platform is an open platform for communication. Users submit comments on the platform to increase interaction between users. But at the same time, in order to better standardize the content of comments and give administrators the function of deleting inappropriate comments, a comment management module needs to be specially designed. The specific structure diagram is as follows:

Figure 3-3 Structure diagram of comment management module

3.1.4 Product management module design

The campus second-hand platform needs to store a lot of product information. Its module functional structure is as follows:

Figure 3-4 Product module structure diagram

3.2 Database design

Database design generally includes three major processes: demand analysis, conceptual model design, and database table creation. The demand analysis has been explained in the previous chapter, and the conceptual model design has two parts: conceptual model and logical structure design.

3.2.1 Database conceptual structure design

The following is the main ER entity relationship diagram of the main database tables in the entire campus second-hand platform.

Figure 3-6 Total ER relationship diagram of campus second-hand platform

3.3.2 Database logical structure design

From the total ER relationship diagram in the campus second-hand platform in the previous section, it can be concluded that a total of many data tables need to be created. Here I mainly list several major database table structure designs.

table collect (collection)

serial number

name

type of data

length

Decimal places

Allow null values

primary key

default value

illustrate

1

collect_id

int

10

0

N

Y

Collection ID:

2

user_id

int

10

0

N

N

0

Collector ID:

3

source_table

varchar

255

0

Y

N

Source table:

4

source_field

varchar

255

0

Y

N

Source field:

5

source_id

int

10

0

N

N

0

Source ID:

6

title

varchar

255

0

Y

N

title:

7

img

varchar

255

0

Y

N

Cover:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

Creation time:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

Update time:

Table comment (comment)

serial number

name

type of data

length

Decimal places

Allow null values

primary key

default value

illustrate

1

comment_id

int

10

0

N

Y

Comment ID:

2

user_id

int

10

0

N

N

0

Commenter ID:

3

reply_to_id

int

10

0

N

N

0

Reply comment ID: empty is 0

4

content

longtext

2147483647

0

Y

N

content:

5

nickname

varchar

255

0

Y

N

Nick name:

6

avatar

varchar

255

0

Y

N

Avatar address: [0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

Creation time:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

Update time:

9

source_table

varchar

255

0

Y

N

Source table:

10

source_field

varchar

255

0

Y

N

Source field:

11

source_id

int

10

0

N

N

0

Source ID:

Table commodity_classification (commodity classification)

serial number

name

type of data

length

Decimal places

Allow null values

primary key

default value

illustrate

1

commodity_classification_id

int

10

0

N

Y

Product category ID

2

product_type

varchar

64

0

Y

N

Product Types

3

recommend

int

10

0

N

N

0

Intelligent Recommendation

4

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表ordinary_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

ordinary_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

gender

varchar

64

0

Y

N

性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

recommend

int

10

0

N

N

0

智能推荐

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表product_information (商品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

product_information_id

int

10

0

N

Y

商品信息ID

2

trade_name

varchar

64

0

Y

N

商品名称

3

product_type

varchar

64

0

Y

N

商品类型

4

product_image

varchar

255

0

Y

N

商品图片

5

product_specifications

varchar

64

0

Y

N

商品规格

6

commodity_price

varchar

64

0

Y

N

商品价格

7

place_of_transaction

varchar

64

0

Y

N

交易地点

8

seller_customers

int

10

0

Y

N

0

卖家用户

9

seller_name

varchar

64

0

Y

N

卖家姓名

10

product_details

longtext

2147483647

0

Y

N

商品详情

11

hits

int

10

0

N

N

0

点击数

12

praise_len

int

10

0

N

N

0

点赞数

13

examine_state

varchar

16

0

N

N

未审核

审核状态

14

recommend

int

10

0

N

N

0

智能推荐

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表purchase_order (购买订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

purchase_order_id

int

10

0

N

Y

购买订单ID

2

trade_name

varchar

64

0

Y

N

商品名称

3

product_type

varchar

64

0

Y

N

商品类型

4

product_specifications

varchar

64

0

Y

N

商品规格

5

commodity_price

varchar

64

0

Y

N

商品价格

6

place_of_transaction

varchar

64

0

Y

N

交易地点

7

seller_customers

int

10

0

Y

N

0

卖家用户

8

sellers_name

varchar

64

0

Y

N

卖家姓名

9

purchase_user

int

10

0

Y

N

0

购买用户

10

user_name

varchar

64

0

Y

N

用户姓名

11

users_mobile_phone

varchar

64

0

Y

N

用户手机

12

scheduled_transaction_time

datetime

19

0

Y

N

预定交易时间

13

pay_state

varchar

16

0

N

N

未支付

支付状态

14

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

15

recommend

int

10

0

N

N

0

智能推荐

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表seller_customers (卖家用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

seller_customers_id

int

10

0

N

Y

卖家用户ID

2

seller_name

varchar

64

0

Y

N

卖家姓名

3

seller_gender

varchar

64

0

Y

N

卖家性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

recommend

int

10

0

N

N

0

智能推荐

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

3.4本章小结

整个校园二手平台的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 校园二手平台详细设计与实现

校园二手平台的详细设计与实现主要是根据前面的校园二手平台的需求分析和校园二手平台的总体设计来设计页面并实现业务逻辑。主要从校园二手平台界面实现、业务逻辑实现这两部分进行介绍。

4.1用户功能模块

4.1.1 前台首页界面

当进入校园二手平台的时候,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是轮播图,再往下是公告,其主界面展示如下图4-1所示。

图4-1 前台首页界面图

4.1.2 用户注册界面

校园二手平台的用户时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

图4-2注册界面图

注册逻辑代码如下:

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        query.put("username",user.getUsername());

        List list = service.select(query, new HashMap<>()).getResultList();

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        user.setUserId(null);

        user.setPassword(service.encryption(user.getPassword()));

        service.save(user);

        return success(1);

}

/**

     * 用户ID:[0,8388607]用户获取其他与用户相关的数据

     */

    @Id

    @GeneratedValue(strategy = GenerationType.IDENTITY)

    @Column(name = "user_id")

    private Integer userId;

    /**

     * 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

     */

    @Basic

    @Column(name = "state")

    private Integer state;

    /**

     * 所在用户组:[0,32767]决定用户身份和权限

     */

    @Basic

    @Column(name = "user_group")

    private String userGroup;

    /**

     * 上次登录时间:

     */

    @Basic

    @Column(name = "login_time")

    private Timestamp loginTime;

    /**

     * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "phone")

    private String phone;

    /**

     * 手机认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "phone_state")

    private Integer phoneState;

    /**

     * 用户名:[0,16]用户登录时所用的账户名称

     */

    @Basic

    @Column(name = "username")

    private String username;

    /**

     * 昵称:[0,16]

     */

    @Basic

    @Column(name = "nickname")

    private String nickname;

    /**

     * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

     */

    @Basic

    @Column(name = "password")

    private String password;

    /**

     * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

     */

    @Basic

    @Column(name = "email")

    private String email;

    /**

     * 邮箱认证:[0,1](0未认证|1审核中|2已认证)

     */

    @Basic

    @Column(name = "email_state")

    private Integer emailState;

    /**

     * 头像地址:[0,255]

     */

    @Basic

    @Column(name = "avatar")

    private String avatar;

    /**

     * 创建时间:

     */

    @Basic

    @Column(name = "create_time")

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

    private Timestamp createTime;

    @Basic

    @Transient

    private String code;

}

4.1.3 用户登录界面

校园二手平台中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到校园二手平台的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

图4-3用户登录界面图

登录的逻辑代码如下所示。

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

4.1.4商品信息界面

当用户点击“商品信息”这一菜单按钮,会显示管理员在后台发布的所有的商品信息,支持通过关键词对商品信息进行搜索,选择需要的商品信息点击可以进入到商品信息详细的介绍界面,在详细界面可以查看到商品信息的商品名称、商品类型、商品规格、商品价格、交易地点、卖家用户、卖家姓名等信息,同时可以进行购买、点赞、收藏、评论操作,商品信息界面如下图4-4所示。

                  

图4-4 商品信息界面图

商品信息的逻辑代码如下:

 @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

}

    public void insert(Map<String,Object> body){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

    }

4.1.5购买界面

当用户在商品信息详情界面想要进行购买,点击下方的“购买”按钮,就会跳转到购买信息填写界面,根据界面提示输入购买信息,点击“提交”按钮,购买就完成了,购买界面如下图4-5所示。 

                  

图4-5购买界面图

4.1.6交易资讯界面

当访客点击校园二手平台中导航栏上的“交易资讯”后将会进入到该“交易资讯”列表的界面,然后选择想要看的交易资讯,点击进入到详细界面,同时可以进行点赞、收藏、评论操作,交易资讯界面如下图4-6所示。

                         

图4-6 交易资讯界面图

4.2管理人员功能模块

4.2.1公告栏管理界面

管理员点击“公告栏管理”菜单可以查看到系统中的所有公告栏信息,对已经存在的公告栏,管理员可以修改,也可以添加新的公告栏或者删除公告栏。界面如下图4-7所示。

图4-7公告栏管理界面图

4.2.2 资源管理界面

资源管理主要管理员是对交易资讯以及交易资讯所属的分类进行管控,包含了用户对交易资讯提交的评论信息,界面如下图4-8所示。

图4-8资源管理界面图

资源管理界面逻辑代码如下:

 @RequestMapping(value = {"/count_group", "/count"})

    public Map<String, Object> count(HttpServletRequest request) {

        Query count = service.count(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

4.2.3系统用户管理界面

管理员点击“系统用户”菜单可以对系统中存在的用户进行管理,包含了管理员用户、卖家和普通用户。界面如下图4-9所示。

图4-9系统用户管理界面图

4.2.4商品信息管理界面

管理员点击“商品信息”会显示出所有的商品信息,支持选择商品名称或者商品类型对商品信息进行查询,如果想要添加新的商品信息,点击“添加”按钮,输入商品名称、商品类型、商品图片、商品规格、交易地点、卖家用户、卖家姓名等信息,点击“提交”按钮就可以添加了,同时可以选择某一条商品信息,点击“删除”进行删除,也可以对用户提交的商品信息评论的信息进行管控。界面如下图4-10所示。

图4-10商品信息管理界面图

商品信息管理逻辑代码如下:

@RequestMapping(value = {"/avg_group", "/avg"})

public Map<String, Object> avg(HttpServletRequest request) {

        Query count = service.avg(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

4.2.5购买订单管理界面

管理员点击“购买订单”会显示出所有的购买订单信息,支持输入商品名称或者商品类型对购买订单信息进行查询,如果想要添加新的购买订单信息,点击“添加”按钮,输入相关信息,点击“提交”按钮就可以添加了,同时可以选择某一条购买订单信息,点击“删除”进行删除,也可以点击后面的“支付”按钮对购买订单的支付信息进行设置。界面如下图4-11所示。

图4-11购买订单管理界面图

购买订单管理界面逻辑代码如下:

@PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

}

    public Map<String,String> readConfig(HttpServletRequest request){

        Map<String,String> map = new HashMap<>();

        map.put(FindConfig.PAGE,request.getParameter(FindConfig.PAGE));

        map.put(FindConfig.SIZE,request.getParameter(FindConfig.SIZE));

        map.put(FindConfig.LIKE,request.getParameter(FindConfig.LIKE));

        map.put(FindConfig.ORDER_BY,request.getParameter(FindConfig.ORDER_BY));

        map.put(FindConfig.FIELD,request.getParameter(FindConfig.FIELD));

        map.put(FindConfig.GROUP_BY,request.getParameter(FindConfig.GROUP_BY));

        map.put(FindConfig.MAX_,request.getParameter(FindConfig.MAX_));

        map.put(FindConfig.MIN_,request.getParameter(FindConfig.MIN_));

        return map;

}

    public Map<String,String> readQuery(HttpServletRequest request){

        String queryString = request.getQueryString();

        if (queryString != null && !"".equals(queryString)) {

            String[] querys = queryString.split("&");

            Map<String, String> map = new HashMap<>();

            for (String query : querys) {

                String[] q = query.split("=");

                map.put(q[0], q[1]);

            }

            map.remove(FindConfig.PAGE);

            map.remove(FindConfig.SIZE);

            map.remove(FindConfig.LIKE);

            map.remove(FindConfig.ORDER_BY);

            map.remove(FindConfig.FIELD);

            map.remove(FindConfig.GROUP_BY);

            map.remove(FindConfig.MAX_);

            map.remove(FindConfig.MIN_);

            return map;

        }else {

            return new HashMap<>();

        }

}

    @Transactional

    public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){

        StringBuffer sql = new StringBuffer("UPDATE ").append("`").append(table).append("`").append(" SET ");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append("'").append(value).append("'").append(",");

            }else {

                sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append(value).append(",");

            }

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(toWhereSql(query,"0".equals(config.get(FindConfig.LIKE))));

        log.info("[{}] - 更新操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

}

    public String toWhereSql(Map<String,String> query, Boolean like) {

        if (query.size() > 0) {

            try {

                StringBuilder sql = new StringBuilder(" WHERE ");

                for (Map.Entry<String, String> entry : query.entrySet()) {

                    if (entry.getKey().contains(FindConfig.MIN_)) {

                        String min = humpToLine(entry.getKey()).replace("_min", "");

                        sql.append("`"+min+"`").append(" >= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");

                        continue;

                    }

                    if (entry.getKey().contains(FindConfig.MAX_)) {

                        String max = humpToLine(entry.getKey()).replace("_max", "");

                        sql.append("`"+max+"`").append(" <= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");

                        continue;

                    }

                    if (like == true) {

                        sql.append("`"+humpToLine(entry.getKey())+"`").append(" LIKE '%").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("%'").append(" and ");

                    } else {

                        sql.append("`"+humpToLine(entry.getKey())+"`").append(" = '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("'").append(" and ");

                    }

                }

                sql.delete(sql.length() - 4, sql.length());

                sql.append(" ");

                return sql.toString();

            } catch (UnsupportedEncodingException e) {

                log.info("拼接sql 失败:{}", e.getMessage());

            }

        }

        return "";

    }

5系统测试

5.1 系统测试用例

系统测试包括:用户登录功能测试、商品展示功能测试、商品添加、商品搜索、密码修改,如表5-1、5-2、5-3、5-4、5-5所示:

用户登录功能测试:

表5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

商品查看功能测试:

表5-2 商品查看功能测试表

用例名称

商品查看

目的

测试商品查看功能

前提

测试流程

点击商品

预期结果

可以查看到所有商品

实际结果

实际结果与预期结果一致

管理员添加商品界面测试:

表5-3 管理员添加商品界面测试表

用例名称

添加商品测试用例

目的

测试商品添加功能

前提

管理员用户正常登录情况下

测试流程

1)管理员点击商品,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的商品 

实际结果

实际结果与预期结果一致

商品搜索功能测试:

表5-4商品搜索功能测试表

用例名称

商品搜索测试

目的

测试商品搜索功能

前提

测试流程

1)在搜索框填入搜索关键字。

2)点击搜索按钮。

预期结果

页面显示包含有搜索关键字的商品

实际结果

实际结果与预期结果一致

密码修改搜索功能测试:

表5-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

5.2 系统测试结果

通过编写校园二手平台的测试用例,已经检测完毕用户登录模块、商品展示模块、商品添加模块、商品搜索模块、密码修改模块,通过这五大模块为校园二手平台的后期推广运营提供了强力的技术支撑。

结论

至此,校园二手平台已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、Java技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。

当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。

参考文献

[1]佟羽齐,刘德华,张栎柯,李剑波,张俊杰.基于SpringBoot框架的钻前管理系统的设计与实现[J].信息与电脑(理论版),2023,35(02):111-113.

[2]曹振兴,刘亚娇,邹敏,涂蓉蓉,刘键铮.绿色校园背景下的校园二手交易平台[J].数字通信世界,2023(01):75-77.

[3]高耀,许诺,李博,王国帧.基于Web的新型校园二手交易平台实践研究——以“校易集市”为例[J].中国商论,2023(01):130-132.DOI:10.19699/j.cnki.issn2096-0298.2023.01.130.

[4]张柱,宋存进,蒋乐,刘莉.基于微信小程序校园二手交易平台设计与开发[J].电脑编程技巧与维护,2022(12):59-61+142.DOI:10.16184/j.cnki.comprg.2022.12.035.

[5]刘玥垚,曾姿琪,彭佳慧等. 浅析大学校园二手图书资源循环使用的网络平台建设的必要[C]//中国管理科学研究院教育科学研究所.2022电脑校园网络论坛论文集.2022电脑校园网络论坛论文集,2022:155-157.DOI:10.26914/c.cnkihy.2022.025230.

[6]王曼维,杨荻,李岩,及松洁.基于SpringBoot框架的智慧医疗问诊系统设计与实现[J].中国医学装备,2022,19(03):133-136.

[7]肖佳欣,李雪,曲嵬琦.基于新媒体营销搭建校园二手交易平台的策略研究[J].营销界,2022(01):35-37.

[8]王百皓,王生辉,祝玉华,李智慧. 一种基于MVC框架的智能平台的校园二手交易系统[P]. 河南省:CN113781185A,2021-12-10.

[9]高志平. 基于SpringBoot框架与ITIL方法的运维管理系统的设计与实现[D].华东师范大学,2021.DOI:10.27149/d.cnki.ghdsu.2021.001482.

[10]He Xinbin,Bai Yongbin,Yue Lisen,Wang Haixiao,Liu Yi. Design and Implementation of Information System Based on Java Technology Platform[J]. Journal of Physics: Conference Series,2021,2033(1).

[11]胡思思,马诗豪,姜美.绿色校园背景下的校园二手交易平台[J].现代商业,2021(23):33-35.DOI:10.14097/j.cnki.5392/2021.23.011.

[12]余紫燕,姚芷晴,韦龄祺,彭秋明,梁玮澄,杨奕楷.关于构建校园二手交易平台的研究[J].北方经贸,2021(06):69-71.

[13]刘欣,李亮亮,牛聪. 基于Vue和SpringBoot框架的流域监管平台的研究和应用[C]//《中国防汛抗旱》杂志社,中国水利学会减灾专业委员会,水利部防洪抗旱减灾工程技术研究中心(中国水利水电科学研究院防洪抗旱减灾研究中心).第十一届防汛抗旱信息化论坛论文集.第十一届防汛抗旱信息化论坛论文集,2021:118-122.DOI:10.26914/c.cnkihy.2021.024864.

[14]陈倩,张捷.校园二手平台开发与市场分析[J].中国商论,2021(05):40-41.DOI:10.19699/j.cnki.issn2096-0298.2021.05.040.

[15]Xi Zeng,Yu Zhou,Xuqi Chen. Study on the System Design of Campus Resource Sharing Platform[J]. E3S Web of Conferences,2021,235.

[16]毕怀奇,王瑞东.校园二手交易平台的构建——以安徽建筑大学为例[J].商讯,2020(20):9-10.

[17]Tian Ming Huang. Design and Implementation of App System for Legal Consulting Based on JAVA Technology[J]. Procedia Computer Science,2020,166(C).

[18] Cui Wei, Yang Jiashuai, Wang Kaiwen, Ren Yihao, Wei Fan. Analysis of the market size and sustainable development methods of campus second-hand platforms [J]. Chinese Business Theory, 2020(01):10-11+215.DOI:10.19699 /j.cnki.issn2096-0298.2020.01.010.

[19] Guo Fei, Li Yingjun, Zhang Danhua, Du Zhuoying. Construction and promotion plan of "Qianyi" campus second-hand trading platform [J]. Economic Research Guide, 2019(12):146+149.

Thanks

The article could not be completed without the help of my beloved teacher. Although he did not directly point out the problem, he also guided me through words and gave corresponding suggestions, so that I could grow more quickly. Here, I sincerely express my gratitude.

First of all, I am mainly grateful to my instructor, who gave me great affirmation when I completed my work. This gave me great confidence and gave me the confidence to complete this work. He also gave me a lot of suggestions during the production process, which saved me a lot of detours. After he pointed out the specific direction for me and found the main trunk, I gradually followed the branches of the main trunk to analyze each context. And when my system was initially completed, he also pointed out the shortcomings and flaws of my system to me, which made me deeply aware of my own shortcomings.

Secondly, I would also like to thank the classmates who provided me with reference materials. They gave me the experience of my predecessors and allowed me to stand on the shoulders of giants as my starting point. These materials also brought me huge help.

Finally, I would like to thank my parents. They gave me the greatest support and fully affirmed my work. This gave me great encouragement and laid the foundation for my success. Without the help of these people, I would not be able to do anything. I wouldn't have the success I have today. Thanks again for your help.

Please follow and like + privately message the blogger to receive the project source code for free

Guess you like

Origin blog.csdn.net/ID3461074420/article/details/132791144