基于javaweb+mysql的springboot书城商城系统(java+springboot+vue+maven+mybatis+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Node.js≥10
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot书城商城系统(java+springboot+vue+maven+mybatis+mysql)
一、项目运行 环境配置:
Jdk1.8 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术:
Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。
@RestController
@RequestMapping("/api/msslyyPublisher")
@Api(tags = "出版社分类表")
public class MsslyyPublisherController {
@Resource
private MsslyyPublisherService msslyyPublisherService;
@Resource
private HttpServletRequest request;
@Resource
private UserService userService;
public User getUser() {
String token = request.getHeader("token");
String username = JWT.decode(token).getAudience().get(0);
return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
}
@ApiOperation(value = "新增出版社分类",notes = "")
@PostMapping
public Result<?> save(@RequestBody MsslyyPublisher msslyyPublisher) {
msslyyPublisherService.save(msslyyPublisher);
return Result.success();
}
@ApiOperation(value = "更新出版社分类",notes = "")
@PutMapping
public Result<?> update(@RequestBody MsslyyPublisher msslyyPublisher) {
msslyyPublisherService.updateById(msslyyPublisher);
return Result.success();
}
@ApiOperation(value = "删除出版社分类",notes = "")
@DeleteMapping("/{id}")
public Result<?> delete(@PathVariable Long id) {
msslyyPublisherService.removeById(id);
return Result.success();
}
@ApiOperation(value = "根据id查询",notes = "")
@GetMapping("/{id}")
public Result<?> findById(@PathVariable Long id) {
return Result.success(msslyyPublisherService.getById(id));
}
@ApiOperation(value = "查询全部",notes = "")
@GetMapping
}
@ApiOperation(value = "删除订单详情",notes = "")
@DeleteMapping("/{id}")
public Result<?> delete(@PathVariable Long id) {
msslyyOrderDetailService.removeById(id);
return Result.success();
}
@ApiOperation(value = "根据id查询",notes = "")
@GetMapping("/{id}")
public Result<?> findById(@PathVariable Long id) {
return Result.success(msslyyOrderDetailService.getById(id));
}
@ApiOperation(value = "查询全部",notes = "")
@GetMapping
public Result<?> findAll() {
List<MsslyyOrderDetail> list = msslyyOrderDetailService.list();
return Result.success(list);
}
@ApiOperation(value = "分页",notes = "")
@GetMapping("/page")
public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
LambdaQueryWrapper<MsslyyOrderDetail> query = Wrappers.<MsslyyOrderDetail>lambdaQuery().orderByDesc(MsslyyOrderDetail::getId);
if (StrUtil.isNotBlank(name)) {
query.like(MsslyyOrderDetail::getBookId, name);
}
IPage<MsslyyOrderDetail> page = msslyyOrderDetailService.page(new Page<>(pageNum, pageSize), query);
return Result.success(page);
}
}
Map<String, Object> row1 = new LinkedHashMap<>();
row1.put("名称", user.getUsername());
row1.put("手机", user.getPhone());
row1.put("邮箱", user.getEmail());
list.add(row1);
}
// 2. 写excel
ExcelWriter writer = ExcelUtil.getWriter(true);
writer.write(list, true);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
String fileName = URLEncoder.encode("用户信息", "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
ServletOutputStream out = response.getOutputStream();
writer.flush(out, true);
writer.close();
IoUtil.close(System.out);
}
}
@RestController
@RequestMapping("/api/msslyyCart")
@GetMapping("/getFootprintById/{id}")
public Result<?> getFootprintById(
@PathVariable Long id,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
List books = msslyyFootprintService.getFootprintById(id);
Page pages = pageUtils.getPages(pageNum, pageSize, books);
return Result.success(pages);
}
@GetMapping("/getCartById/{id}")
public Result<?> getCartById(
@PathVariable Long id,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
List books = msslyyCartService.getCartById(id);
Page pages = pageUtils.getPages(pageNum, pageSize, books);
return Result.success(pages);
}
}
@GetMapping("/page")
public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "") Long categoryId,
@RequestParam(required = false, defaultValue = "") Long publisherId,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
LambdaQueryWrapper<MsslyyBook> query = Wrappers.<MsslyyBook>lambdaQuery().orderByDesc(MsslyyBook::getId);
if (StrUtil.isNotBlank(name)) {
query.like(MsslyyBook::getBookTitle, name);
}
if (categoryId!=0) {
query.eq(MsslyyBook::getCategoryId, categoryId);
}
if (publisherId!=0) {
query.eq(MsslyyBook::getPublisherId, publisherId);
}
IPage<MsslyyBook> page = msslyyBookService.page(new Page<>(pageNum, pageSize), query);
page.getRecords().forEach(e->{
msslyyPublisherService.list().forEach(p->{
if (e.getPublisherId()==p.getId()){
e.setPublisherName(p.getPublisherName());
}
});
msslyyCategoryService.list().forEach(c->{
if (e.getCategoryId()==c.getId()){
e.setCategoryName(c.getCategoryName());
}
});
});
return Result.success(page);
}
@GetMapping("/getBookListById/{id}")
public Result<?> getBookListById(
@PathVariable Long id,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
List books = msslyyWishlistService.getBookListById(id);
Page pages = pageUtils.getPages(pageNum, pageSize, books);
return Result.success(pages);
}
@GetMapping("/getBookListById2/{id}")
public Result<?> getBookListById2(
@PathVariable Long id) {
List books = msslyyWishlistService.getBookListById(id);
@RestController
@RequestMapping("/api/permission")
@Api(tags = "后台权限表")
public class PermissionController {
@Resource
private PermissionService permissionService;
@Resource
private LogService logService;
@ApiOperation(value = "新增权限",notes = "")
@PostMapping
public Result<?> save(@RequestBody Permission permission) {
logService.log(StrUtil.format("新增权限菜单:{}", permission.getName()));
return Result.success(permissionService.save(permission));
}
@ApiOperation(value = "更新权限",notes = "")
@PutMapping
public Result<?> update(@RequestBody Permission permission) {
logService.log(StrUtil.format("更新权限菜单:{}", permission.getName()));
return Result.success(permissionService.updateById(permission));
}
@ApiOperation(value = "删除权限",notes = "")
@DeleteMapping("/{id}")
public Result<?> delete(@PathVariable Long id) {
Permission permission = permissionService.getById(id);
logService.log(StrUtil.format("删除权限菜单:{}", permission.getName()));
permissionService.delete(id);
return Result.success();
}
@ApiOperation(value = "根据id查询",notes = "")
@GetMapping("/{id}")
return Result.success();
}
@ApiOperation(value = "更新分配标签",notes = "")
@PutMapping
public Result<?> update(@RequestBody MsslyyLabelBook msslyyLabelBook) {
msslyyLabelBookService.updateById(msslyyLabelBook);
return Result.success();
}
@ApiOperation(value = "删除分配标签",notes = "")
@DeleteMapping("/{id}")
public Result<?> delete(@PathVariable Long id) {
msslyyLabelBookService.removeById(id);
return Result.success();
}
@ApiOperation(value = "根据id查询",notes = "")
@GetMapping("/{id}")
public Result<?> findById(@PathVariable Long id) {
return Result.success(msslyyLabelBookService.getById(id));
}
@ApiOperation(value = "查询全部",notes = "")
@GetMapping
public Result<?> findAll() {
List<MsslyyLabelBook> list = msslyyLabelBookService.list();
return Result.success(list);
}
@ApiOperation(value = "分页",notes = "")
@GetMapping("/page")
public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
LambdaQueryWrapper<MsslyyLabelBook> query = Wrappers.<MsslyyLabelBook>lambdaQuery().orderByDesc(MsslyyLabelBook::getId);
if (StrUtil.isNotBlank(name)) {
query.like(MsslyyLabelBook::getBookId, name);
}
IPage<MsslyyLabelBook> page = msslyyLabelBookService.page(new Page<>(pageNum, pageSize), query);
return Result.success(page);
}
}
if (StrUtil.isNotBlank(name)) {
query.like(MsslyyComment::getBookId, name);
}
IPage<MsslyyComment> page = msslyyCommentService.page(new Page<>(pageNum, pageSize), query);
return Result.success(page);
}
}
@RestController
@RequestMapping("/api/msslyyFootprint")
@Api(tags = "足迹表")
public class MsslyyFootprintController {
@Resource
private MsslyyFootprintService msslyyFootprintService;
@Resource
private HttpServletRequest request;
@Resource
private UserService userService;
public User getUser() {
String token = request.getHeader("token");
@RestController
@RequestMapping("/api/msslyyWishlist")
@Api(tags = "收藏表")
public class MsslyyWishlistController {
@Resource
private MsslyyWishlistService msslyyWishlistService;
@Resource
private HttpServletRequest request;
@Resource
private UserService userService;
@Autowired
private RedisUtil redisUtil;
public User getUser() {
String token = request.getHeader("token");
String username = JWT.decode(token).getAudience().get(0);
return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
}
@GetMapping("/add/{bookId}/{userId}")
public Result<?> add(@PathVariable Long bookId,@PathVariable Long userId) {
int i = msslyyWishlistService.addWishList(bookId, userId);
return Result.success(i);
}
@ApiOperation(value = "新增收藏",notes = "")
@PostMapping
public Result<?> save(@RequestBody MsslyyWishlist msslyyWishlist) {
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
LambdaQueryWrapper<MsslyyAddressMessaget> query = Wrappers.<MsslyyAddressMessaget>lambdaQuery().orderByDesc(MsslyyAddressMessaget::getId);
if (StrUtil.isNotBlank(name)) {
query.like(MsslyyAddressMessaget::getAddressMessageName, name);
}
IPage<MsslyyAddressMessaget> page = msslyyAddressMessagetService.page(new Page<>(pageNum, pageSize), query);
return Result.success(page);
}
}
@RestController
@RequestMapping("/api/msslyyWishlist")
@Api(tags = "收藏表")
public class MsslyyWishlistController {
@Resource
private MsslyyWishlistService msslyyWishlistService;
@Resource
private HttpServletRequest request;
@Resource
private UserService userService;
@Autowired
@Resource
private MsslyyUserService msslyyUserService;
@Resource
private HttpServletRequest request;
@Resource
private UserService userService;
@Resource
private LogService logService;
/**
* 登录
*
* @param msslyyUser
* @return
*/
@ApiOperation(value = "前台用户登录",notes = "")
@PostMapping("/login")
public Result<MsslyyUser> login(@RequestBody MsslyyUser msslyyUser) {
MsslyyUser res = msslyyUserService.login(msslyyUser);
// 生成token
String token = JWT.create().withAudience(res.getUserUsername()).sign(Algorithm.HMAC256(res.getUserPassword()));
res.setToken(token);
logService.log(msslyyUser.getUserUsername(), StrUtil.format("用户 {} 登录书店", msslyyUser.getUserUsername()));
return Result.success(res);
}
/**
* 注册
*
* @param msslyyUser
* @param request
* @return
*/
@ApiOperation(value = "前台用户注册",notes = "")
@PostMapping("/register")
public Result<MsslyyUser> register(@RequestBody MsslyyUser msslyyUser, HttpServletRequest request) {
if (msslyyUser.getUserPassword() == null) {
msslyyUser.setUserPassword("123456");
}
MsslyyUser dbUser = msslyyUserService.register(msslyyUser);
request.getSession().setAttribute("user1", msslyyUser);
logService.log(msslyyUser.getUserUsername(), StrUtil.format("用户 {} 注册账号成功", msslyyUser.getUserUsername()));
return Result.success(dbUser);
}
@GetMapping("/total")
public Result<?> getTotal() {
return Result.success(msslyyUserService.count());
}
public User getUser() {
String token = request.getHeader("token");
String username = JWT.decode(token).getAudience().get(0);
@ApiOperation(value = "分页",notes = "")
@GetMapping("/page")
public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "") Long categoryId,
@RequestParam(required = false, defaultValue = "") Long publisherId,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
LambdaQueryWrapper<MsslyyBook> query = Wrappers.<MsslyyBook>lambdaQuery().orderByDesc(MsslyyBook::getId);
if (StrUtil.isNotBlank(name)) {
query.like(MsslyyBook::getBookTitle, name);
}
if (categoryId!=0) {
query.eq(MsslyyBook::getCategoryId, categoryId);
}
if (publisherId!=0) {
query.eq(MsslyyBook::getPublisherId, publisherId);
}
IPage<MsslyyBook> page = msslyyBookService.page(new Page<>(pageNum, pageSize), query);
page.getRecords().forEach(e->{
msslyyPublisherService.list().forEach(p->{
if (e.getPublisherId()==p.getId()){
e.setPublisherName(p.getPublisherName());
}
});
msslyyCategoryService.list().forEach(c->{
if (e.getCategoryId()==c.getId()){
e.setCategoryName(c.getCategoryName());
}
});
});
return Result.success(page);
}
@GetMapping("/getBookListById/{id}")
public Result<?> getBookListById(
@PathVariable Long id,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
List books = msslyyWishlistService.getBookListById(id);
Page pages = pageUtils.getPages(pageNum, pageSize, books);
return Result.success(pages);
private MsslyyLabelBookService msslyyLabelBookService;
@Resource
private HttpServletRequest request;
@Resource
private UserService userService;
public User getUser() {
String token = request.getHeader("token");
String username = JWT.decode(token).getAudience().get(0);
return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
}
@ApiOperation(value = "新增分配标签",notes = "")
@PostMapping
public Result<?> save(@RequestBody MsslyyLabelBook msslyyLabelBook) {
msslyyLabelBookService.save(msslyyLabelBook);
return Result.success();
}
@ApiOperation(value = "更新分配标签",notes = "")
@PutMapping
public Result<?> update(@RequestBody MsslyyLabelBook msslyyLabelBook) {
msslyyLabelBookService.updateById(msslyyLabelBook);
return Result.success();
}
@ApiOperation(value = "删除分配标签",notes = "")
@DeleteMapping("/{id}")
public Result<?> delete(@PathVariable Long id) {
msslyyLabelBookService.removeById(id);
return Result.success();
}
@ApiOperation(value = "根据id查询",notes = "")
@GetMapping("/{id}")
public Result<?> findById(@PathVariable Long id) {
return Result.success(msslyyLabelBookService.getById(id));
}
@ApiOperation(value = "查询全部",notes = "")
@GetMapping
public Result<?> findAll() {
}
}
@RestController
@RequestMapping("/api/user")
@Api(tags = "后台用户表")
public class UserController {
@Resource
private UserService userService;
@Resource
private LogService logService;
@GetMapping("/findByUsername/{username}")
@ApiOperation(value = "新增图书分类",notes = "")
@PostMapping
public Result<?> save(@RequestBody MsslyyCategory msslyyCategory) {
msslyyCategoryService.save(msslyyCategory);
return Result.success();
}
@ApiOperation(value = "更新图书分类",notes = "")
@PutMapping
public Result<?> update(@RequestBody MsslyyCategory msslyyCategory) {
msslyyCategoryService.updateById(msslyyCategory);
return Result.success();
}
@ApiOperation(value = "删除图书分类",notes = "")
@DeleteMapping("/{id}")
public Result<?> delete(@PathVariable Long id) {
msslyyCategoryService.removeById(id);
return Result.success();
}
@ApiOperation(value = "根据id查询",notes = "")
@GetMapping("/{id}")
public Result<?> findById(@PathVariable Long id) {
return Result.success(msslyyCategoryService.getById(id));
}
@ApiOperation(value = "查询全部",notes = "")
@GetMapping
public Result<?> findAll() {
List<MsslyyCategory> list = msslyyCategoryService.list();
return Result.success(list);
}
@ApiOperation(value = "分页",notes = "")
@GetMapping("/page")
public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
LambdaQueryWrapper<MsslyyCategory> query = Wrappers.<MsslyyCategory>lambdaQuery().orderByDesc(MsslyyCategory::getId);
if (StrUtil.isNotBlank(name)) {
query.like(MsslyyCategory::getCategoryName, name);
}
IPage<MsslyyCategory> page = msslyyCategoryService.page(new Page<>(pageNum, pageSize), query);
return Result.success(page);
}
}
public User getUser() {
String token = request.getHeader("token");
String username = JWT.decode(token).getAudience().get(0);
return userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getUsername, username));
}
@ApiOperation(value = "新增前台用户",notes = "")
@PostMapping
public Result<?> save(@RequestBody MsslyyUser msslyyUser) {
msslyyUserService.save(msslyyUser);
return Result.success();
}
@ApiOperation(value = "更新前台用户",notes = "")
@PutMapping
public Result<?> update(@RequestBody MsslyyUser msslyyUser) {
msslyyUserService.updateById(msslyyUser);
return Result.success();
}
@ApiOperation(value = "删除前台用户",notes = "")
@DeleteMapping("/{id}")
public Result<?> delete(@PathVariable Long id) {
msslyyUserService.removeById(id);
return Result.success();
}
@ApiOperation(value = "根据id查询",notes = "")
@GetMapping("/{id}")
public Result<?> findById(@PathVariable Long id) {
return Result.success(msslyyUserService.getById(id));
}
@ApiOperation(value = "查询全部",notes = "")
@GetMapping
public Result<?> findAll() {
List<MsslyyUser> list = msslyyUserService.list();
return Result.success(list);
}
@ApiOperation(value = "分页",notes = "")
@GetMapping("/page")
public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
LambdaQueryWrapper<MsslyyUser> query = Wrappers.<MsslyyUser>lambdaQuery().orderByDesc(MsslyyUser::getId);
if (StrUtil.isNotBlank(name)) {
msslyyAddressMessagetService.removeById(id);
return Result.success();
}
@ApiOperation(value = "根据id查询收货地址",notes = "")
@GetMapping("/{id}")
public Result<?> findById(@PathVariable Long id) {
return Result.success(msslyyAddressMessagetService.getById(id));
}
@ApiOperation(value = "查询用户全部收货地址",notes = "")
@GetMapping
public Result<?> findAll() {
List<MsslyyAddressMessaget> list = msslyyAddressMessagetService.list();
return Result.success(list);
}
@ApiOperation(value = "分页",notes = "")
@GetMapping("/page")
public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
LambdaQueryWrapper<MsslyyAddressMessaget> query = Wrappers.<MsslyyAddressMessaget>lambdaQuery().orderByDesc(MsslyyAddressMessaget::getId);
if (StrUtil.isNotBlank(name)) {
query.like(MsslyyAddressMessaget::getAddressMessageName, name);
}
IPage<MsslyyAddressMessaget> page = msslyyAddressMessagetService.page(new Page<>(pageNum, pageSize), query);
return Result.success(page);
}
}
}
@ApiOperation(value = "根据id查询",notes = "")
@GetMapping("/{id}")
public Result<?> findById(@PathVariable Long id) {
return Result.success(msslyyPublisherService.getById(id));
}
@ApiOperation(value = "查询全部",notes = "")
@GetMapping
public Result<?> findAll() {
List<MsslyyPublisher> list = msslyyPublisherService.list();
return Result.success(list);
}
@ApiOperation(value = "分页",notes = "")
@GetMapping("/page")
public Result<?> findPage(@RequestParam(required = false, defaultValue = "") String name,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
LambdaQueryWrapper<MsslyyPublisher> query = Wrappers.<MsslyyPublisher>lambdaQuery().orderByDesc(MsslyyPublisher::getId);
if (StrUtil.isNotBlank(name)) {
query.like(MsslyyPublisher::getPublisherName, name);
}
IPage<MsslyyPublisher> page = msslyyPublisherService.page(new Page<>(pageNum, pageSize), query);
return Result.success(page);
}
}