基于javaweb+mysql的springboot手机商城系统(java+springboot+maven+ssm+html+layui+thymeleaf+mysql)

基于javaweb+mysql的springboot手机商城系统(java+springboot+maven+ssm+html+layui+thymeleaf+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

基于javaweb的SpringBoot手机商城系统(java+springboot+maven+ssm+html+layui+thymeleaf+mysql)


管理员

13500000000   123456

用户

13600000001	123456

13600000002	123456

项目介绍

基于SpringBoot手机商城 有前台和后台 用户可以登录注册 收藏商品 购物车 结算商品 收货地址管理等 管理员则可以对用户,商品,订单进行管理操作

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;

技术栈

后端:SpringBoot(Spring+SpringMVC+Mybatis)

前端: HTML+Layui+thymeleaf

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

商城首页展示:

商品下单购物车:

登录展示:

提交订单展示:

我的订单展示:

我的订单管理:

后台登录管理展示:

后台管理轮播图展示:

后台管理订单列表展示:

后台管理商品列表展示:


/**
 * <p>
 * 帖子分类表 前端控制器
 * </p>
 */
@RestController
@RequestMapping("/category")
public class GoodCategoryController {

    @Autowired
    private GoodCategoryService categoryService;

    //添加分类
    @PostMapping("/add")
    public Result add(GoodCategory category) {
        //验证表单信息
        if (categoryService.getOne(new LambdaQueryWrapper<GoodCategory>().eq(GoodCategory::getName,category.getName())) != null) {
            return Result.failure("已有相同名称的类别,请重新命名");
        } else {
            return Result.decide(categoryService.save(category));
        }
    }

    //通过id获取分类
    @RequestMapping("/getOne")
    public GoodCategory getOne(@RequestParam(value = "id") String id) {
        return categoryService.getById(id);
    }

    //删除分类
    @PostMapping("/delete")
    public Result delete(@RequestParam(value = "id") String id) {
        if (order.getStatus() != 4) {
            return Result.failure("订单未完成,暂不能删除");
        }
        return Result.decide(orderService.removeById(id));
    }

    //管理员获取全部订单信息
    @RequestMapping("/adminGetAll")
    public ResultPage adminGetAll(@RequestParam(value = "userName", required = false) String userName,
                                  @RequestParam(value = "goodName", required = false) String goodName,
                                  @RequestParam(value = "status", required = false) Integer status,
                                  @RequestParam(value = "page") Integer page,
                                  @RequestParam(value = "limit") Integer limit) {
        //分页条件
        PageHelper.startPage(page, limit);
        List<Order> orderList = orderService.adminGetAll(userName, goodName, status);
        PageInfo<Order> orderPageInfo = new PageInfo<>(orderList, limit);
        return new ResultPage(0, (int) orderPageInfo.getTotal(), orderPageInfo.getList());
    }

    //修改订单状态
    @PostMapping("/updateStatus")
    public Result updateStatus(@RequestParam(value = "orderId") String orderId,
                               @RequestParam(value = "status") Integer status) {
        LambdaUpdateWrapper<Order> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper
                .eq(Order::getId, orderId)
                .set(Order::getStatus, status);
        return Result.decide(orderService.update(updateWrapper));
    }

}

    public ModelAndView userEdit() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/user/userEdit.html");
        return mv;
    }

    //商品分类列表页面
    @GetMapping("/categoryList")
    public ModelAndView categoryList() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/category/categoryList.html");
        return mv;
    }

    //添加商品分类列表页面
    @GetMapping("/categoryAdd")
    public ModelAndView categoryAdd() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/category/categoryAdd.html");
        return mv;
    }

    //修改商品分类列表页面
    @GetMapping("/categoryEdit")
    public ModelAndView categoryEdit() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/category/categoryEdit.html");
        return mv;
    }

    //商品列表页面
    @GetMapping("/goodList")
    public ModelAndView goodList() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/good/goodList.html");
        return mv;
    }

    //添加商品列表页面
    @GetMapping("/goodAdd")
    public ModelAndView goodAdd() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/good/goodAdd.html");
        if (addressService.update(updateWrapper)) {
            LambdaUpdateWrapper<Address> update = new LambdaUpdateWrapper<>();
            update
                    .eq(Address::getId, id)
                    .set(Address::getDefaulted, 1);
            return Result.decide(addressService.update(update));
        } else {
            return Result.failure("设置默认地址失败");
        }
    }

}

/**
 * <p>
 * 帖子分类表 前端控制器
 * </p>
 */
@RestController
@RequestMapping("/category")
public class GoodCategoryController {

    @Autowired
    private GoodCategoryService categoryService;

/**
 * <p>
 *  前端控制器
 * </p>
 */
@RestController
@RequestMapping("/order")
public class OrderController {

    @Autowired
    private GoodService goodService;

    @Autowired
    private AddressService addressService;

    @Autowired
    private CartService cartService;

    @Autowired
    private OrderService orderService;

    @Autowired
    private GoodCategoryService categoryService;

    //确认购买页面
    @RequestMapping(value = "/buy")
    public ModelAndView buy(String cartIds, String totalPrice, HttpSession session) {
        session.setAttribute("cartIds", cartIds); //保留当前购物车id
        User currentUser = (User) SecurityUtils.getSubject().getPrincipal();
        String[] ids = cartIds.split(",");
        List<String> goodIds = new ArrayList<>(); //商品id集合
        List<Integer> nums = new ArrayList<>(); //商品数量id集合
        //购物车车id查出商品id
        List<Cart> cartList = cartService.listByIds(Arrays.asList(ids));
        for (Cart cart : cartList) {
            goodIds.add(cart.getGoodId());
            nums.add(cart.getNum());
        }
        //商品
        List<Good> goodList = goodService.listByIds(goodIds);
        for (int i = 0; i < goodList.size(); i++) {
            Good good = goodList.get(i);

/**
 * <p>
 *  前端控制器
 * </p>
 */
@RestController
@RequestMapping("/address")
public class AddressController {

    @Autowired
    private AddressService addressService;

    //添加收货地址
    @PostMapping("/add")
    public Result add(Address address) {
        User currentUser = (User) SecurityUtils.getSubject().getPrincipal();
        //保存当前用户id
        address.setUserId(currentUser.getId());
        return Result.decide(addressService.save(address));
    }

    //删除收货地址
    @PostMapping("/delete")
    public Result delete(@RequestParam(value = "id") String id) {
        return Result.decide(addressService.removeById(id));
    }

    //获得单挑地址明细
    @PostMapping("/getOne")
    public Result getOne(@RequestParam(value = "id") String id) {
        return Result.success(addressService.getById(id));
    }

    //修改收货地址
    @PostMapping("/update")
    public Result update(Address address) {
        User currentUser = (User) SecurityUtils.getSubject().getPrincipal();
        if (addressService.updateById(address)) {
            if (address.getDefaulted() == 1) {
                LambdaUpdateWrapper<Address> updateWrapper = new LambdaUpdateWrapper<>();
    @Autowired
    private GoodCategoryService categoryService;

    //添加分类
    @PostMapping("/add")
    public Result add(GoodCategory category) {
        //验证表单信息
        if (categoryService.getOne(new LambdaQueryWrapper<GoodCategory>().eq(GoodCategory::getName,category.getName())) != null) {
            return Result.failure("已有相同名称的类别,请重新命名");
        } else {
            return Result.decide(categoryService.save(category));
        }
    }

    //通过id获取分类
    @RequestMapping("/getOne")
    public GoodCategory getOne(@RequestParam(value = "id") String id) {
        return categoryService.getById(id);
    }

    //删除分类
    @PostMapping("/delete")
    public Result delete(@RequestParam(value = "id") String id) {
        return Result.decide(categoryService.removeById(id));
    }

    //修改分类
    @PostMapping("update")
    public Result update(GoodCategory category) {
        GoodCategory categoryEdit = categoryService.getById(category.getId());
        //验证表单信息
        if (categoryService.getOne(new LambdaQueryWrapper<GoodCategory>().eq(GoodCategory::getName,category.getName())) != null
                && !categoryEdit.getName().equals(category.getName())) {
            return Result.failure("已有相同名称的类别,请重新命名");
        } else {
            return Result.decide(categoryService.updateById(category));
        }
    }

    //分页条件查询分类信息
    @RequestMapping("/getAll")
    public ResultPage getAll(GoodCategory category,
                             @RequestParam(value = "page") Integer page,
                             @RequestParam(value = "limit") Integer limit) {
        //查询条件
        LambdaQueryWrapper<GoodCategory> userWrapper = new LambdaQueryWrapper<>();
        if (StringUtils.hasText(category.getName())) {
            userWrapper.like(GoodCategory::getName, category.getName());
        }
        return mv;
    }

    //添加商品分类列表页面
    @GetMapping("/categoryAdd")
    public ModelAndView categoryAdd() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/category/categoryAdd.html");
        return mv;
    }

    //修改商品分类列表页面
    @GetMapping("/categoryEdit")
    public ModelAndView categoryEdit() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/category/categoryEdit.html");
        return mv;
    }

    //商品列表页面
    @GetMapping("/goodList")
    public ModelAndView goodList() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/good/goodList.html");
        return mv;
    }

    //添加商品列表页面
    @GetMapping("/goodAdd")
    public ModelAndView goodAdd() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/good/goodAdd.html");
        return mv;
    }

    //修改商品列表页面
    @GetMapping("/goodEdit")
    public ModelAndView goodEdit() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/good/goodEdit.html");
        return mv;
    }

    //管理员订单页面
    @GetMapping("/adminOrderList")
    public ModelAndView adminOrderList() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/order/orderList.html");

}

/**
 * <p>
 *  前端控制器
 * </p>
 */
@RestController
@RequestMapping("/collect")
public class CollectController {

    @Autowired
    private CollectService collectService;

    @Autowired
    private GoodService goodService;

    //添加收藏
    @PostMapping("/add")
    public Result add(Collect collect) {
        User currentUser = (User) SecurityUtils.getSubject().getPrincipal();
        LambdaQueryWrapper<Collect> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper
                .eq(Collect::getUserId, currentUser.getId())
                .eq(Collect::getGoodId, collect.getGoodId());
                .eq(User::getPassword, oldPassword)
                .eq(User::getId, currentUser.getId());
        if (userService.getOne(userWrapper) != null) {
            LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>();
            //更新新密码条件
            updateWrapper
                    .eq(User::getId, currentUser.getId())
                    .set(User::getPassword, newPassword);
            if (userService.update(updateWrapper)) {
                SecurityUtils.getSubject().logout();
                return Result.success("修改密码成功,请重新登录");
            } else {
                return Result.failure("修改密码失败");
            }
        } else {
            return Result.failure("原密码不对,请重新填写");
        }
    }

    //前台用户修改个人信息
    @RequestMapping("/getUserById/{userId}")
    public ModelAndView getById(@PathVariable String userId) {
        ModelAndView mv = new ModelAndView();
        mv.addObject("user", userService.getById(userId));
        mv.setViewName("index/user_update.html");
        return mv;
    }
}


/**
 * <p>
 *  前端控制器
 * </p>
 */
@RestController
@RequestMapping("/collect")
public class CollectController {

    @Autowired
    private CollectService collectService;

    @Autowired
    private GoodService goodService;

    //添加收藏
    @PostMapping("/add")
    public Result add(Collect collect) {
        User currentUser = (User) SecurityUtils.getSubject().getPrincipal();
        LambdaQueryWrapper<Collect> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper
                .eq(Collect::getUserId, currentUser.getId())
                .eq(Collect::getGoodId, collect.getGoodId());
        if (collectService.getOne(queryWrapper) != null) {
            return Result.failure("您已收藏过该商品");
        } else {
            collect.setUserId(currentUser.getId());
            return Result.decide(collectService.save(collect));
        }
    }

    //取消收藏
    @PostMapping("/delete")
    public Result delete(Collect collect) {
        User currentUser = (User) SecurityUtils.getSubject().getPrincipal();
        LambdaQueryWrapper<Collect> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper
                .eq(Collect::getUserId, currentUser.getId())
                .eq(Collect::getGoodId, collect.getGoodId());
        return Result.decide(collectService.remove(queryWrapper));
    }

    //获取用户收藏列表

    //设置默认地址
    @PostMapping("setDefault")
    public Result update(@RequestParam(value = "id") String id) {
        User currentUser = (User) SecurityUtils.getSubject().getPrincipal();
        LambdaUpdateWrapper<Address> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper
                .eq(Address::getUserId, currentUser.getId())
                .set(Address::getDefaulted, 2);
        if (addressService.update(updateWrapper)) {
            LambdaUpdateWrapper<Address> update = new LambdaUpdateWrapper<>();
            update
                    .eq(Address::getId, id)
                    .set(Address::getDefaulted, 1);
            return Result.decide(addressService.update(update));
        } else {
            return Result.failure("设置默认地址失败");
        }
    }

}

        List<Comment> ls = commentService.getAll(userName, goodName, content);
        PageInfo<Comment> pageInfo = new PageInfo<>(ls, limit);
        return new ResultPage(0, (int) pageInfo.getTotal(), pageInfo.getList());
    }

}

/**
 * <p>
 *  前端控制器
 * </p>
 */
@RestController
@RequestMapping("/banner")
public class BannerController {

    @Autowired
    private BannerService bannerService;

    @PostMapping("/add")
    public Result add(Banner banner) {
        return Result.decide(bannerService.save(banner));
    }

    @PostMapping("/update")
    public Result update(Banner banner) {
        User currentUser = (User) SecurityUtils.getSubject().getPrincipal();
        //获取订单商品
        Order order = orderService.getById(orderId);
        comment.setGoodId(order.getGoodId());
        comment.setUserId(currentUser.getId());
        comment.setCreateTime(new Date());
        if (commentService.save(comment)) {
            LambdaUpdateWrapper<Order> updateWrapper = new LambdaUpdateWrapper<>();
            updateWrapper
                    .eq(Order::getId, orderId)
                    .set(Order::getStatus, 4);
            orderService.update(updateWrapper);
        }
        return Result.success();
    }

    //删除
    @PostMapping("/delete")
    public Result delete(@RequestParam(value = "id") String id) {
        return Result.decide(commentService.removeById(id));
    }

    //查询所有评论
    @RequestMapping("/adminGetAll")
    public ResultPage adminGetAll(@RequestParam(value = "userName", required = false) String userName,
                                  @RequestParam(value = "goodName", required = false) String goodName,
                                  @RequestParam(value = "content", required = false) String content,
                                  @RequestParam(value = "page") Integer page,
                                  @RequestParam(value = "limit") Integer limit) {
        //分页条件
        PageHelper.startPage(page, limit);
        List<Comment> ls = commentService.getAll(userName, goodName, content);
        PageInfo<Comment> pageInfo = new PageInfo<>(ls, limit);
        return new ResultPage(0, (int) pageInfo.getTotal(), pageInfo.getList());
    }

}


/**
 * <p>
 *  前端控制器
 * </p>
 */
@RestController
@RequestMapping("/banner")
public class BannerController {

    @Autowired
    private BannerService bannerService;

    @PostMapping("/add")
    public Result add(Banner banner) {
        return Result.decide(bannerService.save(banner));
    }

    @PostMapping("/update")
    public Result update(Banner banner) {
        return Result.decide(bannerService.updateById(banner));
    }

    @PostMapping("/getOne")
    public Result getOne(@RequestParam(value = "id") String id) {
        return Result.success(bannerService.getById(id));
    }

    @RequestMapping("/getAll")
    public ResultPage getAll(@RequestParam(value = "name", required = false) String name,
                             @RequestParam(value = "page") Integer page,
                             @RequestParam(value = "limit") Integer limit) {
@Controller
public class ViewController {

    @Autowired
    private BannerService bannerService;

    @Autowired
    private GoodService goodService;

    /*
    * ==================================================后台管理页面========================================================================
    * */
    //后台登录界面
    @GetMapping("/adminLogin")
    public ModelAndView loginPage() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("/login.html");
        return mv;
    }

    //管理员界面
    @GetMapping("/adminIndex")
    public ModelAndView adminIndex() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/admin.html");
        return mv;
    }

    //用户列表界面
    @GetMapping("/userList")
    public ModelAndView userList() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/user/userList.html");
        return mv;
    }

    //添加用户界面
    @GetMapping("/userAdd")
    public ModelAndView userAdd() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("admin/user/userAdd.html");

/**
 * <p>
 *  前端控制器
 * </p>
 */
@RestController
@RequestMapping("/cart")
public class CartController {

    @Autowired
    private CartService cartService;

    @Autowired
    private GoodService goodService;

    @Autowired
    private GoodCategoryService goodCategoryService;

    //添加购物车
    @PostMapping("/add")
    public Result add(Cart cart) {
        User currentUser = (User) SecurityUtils.getSubject().getPrincipal();
        LambdaQueryWrapper<Cart> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper
                .eq(Cart::getUserId, currentUser.getId())
                .eq(Cart::getGoodId, cart.getGoodId());
        Cart currentCart = cartService.getOne(queryWrapper);
    public Result update(@RequestParam(value = "id") String id) {
        User currentUser = (User) SecurityUtils.getSubject().getPrincipal();
        LambdaUpdateWrapper<Address> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper
                .eq(Address::getUserId, currentUser.getId())
                .set(Address::getDefaulted, 2);
        if (addressService.update(updateWrapper)) {
            LambdaUpdateWrapper<Address> update = new LambdaUpdateWrapper<>();
            update
                    .eq(Address::getId, id)
                    .set(Address::getDefaulted, 1);
            return Result.decide(addressService.update(update));
        } else {
            return Result.failure("设置默认地址失败");
        }
    }

}

/**
 * <p>
 * 帖子分类表 前端控制器
 * </p>
 */
@RestController
@RequestMapping("/category")
public class GoodCategoryController {

    @Autowired
    private GoodCategoryService categoryService;

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值