Computer SSM topic selection – SSM+JSP campus second-hand trading system

Development language: Java
Java development tools: JDK1.8
Backend framework: SSM
Front-end: developed using JSP technology
Database: MySQL5.7 combined with Navicat management tool
Server: Tomcat8.5
Development software: IDEA/Eclipse
Is it a Maven project: Yes

Foreword

The campus second-hand trading system based on SSM + JSP has three major roles:

User front desk: homepage, second-hand goods, purchase information, communication forum, announcement information, personal center, backend management, shopping cart, after-sales customer service.

Seller: personal center, second-hand product management, purchase information management, seller warning management, reputation evaluation management, seller communication management, user communication management, order management.

Administrator: personal center, user management, seller management, second-hand product management, purchase information management, product classification management, user warning management, seller warning management, reputation evaluation management, seller communication management, user communication management, communication forum, system management.

Front desk homepage

User login registration page.

When users log in to the system, there are homepage, second-hand goods, purchase information, communication forum, announcement information, personal center, backend management, shopping cart, and after-sales customer service.

Product information page.

Announcement information page.

User purchase information.

Communication forum page.

Personal center page.

Seller

Seller login page.

When a seller enters the login system, there will be a personal center, second-hand product management, purchase information management, seller warning management, reputation evaluation management, seller communication management, user communication management, and order management.

Administrator

The administrator enters the system through personal center, user management, seller management, second-hand product management, purchase information management, product classification management, user warning management, seller warning management, reputation evaluation management, seller communication management, user communication management, communication forum, and system manage.

Login module 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().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().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().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 params,UserEntity user){<!-- -->
            EntityWrapper ew = new EntityWrapper();
        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 ew = new EntityWrapper();
          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().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 core code

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().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 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(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
}
} catch (IOException e) {<!-- -->
e.printStackTrace();
}
return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
}
\t
}

Encapsulation code

package com.utils;

import java.util.HashMap;
import java.util.Map;

/**
 * Return data
 */
public class R extends HashMap {<!-- -->
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 map) {<!-- -->
R r = new R();
r.putAll(map);
return r;
}
\t
public static R ok() {<!-- -->
return new R();
}

public R put(String key, Object value) {<!-- -->
super.put(key, value);
return this;
}
}

Project acquisition:

https://gitee.com/sinonfin/L-javaWebSha/tree/master