基于javaweb的SpringBoot+MyBatis网上书店管理系统在线购书系统(前台、后台)(java+springboot+thymeleaf+html+mysql+maven)

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

前台:购书

后台:管理书、用户、订单发货等

410123232502

420123232502

前台

270123232502

280123232502

290123232502

300123232502

310123232502

320123232502

330123232502

后台

340123232502

360123232502

370123232502

380123232502

390123232502

400123232502

技术框架

JavaWeb SpringBoot MyBatis Thymeleaf html layui JavaScript SpringMVC MySQL

基于javaweb的SpringBoot+MyBatis网上书店管理系统在线购书系统(前台、后台)(java+springboot+thymeleaf+html+mysql+maven)

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

/**
* @Description: 图片上传控制器
*/
@RestController
@RequestMapping("/upload")
public class ImageUploadController {

@PostMapping("/book_image")
public ResultVO uploadBookImage(MultipartFile bookImage, HttpServletRequest request) {
//获取项目上传文件夹路径
String srcPath = "src/main/resources/stathttps://yms-1257401191.cos.ap-nanjing.myqcloud.com/book_images";
String targetFileName = System.currentTimeMillis() + bookImage.getOriginalFilename().substring(bookImage.getOriginalFilename().lastIndexOf("."));
//上传
try {
File srcFile = new File(new File(srcPath).getAbsolutePath(), targetFileName);
bookImage.transferTo(srcFile);
copyToTargetDir(srcFile, targetFileName);
} catch (Exception e) {
e.printStackTrace();
throw new CustomizeException(ResultCode.FAILED, "上传图片失败");
}
return new ResultVO(ResultCode.SUCCESS, targetFileName);
}

private void copyToTargetDir(File srcFile, String targetFileName) throws Exception {
String targetPath = "target/classes/stathttps://yms-1257401191.cos.ap-nanjing.myqcloud.com/book_images";
InputStream inBuff = new BufferedInputStream(new FileInputStream(srcFile));
OutputStream outBuff = new BufferedOutputStream(new FileOutputStream(new File(new File(targetPath).getAbsolutePath(), targetFileName)));
byte[] b = new byte[1024 * 5 * 10];
int len;
while ((len = inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
outBuff.flush();
inBuff.close();
outBuff.close();
}
}
package com.demo.controller;



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
   /* @GetMapping("/search")
public ResultVO searchUserById(Integer userId) {
User users =userService.selectByUserId(userId);
if(users!=null)
return new ResultVO(ResultCode.SUCCESS,users);
else
return new ResultVO(ResultCode.USER_NOT_FOUND,null);
}*/

/* 原来
@PostMapping("/update1")
public ResultVO updateUser( User record) {
int users =userService.updateByUserId(record);
return new ResultVO(ResultCode.SUCCESS,null);
}*/

/**
* 修改 添加验证注解和RequestBody注解 --By guozongchao
* @param record
* @return
*/
@PostMapping("/update")
public ResultVO updateUser(@RequestBody @Valid User record) {
int users =userService.updateByUserId(record);
return new ResultVO(ResultCode.SUCCESS,null);
}

@GetMapping("/search")
public ResultVO searchUsers(User user, Integer page, Integer limit) {
if (user.getUserName().isEmpty()) {
user.setUserName(null);
}
if (user.getEmail().isEmpty()) {
user.setEmail(null);
}
List<User> users = userService.searchUsers(user, page, limit);
PageInfo pageInfo = new PageInfo(users);
return new ResultVO(ResultCode.SUCCESS, (int) pageInfo.getTotal(), users);
}

}
package com.demo.controller;



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
}
package com.demo.controller;



/**
* @Description: 图片上传控制器
*/
@RestController
@RequestMapping("/upload")
public class ImageUploadController {

@PostMapping("/book_image")
public ResultVO uploadBookImage(MultipartFile bookImage, HttpServletRequest request) {
//获取项目上传文件夹路径
String srcPath = "src/main/resources/stathttps://yms-1257401191.cos.ap-nanjing.myqcloud.com/book_images";
String targetFileName = System.currentTimeMillis() + bookImage.getOriginalFilename().substring(bookImage.getOriginalFilename().lastIndexOf("."));
//上传
try {
File srcFile = new File(new File(srcPath).getAbsolutePath(), targetFileName);
bookImage.transferTo(srcFile);
copyToTargetDir(srcFile, targetFileName);
} catch (Exception e) {
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


/**
* @Description: 管理员访问拦截器
*/
public class AdminInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if (session.getAttribute("admin")==null) {
//用户未登录,抛出异常
throw new CustomizeException(ResultCode.USER_NOT_LOGGED_IN);
}
Admin admin = (Admin) session.getAttribute("admin");
//已登录,放行请求
return true;
}
}
package com.demo.service;



/**
* @Description: 登录注册模块业务接口
*/
public interface LoginRegisterService {

/**
* 用户登录
* @param record
* @param session
*/
void userLogin(User record, HttpSession session);

/**
* 用户注册
* @param record
*/
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

/**
* 多条件搜索订单 ---- by guozongchao
* @param order
* @param page
* @param limit
* @return
*/
@GetMapping("/search")
public ResultVO searchOrders(Order order, Integer page, Integer limit) {
if (order.getConsigneeName().isEmpty()) {
order.setConsigneeName(null);
}
List<Order> orders = orderService.searchOrders(order, page, limit);
PageInfo pageInfo = new PageInfo(orders);
return new ResultVO(ResultCode.SUCCESS, (int) pageInfo.getTotal(), orders);
}

}
package com.demo.controller;



/**
* @Description: 购物城模块控制器
*/
@RestController
@RequestMapping("/cart")
public class ShoppingCartController {

@Autowired
private ShoppingCartService shoppingCartService;
/**
* 根据用户ID获取该用户的购物车
* @param session
* @return
*/
@GetMapping("/list")
public ResultVO getCartByUserId(HttpSession session) {
User user = (User) session.getAttribute("user");


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