Get the source code at the end
Development language: Java
Java development tools: JDK1.8
Backend framework: SSM
Frontend: Vue
Database: MySQL5.7 combined with Navicat management tool
Server: Tomcat8.5
Development software: IDEA/Eclipse
Is it a Maven project: Yes
Table of Contents
1. Project Introduction
2. System functions
3. System project screenshots
Ordinary user management
Ordinary administrator management
Basic information management
Growth information management
Bacteria room information management
4. Core code
Login related
File Upload
encapsulation
1. Project Introduction
With the rapid development of information Internet shopping, most companies are creating their own management systems. This article introduces the entire process of development of the edible mushroom stick traceability system. By analyzing the enterprise’s needs for the edible mushroom stick traceability system, a computer-managed edible mushroom stick traceability system program was created. The article introduces the system analysis part of the edible mushroom stick traceability system, including feasibility analysis, etc. The system design part mainly introduces the system function design and database design.
Administrator of this edible mushroom stick traceability system, ordinary administrator, ordinary user. Administrator functions include personal center, ordinary user management, ordinary administrator management, basic information management, growth information management, bacterial room information management, etc. Common administrator functions include personal center, common user management, basic information management, growth information management, bacterial room information management, etc. Common user functions include personal center, basic information management, growth information management, etc. Therefore it has certain practicality.
This site is a B/S mode system. The backend uses the SSM framework as the development technology. The frontend uses VUE development technology and MYSQL database design and development to fully ensure the stability of the system. The system has the characteristics of clear interface, simple operation and complete functions, making the management of edible mushroom stick traceability system systematic and standardized.
Keywords: Edible mushroom stick traceability system; SSM framework; MYSQL database; VUE framework
2. System functions
This system is a website system based on B/S architecture. The designed functional structure diagram is shown below:
3. Screenshots of system projects
Ordinary user management
The system administrator of the edible mushroom stick traceability system can manage ordinary user information, and can add, modify, and delete ordinary user information.
General administrator management
System administrators can manage general administrator information, and can add, modify, and delete query operations on general administrator information.
Basic information management
System administrators can manage basic information and add, modify, and delete basic information.
Growth information management
System administrators can manage growth information and add, modify, and delete growth information.
Bacteria room information management
System administrators can manage bacterial room information and add, modify, and delete bacterial room information.
4. Core code
Login related
package com.controller; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.annotation.IgnoreAuth; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.entity.TokenEntity; import com.entity.UserEntity; import com.service.TokenService; import com.service.UserService; import com.utils.CommonUtil; import com.utils.MD5Util; import com.utils.MPUtil; import com.utils.PageUtils; import com.utils.R; import com.utils.ValidatorUtils; /** * Login related */ @RequestMapping("users") @RestController public class UserController{ \t @Autowired private UserService userService; \t @Autowired private TokenService tokenService; /** \t * Log in */ @IgnoreAuth @PostMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username)); if(user==null || !user.getPassword().equals(password)) { return R.error("Account or password is incorrect"); } String token = tokenService.generateToken(user.getId(),username, "users", user.getRole()); return R.ok().put("token", token); } \t /** \t * register */ @IgnoreAuth @PostMapping(value = "/register") public R register(@RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user); if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) { return R.error("User already exists"); } userService.insert(user); return R.ok(); } /** \t * quit */ @GetMapping(value = "logout") public R logout(HttpServletRequest request) { request.getSession().invalidate(); return R.ok("Exit successfully"); } \t /** * reset Password */ @IgnoreAuth @RequestMapping(value = "/resetPass") public R resetPass(String username, HttpServletRequest request){ UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username)); if(user==null) { return R.error("Account does not exist"); } user.setPassword("123456"); userService.update(user,null); return R.ok("Password has been reset to: 123456"); } \t /** * list */ @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,UserEntity user){ EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>(); PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params)); return R.ok().put("data", page); } /** * list */ @RequestMapping("/list") public R list(UserEntity user){ EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>(); ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew)); } /** * information */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") String id){ UserEntity user = userService.selectById(id); return R.ok().put("data", user); } /** * Get the user's session user information */ @RequestMapping("/session") public R getCurrUser(HttpServletRequest request){ Long id = (Long)request.getSession().getAttribute("userId"); UserEntity user = userService.selectById(id); return R.ok().put("data", user); } /** * save */ @PostMapping("/save") public R save(@RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user); if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) { return R.error("User already exists"); } userService.insert(user); return R.ok(); } /** * Revise */ @RequestMapping("/update") public R update(@RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user); userService.updateById(user);//Update all return R.ok(); } /** * delete */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ userService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } }
File upload
package com.controller; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import java.util.UUID; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.ResourceUtils; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.annotation.IgnoreAuth; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.entity.ConfigEntity; import com.entity.EIException; import com.service.ConfigService; import com.utils.R; /** * Upload file mapping table */ @RestController @RequestMapping("file") @SuppressWarnings({"unchecked","rawtypes"}) public class FileController{ @Autowired private ConfigService configService; /** \t * upload files */ @RequestMapping("/upload") public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception { if (file.isEmpty()) { throw new EIException("The uploaded file cannot be empty"); } String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1); File path = new File(ResourceUtils.getURL("classpath:static").getPath()); if(!path.exists()) { path = new File(""); } File upload = new File(path.getAbsolutePath(),"/upload/"); if(!upload.exists()) { upload.mkdirs(); } String fileName = new Date().getTime() + "." + fileExt; File dest = new File(upload.getAbsolutePath() + "/" + fileName); file.transferTo(dest); FileUtils.copyFile(dest, new File("C:\Users\Desktop\jiadian\springbootl7own\src\main\resources\static\upload" + "/" + fileName)); if(StringUtils.isNotBlank(type) & amp; & amp; type.equals("1")) { ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile")); if(configEntity==null) { configEntity = new ConfigEntity(); configEntity.setName("faceFile"); configEntity.setValue(fileName); } else { configEntity.setValue(fileName); } configService.insertOrUpdate(configEntity); } return R.ok().put("file", fileName); } \t /** \t * download file */ @IgnoreAuth @RequestMapping("/download") public ResponseEntity<byte[]> download(@RequestParam String fileName) { try { File path = new File(ResourceUtils.getURL("classpath:static").getPath()); if(!path.exists()) { path = new File(""); } File upload = new File(path.getAbsolutePath(),"/upload/"); if(!upload.exists()) { upload.mkdirs(); } File file = new File(upload.getAbsolutePath() + "/" + fileName); if(file.exists()){ /*if(!fileService.canRead(file, SessionManager.getSessionUser())){ getResponse().sendError(403); }*/ HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData("attachment", fileName); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED); } } catch (IOException e) { e.printStackTrace(); } return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR); } \t }
Packaging
package com.utils; import java.util.HashMap; import java.util.Map; /** * Return data */ public class R extends HashMap<String, Object> { private static final long serialVersionUID = 1L; \t public R() { put("code", 0); } \t public static R error() { return error(500, "Unknown exception, please contact the administrator"); } \t public static R error(String msg) { return error(500, msg); } \t public static R error(int code, String msg) { R r = new R(); r.put("code", code); r.put("msg", msg); return r; } public static R ok(String msg) { R r = new R(); r.put("msg", msg); return r; } \t public static R ok(Map<String, Object> map) { R r = new R(); r.putAll(map); return r; } \t public static Rok() { return new R(); } public R put(String key, Object value) { super.put(key, value); return this; } }
The knowledge points of the article match the official knowledge files, and you can further learn related knowledge. Java Skill TreeHomepageOverview 139,294 people are learning the system