基于javaweb+mysql的ssm二手书交易平台(java+ssm+jsp+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM二手书交易平台(java+ssm+jsp+mysql)
/SecondBook
管理员
admin@qq.com 123456
用户:
user2@qq.com 123456
user3@qq.com 123456
user4@qq.com 123456
user5@qq.com 123456
主要功能:
后台管理员:分类管理(一级分类、二级分类)
后台管理员:物品管理(删除、下架)
后台管理员:订单管理
后台管理员:用户管理
前台用户:注册登录
前台用户:浏览物品
前台用户:购买物品
前台用户:发布物品
前台用户:个人资料管理
String oldPass = DigestUtils
.md5DigestAsHex((password.getOldPassword() + user.getCode())
.getBytes());
if (oldPass.equals(user.getPassword())) {
RandomString randomString = new RandomString();
String code = (randomString.getRandomString(5));
String md5Pass = password.getNewPassword();
Boolean success = userService.updatePassword(md5Pass, code,
password.getUserId());
if (success) {
return ResponseEntity.ok(true);
} else {
return ResponseEntity.ok("密码修改失败!");
}
} else {
return ResponseEntity.ok("原密码输入不正确!");
}
}
}
@Controller
@RequestMapping(value = "admin")
public class AdminController {
private final UserService userService;
private final GoodService goodService;
private final TypeService typeService;
private final OrderService orderService;
@Autowired
public AdminController(UserService userService, GoodService goodService, TypeService typeService, OrderService orderService) {
@RequestMapping(value = "/user/orderInfo", method = RequestMethod.GET)
public String getOrderInfo(ModelMap model,
@RequestParam(value = "orderId", required = false) Integer orderId,
HttpSession session) {
User sessionUser = (User) session.getAttribute("user");
if (sessionUser == null) {
return "redirect:/";
}
Order orderInfo = orderService.getOrderById(orderId);
List<Order> orders = orderService.getOtherOrderByCustomerId(
sessionUser.getId(), orderId);
model.addAttribute("orderInfo", orderInfo);
model.addAttribute("orders", orders);
return "user/orderInfo";
}
@RequestMapping(value = "/user/sellerInfo", method = RequestMethod.GET)
public String getSellerInfo(ModelMap model,
@RequestParam(value = "orderId", required = false) Integer orderId,
HttpSession session) {
User sessionUser = (User) session.getAttribute("user");
if (sessionUser == null) {
return "redirect:/";
}
Order orderInfo = orderService.getOrderById(orderId);
List<Order> orders = orderService.getOtherOrderBySellerId(
sessionUser.getId(), orderId);
model.addAttribute("orderInfo", orderInfo);
model.addAttribute("orders", orders);
System.out.println("sellerInfo.size:" + orders.size());
return "user/sellerInfo";
}
@RequestMapping(value = "/user/order/delete/{orderId}", method = RequestMethod.GET)
public ResponseEntity deleteOrderById(@PathVariable Integer orderId) {
Boolean success;
success = orderService.deleteOrderById(orderId) > 0;
return ResponseEntity.ok(success);
}
@RequestMapping(value = "/user/sellerOrder/delete/{orderId}&{goodId}", method = RequestMethod.GET)
public ResponseEntity deleteSellerOrderById(@PathVariable Integer orderId,
@PathVariable Integer goodId) {
Boolean success;
success = goodService.updateGoodStatusId(1, goodId) > 0;
if (success) {
success = orderService.deleteOrderById(orderId) > 0;
}
return ResponseEntity.ok(success);
}
@RequestMapping(value = "/user/order/update/status/{orderId}&{statusId}", method = RequestMethod.GET)
List<Good> goods = goodService.getAllGoods(0, 5);
if (!(goodService.updateGood(good) > 0)) {
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);
.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) {
this.collectService = collectService;
this.goodService = goodService;
}
@RequestMapping(value = "/insert", method = RequestMethod.POST)
public ResponseEntity insertCollect(@RequestBody Collect collect){
return ResponseEntity.ok(collectService.insertCollect(collect));
}
}
@RequestMapping(value = "/password/edit", method = RequestMethod.POST)
public ResponseEntity editPassword(@RequestBody Password password) {
User user = userService.getUserById(password.getUserId());
String oldPass = DigestUtils
.md5DigestAsHex((password.getOldPassword() + user.getCode())
.getBytes());
if (oldPass.equals(user.getPassword())) {
RandomString randomString = new RandomString();
String code = (randomString.getRandomString(5));
String md5Pass = password.getNewPassword();
Boolean success = userService.updatePassword(md5Pass, code,
password.getUserId());
if (success) {
return ResponseEntity.ok(true);
} else {
return ResponseEntity.ok("密码修改失败!");
}
} else {
return ResponseEntity.ok("原密码输入不正确!");
}
}
}
@Controller
@RequestMapping(value = "admin")
public class AdminController {
private final UserService userService;
private final GoodService goodService;
private final TypeService typeService;
success = typeService.deleteFirstType(firstTypeId);
if (success) {
List<FirstType> firstTypeList = typeService.getAllFirstType();
if (firstTypeList == null) {
return ResponseEntity.ok("isNull");
}
return ResponseEntity.ok(firstTypeList);
}
}
return ResponseEntity.ok(success);
}
@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 = "user")
public class UserController {
private final GoodService goodService;
private final OrderService orderService;
private final ReviewService reviewService;
private final UserService userService;
private final CollectService collectService;
@Autowired
public UserController(GoodService goodService, OrderService orderService,
ReviewService reviewService, UserService userService,
CollectService collectService) {
this.goodService = goodService;
this.orderService = orderService;
this.reviewService = reviewService;
this.userService = userService;
this.collectService = collectService;
}
@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) {
Boolean success;
success = goodService.updateGoodStatusId(0, goodId) > 0;
return ResponseEntity.ok(success);
}
@RequestMapping(value = "/admin/goods/allGoods", method = RequestMethod.GET)
public ResponseEntity adminGetAllGoods() {
List<Good> goodList = goodService.getAllGoodList();
for (Good good : goodList) {
good.setGoodUser(userService.getUserById(good.getUserId()));
good.setGoodSecondType(typeService.getSecondTypeById(good
.getSecondTypeId()));
}
return ResponseEntity.ok(goodList);
}
}
@Controller
@RequestMapping(value = "user")
public class UserController {
private final GoodService goodService;
}
@RequestMapping(value = "/goods/userGoodEdit", method = RequestMethod.GET)
public String getUserGoodEdit(ModelMap model,
@RequestParam(value = "goodId", required = false) Integer goodId,
HttpSession session) {
User user = (User) session.getAttribute("user");
if (user == null) {
return "redirect:/";
}
Good good = goodService.getGoodById(goodId);
List<FirstType> firstTypes = typeService.getAllFirstType();
List<Good> goods = goodService.getAllGoods(0, 5);
List<Image> goodImages = imageService.getImageByGoodId(goodId);
model.addAttribute("goods", goods);
model.addAttribute("good", good);
model.addAttribute("goodImages", goodImages);
model.addAttribute("firstTypes", firstTypes);
return "goods/userGoodEdit";
}
@RequestMapping(value = "/goods/userGoodEdit", method = RequestMethod.POST)
public String postGoodEdit(ModelMap model, HttpSession session,
@Valid Good good) {
List<FirstType> firstTypes = typeService.getAllFirstType();
User user = (User) session.getAttribute("user");
if (user == null) {
return "redirect:/";
}
List<Good> goods = goodService.getAllGoods(0, 5);
if (!(goodService.updateGood(good) > 0)) {
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)
}
@RequestMapping(value = "/user/sellerOrder/delete/{orderId}&{goodId}", method = RequestMethod.GET)
public ResponseEntity deleteSellerOrderById(@PathVariable Integer orderId,
@PathVariable Integer goodId) {
Boolean success;
success = goodService.updateGoodStatusId(1, goodId) > 0;
if (success) {
success = orderService.deleteOrderById(orderId) > 0;
}
return ResponseEntity.ok(success);
}
@RequestMapping(value = "/user/order/update/status/{orderId}&{statusId}", method = RequestMethod.GET)
public ResponseEntity updateOrderStatus(@PathVariable Integer orderId,
@PathVariable Integer statusId) {
Boolean success = orderService.updateStatus(statusId, orderId) > 0;
if (success) {
Order order = orderService.getOrderById(orderId);
return ResponseEntity.ok(order);
}
return ResponseEntity.ok(success);
}
@RequestMapping(value = "/user/order/create", method = RequestMethod.POST)
public ResponseEntity createOrder(@RequestBody Order order) {
Boolean success = orderService.insertOrder(order) > 0;
if (success) {
success = goodService.updateGoodStatusId(0, order.getGoodId()) > 0;
if (success) {
return ResponseEntity.ok(order.getId());
} else {
orderService.deleteOrderById(order.getId());
return ResponseEntity.ok(success);
}
}
return ResponseEntity.ok(success);
}
@RequestMapping(value = "/user/order/allOrder", method = RequestMethod.GET)
public ResponseEntity getAllOrders() {
List<Order> orderList = orderService.getOrderList();
return ResponseEntity.ok(orderList);
}
if (!mainFile.isEmpty()) {
String fileName = goodId + randomString.getRandomString(10);
String contentType = mainFile.getContentType();
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()) {
// 生成uuid作为文件名称
String fileName = goodId + randomString.getRandomString(10);
// 获得文件类型(可以判断如果不是图片,禁止上传)
String contentType = mf.getContentType();
// 获得文件后缀名称
String imageName = contentType.substring(contentType
.indexOf("/") + 1);
name = fileName + "." + imageName;
System.out.println("name:" + name);
mf.transferTo(new File(pathRoot , name));
Image image = new Image();
image.setGoodId(goodId);
image.setName(name);
image.setUrl(filePath + "/" + name);
imageService.insertImage(image);
} else {
System.out.println("文件为空!");
}
}
return "redirect:/goods/goodInfo?goodId=" + goodId;
}
@RequestMapping(value = "/goods/userGoods", method = RequestMethod.GET)
public String getUserGoods(ModelMap model,
@RequestParam(value = "userId", required = false) Integer userId) {
User user = userService.getUserById(userId);
List<Good> userGoods = goodService.getGoodStatusByUserId(userId);
List<Good> goods = goodService.getAllGoods(0, 4);
model.addAttribute("user", user);
model.addAttribute("userGoods", userGoods);
model.addAttribute("goods", goods);
return "goods/userGood";
}
@RequestMapping(value = "/goods/userGoodEdit", method = RequestMethod.GET)
public String getUserGoodEdit(ModelMap model,
@RequestParam(value = "goodId", required = false) Integer goodId,
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) {
this.collectService = collectService;
this.goodService = goodService;
}
@RequestMapping(value = "/insert", method = RequestMethod.POST)
public ResponseEntity insertCollect(@RequestBody Collect collect){
return ResponseEntity.ok(collectService.insertCollect(collect));
}
@RequestMapping(value = "/delete/{collectId}&{userId}", method = RequestMethod.GET)
public ResponseEntity deleteCollect(@PathVariable Integer collectId,
@PathVariable Integer userId){
Boolean success = collectService.deleteCollect(collectId);
if (success){
return "user/sellerInfo";
}
@RequestMapping(value = "/user/order/delete/{orderId}", method = RequestMethod.GET)
public ResponseEntity deleteOrderById(@PathVariable Integer orderId) {
Boolean success;
success = orderService.deleteOrderById(orderId) > 0;
return ResponseEntity.ok(success);
}
@RequestMapping(value = "/user/sellerOrder/delete/{orderId}&{goodId}", method = RequestMethod.GET)
public ResponseEntity deleteSellerOrderById(@PathVariable Integer orderId,
@PathVariable Integer goodId) {
Boolean success;
success = goodService.updateGoodStatusId(1, goodId) > 0;
if (success) {
success = orderService.deleteOrderById(orderId) > 0;
}
return ResponseEntity.ok(success);
}
@RequestMapping(value = "/user/order/update/status/{orderId}&{statusId}", method = RequestMethod.GET)
public ResponseEntity updateOrderStatus(@PathVariable Integer orderId,
@PathVariable Integer statusId) {
Boolean success = orderService.updateStatus(statusId, orderId) > 0;
if (success) {
Order order = orderService.getOrderById(orderId);
return ResponseEntity.ok(order);
}
return ResponseEntity.ok(success);
}
@RequestMapping(value = "/user/order/create", method = RequestMethod.POST)
public ResponseEntity createOrder(@RequestBody Order order) {
Boolean success = orderService.insertOrder(order) > 0;
if (success) {
success = goodService.updateGoodStatusId(0, order.getGoodId()) > 0;
if (success) {
return ResponseEntity.ok(order.getId());
} else {
orderService.deleteOrderById(order.getId());
return ResponseEntity.ok(success);
}
}
return ResponseEntity.ok(success);
}
@RequestMapping(value = "/user/order/allOrder", method = RequestMethod.GET)
public ResponseEntity getAllOrders() {
List<Order> orderList = orderService.getOrderList();
@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) {
@Controller
@RequestMapping(value = "admin")
public class AdminController {
private final UserService userService;
private final GoodService goodService;
private final TypeService typeService;
private final OrderService orderService;
@Autowired
public AdminController(UserService userService, GoodService goodService, TypeService typeService, OrderService orderService) {
this.userService = userService;
this.goodService = goodService;
this.typeService = typeService;
this.orderService = orderService;
}
@RequestMapping(value = "/adminLogin", method = RequestMethod.GET)
public String getAdminLogin(){
return "admin/adminLogin";
}
@RequestMapping(value = "/adminLogin", method = RequestMethod.POST)
public String postAdminLogin(ModelMap model,
@RequestParam(value = "email", required = false) String email,
@RequestParam(value = "password", required = false) String password,
HttpSession session) {
User admin = userService.getUserByEmail(email);
String message;
if (admin != null){
String mdsPass = password;
// if (!mdsPass .equals(admin.getPassword())){
// message = "用户密码错误!";
// }
if (!password .equals(admin.getPassword())){
message = "用户密码错误!";
} else if (admin.getRoleId() != 101){
message = "用户没有权限访问!";
} else {
session.setAttribute("admin",admin);
return "redirect:/admin/adminPage";
}
@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())) {
status = "请输入正确的手机号!";
} else if (!infoCheck.isEmail(user.getEmail())) {
status = "请输入正确的邮箱!";
} else if (userService.getUserByMobile(user.getMobile()) != null) {
status = "此手机号码已使用!";
} else if (userService.getUserByEmail(user.getEmail()) != null) {
status = "此邮箱已使用!";
} else if (user.getPassword2() == null) {
status = "请确认密码!";
} else {
RandomString randomString = new RandomString();
user.setCode(randomString.getRandomString(5));
String md5Pass = user.getPassword();
user.setPassword(md5Pass);
insertSuccess = userService.registerUser(user);
if (insertSuccess) {
return "home/login";
} else {
status = "注册失败!";
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;
}
}
}
@RequestMapping(value = "/goods/publishGood", method = RequestMethod.GET)
public String getPublishGood(ModelMap model, HttpSession session) {
User user = (User) session.getAttribute("user");
if (user == null) {
return "redirect:/";
}
Good good = new Good();
List<FirstType> firstTypes = typeService.getAllFirstType();
List<Good> goods = goodService.getAllGoods(0, 5);
model.addAttribute("goods", goods);
model.addAttribute("good", good);