智慧社区电商后台管理系统

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 智慧社区电商后台管理系统

一,项目简介


     在当前社会上,许多的各种类型的电子商务类网站纷纷建立,可以很大程度上的解决人们信息资源的闭塞以及地域上的限制[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所示。

image.png

3.1.2用户管理功能


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

image.png

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

3.1.3产品分类管理功能


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

image.png

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

3.1.4 后台商品管理操作UI


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

image.png

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

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


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

image.png

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

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


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

image.png

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

3.1.7后台权限管理操作UI


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

image.png

图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");
// 获取数据库模型
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");
// 获取数据库模型
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) 通知管理:下辖两个子模块疫情通知和公告通知,疫情通知主要发布疫情相关的一些通知和新闻,公告通知主要发布一些平台相关的一些通知信息。

image.png


相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
相关文章
|
1月前
|
前端开发 JavaScript 开发者
超实用开源前端商城模板,助力电商项目飞速启航!免费直接可用!
分享一款精心设计的开源前端商城模板,涵盖商品展示、购物车、订单处理、用户登录注册等核心功能,使用HTML、CSS、JS和jQuery构建,结构清晰,适合新手和资深开发者,助力电商项目快速启动。
75 0
超实用开源前端商城模板,助力电商项目飞速启航!免费直接可用!
|
5月前
|
搜索推荐 安全 数据安全/隐私保护
构建高效网站后台会员管理系统:实战指南与代码示例
【7月更文挑战第5天】在当今的互联网时代,几乎每个网站或应用程序都需要一个强大的会员管理系统来维护用户信息、权限控制以及个性化体验。一个设计良好的会员管理系统不仅能够提升用户体验,还能增强数据安全性和运营效率。本文将深入探讨如何从零开始构建一个网站后台会员管理系统,涵盖系统设计思路、关键技术选型、功能模块实现,以及实战代码示例。
602 3
|
4月前
|
小程序
微信小程序开发---购物商城系统。【详细业务需求描述+实现效果】
这篇文章详细介绍了作者开发的微信小程序购物商城系统,包括功能列表、项目结构、具体页面展示和部分源码,涵盖了从首页、商品分类、商品列表、商品详情、购物车、支付、订单查询、个人中心到商品收藏和意见反馈等多个页面的实现效果和业务需求描述。
微信小程序开发---购物商城系统。【详细业务需求描述+实现效果】
|
7月前
|
小程序 JavaScript Java
购物|电商购物小程序|基于微信小程序的购物系统设计与实现(源码+数据库+文档)
购物|电商购物小程序|基于微信小程序的购物系统设计与实现(源码+数据库+文档)
107 0
|
7月前
|
前端开发 JavaScript Java
如何开发一个前后端分离的在线旅游平台
如何开发一个前后端分离的在线旅游平台
|
7月前
|
前端开发 数据管理 BI
智慧社区电商后台管理系统
智慧社区电商后台管理系统
121 0
|
应用服务中间件 nginx 开发者
淘东电商项目(12) -搭建企业级微信公众号
淘东电商项目(12) -搭建企业级微信公众号
83 0
|
数据采集 自然语言处理 监控
基于.Net开发的、支持多平台、多语言餐厅点餐系统
基于.Net开发的、支持多平台、多语言餐厅点餐系统
147 0
|
前端开发 NoSQL 数据库
淘东电商项目(26) -门户登录功能
淘东电商项目(26) -门户登录功能
42 0
|
前端开发 NoSQL 数据库
淘东电商项目(25) -门户注册功能
淘东电商项目(25) -门户注册功能
45 0