基于javaweb的SpringBoot二手物品交易平台(java+springboot+maven+vue+elementui+mybatis+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

491124002505

501124002505

511124002505

521124002505

531124002505

551124002505

561124002505

571124002505

571124002506

基于javaweb的SpringBoot二手物品交易平台(java+springboot+maven+vue+elementui+mybatis+mysql)

后端启动类:StartApplication
前端启动命令:npm run serve

管理员:
admin 123456

用户:
user1(小王) 123456
user2(小张) 123456

*先启动后端,再启动前端(避免后端端口被占用了)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
}

@GetMapping("loginOut")
public ResultVo loginOut( HttpSession session){
session.removeAttribute("admin");
return ResultVo.success();
}

@GetMapping("list")
public ResultVo getAdminList(HttpSession session,
@RequestParam(value = "page",required = false) Integer page,
@RequestParam(value = "nums",required = false) Integer nums){
if(session.getAttribute("admin")==null){
return ResultVo.fail(ErrorMsg.COOKIE_ERROR);
}
int p=1;
int n=8;
if(null!=page){
p=page>0?page:1;
}
if(null!=nums){
n=nums>0?nums:8;
}
return ResultVo.success(adminService.getAdminList(p,n));
}

@PostMapping("add")
public ResultVo addAdmin(HttpSession session,
@RequestBody AdminModel adminModel){
if(session.getAttribute("admin")==null){
return ResultVo.fail(ErrorMsg.COOKIE_ERROR);
}
if(adminService.addAdmin(adminModel)){
return ResultVo.success();
}
return ResultVo.fail(ErrorMsg.PARAM_ERROR);
}

@GetMapping("idleList")
public ResultVo idleList(HttpSession session,
@RequestParam("status") @NotNull @NotEmpty Integer status,
@RequestParam(value = "page",required = false) Integer page,
@RequestParam(value = "nums",required = false) Integer nums){
if(session.getAttribute("admin")==null){
return ResultVo.fail(ErrorMsg.COOKIE_ERROR);
}
int p=1;
int n=8;
if(null!=page){
p=page>0?page:1;
}
if(null!=nums){
n=nums>0?nums:8;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
        p=page>0?page:1;
}
if(null!=nums){
n=nums>0?nums:8;
}
return ResultVo.success(idleItemService.adminGetIdleList(status,p,n));
}

@GetMapping("updateIdleStatus")
public ResultVo updateIdleStatus(HttpSession session,
@RequestParam("id") @NotNull @NotEmpty Long id,
@RequestParam("status") @NotNull @NotEmpty Integer status
){
if(session.getAttribute("admin")==null){
return ResultVo.fail(ErrorMsg.COOKIE_ERROR);
}
IdleItemModel idleItemModel=new IdleItemModel();
idleItemModel.setId(id);
idleItemModel.setIdleStatus(status.byteValue());
if(idleItemService.updateIdleItem(idleItemModel)){
return ResultVo.success();
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}

@GetMapping("orderList")
public ResultVo orderList(HttpSession session,
@RequestParam(value = "page",required = false) Integer page,
@RequestParam(value = "nums",required = false) Integer nums){
if(session.getAttribute("admin")==null){
return ResultVo.fail(ErrorMsg.COOKIE_ERROR);
}
int p=1;
int n=8;
if(null!=page){
p=page>0?page:1;
}
if(null!=nums){
n=nums>0?nums:8;
}
return ResultVo.success(orderService.getAllOrder(p,n));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public class GlobalExceptionHandler {

/**
* controller的方法参数错误
* @param e
* @return
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResultVo MethodArgumentNotValidExceptionHandler(MethodArgumentNotValidException e) {
Map<String, String> collect = e.getBindingResult().getFieldErrors().stream()
.collect(Collectors.toMap(FieldError::getField, FieldError::getDefaultMessage));
return ResultVo.fail(ErrorMsg.PARAM_ERROR,collect);
}

/**
* 缺少request body错误
* @return
*/
@ExceptionHandler(HttpMessageNotReadableException.class)
public ResultVo HttpMessageNotReadableExceptionHandler() {
return ResultVo.fail(ErrorMsg.MISSING_PARAMETER, "requestBody错误!");
}

/**
* url中缺少Query Params
* @param e e.getMessage()返回首个缺少的参数名
* @return
*/
@ExceptionHandler(MissingServletRequestParameterException.class)
public ResultVo MissingServletRequestParameterExceptionHandler(MissingServletRequestParameterException e) {
return ResultVo.fail(ErrorMsg.MISSING_PARAMETER, "缺少参数"+e.getParameterName());
}

@ExceptionHandler(ConstraintViolationException.class)
public ResultVo ConstraintViolationExceptionHandler(ConstraintViolationException e) {

Set<ConstraintViolation<?>> set = e.getConstraintViolations();
Map<String, String> map = new HashMap<>();
if (set.size() > 0) {
for (ConstraintViolation<?> cv : set) {
String[] param = cv.getPropertyPath().toString().split("\\.");
String message = cv.getMessage();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
            return ResultVo.success(addressService.getAddressById(id,Long.valueOf(shUserId)));
}
}

@PostMapping("/add")
public ResultVo addAddress(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody AddressModel addressModel){
addressModel.setUserId(Long.valueOf(shUserId));
if(addressService.addAddress(addressModel)){
return ResultVo.success(addressModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}

@PostMapping("/update")
public ResultVo updateAddress(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody AddressModel addressModel){
addressModel.setUserId(Long.valueOf(shUserId));
if(addressService.updateAddress(addressModel)){
return ResultVo.success();
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}

@PostMapping("/delete")
public ResultVo deleteAddress(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId,
@RequestBody AddressModel addressModel){
addressModel.setUserId(Long.valueOf(shUserId));
if(addressService.deleteAddress(addressModel)){
return ResultVo.success();
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
    idleItemModel.setReleaseTime(new Date());
if(idleItemService.addIdleItem(idleItemModel)){
return ResultVo.success(idleItemModel);
}
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}

@GetMapping("info")
public ResultVo getIdleItem(@RequestParam Long id){
return ResultVo.success(idleItemService.getIdleItem(id));
}

@GetMapping("all")
public ResultVo getAllIdleItem(@CookieValue("shUserId")
@NotNull(message = "登录异常 请重新登录")
@NotEmpty(message = "登录异常 请重新登录") String shUserId){
return ResultVo.success(idleItemService.getAllIdelItem(Long.valueOf(shUserId)));
}

@GetMapping("find")
public ResultVo findIdleItem(@RequestParam(value = "findValue",required = false) String findValue,
@RequestParam(value = "page",required = false) Integer page,
@RequestParam(value = "nums",required = false) Integer nums){
if(null==findValue){
findValue="";
}
int p=1;
int n=8;
if(null!=page){
p=page>0?page:1;
}
if(null!=nums){
n=nums>0?nums:8;
}
return ResultVo.success(idleItemService.findIdleItem(findValue,p,n));
}

@GetMapping("lable")
public ResultVo findIdleItemByLable(@RequestParam(value = "idleLabel",required = true) Integer idleLabel,
@RequestParam(value = "page",required = false) Integer page,
@RequestParam(value = "nums",required = false) Integer nums){
int p=1;
int n=8;
if(null!=page){
p=page>0?page:1;
}
if(null!=nums){
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
            return ResultVo.success();
return ResultVo.fail(ErrorMsg.SYSTEM_ERROR);
}

}



@CrossOrigin
@RestController
@RequestMapping("user")
public class UserController {

@Autowired
private UserService userService;


/**
* 注册账号
* @param userModel
* @return
*/
@PostMapping("sign-in")
public ResultVo signIn(@RequestBody UserModel userModel) {
System.out.println(userModel);
userModel.setSignInTime(new Timestamp(System.currentTimeMillis()));
if (userModel.getAvatar() == null || "".equals(userModel.getAvatar())) {
userModel.setAvatar("https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png");
}
if (userService.userSignIn(userModel)) {
return ResultVo.success(userModel);
}
return ResultVo.fail(ErrorMsg.REGISTER_ERROR);
}

/**
* 登录,不安全,可伪造id,后期改进
*
* @param accountNumber
* @param userPassword
* @param response
* @return


项目链接:
https://javayms.github.io?id=481124002505201lt
https://javayms.pages.dev?id=481124002505201lt