一,项目简介

在当前社会上,许多的各种类型的电子商务类网站纷纷建立,可以很大程度上的解决人们信息资源的闭塞以及地域上的限制[1]。随着时间的推移并伴随着用户的购买能力的提高和新型互联网技术的应用,网络购物己经十分普及,上至八十岁老人,下至五六岁小朋友,大都已经学会了如何利用网络购物,使用电子交易的机制。

目前网络购物的方式主要有两种,一种是通过PC端的网站,如淘宝、京东的网页版购物平台;另一种是通过像手机APP和微信小程序商城等手机端平台来进行购物操作。但无论前端购物的形式如何,都需要一个强大的后台数据管理系统,以便于对相关的交易数据、商品数据、用户数据等进行相应的管理。相反,如果有一套通用的智慧社区电商后台管理系统,那么我们在实现购物系统时,只需要开发相应的前端展示和购物系统,就可以有效的对接后台管理数据,具有十分普遍的可移植性和通用性,所以从这个层面来讲,本系统的开发和研究是十分有价值和意义的。

本系统主要是为了开发一套通用的电商后台数据管理系统,以便于将来为大多数电商平台提供一个通用的交易数据管理和数据统计系统。通过本智慧社区电商后台管理系统,可以实现对用户、商品、订单进行相应的数据管理,并可以实现对用户的不同角色授予不同的权限。同时可以统计相应的交易数据,为平台的运营者提供决策的数据支撑。电商后台数据管理系统具体功能如下:

(1)用户管理:实现用户数据查看、搜索、状态设置、信息编辑、数据删除等操作。

(2)权限管理:实现对身份角色、权限功能进行设定,为不同的角色分配相关权限。

(3)商品管理:实现对前台展示的商品信息的管理、商品分类的管理、商品具体参数的设定等。

(4)订单管理:主要实现对前台用户实现的交易订单数据进行管理,并可以查看己付款、未付款状态的用户,同时对已经付款的用户设定发货等功能。

(5) 报表统计:统计不同区域、不同时间相关商品的销售额,并以图形报表的形式展现出来,以便于根据市场销售情况及时调整营销策略。

二,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

开发技术:前后端分离开发

后台开发:VUE+NODEJS

前端开发:VUE

三,系统展示

3.1后台功能模块的展示

3.1.1用户登录功能

智慧社区智慧社区电商后台管理系统后台用户如果想要对商城的相关信息进行管理操作,首先要登录系统,才可展开相关的操作。用户登陆界面如下图6-1所示。

图3-1用户登录操作界面

3.1.2用户管理功能

智慧社区智慧社区电商后台管理系统管理员用户登陆系统后,可以进入用户管理菜单进行相应的用户信息管理。用户管理主要实现对用户的添加、查询、状态设置、修改和删除等操作。用户管理操作界面如下图3-2所示:

图3-2后台用户管理功能界面图

3.1.3产品分类管理功能

智慧社区智慧社区电商后台管理系统管理员用户登陆系统后,可以进入产品分类管理菜单进行相应的分类信息管理。分类操作界面如下图6-3所示。

图3-3产品分类管理功能UI界面

3.1.4 后台商品管理操作UI

智慧社区智慧社区电商后台管理系统管理员用户登陆系统后,可以进入商品管理菜单进行相应的商品信息管理。其中主要包含商品的添加、修改、查询、删除操作等,添加商品时可以上传商品的图片进行展示。商品信息管理操作界面如下图3-4所示。

图3-4后台商品管理功能UI界面

3.1.5 后台商品订单管理操作UI

智慧社区智慧社区电商后台管理系统管理员用户登陆系统后,可以进入商品订单管理菜单进行相应的商品订单信息管理。电商后台管理的商品信息管理操作界面如下图3-5所示。

图3-5后台商品管理功能UI界面

3.1.6后台商品销量统计管理操作UI

智慧社区智慧社区电商后台管理系统管理员用户登陆系统后,可以进入销量统计管理菜单进行相应的商品销售情况进行统计查看。主要以图形报表方式进行展示,其中主要以折线图的形态进行展示。电商后台商品信息统计查看界面如下图3-6所示。

图3-6折线图展示销售统计功能UI界面

3.1.7后台权限管理操作UI

智慧社区电商后台管理系统有着完备的用户权限角色设计功能,可以根据不同的用户分配不同的角色权限功能,下面展示一下部分权限列表,如图3-7所示:

图3-6权限管理功能UI界面

四,核心代码展示

var path = require("path");
daoModule = require("./DAO");
databaseModule = require(path.join(process.cwd(),"modules/database"));/*** 获取参数列表数据* * @param  {[type]}   cat_id 分类ID* @param  {[type]}   sel    类型* @param  {Function} cb     回调函数*/
module.exports.list = function(cat_id,sel,cb) {db = databaseModule.getDatabase();sql = "SELECT * FROM sp_attribute WHERE cat_id = ? AND attr_sel = ? AND delete_time is NULL";database.driver.execQuery(sql,[cat_id,sel],function(err,attributes){if(err) return cb("查询执行出错");cb(null,attributes);});
}
var path = require("path");// 获取数据库模型
databaseModule = require(path.join(process.cwd(),"modules/database"));
var logger = require('../modules/logger').logger();/*** 创建对象数据* * @param  {[type]}   modelName 模型名称* @param  {[type]}   obj       模型对象* @param  {Function} cb        回调函数*/
module.exports.create = function(modelName,obj,cb) {var db = databaseModule.getDatabase();var Model = db.models[modelName];Model.create(obj,cb);
}/*** 获取所有数据* * @param  {[type]}   conditions 查询条件* 查询条件统一规范* conditions{"columns" : {字段条件"字段名" : "条件值"},"offset" : "偏移","omit" : ["字段"],"only" : ["需要字段"],"limit" : "","order" :[ "字段" , A | Z,...]}* @param  {Function} cb         回调函数*/
module.exports.list = function(modelName,conditions,cb) {var db = databaseModule.getDatabase();var model = db.models[modelName];if(!model) return cb("模型不存在",null);if(conditions) {if(conditions["columns"]) {model = model.find(conditions["columns"]);} else {model = model.find();}if(conditions["offset"]) {model = model.offset(parseInt(conditions["offset"]));}if(conditions["limit"]) {model = model.limit(parseInt(conditions["limit"]));}if(conditions["only"]) {model = model.only(conditions["only"]);}if(conditions["omit"]) {model = model.omit(conditions["omit"]);}if(conditions["order"]) {model = model.order(conditions["order"]);}} else {model = model.find();}model.run(function(err,models) {if(err) {console.log(err);return cb("查询失败",null);}cb(null,models);});
};module.exports.countByConditions = function(modelName,conditions,cb) {var db = databaseModule.getDatabase();var model = db.models[modelName];if(!model) return cb("模型不存在",null);var resultCB = function(err,count){if(err) {return cb("查询失败",null);}cb(null,count);}if(conditions) {if(conditions["columns"]) {model = model.count(conditions["columns"],resultCB);} else {model = model.count(resultCB);}} else {model = model.count(resultCB);}};/*** 获取一条数据* @param  {[type]}   modelName  模型名称* @param  {[数组]}   conditions  条件集合* @param  {Function} cb         回调函数*/
module.exports.findOne = function(modelName,conditions,cb) {var db = databaseModule.getDatabase();var Model = db.models[modelName];if(!Model) return cb("模型不存在",null);if(!conditions) return  cb("条件为空",null);Model.one(conditions,function(err,obj){logger.debug(err);if(err) {return cb("查询失败",null);}return cb(null,obj);});
}/*** 更新对象数据* * @param  {[type]}   modelName 模型名称* @param  {[type]}   id        数据关键ID* @param  {[type]}   updateObj 更新对象数据* @param  {Function} cb        回调函数*/
module.exports.update = function(modelName,id,updateObj,cb) {var db = databaseModule.getDatabase();var Model = db.models[modelName];Model.get(id,function(err,obj){if(err) return cb("更新失败",null);obj.save(updateObj,cb);});
}/*** 通过主键ID获取对象* @param  {[type]}   modelName 模型名称* @param  {[type]}   id        主键ID* @param  {Function} cb        回调函数*/
module.exports.show = function(modelName,id,cb) {var db = databaseModule.getDatabase();var Model = db.models[modelName];Model.get(id,function(err,obj){cb(err,obj);});
}/*** 通过主键ID删除对象* * @param  {[type]}   modelName 模型名称* @param  {[type]}   id        主键ID* @param  {Function} cb        回调函数*/
module.exports.destroy = function(modelName,id,cb) {var db = databaseModule.getDatabase();var Model = db.models[modelName];Model.get(id,function(err,obj){if(err) return cb("无模型ID");obj.remove(function(err) {if(err) return cb("删除失败");return cb(null);});});
}/*** 通过模型名称获取数据库数量* * @param  {[type]}   modelName 模型名称* @param  {Function} cb        回调函数*/
module.exports.count = function(modelName,cb) {var db = databaseModule.getDatabase();var Model = db.models[modelName];Model.count(cb);
}/*** 通过条件判断数据是否存在* * @param  {[type]}   modelName  模块名* @param  {[type]}   conditions 条件* @param  {Function} cb         回调函数*/
module.exports.exists = function(modelName,conditions,cb) {var db = databaseModule.getDatabase();var Model = db.models[modelName];Model.exists(conditions,function(err,isExists){if(err) return cb("查询失败");cb(null,isExists);});
}module.exports.getModel = function(modelName) {var db = databaseModule.getDatabase();return db.models[modelName];
}
var path = require("path");
daoModule = require("./DAO");
databaseModule = require(path.join(process.cwd(),"modules/database"));module.exports.clearGoodAttributes = function(goods_id,cb) {db = databaseModule.getDatabase();sql = "DELETE FROM sp_goods_attr WHERE goods_id = ?";database.driver.execQuery(sql,[goods_id],function(err){if(err) return cb("删除出错");cb(null);});
}module.exports.list = function(goods_id,cb) {db = databaseModule.getDatabase();sql = "SELECT good_attr.goods_id,good_attr.attr_id,good_attr.attr_value,good_attr.add_price,attr.attr_name,attr.attr_sel,attr.attr_write,attr.attr_vals FROM sp_goods_attr as good_attr LEFT JOIN sp_attribute as attr ON attr.attr_id = good_attr.attr_id WHERE good_attr.goods_id = ?";database.driver.execQuery(sql,[goods_id],function(err,attrs){if(err) return cb("删除出错");cb(null,attrs);});
}
var path = require("path");
daoModule = require("./DAO");
databaseModule = require(path.join(process.cwd(),"modules/database"));/*** 创建管理员* * @param  {[type]}   obj 管理员信息* @param  {Function} cb  回调函数*/
module.exports.create = function(obj,cb) {daoModule.create("ManagerModel",obj,cb);
}/*** 获取管理员列表* * @param  {[type]}   conditions 查询条件* @param  {Function} cb         回调函数*/
module.exports.list = function(conditions,cb) {daoModule.list("ManagerModel",conditions,function(err,models) {if(err) return cb(err,null);cb(null,models);});
}/*** 通过查询条件获取管理员对象* * @param  {[type]}   conditions 条件* @param  {Function} cb         回调函数*/
module.exports.findOne = function(conditions,cb) {daoModule.findOne("ManagerModel",conditions,cb);
}/*** 通过关键词查询用户* * @param  {[type]}   key    关键词* @param  {[type]}   offset * @param  {[type]}   limit  * @param  {Function} cb     回调函数*/
module.exports.findByKey = function(key,offset,limit,cb) {db = databaseModule.getDatabase();sql = "SELECT * FROM sp_manager as mgr LEFT JOIN sp_role as role ON mgr.role_id = role.role_id";if(key) {sql += " WHERE mg_name LIKE ? LIMIT ?,?";database.driver.execQuery(sql,["%" + key + "%",offset,limit],function(err,managers){if(err) return cb("查询执行出错");cb(null,managers);});} else {sql += " LIMIT ?,? ";database.driver.execQuery(sql,[offset,limit],function(err,managers){if(err) return cb("查询执行出错");cb(null,managers);});}
}/*** 判断是否存在管理员* * @param  {[type]}   username 用户名* @param  {Function} cb       回调函数* */
module.exports.exists = function(username,cb) {var db = databaseModule.getDatabase();var Model = db.models.ManagerModel;Model.exists({"mg_name":username},function(err,isExists){if(err) return cb("查询失败");cb(null,isExists);});
}/*** 模糊查询用户数量* * @param  {[type]}   key 关键词* @param  {Function} cb  回调函数*/
module.exports.countByKey = function(key,cb) {db = databaseModule.getDatabase();sql = "SELECT count(*) as count FROM sp_manager";if(key) {sql += " WHERE mg_name LIKE ?";database.driver.execQuery(sql,["%" + key + "%"],function(err,result){if(err) return cb("查询执行出错");cb(null,result[0]["count"]);});} else {database.driver.execQuery(sql,function(err,result){if(err) return cb("查询执行出错");cb(null,result[0]["count"]);});}}/*** 通过ID获取管理员对象数据* * @param  {[type]}   id 管理员主键ID* @param  {Function} cb 回调函数*/
module.exports.show = function(id,cb) {daoModule.show("ManagerModel",id,cb);
}/*** 更新管理员信息* * @param  {[type]}   obj 管理员对象* @param  {Function} cb  回调函数*/
module.exports.update = function(obj,cb) {daoModule.update("ManagerModel",obj.mg_id,obj,cb);
}/*** 删除管理员对象数据* * @param  {[type]}   id 主键ID* @param  {Function} cb 回调函数*/
module.exports.destroy = function(id,cb) {daoModule.destroy("ManagerModel",id,function(err){if(err) return cb(err);return cb(null);});
}/*** 保存管理员信息* * @param  {[type]}   obj 管理员对象* @param  {Function} cb  回调函数*/
module.exports.save = function(obj,cb) {daoModule.show(obj.mg_id,function(err,oldObj){if(err) {daoModule.create("ManagerModel",obj,cb);} else {daoModule.update("ManagerModel",obj.mg_id,obj,cb);}})
}/*** 获取管理员数量* * @param  {Function} cb 回调函数*/
module.exports.count = function(cb) {daoModule("ManagerModel",cb);
}

五,项目总结

智慧社区智慧社区电商后台管理系统的使用者可以包含多种用户角色,在系统设定时,可以根据不同的角色用户分配不同的权限操作,实现灵活的权限管理功能。系统用户总的来说主要实现的功能如下:

(1)用户管理:实现用户数据查看、搜索、状态设置、信息编辑、数据删除等操作。

(2)权限管理:实现对身份角色、权限功能进行设定,为不同的角色分配相关权限。

(3)商品管理:实现对前台展示的商品信息的管理、商品分类的管理、商品具体参数的设定等。

(4)订单管理:主要实现对前台用户实现的交易订单数据进行管理,并可以查看己付款、未付款状态的用户,同时对已经付款的用户设定发货等功能。

(5) 报表统计:统计不同区域、不同时间相关商品的销售额,并以图形报表的形式展现出来,以便于根据市场销售情况及时调整营销策略。

(6) 通知管理:下辖两个子模块疫情通知和公告通知,疫情通知主要发布疫情相关的一些通知和新闻,公告通知主要发布一些平台相关的一些通知信息。

智慧社区电商后台管理系统相关推荐

  1. 基于Vue实现智慧社区电商后台管理系统

    作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.前端项目.小程序开发.Python开发.大数据和 ...

  2. java计算机毕业设计Vue框架电商后台管理系统源码+数据库+系统+lw文档

    java计算机毕业设计Vue框架电商后台管理系统源码+数据库+系统+lw文档 java计算机毕业设计Vue框架电商后台管理系统源码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语 ...

  3. 计算机毕业设计JavaVue框架电商后台管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计JavaVue框架电商后台管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计JavaVue框架电商后台管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: ...

  4. java毕业设计电商后台管理系统Mybatis+系统+数据库+调试部署

    java毕业设计电商后台管理系统Mybatis+系统+数据库+调试部署 java毕业设计电商后台管理系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...

  5. java计算机毕业设计Vue框架电商后台管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计Vue框架电商后台管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计Vue框架电商后台管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈 ...

  6. [附源码]Python计算机毕业设计电商后台管理系统

    项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...

  7. html全局布局 vue_基于Vue+Element的电商后台管理系统

    前言 mall项目后台管理系统的前端项目. 项目介绍 mall-admin-web是一个电商后台管理系统的前端项目,基于Vue+Element实现. 主要包括商品管理.订单管理.会员管理.促销管理.运 ...

  8. Vue全家桶 - 电商后台管理系统项目开发实录(详)

    目录 1. 项目概述 1.1 电商项目基本业务概述 1.2 电商后台管理系统的功能 1.3 电商后台管理系统的开发模式(前.后端分离) 2. 项目初始化 2.1 前端项目初始化步骤 码云相关操作 2. ...

  9. Axure通用版电商后台管理系统+通用版移动端商城商户端+电商管理系统+对账管理+消息管理+内容管理+运营管理、会员管理、订单管理、促销管理、财务管理+通用版商城前后端电商系统+电商用户数据大屏看板

    作品介绍:Axure通用版电商后台管理系统+通用版移动端商城商户端+电商管理系统+对账管理+消息管理+内容管理+运营管理.会员管理.订单管理.促销管理.财务管理+通用版商城前后端电商系统+电商用户数据 ...

  10. 【VUE项目】VUE+ElementUI电商后台管理系统

    电商后台管理系统 项目来源:https://www.bilibili.com/video/BV1x64y1S7S7?p=191&spm_id_from=333.1007.top_right_b ...

最新文章

  1. 自适应col自动换行显示_10kV配网自适应综合型馈线自动化技术的测试问题及解决措施...
  2. C#中RichTextBox文本居中显示
  3. 机器学习-Random Forest算法简介
  4. Linux的Nginx七:对比|模块
  5. 5.Vue 计算属性和侦听器
  6. 为什么要实施服务器虚拟化
  7. Git(2):安装和使用
  8. Django(一)预热
  9. 真相了!为什么华为不惜成本也要支持外置存储卡扩展?
  10. c++语言用文件输入数值,C++ 基本的输入输出
  11. python axis 1_Python之NumPy(axis=0 与axis=1)区分
  12. C语言入门经典(第5版)
  13. 未能加载文件或程序集System.EnterpriseServices
  14. GPS NAME0183 详解
  15. lmdb高效存储图片数据
  16. IOS应用版本号设置
  17. node中Async模块的用法
  18. mysql 用户名 长度_一个 MySQL 用户名长度的坑
  19. win10家庭版如何修改用户名对应的文件夹的名字(中文该成英文字符)
  20. tableau -- 月销售额年同比增长

热门文章

  1. 图片、照片相似度批量对比
  2. OpenCV C++案例实战十《车牌号识别》
  3. cefsharp 二次开发
  4. 虚拟大师怎么修改手机_怎么修改手机应用名称
  5. 全面解析免费及收费SSH工具的基本特性和总结
  6. 机器视觉运动控制一体机应用|工件同心度检测
  7. 怎样搬运视频不侵权,王者剪辑的指纹检测如何检测原创度
  8. 51/52单片机 TCON控制字及TMOD寄存器
  9. android 不限速迅雷,迅雷不限速分享(手机+PC端打包) – 长期更新
  10. 反向传播神经网络概念,反向传播算法作用