基于SpringBoot的电商平台系统

文末获取源码

开发语言:Java

使用框架:spring boot

前端技术:JavaScript、Vue 、css3

开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

数据库:MySQL 5.7/8.0

数据库管理工具:phpstudy/Navicat

JDK版本:jdk1.8

Maven: apache-maven 3.8.1-bin

目录

一、系统介绍 

二、功能性需求分析

三、系统设计

四、系统前台主要功能实现

4.1登录界面

4.2首页界面

4.3用户注册界面

4.4商品展示页面 

4.5商品搜索界面

4.6个人购买记录界面

五、系统后台主要功能实现

5.1会员管理界面

5.2商品管理界面

5.3订单管理界面 

六、代码实现

6.1登录系统主要代码如下

6.2商品展示主要代码如下

6.3登录密码修改的逻辑代码如下

6.4商品管理主要代码如下

6.5订单管理主要代码如下


一、系统介绍 

本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的springboot框架进行开发。

前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。

后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。

二、功能性需求分析

前台需求:

(1)用户模块:主要包括用户的注册和登陆、用户个人信息管理和用户帐单查询等功能。

(2)商品模块:主要包括商品浏览、商品信息展示、商品搜索、商品收藏、商品购买等功能。

(3)购买订单模块:主要包括生成订单、我的订单、查看订单详细信息、在线支付、确认收货等功能。

后台需求:

(1)用户管理:主要包括用户列表、用户数据管理等功能。

(2)商城管理:主要包括商城中心、分类列表、订单列表管理等功能。

(3)订单管理:主要包括帮助中心、会员中心、促销管理、运营管理、财务管理等功能。

系统用例图如下所示。

三、系统设计

通过软件的需求分析已经获得了系统的基本功能需求。根据各大功能模块的不同,将系统分为各种功能大块。系统功能结构如下图所示。 

注册/登录

游客(未进行注册或登陆的用户)可以浏览、搜索商品,但不能进行收藏和购买。用户注册首先需要进行表单验证,来验证用户名和手机号码是否合法,然后验证用户名和手机号是否已经存在,验证通过即可注册。

注册成功后,用户可以通过输入用户名来登录系统,输入密码后进行验证。登录成功后,用户可以使用商品收藏、商品购买、查看我的订单、个人信息管理等功能。

个人信息管理

用户登录系统后,在账户设置中,可以修改昵称、头像、手机号、登陆密码、收货地址等个人基本信息。

商品搜索

系统首页展示了商品搜索输入框,用户在输入框内输入与商品名称相关的关键字,系统通过模糊查询搜索到用户需要的商品并展示。

商品信息展示

用户在浏览商品时,点击某一个商品,跳转到该商品的信息展示页。在商品信息页面展示了商品的详情信息,比如商品介绍,商品详情,商品销量和收藏量等,用户通过浏览信息了解商品的主要功能和用途,最终决定是否购买。

商品购买

在商品信息页面,用户可以通过点击“购买”进行购买商品,点击后跳转到订单生成页面。订单生成页面会展示商品信息,收货地址,优惠信息等,用户确认后信息无误点击“提交”生成订单,订单生成后跳转到支付页面,支付完成则购买成功。

生成订单

用户在购买商品时,点击商品信息页面的“立即购买”或购买记录页面的“去结算”,跳转到订单生成页面,在订单生成页面用户需要确认收货地址、收货人手机号、收货人姓名等信息,确认无误后点击“提交订单”,订单提交成功,生成一条订单信息。

查看订单详情

用户在查看我的订单列表时,可以点击某一个订单来查看该订单的详细信息,主要包括订单编号、订单状态、订单日期、订单中的商品、交易金额等。订单详情还可以查看商品物流信息,用户通过能够物流信息了解所购买商品的发货状态。

商品列表

管理员可以在“商品列表”中展示商城中需要销售的商品,包含商品名称,商品属性以及类目等商品信息。管理员可以对商品进行搜索,按分类查询商品。

商品添加

添加商品首先需要输入商品基本信息,如商品名称、商品数量、商品分类等;然后需要编辑商品信息详情,如商品规格,商品描述,商品图片等。管理员也可以删除已添加的商品。

商品管理

用户在购买商品时需要选择商品规格,管理员可以设置商品规格的名称以及展示的顺序等。管理员还可以给商品规格添加属性值,也可以删除不需要的属性值。同时,管理员可以编辑商品信息,如商品介绍、商品展示图片等,方便用户浏览。

订单管理

管理员根据订单号、收货人姓名、收货地址、收货人手机号码等基本订单信息进行发货配送。

资讯管理

系统首页可以放置资讯。管理员可以添加、修改资讯的信息,如资讯名称,资讯图片,资讯链接地址等信息。

四、系统前台主要功能实现

4.1登录界面

4.2首页界面

4.3用户注册界面

4.4商品展示页面 

4.5商品搜索界面

4.6个人购买记录界面

五、系统后台主要功能实现

5.1会员管理界面

5.2商品管理界面

5.3订单管理界面 

六、代码实现

6.1登录系统主要代码如下

     * 登录
     * @param data
     * @param httpServletRequest
     * @return
     */
    @PostMapping("login")
    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
        log.info("[执行登录接口]");

        String username = data.get("username");
        String email = data.get("email");
        String phone = data.get("phone");
        String password = data.get("password");

        List resultList = null;
        Map<String, String> map = new HashMap<>();
        if(username != null && "".equals(username) == false){
            map.put("username", username);
            resultList = service.select(map, new HashMap<>()).getResultList();
        }
        else if(email != null && "".equals(email) == false){
            map.put("email", email);
            resultList = service.select(map, new HashMap<>()).getResultList();
        }
        else if(phone != null && "".equals(phone) == false){
            map.put("phone", phone);
            resultList = service.select(map, new HashMap<>()).getResultList();
        }else{
            return error(30000, "账号或密码不能为空");
        }
        if (resultList == null || password == null) {
            return error(30000, "账号或密码不能为空");
        }
        //判断是否有这个用户
        if (resultList.size()<=0){
            return error(30000,"用户不存在");
        }

        User byUsername = (User) resultList.get(0);


        Map<String, String> groupMap = new HashMap<>();
        groupMap.put("name",byUsername.getUserGroup());
        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
        if (groupList.size()<1){
            return error(30000,"用户组不存在");
        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态
        if (!StringUtils.isEmpty(userGroup.getSourceTable())){
            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
            String res = String.valueOf(service.runCountSql(sql).getSingleResult());
            if (res==null){
                return error(30000,"用户不存在");
            }
            if (!res.equals("已通过")){
                return error(30000,"该用户审核未通过");
            }
        }

        //查询用户状态
        if (byUsername.getState()!=1){
            return error(30000,"用户非可用状态,不能登录");
        }

        String md5password = service.encryption(password);
        if (byUsername.getPassword().equals(md5password)) {
            // 存储Token到数据库
            AccessToken accessToken = new AccessToken();
            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
            accessToken.setUser_id(byUsername.getUserId());
            tokenService.save(accessToken);

            // 返回用户信息
            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
            user.put("token", accessToken.getToken());
            JSONObject ret = new JSONObject();
            ret.put("obj",user);
            return success(ret);
        } else {
            return error(30000, "账号或密码不正确");
        }
}

6.2商品展示主要代码如下

@RequestMapping(value = {"/sum_group", "/sum"})
    public Map<String, Object> sum(HttpServletRequest request) {
        Query count = service.sum(service.readQuery(request), service.readConfig(request));
        return success(count.getResultList());
}

6.3登录密码修改的逻辑代码如下

 /**
     * 修改密码
     * @param data
     * @param request
     * @return
     */
    @PostMapping("change_password")
    public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){
        // 根据Token获取UserId
        String token = request.getHeader("x-auth-token");
        Integer userId = tokenGetUserId(token);
        // 根据UserId和旧密码获取用户
        Map<String, String> query = new HashMap<>();
        String o_password = data.get("o_password");
        query.put("user_id" ,String.valueOf(userId));
        query.put("password" ,service.encryption(o_password));
        Query ret = service.count(query, service.readConfig(request));
        List list = ret.getResultList();
        Object s = list.get(0);
        int count = Integer.parseInt(list.get(0).toString());
        if(count > 0){
            // 修改密码
            Map<String,Object> form = new HashMap<>();
            form.put("password",service.encryption(data.get("password")));
            service.update(query,service.readConfig(request),form);
            return success(1);
        }
        return error(10000,"密码修改失败!");

6.4商品管理主要代码如下

@SpringBootApplication
@EnableJpaRepositories
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

6.5订单管理主要代码如下

  @RequestMapping(value = "/del")
    @Transactional
    public Map<String, Object> del(HttpServletRequest request) {
        service.delete(service.readQuery(request), service.readConfig(request));
        return success(1);
}

    @Transactional
    public void delete(Map<String,String> query,Map<String,String> config){
        StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");
        sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));
        log.info("[{}] - 删除操作:{}",table,sql);
        Query query1 = runCountSql(sql.toString());
        query1.executeUpdate();
  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: b'springboot电商后台管理系统' 是一个基于 Spring Boot 框架开发的电商后台管理系统。它可以实现商品管理、订单管理、用户管理等功能,帮助商家更好地管理自己的电商平台。具有开发周期短、代码简洁、易维护等特点。 ### 回答2: Spring Boot是一个非常受欢迎的Java开源框架,能够轻松地创建、部署、运行Web应用程序。在电商行业,后台管理系统是很重要的一环,因为它能够管理和监控所有的业务操作和数据流。Spring Boot电商后台管理系统可以帮助企业快速搭建自己的后台管理系统,提高了企业的管理效率和规范性。 Spring Boot框架具有很多特点,如快速构建、简化配置、独立运行、自动装配等。借助这些特点,开发者可以实现高效的开发和快速迭代,减少资源的浪费。Spring Boot还具有非常丰富的社区资源和应用插件,可以方便地集成跨业务系统的接口和功能,提高开发效率。 对于电商后台管理系统Spring Boot可以提供很好的支持。Spring Boot框架易于集成其他的框架和技术,如MyBatis、Spring Data JPA、Thymeleaf等,提供可扩展的整体架构和高效、可靠的数据访问方式。同时,Spring Boot还提供了丰富的缓存、安全、调试、测试和运维功能,保证了系统的稳定性、安全性和性能。 在电商后台管理系统中,开发者可以借助Spring Boot框架实现用户管理、权限管理、商品管理、订单管理、数据统计等不同模块的功能开发。同时,Spring Boot还能支持微服务架构,使得电商后台管理系统更加灵活和可扩展。各个模块之间可以通过RESTful API相互调用和交互,提高了系统的整体可用性和可维护性。 总的来说,Spring Boot电商后台管理系统是一种快速、高效的开发方式,能够提升企业的管理水平和竞争力。企业可以根据自身的业务需求,借助Spring Boot框架来构建一款功能完备、高效、稳定的电商后台管理系统。 ### 回答3: Spring Boot是一个基于Spring框架的快速构建应用程序的工具,它大大简化了应用程序的开发过程。在电商后台管理系统中,Spring Boot可以提供一种快速、高效、可扩展和易维护的方法来开发和管理电商网站。 电商后台管理系统的主要功能包括商品管理、订单管理、用户管理、运营管理等。在商品管理中,Spring Boot可以使用MyBatis进行数据库操作,实现商品信息的增删改查,以及商品分类管理。通过订单管理,管理员可以对订单进行查询、确认、取消等操作,还可以对订单进行统计分析和流程优化。而用户管理可以提供用户的注册、登录、修改密码等功能,还可以管理用户权限,保证数据安全和隐私保护。 运营管理是电商平台的重要组成部分,这里包括广告投放、营销活动、数据分析等。Spring Boot可以使用Spring Cloud的服务注册和发现功能,为系统提供高可用、分布式的服务治理能力。同时,通过使用Spring Security框架来实现对系统的安全控制和权限管理,保证系统的稳定性和数据安全。 总之,Spring Boot可以为电商后台管理系统提供一种快速、高效、可扩展和易维护的方法来构建和管理电商网站,进一步提高电商平台的竞争力和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一季春秋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值