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
Administrator function implementation
Music information management
Playlist information management
Message board management
User Management
Music information
User function implementation
music information
Playlist information
feedback
Music information
4. Core code
Login related
File Upload
encapsulation
1. Project Introduction
Since the development of the Internet, both its theory and technology have matured, and it has widely participated in all aspects of society. It allows information to be disseminated through the Internet, and combined with information management tools, it can provide good services to people. In view of the problems of chaotic music information management, high error rate, poor information security, high labor intensity, time-consuming and labor-intensive, the use of network music systems can effectively manage and make information management more scientific and standardized.
The network music system is coded in the Eclipse environment using Java language, and uses Mysql to create data tables to save the data generated by this system. The system can provide information display and corresponding services, and its administrator manages music, playlists, music information, and user information. Users comment on music and playlists, and listen to music and playlists.
In short, the network music system centrally manages information and has many advantages such as strong confidentiality, high efficiency, large storage space, and low cost. It can reduce information management costs and realize computerization of information management.
Keywords: Internet music system; Java language; Mysql
2. System functions
Based on the administrator functions analyzed previously, the next design work is carried out, and the designed administrator structure diagram is finally displayed (see the figure below). Administrators manage music, playlists, music information, and user information.
Based on the user functions analyzed previously, proceed with the next design work and finally display the designed user structure diagram (see the figure below). Users comment on music and playlists, and listen to music and playlists.
3. Screenshots of system projects
Administrator function implementation
Music Information Management
Administrators can manage music information after entering the designated function operation area. Its page is shown below. The administrator is mainly responsible for the addition, deletion, modification and checking of music information, and can view users’ comments on music.
Song List Information Management
Administrators can manage playlist information after entering the designated function operation area. Its page is shown below. The administrator is mainly responsible for adding, deleting, modifying, and checking the playlist information and checking users’ comments on the playlist.
Message Board Management
Administrators can manage message information after entering the designated function operation area. Its page is shown below. Administrators can reply to users’ messages, query, and delete users’ messages on this page.
User Management
Administrators can manage users after entering the designated functional operation area. Its page is shown below. Administrators have the authority to manage user information, including querying users and deleting users.
Music Information
Administrators can manage music information after entering the designated function operation area. Its page is shown below. Administrators are responsible for publishing, modifying, querying, and deleting music information.
User function implementation
Music Information
The user can view music information after entering the designated function operation area. Its page is shown below. Users can view music introduction, collect music, listen to music, and comment on music on the current page.
Songlist information
Users can view playlist information after entering the designated function operation area. Its page is shown below. Users can view playlists, collect playlists, comment on playlists, and play songs on the current page.
Leave a message
Users can leave messages and feedback after entering the designated function operation area. Its page is shown below. When a user posts a message, the message and the administrator’s reply will be displayed on this page.
Music information
The user can view music information after entering the designated function operation area. Its page is shown below. Users can click on the picture or title of the music information to view the music information content.
Four. 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("The 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 }
Package
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 139331 people are learning the system