Stray animal rescue platform based on SpringBoot

1 Introduction

The system management will also be intelligently operated by computers. There are a lot of management and data storage involved in the stray animal rescue platform, such as home page, personal center, member management, volunteer management, stray animal information management, adoption Information management, cancellation of adoption information management, volunteer team activity management, volunteer application form management, registration activity management, cancellation of registration activity management, animal type management, system management, etc., have brought huge challenges to the work of managers. For a large amount of information, the traditional management system uses notes to carry out detailed information statistics. Later, computers appeared, and the paper information is counted on the computer through computer input software. This method is more traditional, and you want to count The data information is cumbersome and affected by time and space, so a rescue platform for stray animals has been developed for this purpose; it provides a convenient management platform for users, which is convenient for administrators to view and maintain; for users, they can view stray animal information at any time , the administrator can obtain the data information of the system without leaving home, and it can also save users a lot of time, so the development of a stray animal rescue platform has brought great convenience to the administrator, and it is also convenient for the administrator to provide information to the user. information is processed.

This thesis mainly involves the program, database and computer technology of the stray animal rescue platform. Covering a wide range of knowledge can greatly improve the work efficiency of system personnel.

2. Development technology

2.1 Spring Boot framework

The Spring framework is an open source application framework on the Java platform that provides a container with inversion of control features. 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 (EnterpriseJavaBeans) model. The Spring framework provides a series of solutions for development, such as using the core features of inversion of control, and implementing inversion of control through dependency injection to realize the containerization of the management object life cycle, using aspect-oriented programming for declarative transaction management, and integrating 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 feature of inversion of control (IOC). IOC is designed to facilitate project maintenance and testing. It provides a method for unified configuration and management of Java objects through the Java reflection mechanism. The Spring framework uses the container 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. The Spring framework has an aspect-oriented programming (AOP) framework. The Spring AOP framework is based on the proxy mode and is configurable at runtime. The AOP framework is mainly modularized for 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 the basic needs through integration with AspectJ. Functions such as transaction management and remote access 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.

2.2 Introduction to JAVA

Java mainly adopts CORBA technology and security model, which can protect data in Internet applications. It also provides comprehensive support for EJB (Enterprise JavaBeans), java servlet API, Spring Boot (java server pages), and XML technology. JAVA language is an object-oriented language. It provides the most basic methods to complete specified tasks. Developers only need to know some concepts to write some applications. Java programs are relatively small, and their code can run on small machines. Java is a computer programming language with three main features of encapsulation, inheritance and polymorphism, widely used in enterprise web application development and mobile application development.

The difference between the Java language and general compilers and literal translation is that Java first converts the source code into bytecode, and then converts it into an executable file for the JVM, which can run on various JVMs. Therefore, its cross-platform characteristics are realized. While this made Java very slow in its early days, it has improved as Java has been developed.

2.3 ECLIPSE development environment

ECLIPSE has wide support, high compatibility and powerful functions. It is a collection of Eclipse plug-ins, which are generally suitable for JAVA and J2EE system development. It supports JDBC, Hibernate, AJAX, Struts, Java Servlet, Spring, EJB3 and almost all databases on the market. Link tools and mainstream Eclipse product development tools.

ECLIPSE is a well-known development tool in the industry, and this platform uses this tool during the development process. ECLIPSE is also known as an enterprise-level work platform, which is based on Eclipse IDE. ECLIPSE can help us develop the database and use J2EE. In addition, it can also improve the operating capability of the system, which is prominently reflected in the server integration process. The functions of ECLIPSE are quite complete, and it can provide the necessary environmental support for the integration of J2EE, so as to complete functions such as coding, testing, debugging and publishing. It can support JSP, HTML, SQL, Javascript, Struts, CSS, etc.

2.4 Tomcat server

Tomcat is a light server, so it is not universal in small and medium-sized enterprises. But when programmers need to develop or debug JSP programs, they usually use this server as the first choice. For a person with only basic computer knowledge, a computer system with a good Apache server can access HTML pages very well. Although Tomcat is an extension of Apache, they can all run independently, and the two do not interfere with each other. When configured correctly, the Apache server provides technical support for the operation of HTML pages, and Tomcat's task is to run Servle and JSP pages. Tomca also has certain HTML page processing functions.

2.5 MySQL database

Databases are an integral part of the system development process. In terms of WEB applications, MySQL AB has developed a MySQL relational database management system with great advantages. MySQL can store data in different tables, which is very flexible, and can also improve the speed of the system in practical applications. Database access is most commonly used in the standard SQL language, and MySQL is used in the SQL language, so it is highly compatible. Database operations are essential, including functions such as adding, deleting, modifying, and querying database tables. Nowadays, databases can be divided into relational databases and non-relational databases. Mysql is a relational database. Mysql database is a small relational database. It has its own characteristics: small size, fast speed, low cost, etc. Mysql The database is by far the most popular open source database.

In WEB application technology, Mysql database supports different operating system platforms. Although the installation and configuration under different platforms are different, the difference is not very big. There are two installation methods of Mysql under Windows platform, binary version and installation-free Version. After installing the Mysql database, you need to start the service process, and the corresponding client can connect to the database, and the client can log in to the database through a command line or a graphical interface tool.

3. Functional design

The structure of the stray animal rescue platform development system is shown in Figure 1:

Figure 1 System structure

 Modules include Homepage, Personal Center, Member Management, Volunteer Management, Stray Animal Information Management, Adoption Information Management, Cancellation Adoption Information Management, Volunteer Team Activity Management, Volunteer Application Form Management, Registration Activity Management, Cancellation Activity Management, Animal Type Management, system management, etc. to perform corresponding operations.

The login system structure diagram is shown in Figure 2:

Figure 2 Login Structure Diagram

 These functions can fully meet the needs of stray animal rescue platforms. The function of this system is relatively comprehensive, as shown in Figure 3 below.

 Figure 3 system function structure diagram

4. Functional renderings

4.1 System function modules

Through the system page, you can view the home page, stray animal information management, volunteer team activities, stray animal announcements, personal center, background management and other information, as shown in Figure 1. Through the member registration page, you can fill in the user account, password, user name, contact information, ID card, email, etc. for registration operations, as shown in Figure 2.

Figure 1 System Homepage Interface Diagram 

Figure 2 Member registration interface diagram 

Stray animal information management : Through the stray animal information management page, you can view information such as animal type, animal characteristics, animal details, rescue time, rescue location, pictures, user account, user name, contact information, and adoption time, as shown in Figure 3 .

Figure 3  stray animal information management page 

Personal center: Fill in the user account, password, user name, gender, contact information, ID card, email address and other information on the personal center page to update information, and perform corresponding operations on my favorites as needed, as shown in Figure 4.

Figure 4 Personal center interface diagram 

4.2 Administrator functions

The administrator fills in the user name and password and selects Submit, as shown in Figure 6. After successfully logging in, the administrator enters the system operation interface, and can manage the home page, personal center, member management, volunteer management, stray animal information management, adoption information management, cancellation of adoption information management, volunteer team activity management, and volunteer application form management , registration event management, cancellation registration event management, animal type management, system management and other functional modules for corresponding operations. As shown in Figure 5

Figure 5 Administrator login interface diagram 

Figure 6 Administrator function interface diagram

Member management: Through the list, you can obtain information such as index, user account, user name, gender, contact information, ID card, email address, avatar, etc., and modify or delete them, as shown in Figure 7.

Figure 7 Membership Management Interface Diagram

Volunteer management: Through the list, you can obtain information such as index, volunteer account, volunteer name, gender, volunteer mobile phone, ID card, email, avatar, etc., and modify or delete them, as shown in Figure 8.

Figure 8 Volunteer management interface diagram

Information management of stray animals: Through the list, you can obtain information such as index, animal type, rescue phone, rescue location, pictures, whether it has been adopted, etc., and perform details, view comments, modify or delete operations, as shown in Figure 9.

Figure 9 interface diagram of stray animal information management

Adoption information management: Through the list, you can obtain information such as index, animal type, animal characteristics, animal details, rescue time, rescue location, pictures, user account, user name, contact information, adoption time, review reply, review status, review, etc. Details, modify or delete operations, as shown in Figure 10.

Figure 10 Adoption Information Management Interface Diagram

4.3 Member function

 After successful login, members enter the system operation interface, and can perform corresponding operations on the system home page, personal center, stray animal information management, adoption information management, cancellation of adoption information management, volunteer application form management and other functional modules. As shown in Figure 11

Figure 11 Member function interface diagram

Cancel adoption information management : Through the list, you can get index, animal type, animal characteristics, animal details, rescue time, rescue location, pictures, user account, user name, contact information, adoption time, cancellation cancellation time, review reply, review status, etc. information, and perform detailed operations, as shown in Figure 12.

Figure 12 Cancel adoption information management interface diagram

Volunteer application form management : Through the list, you can obtain information such as index, user account, user name, gender, contact information, ID card, email address, review reply, review status, etc., and perform details, modification or deletion operations, as shown in Figure 14.

Figure 13 Volunteer Application Form Management Interface Diagram

4.4 Volunteer function

After successfully registering volunteers, you can enter the system operation interface, and you can perform functional modules such as the system home page, personal center, stray animal information management, adoption information management, cancellation of adoption information management, volunteer team activity management, registration activity management, and cancellation of registration activity management. corresponding operation. As shown in Figure 14

Figure 14 Volunteer function interface diagram

Registration activity management : Through the list, you can obtain information such as index, activity registration, activity time, activity location, pictures, volunteer account, volunteer name, volunteer mobile phone, registration time, review reply, review status, etc., and perform details, modification or deletion operation, and can cancel the registration as needed. As shown in Figure 15.

Figure 15 Registration Activity Management Interface Diagram

 Cancel registration activity management : Through the list, you can obtain information such as index, activity registration, activity time, activity location, pictures, volunteer account, volunteer name, volunteer mobile phone, registration time, cancellation registration time, review reply, review status, etc. Detailed operation, as shown in Figure 16.

Figure 16 Cancellation of registration activity management interface diagram

5. Core code

/**
 * 领养信息
 * 后端接口
 */
@RestController
@RequestMapping("/lingyangxinxi")
public class LingyangxinxiController {
    @Autowired
    private LingyangxinxiService lingyangxinxiService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,LingyangxinxiEntity lingyangxinxi,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("huiyuan")) {
			lingyangxinxi.setYonghuzhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<LingyangxinxiEntity> ew = new EntityWrapper<LingyangxinxiEntity>();
		PageUtils page = lingyangxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, lingyangxinxi), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,LingyangxinxiEntity lingyangxinxi, 
		HttpServletRequest request){
        EntityWrapper<LingyangxinxiEntity> ew = new EntityWrapper<LingyangxinxiEntity>();
		PageUtils page = lingyangxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, lingyangxinxi), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( LingyangxinxiEntity lingyangxinxi){
       	EntityWrapper<LingyangxinxiEntity> ew = new EntityWrapper<LingyangxinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( lingyangxinxi, "lingyangxinxi")); 
        return R.ok().put("data", lingyangxinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(LingyangxinxiEntity lingyangxinxi){
        EntityWrapper< LingyangxinxiEntity> ew = new EntityWrapper< LingyangxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( lingyangxinxi, "lingyangxinxi")); 
		LingyangxinxiView lingyangxinxiView =  lingyangxinxiService.selectView(ew);
		return R.ok("查询领养信息成功").put("data", lingyangxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        LingyangxinxiEntity lingyangxinxi = lingyangxinxiService.selectById(id);
        return R.ok().put("data", lingyangxinxi);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        LingyangxinxiEntity lingyangxinxi = lingyangxinxiService.selectById(id);
        return R.ok().put("data", lingyangxinxi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody LingyangxinxiEntity lingyangxinxi, HttpServletRequest request){
    	lingyangxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(lingyangxinxi);
        lingyangxinxiService.insert(lingyangxinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody LingyangxinxiEntity lingyangxinxi, HttpServletRequest request){
    	lingyangxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(lingyangxinxi);
        lingyangxinxiService.insert(lingyangxinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody LingyangxinxiEntity lingyangxinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(lingyangxinxi);
        lingyangxinxiService.updateById(lingyangxinxi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        lingyangxinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<LingyangxinxiEntity> wrapper = new EntityWrapper<LingyangxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("huiyuan")) {
			wrapper.eq("yonghuzhanghao", (String)request.getSession().getAttribute("username"));
		}

		int count = lingyangxinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}

}
/**
 * 会员
 * 后端接口
 */
@RestController
@RequestMapping("/huiyuan")
public class HuiyuanController {
    @Autowired
    private HuiyuanService huiyuanService;
    
	@Autowired
	private TokenService tokenService;
	
	/**
	 * 登录
	 */
	@IgnoreAuth
	@RequestMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		HuiyuanEntity user = huiyuanService.selectOne(new EntityWrapper<HuiyuanEntity>().eq("yonghuzhanghao", username));
		if(user==null || !user.getMima().equals(password)) {
			return R.error("账号或密码不正确");
		}
		
		String token = tokenService.generateToken(user.getId(), username,"huiyuan",  "会员" );
		return R.ok().put("token", token);
	}
	
	/**
     * 注册
     */
	@IgnoreAuth
    @RequestMapping("/register")
    public R register(@RequestBody HuiyuanEntity huiyuan){
    	//ValidatorUtils.validateEntity(huiyuan);
    	HuiyuanEntity user = huiyuanService.selectOne(new EntityWrapper<HuiyuanEntity>().eq("yonghuzhanghao", huiyuan.getYonghuzhanghao()));
		if(user!=null) {
			return R.error("注册用户已存在");
		}
		Long uId = new Date().getTime();
		huiyuan.setId(uId);
        huiyuanService.insert(huiyuan);
        return R.ok();
    }
	
	/**
	 * 退出
	 */
	@RequestMapping("/logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        HuiyuanEntity user = huiyuanService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	HuiyuanEntity user = huiyuanService.selectOne(new EntityWrapper<HuiyuanEntity>().eq("yonghuzhanghao", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
        user.setMima("123456");
        huiyuanService.updateById(user);
        return R.ok("密码已重置为:123456");
    }


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,HuiyuanEntity huiyuan,
		HttpServletRequest request){
        EntityWrapper<HuiyuanEntity> ew = new EntityWrapper<HuiyuanEntity>();
		PageUtils page = huiyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, huiyuan), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,HuiyuanEntity huiyuan, 
		HttpServletRequest request){
        EntityWrapper<HuiyuanEntity> ew = new EntityWrapper<HuiyuanEntity>();
		PageUtils page = huiyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, huiyuan), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( HuiyuanEntity huiyuan){
       	EntityWrapper<HuiyuanEntity> ew = new EntityWrapper<HuiyuanEntity>();
      	ew.allEq(MPUtil.allEQMapPre( huiyuan, "huiyuan")); 
        return R.ok().put("data", huiyuanService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(HuiyuanEntity huiyuan){
        EntityWrapper< HuiyuanEntity> ew = new EntityWrapper< HuiyuanEntity>();
 		ew.allEq(MPUtil.allEQMapPre( huiyuan, "huiyuan")); 
		HuiyuanView huiyuanView =  huiyuanService.selectView(ew);
		return R.ok("查询会员成功").put("data", huiyuanView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        HuiyuanEntity huiyuan = huiyuanService.selectById(id);
        return R.ok().put("data", huiyuan);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        HuiyuanEntity huiyuan = huiyuanService.selectById(id);
        return R.ok().put("data", huiyuan);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody HuiyuanEntity huiyuan, HttpServletRequest request){
    	huiyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(huiyuan);
    	HuiyuanEntity user = huiyuanService.selectOne(new EntityWrapper<HuiyuanEntity>().eq("yonghuzhanghao", huiyuan.getYonghuzhanghao()));
		if(user!=null) {
			return R.error("用户已存在");
		}
		huiyuan.setId(new Date().getTime());
        huiyuanService.insert(huiyuan);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody HuiyuanEntity huiyuan, HttpServletRequest request){
    	huiyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(huiyuan);
    	HuiyuanEntity user = huiyuanService.selectOne(new EntityWrapper<HuiyuanEntity>().eq("yonghuzhanghao", huiyuan.getYonghuzhanghao()));
		if(user!=null) {
			return R.error("用户已存在");
		}
		huiyuan.setId(new Date().getTime());
        huiyuanService.insert(huiyuan);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody HuiyuanEntity huiyuan, HttpServletRequest request){
        //ValidatorUtils.validateEntity(huiyuan);
        huiyuanService.updateById(huiyuan);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        huiyuanService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<HuiyuanEntity> wrapper = new EntityWrapper<HuiyuanEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = huiyuanService.selectCount(wrapper);
		return R.ok().put("count", count);
	}


}

6. Reference Papers

Chapter One Introduction

1.1 Background and significance

1.2 Overview of research at home and abroad

1.3 Contents of the study

Chapter II Research on Key Technologies

2.1 Spring Boot framework

2.2 Introduction to JAVA

2.3 ECLIPSE development environment

2.4 Tomcat server

2.5 MySQL database

Chapter 3 System Analysis

3.1 System Design Objectives

3.2 System Feasibility Analysis

3.3 System function analysis and description

3.4 System UML use case analysis

3.5 System flow analysis

Chapter 4 System Design

4.1 System Architecture

4.2 Database Design Principles

4.3 Data Sheet

Chapter 5 System Implementation

5.1 System function modules

5.2 Administrator function module

5.3 Member Function Module

5.4 Volunteer function modules

Chapter 6 System Test

6.1 Definition and Purpose of Test

6.2 Performance Test

6.3 Test Module

6.4 Test results

Summarize

thanks

references

7. Summary

The realization of the overall functional modules of the stray animal rescue platform is mainly a test of what I have learned in the past few years in college. For the system, it is mainly realized through the current intelligent stray animal rescue platform. The administrator Management is carried out according to the problem information, and data information can be added, modified and deleted according to the needs, which perfectly solves the problems encountered in the current stray animal rescue platform.

After a semester, the completion of the graduation project is coming to an end. So far, when I think back to the system development day of the whole semester, I have gained a lot. The main task of the graduation project is to establish an information system of an intelligent stray animal rescue platform, mainly using the development tools of eclipse and Mysql database to perform corresponding operations on each functional module of the system. Finally, the system debugging results show that the system is basically Functional requirements can be met.

The development of the stray animal rescue platform is of great help to the improvement of my university studies. It enabled me to learn the technical aspects of computer knowledge and the communication aspects of communicating with people. It made me realize that no matter what we do, we need to persevere and work hard. Only then can success be achieved, and only then can the joy of success be obtained. If there is no attempt and knowledge, then there is no chance of success. Only when the actual operation is done, will it be closer and closer to success. As the road moves forward, the future The road is beautiful.

For the realization of the stray animal rescue platform, it is the first time that I have completed the design of a management system. During the design process of the project, I overcame various difficulties, and in the face of these difficulties, I actively faced them, tried to solve the problems, and better mastered the theoretical knowledge and hands-on practical ability, from the development of the system By the time the design was completed, I had completed a more comprehensive, better, and safer platform management system, which also gave me a great sense of accomplishment and made me more confident in my future life.

Likes, likes, collections, and attention to private letters Author communication

Guess you like

Origin blog.csdn.net/lf21qp/article/details/131337884