基于javaweb的SSM二手书交易平台(java+ssm+jsp+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

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

功能说明

302124160703

312124160703

322124160703

332124160703

342124160703

352124160703

362124160703

372124160703

382124160703

392124160703

302024313108

基于javaweb的SSM二手书交易平台(java+ssm+jsp+mysql)

/SecondBook

1
2
3
4
5
6
7
8
9
管理员
admin@qq.com 123456


用户:
user2@qq.com 123456
user3@qq.com 123456
user4@qq.com 123456
user5@qq.com 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

@RequestMapping(value = "userProfile", method = RequestMethod.GET)
public String getMyProfile(ModelMap model, HttpSession session) {
User user = (User) session.getAttribute("user");
if (user == null) {
return "redirect:/";
}
List<Collect> collects = collectService
.getCollectByUserId(user.getId());
for (Collect collect : collects) {
collect.setGood(goodService.getGoodById(collect.getGoodId()));
}
List<Good> goods = goodService.getGoodByUserId(user.getId());
List<Order> orders = orderService.getOrderByCustomerId(user.getId());
List<Review> reviews = reviewService.gerReviewByToUserId(user.getId());
List<Reply> replies = reviewService.gerReplyByToUserId(user.getId());
List<Order> sellGoods = orderService.getOrderBySellerId(user.getId());
model.addAttribute("collects", collects);
model.addAttribute("goods", goods);
model.addAttribute("orders", orders);
model.addAttribute("reviews", reviews);
model.addAttribute("replies", replies);
model.addAttribute("sellGoods", sellGoods);
return "user/userProfile";
}

@RequestMapping(value = "/review", method = RequestMethod.GET)
public String getReviewInfo(@RequestParam(required = false) Integer goodId,
@RequestParam(required = false) Integer reviewId) {
System.out.println("reviewId" + reviewId);
if (reviewId != null) {
System.out.println("reviewId" + reviewId);
if (reviewService.updateReviewStatus(1, reviewId) == 1) {
return "redirect:/goods/goodInfo?goodId=" + goodId;
}
}
return "redirect:/user/userProfile";
}

@RequestMapping(value = "/reply", method = RequestMethod.GET)
public String getReplyInfo(
@RequestParam(required = false) Integer reviewId,
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
		System.out.println("修改物品失败!");
}
List<Image> goodImages = imageService.getImageByGoodId(good.getId());
model.addAttribute("goods", goods);
model.addAttribute("good", good);
model.addAttribute("goodImages", goodImages);
model.addAttribute("firstTypes", firstTypes);
return "goods/userGoodEdit";
}

@RequestMapping(value = "/goods/userGoodEdit/updateImage", method = RequestMethod.POST)
public String updateImage(
HttpSession session,
@RequestParam(value = "goodId", required = false) Integer goodId,
@RequestParam(value = "mainFile", required = false) MultipartFile mainFile,
@RequestParam(value = "file", required = false) MultipartFile[] file)
throws IOException {
User user = (User) session.getAttribute("user");
FileCheck fileCheck = new FileCheck();
imageService.deleteImage(goodId);
RandomString randomString = new RandomString();
String filePath = "/statics/image/goods/" + user.getId() + "/" + goodId;
String pathRoot = session.getServletContext().getRealPath(filePath);
File pathRootFile = new File(pathRoot);
//创建目录
if(!pathRootFile.exists()) {
pathRootFile.mkdirs();
}
String name;
if (!mainFile.isEmpty()) {
String contentType = mainFile.getContentType();
String fileName = goodId + randomString.getRandomString(10);
String imageName = contentType
.substring(contentType.indexOf("/") + 1);
name = fileName + "." + imageName;
mainFile.transferTo(new File(pathRoot , name));
String photoUrl = filePath + "/" + name;
goodService.updateGoodPhotoUrl(photoUrl, goodId);
}

for (MultipartFile mf : file) {
if (!mf.isEmpty()) {
String contentType = mf.getContentType();
String fileName = goodId + randomString.getRandomString(10);
String imageName = contentType.substring(contentType
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
	if (user != null) {
String mdsPass = password;
if (!mdsPass.equals(user.getPassword())) {
message = "用户密码错误!";
} else {
if (user.getStatusId() == 4) {
session.setAttribute("user", user);
if (preURL.equals("")) {
return "redirect:/";
} else {
return "redirect:" + preURL;
}
} else {
message = "用户已失效!";
}
}
} else {
message = "用户不存在!";
}
model.addAttribute("message", message);
return "home/login";
}

@RequestMapping(value = "/logout", method = RequestMethod.GET)
public String logout(
@RequestParam(required = false, defaultValue = "false") String logout,
HttpSession session) {
if (logout.equals("true")) {
session.removeAttribute("user");
}
return "redirect:/";
}

@RequestMapping(value = "/register", method = RequestMethod.GET)
public String registerPage(ModelMap model) {
User user = new User();
model.addAttribute("user", user);
return "home/register";
}

@RequestMapping(value = "/register", method = RequestMethod.POST)
public String registerSuccess(ModelMap model, @Valid User user) {
String status;
Boolean insertSuccess;
InfoCheck infoCheck = new InfoCheck();
if (!infoCheck.isMobile(user.getMobile())) {
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
	}

@RequestMapping(value = "/secondType/create", method = RequestMethod.POST)
public ResponseEntity createSecondType(@RequestBody SecondType secondType) {
Integer thisFirstTypeId = secondType.getFirstTypeId();
Boolean success = typeService.createSecondType(secondType);
if (success) {
List<SecondType> secondTypeList = typeService
.getSecondTypeByFirstTypeId(thisFirstTypeId);
return ResponseEntity.ok(secondTypeList);
}
return ResponseEntity.ok(success);
}

@RequestMapping(value = "/firstType/create", method = RequestMethod.POST)
public ResponseEntity createSecondType(@RequestBody FirstType firstType) {
Boolean success = typeService.createFirstType(firstType);
if (success) {
List<FirstType> firstTypeList = typeService.getAllFirstType();
return ResponseEntity.ok(firstTypeList);
}
return ResponseEntity.ok(success);
}
}



@Controller
@RequestMapping(value = "/collect")
public class CollectController {
private final CollectService collectService;
private final GoodService goodService;

@Autowired
public CollectController(CollectService collectService, GoodService goodService) {
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

@Controller
@RequestMapping("type")
public class TypeController {
private final TypeService typeService;
private final GoodService goodService;

@Autowired
public TypeController(TypeService typeService, GoodService goodService) {
this.typeService = typeService;
this.goodService = goodService;
}

@RequestMapping(value = "/secondType/{firstTypeId}", method = RequestMethod.GET)
public ResponseEntity getSecondTypeId(@PathVariable Integer firstTypeId) {
List<SecondType> secondTypes = typeService
.getSecondTypeByFirstTypeId(firstTypeId);
if (secondTypes == null) {
return ResponseEntity.ok("isNull");
}
return ResponseEntity.ok(secondTypes);
}

@RequestMapping(value = "/secondType/delete/{secondTypeId}", method = RequestMethod.GET)
public ResponseEntity deleteSecondType(@PathVariable Integer secondTypeId) {
Boolean success = goodService.getGoodsAdminByType(secondTypeId)
.isEmpty();
System.out.println(goodService.getGoodsAdminByType(secondTypeId));
if (success) {
Integer thisFirstTypeId = typeService.getSecondTypeById(
secondTypeId).getFirstTypeId();
success = typeService.deleteSecondType(secondTypeId);
if (success) {
List<SecondType> secondTypeList = typeService
.getSecondTypeByFirstTypeId(thisFirstTypeId);
if (secondTypeList == null) {
return ResponseEntity.ok("isNull");
}
return ResponseEntity.ok(secondTypeList);
}
}
return ResponseEntity.ok(success);
}

@RequestMapping(value = "/firstType/delete/{firstTypeId}", method = RequestMethod.GET)
public ResponseEntity deleteFirstType(@PathVariable Integer firstTypeId) {
Boolean success = typeService.getSecondTypeByFirstTypeId(firstTypeId)
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
	model.addAttribute("images", images);
model.addAttribute("goodUser", goodUser);
model.addAttribute("goods", goods);
model.addAttribute("collect", collect);
message = "";
return "goods/goodInfo";
}

@RequestMapping(value = "/goods/goodInfo", method = RequestMethod.POST)
public String putReview(
@RequestParam(value = "goodId", required = false) Integer goodId,
@RequestParam(value = "reviewId", required = false) Integer reviewId,
@RequestParam(value = "fromUserId", required = false) Integer fromUserId,
@RequestParam(value = "toUserId", required = false) Integer toUserId,
@RequestParam(value = "fromUser", required = false) String fromUser,
@RequestParam(value = "toUser", required = false) String toUser,
@RequestParam(value = "replyText", required = false, defaultValue = "") String replyText,
@RequestParam(value = "reviewText", required = false, defaultValue = "") String reviewText) {
if (reviewText.equals("")) {
if (replyText.equals("")) {
message = "内容不能为空!";
return "redirect:/goods/goodInfo?goodId=" + goodId;
} else {
Reply reply = new Reply();
reply.setReviewId(reviewId);
reply.setFromUser(fromUser);
reply.setFromUserId(fromUserId);
reply.setToUser(toUser);
reply.setToUserId(toUserId);
reply.setText(replyText);
if (reviewService.insertReply(reply) == 1) {
message = "回复成功!";
return "redirect:/goods/goodInfo?goodId=" + goodId;
} else {
message = "回复失败!";
return "redirect:/goods/goodInfo?goodId=" + goodId;
}
}
} else {
Review review = new Review();
review.setGoodId(goodId);
review.setFromUser(fromUser);
review.setFromUserId(fromUserId);
review.setToUserId(toUserId);
review.setText(reviewText);
if (reviewService.insertReview(review) == 1) {
message = "评论成功!";
return "redirect:/goods/goodInfo?goodId=" + goodId;
} else {
message = "评论失败!";
return "redirect:/goods/goodInfo?goodId=" + goodId;


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