Java项目:SSM实现的在线相机商城

这是一个Java开发的在线相机商城系统,包括前后台功能,支持用户和管理员两种角色。用户可以浏览商品、购物、评价、申请售后等,管理员则能管理商品、订单、品牌、资讯等。系统采用Spring、SpringMVC、Mybatis技术栈,适合课程设计或毕业设计学习。提供源码下载和详细运行说明。
摘要由CSDN通过智能技术生成

作者主页:夜未央5788

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

在线相机商城系统源码,分为前后台,共有两个角色,一个管理员,一个普通用户

用户角色包含以下功能:
商城首页,查看详情评论商品,用户注册后登录,查看购物车,按分类查看商品,提交订单,选择地址支付页面,查看订单,查看收藏,申请售后,留言等功能。

管理员角色包含以下功能:

管理员登录,相机品牌管理,相机库存管理,相机商品管理,相机订单管理,相机售后管理,新闻资讯管理,物流管理等功能。

由于本程序规模不大,可供课程设计,毕业设计学习演示之用

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 

6.数据库:MySql 5.7/8.0等版本均可;

技术栈

1. 后端:Spring springmvc mybatis

2. 前端:JSP+css+javascript+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置,然后运行;
4. 运行成功后,在浏览器中输入:http://localhost:8080/ssm_xiangjishop/
管理员账号密码:admin/admin
用户账号密码:user/123456

运行截图

前台界面-用户角色

 

 

 

 

 

 

后台管理界面

 

 

 

 

 

 

 

代码相关

订单管理控制器

@Controller
@RequestMapping("/orderForm")
public class OrderFormController {

    @Autowired
    private IOrderFormService iOrderFormService;

    /**
     * 获取所有用户订单
     * @param model
     * @return
     */
    @GetMapping("/findAllOrderForm")
    public String findAllOrderForm(
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5") Integer size,
            Model model) {
        List<OrderForm> orderFormList = iOrderFormService.findAllOrderForm(num,size);
        PageInfo<OrderForm> orderFormPageInfo = new PageInfo<>(orderFormList);
        model.addAttribute("orderFormPageInfo",orderFormPageInfo);
        return "/backstage/order_form";
    }

    /**
     * 获取所有用户订单返回JSON数据
     * @return
     */
    @GetMapping("/findAllOrderForm1")
    public @ResponseBody PageInfo<OrderForm> findAllOrderForm1(
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5") Integer size
    ) {
        List<OrderForm> orderFormList = iOrderFormService.findAllOrderForm(num,size);
        PageInfo<OrderForm> orderFormPageInfo = new PageInfo<>(orderFormList);
        return orderFormPageInfo;
    }

    /**
     * 新增订单
     * 1、将商品销售增加
     * 2、剩余量减少
     * 3、产生订单
     * @param orderForm
     * @return
     */
    @PostMapping("/saveOrderForm")
    public @ResponseBody int saveOrderForm(OrderForm orderForm) {
//        System.out.println("OrderForm:"+orderForm);
        int i = iOrderFormService.saveOrderForm(orderForm);
        return i;
    }

    /**
     * 搜索指定用户的订单列表
     * @param uid
     * @param num
     * @param size
     * @param model
     * @return
     */
    @GetMapping("/findByUid/{uid}")
    public String findByUid(
            @PathVariable Integer uid,
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5") Integer size,
            Model model) {
        List<OrderForm> orderFormList = iOrderFormService.findByUid(uid,num,size);
        PageInfo<OrderForm> orderFormPageInfo = new PageInfo<>(orderFormList);
        model.addAttribute("orderFormPageInfo",orderFormPageInfo);
        return "/frontdesk/order_form";
    }

    /**
     * 是否发货
     * @param orderForm
     * @return
     */
    @PostMapping("/updateOrderForm")
    public @ResponseBody int updateOrderForm(OrderForm orderForm) {
        int i = iOrderFormService.updateOrderForm(orderForm);
        return i;
    }

    /**
     * 移除该用户的某一订单
     * @param id
     * @return
     */
    @PostMapping("/deleteShopping/{uid}/{id}")
    public @ResponseBody int findByUid(@PathVariable Integer uid,@PathVariable Integer id) {
        int i = iOrderFormService.deleteOrderForm(uid,id);
//        System.out.println("返回的i="+i);
        return i;
    }

    /**
     * 根据主键Id删除某一订单
     * @return
     */
    @PostMapping("/deleteDeliver/{id}")
    public @ResponseBody int deleteDeliver(@PathVariable Integer id) {
        int i = iOrderFormService.deleteDeliver(id);
        return i;
    }
}

 购物车管理控制器

@Controller
@RequestMapping("/shopping")
public class ShoppingController {

    @Autowired
    private IShoppingService iShoppingService;

    @Autowired
    private IOrderFormService iOrderFormService;

    /**
     * 添加购物车或修改购物车已有图书商品
     *
     * @param sp
     * @return
     */
    @PostMapping("/saveShopping")
    public @ResponseBody
    int saveShopping(Shopping sp) {
//        System.out.println("获取到的值:"+shopping);
        int i = iShoppingService.saveShopping(sp);
//        System.out.println("返回i="+i);
        return i;
    }

    /**
     * 我的购物车
     *
     * @param uid
     * @param model
     * @return
     */
    @GetMapping("/findByUid/{uid}")
    public String findByUid(
            @PathVariable Integer uid,
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5") Integer size,
            Model model
    ) {
        List<Shopping> shoppingList = iShoppingService.findByUid(uid,num,size);
        PageInfo<Shopping> shoppingPageInfo = new PageInfo<>(shoppingList);
        model.addAttribute("shoppingPageInfo", shoppingPageInfo);
        return "/frontdesk/shopping";
    }

    /**
     * 移除购物车某一图书商品
     *
     * @param id
     * @return
     */
    @PostMapping("/deleteShopping/{uid}/{id}")
    public @ResponseBody
    int findByUid(@PathVariable Integer uid, @PathVariable Integer id) {
        int i = iShoppingService.deleteShopping(uid, id);
//        System.out.println("返回的i="+i);
        return i;
    }

    /**
     * 购买某一图书商品
     * 1、新增订单
     * 2、移除购物车某一图书商品
     *
     * @param id
     * @return
     */
    @PostMapping("/detShoppingSaveOrderForm")
    @Transactional
    public @ResponseBody
    int detShoppingSaveOrderForm(Integer id) {
//        新增订单
        Shopping shopping = iShoppingService.findById(id);
        OrderForm orderForm = shoppingOrderForm(shopping);
        int i1 = iOrderFormService.saveOrderForm(orderForm);
//        移除购物车某一图书商品
        int i = iShoppingService.deleteShopping(shopping.getUid(), shopping.getId());
//        System.out.println("返回的i="+i);
        int count = i + i1;
        return count;
    }

    /**
     * 将购物车图书信息转化封装到订单实体类中
     *
     * @param shopping
     * @return
     */
    public static OrderForm shoppingOrderForm(Shopping shopping) {
        OrderForm orderForm = new OrderForm();
        orderForm.setImage(shopping.getImage());
        orderForm.setName(shopping.getName());
        orderForm.setPprice(shopping.getPprice());
        orderForm.setBcount(shopping.getBcount());
        orderForm.setBid(shopping.getBid());
        orderForm.setUid(shopping.getUid());
        return orderForm;
    }


}

用户管理控制器

@Controller
@RequestMapping("/users")
@SessionAttributes({"userId","userName","password","adminId","adminName","adminpassword"})
public class UserController {

    @Autowired
    private IUserService iUserService;

    /**
     * 跳转用户登录页面
     * @return
     */
    @GetMapping("/login")
    public String login() {
        return "/frontdesk/login";
    }

    /**
     * 用户登录
     * @return
     * @param u
     */
    @PostMapping("/toLogin")
    public String toLogin(User u,Model model) {
        User user = iUserService.toLogin(u);
        if (user == null) {
            return "redirect:/users/register";
        }
        model.addAttribute("userId",user.getId());
        model.addAttribute("userName",user.getName());
        model.addAttribute("password",user.getPassword());
        return "redirect:/book/qiantai";
    }

    /**
     * 跳转用户注册页面
     * @return
     */
    @GetMapping("/register")
    public String register() {
        return "/frontdesk/register";
    }

    /**
     * 用户注册
     * @return
     */
    @PostMapping("/toRegister")
    public String toRegister(User u) {
//        System.out.println("注册信息:"+u);
        int i = iUserService.toRegister(u);
        if (i != 1 ) {
            return "redirect:/users/register";
        }
        return "redirect:/users/login";
    }

    /**
     * 跳转管理员登录页面
     * @return
     */
    @GetMapping("/adminLogin")
    public String adminLogin() {
        return "/backstage/login";
    }

    /**
     * 管理员登录
     * @return
     */
    @PostMapping("/toAdminLogin")
    public String toAdminLogin(User u,Model model) {
//        System.out.println("User==:"+u);
        User user = iUserService.toLogin(u);
        if (user == null) {
            model.addAttribute("message","邮箱或密码错误,请确认后重试!");
            return "/backstage/login";
        }
        model.addAttribute("adminId",user.getId());
        model.addAttribute("adminName",user.getName());
        model.addAttribute("adminpassword",user.getPassword());
        return "redirect:/book/home";
    }

    /**
     * 根据tag查看全部用户或管理员
     * @param tag
     * @return
     */
    @GetMapping("/findByTag/{tag}")
    public String findByTag(
            @PathVariable Integer tag,
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5") Integer size,
            Model model) {
        List<User> userList = iUserService.findByTag(tag,num,size);
        PageInfo<User> userPageInfo = new PageInfo<>(userList);
        model.addAttribute("userPageInfo",userPageInfo);
        return "/backstage/user_control";

    }

    /**
     * 返回JSON类型
     * 根据tag查看全部用户或管理员
     * @param tag
     * @return
     */
    @GetMapping("/findByTag1/{tag}")
    public @ResponseBody PageInfo<User> findByTag1(
            @PathVariable Integer tag,
            @RequestParam(defaultValue = "1") Integer num,
            @RequestParam(defaultValue = "5") Integer size
    ) {
        List<User> userList = iUserService.findByTag(tag,num,size);
        PageInfo<User> userPageInfo = new PageInfo<>(userList);
        return userPageInfo;

    }

    /**
     * 查看个人信息
     * @return
     */
    @GetMapping("/findById/{id}/{tag}")
    public String findById(@PathVariable int id,@PathVariable int tag,Model model) {
        User user = iUserService.findById(id,tag);
        model.addAttribute("user",user);
        if (user.getTag() != 1) {
            return "/frontdesk/person_detail";
        } else {
            return "/backstage/person_detail";
        }
    }

    /**
     * 管理员查看他人信息
     * @return
     */
    @GetMapping("/adminFindById/{id}/{tag}")
    public @ResponseBody User adminFindById(@PathVariable int id,@PathVariable int tag,Model model) {
        User user = iUserService.findById(id,tag);
        return user;
    }

    /**
     * 新增用户
     * @param u
     * @return
     */
    @PostMapping("/saveUser")
    public String saveUser(User u) {
//        System.out.println("1User==="+u);
        int i = iUserService.saveUser(u);
        return "redirect:/users/findByTag/0";
    }

    /**
     * 修改个人信息
     * @return
     */
    @PostMapping("/updateUser")
    public String updateUser(User u) {
//        System.out.println("User:"+u);
        int i = iUserService.updateUser(u);
//        System.out.println("i=="+i);
        if (i != 1) {
            System.out.println("个人信息修改失败");
            return "redirect:/users/findById/"+u.getId()+"/"+u.getTag();
        }
        if (u.getTag() != 1) {
            return "redirect:/book/qiantai";
        }
        return "redirect:/book/home";
    }

    /**
     * 修改他人信息
     * @return
     */
    @PostMapping("/adminUpdateUser")
    public String adminUpdateUser(User u) {
//        System.out.println("User:"+u);
        int i = iUserService.updateUser(u);
//        System.out.println("i=="+i);
        if (i != 1) {
            System.out.println("个人信息修改失败");
        }
        return "redirect:/users/findByTag/0";
    }

    /**
     * 修改个人密码
     * @return
     */
    @PostMapping("/updatePwd")
    public String updatePwd(User u) {
//        System.out.println("User:"+u);
//        判断是否为管理员还是用户
        if (u.getTag() != 1) {
            int i = iUserService.updatePwd(u);
//        System.out.println("ipwd=="+i);
            if (i != 1) {
                System.out.println("个人信息修改失败");
                return "/frontdesk/update_pwd";
            }
            return "redirect:/users/toLoginOut";
        }
//        System.out.println("User:"+u);
        int i = iUserService.updatePwd(u);
//        System.out.println("ipwd=="+i);
        if (i != 1) {
            System.out.println("个人信息修改失败");
            return "/backstage/update_pwd";
        }
        return "redirect:/users/toAdminLoginOut";
    }

    /**
     * 退出登录
     * @return
     */
    @GetMapping("/toLoginOut")
    public String toLoginOut(SessionStatus status) {
        status.setComplete();
        boolean complete = status.isComplete();
        if (complete) {
            System.out.println("退出成功");
        }
        return "redirect:/book/qiantai";
    }

    /**
     * 管理员退出登录
     * @return
     */
    @GetMapping("/toAdminLoginOut")
    public String toAdminLoginOut(SessionStatus status) {
        status.setComplete();
        boolean complete = status.isComplete();
        if (complete) {
            System.out.println("退出成功");
        }
        return "redirect:/users/adminLogin";
    }

    /**
     * 根据主键Id删除某一用户
     * @return
     */
    @PostMapping("/deleteUser/{id}")
    public @ResponseBody int deleteUser(@PathVariable Integer id) {
        int i = iUserService.deleteUser(id);
        return i;
    }
}

如果也想学习本系统,下面领取。回复:234ssm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜未央5788

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值