Design and implementation of network music system based on SSM

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

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