一、资源包含:
- 源代码(前后端源代码+sql脚本)
- 配套文档(一万字)
- 一键启动项目
- 帮忙远程控屏调试
源代码和文档加文章下方的微信名片或者私信领取哦~
二、系统简介
本次开发的系统为基于VUE电商后管理系统,主要运用于协助电商从业者处理各种业务数据。该系统特点是功能基本能满足小型电商企业或个体户,轻便快捷又不缺失该有的功能。功能模块具体可分为:用户管理、商品管理、商品类型管理、订单管理。从功能结构上可以看出其优点是特别契合电商从业者的需求。用户初次登录该系统要初始化一个账号,系统把登陆过的账户保存在数据库里,形成一个用户列表,管理员可以查看更多非公开的数据,并且可以修改删除商品,管理员可以修改商品的基本信息如:商品的参数和商品的增删改查,还可以对商品的类别进行管理。对商品的订单进行管理,还可以及时查看订单的物理信息,随时查订单配送状态。
三、技术介绍
采用了目前最流行的前后端分离的开发模式,前端使用Vue 后端使用Springboot框架 数据库采用Mysql。
四、功能列表
(1)用户模块:包含用户登陆及用户信息的维护。
(2)权限模块:包含用户的的权限管理,用户的权限分配。
(3)商品模块:包含商品的分类、参数、图片等。
(4)订单模块:包含主页初始化菜单相关功能。
(5)数据统计:统计订单数据。
五、可行性分析
经济可行性
经济可行性是指系统投入市场后,获得的经济利益或者节约的经济利益大于开发软件所付出的成本。该电商后台管理系统主要服务于小型电商企业或者自营型电商公司,开发成本主要在人力成本以及服务器成本上。人力成本是指开发人员的设计与开发成本。服务器成本是指项目开发完成后,购买服务器部署项目的成本。当系统设计成功后,可以节省后期的人工投入,电商企业只需要少量的人力并且利用该系统进行商品的管理,无需手动记账,无需担心商品订单不完善。从这一层面看,前期投入的资金很快就可以从后期收获回来,并且实现盈利和现代化管理。可以得出结论,该系统的经济可行性是可行的。
技术可行性
该系统使用的主要技术有:本次开发前端基于VUE框架,使用了VSCode和作为开发工具;后端基于Springboot框架,使用了IntelliJ IDE作为开发工具,布局内容采用elementUi,使用axios进行数据交互。 数据库搭建用的是mysql。这些就现在企业开发用的较多,而且开发社区人员活跃,技术发展成熟,已经在很多项目中到了验证。因此,该系统的开发技术可行性也是没有问题。
操作可行性
该系统界面友好,操作简单,按照界面文字提示进行各项操作难度不大。每个人都可以轻松掌握该系统的操作方法。该系统在操作可行性上大有优势,可以兼顾无计算机基础的人使用。
六、系统截图
package com.college.shopping.service.impl;
import com.college.shopping.common.ResponseResult;
import com.college.shopping.domain.*;
import com.college.shopping.mapper.ShoppingCodeMapper;
import com.college.shopping.mapper.ShoppingOrderDetailMapper;
import com.college.shopping.mapper.ShoppingOrderMapper;
import com.college.shopping.mapper.ShoppingTransportTraceMapper;
import com.college.shopping.service.OrderService;
import com.college.shopping.vo.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
@Service
public class OrderServiceImpl implements OrderService
{
@Autowired
private ShoppingOrderMapper shoppingOrderMapper;
@Autowired
private ShoppingOrderDetailMapper shoppingOrderDetailMapper;
@Autowired
private ShoppingTransportTraceMapper shoppingTransportTraceMapper;
@Autowired
private ShoppingCodeMapper shoppingCodeMapper;
/**
* 商品列表查询(包含无条件的查询和有条件的查询)
* @return
* @throws Exception
*/
@Override
public ResponseResult getOrderList(QueryInfoVo queryInfoVo) throws Exception
{
int pageNum = queryInfoVo.getPageNum();
int pageSize = queryInfoVo.getPageSize();
String query = queryInfoVo.getQuery();
List<OrderVo> orderVoList = new ArrayList<OrderVo>();
long total = 0;
if("".equals(query) || query == null)
{
total = shoppingOrderMapper.countByExample(new ShoppingOrderCondition());
orderVoList = queryShoppingOrder(pageNum,pageSize);
}
else
{
orderVoList = queryShoppingOrder(pageNum,pageSize,query);
total = orderVoList.size();
}
return new ResponseResult("200",total,orderVoList);
}
@Override
public ResponseResult getOrderDetailInfo(OrderVo orderVo) throws Exception {
String id = orderVo.getId();
OrderInfoVo orderDetailVo = new OrderInfoVo();
OrderVo newOrderVo = null;
List<SubOrderVo> subOrderVoList = new ArrayList<>();
List<OrderTranportVo> orderTranportVoList = new ArrayList<>();
//1.获取订单的总体信息
ShoppingOrder shoppingOrder = shoppingOrderMapper.selectByPrimaryKey(id);
newOrderVo =transformOrderVo(shoppingOrder);
//2.获取子订单的信息
List<ShoppingOrderDetail> shoppingOrderDetailList = new ArrayList<>();
ShoppingOrderDetailCondition shoppingOrderDetailCondition = new ShoppingOrderDetailCondition();
shoppingOrderDetailCondition.createCriteria().andOrderidEqualTo(id);
shoppingOrderDetailList = shoppingOrderDetailMapper.selectByExample(shoppingOrderDetailCondition);
if(shoppingOrderDetailList != null)
{
for(int i =0 ; i<shoppingOrderDetailList.size() ; i++)
{
subOrderVoList.add(transformSubOrderVo(shoppingOrderDetailList.get(i)));
}
}
//3.获取订单的物流信息
List<ShoppingTransportTrace> shoppingTransportTraceList = new ArrayList<>();
ShoppingTransportTraceCondition shoppingTransportTraceCondition = new ShoppingTransportTraceCondition();
shoppingTransportTraceCondition.createCriteria().andOrderidEqualTo(id);
shoppingTransportTraceList = shoppingTransportTraceMapper.selectByExample(shoppingTransportTraceCondition);
for(int i =0 ; i<shoppingTransportTraceList.size() ; i++)
{
orderTranportVoList.add(transformOrderTranportVo(shoppingTransportTraceList.get(i)));
}
//4.组装数据
orderDetailVo.setOrderVo(newOrderVo);
orderDetailVo.setSubOrderVoList(subOrderVoList);
orderDetailVo.setOrderTranportVoList(orderTranportVoList);
return new ResponseResult("200",orderDetailVo);
}
@Override
public ResponseResult getOrderTransportInfo() throws Exception {
return null;
}
@Override
public ResponseResult updateOrderStatus(OrderVo orderVo) throws Exception
{
String id = orderVo.getId();
String orderStatus = orderVo.getOrderstatus();
String orderStatusDes = "";
ShoppingOrder shoppingOrder = shoppingOrderMapper.selectByPrimaryKey(id);
ShoppingCodeCondition shoppingCodeCondition = new ShoppingCodeCondition();
shoppingCodeCondition.createCriteria().andCodetypeEqualTo("orderStatus");
List<ShoppingCode> shoppingCodeList = shoppingCodeMapper.selectByExample(shoppingCodeCondition);
for(int i =0 ; i<shoppingCodeList.size() ; i++)
{
if(orderStatus.equals(shoppingCodeList.get(i).getCodename()))
{
orderStatusDes = shoppingCodeList.get(i).getCodevlaue();
break;
}
}
shoppingOrder.setOrderstatus(orderStatus);
shoppingOrder.setOrderstatusdes(orderStatusDes);
shoppingOrderMapper.updateByPrimaryKeySelective(shoppingOrder);
return new ResponseResult("200","更新订单状态成功!");
}
/**
* 无条件查询订单信息
* @param pageNum
* @param pageSize
* @return
*/
private List<OrderVo> queryShoppingOrder( int pageNum, int pageSize)
{
List<OrderVo> orderVoList = new ArrayList<OrderVo>();
ShoppingOrderCondition shoppingOrderCondition = new ShoppingOrderCondition();
shoppingOrderCondition.setPageNo(pageNum);
shoppingOrderCondition.setPageSize(pageSize);
List<ShoppingOrder> shoppingOrderList = shoppingOrderMapper.selectByExample(shoppingOrderCondition);
if(shoppingOrderList != null)
{
for (int i = 0; i < shoppingOrderList.size(); i++)
{
orderVoList.add(transformOrderVo(shoppingOrderList.get(i)));
}
}
return orderVoList;
}
/**
* 有条件查询订单信息
* @param pageNum
* @param pageSize
* @param query
* @return
*/
private List<OrderVo> queryShoppingOrder( int pageNum, int pageSize,String query)
{
List<OrderVo> orderVoList = new ArrayList<OrderVo>();
ShoppingOrder shoppingOrder = shoppingOrderMapper.selectByPrimaryKey(query.trim());
if(shoppingOrder!= null)
{
orderVoList.add(transformOrderVo(shoppingOrder));
}
return orderVoList;
}
private OrderVo transformOrderVo( ShoppingOrder shoppingOrder)
{
OrderVo orderVo = new OrderVo();
orderVo.setId(shoppingOrder.getId());
orderVo.setOrderprice(shoppingOrder.getOrderprice());
orderVo.setOrderdestination(shoppingOrder.getOrderdestination());
orderVo.setOrderstatus(shoppingOrder.getOrderstatus());
orderVo.setOrderstatusdes(shoppingOrder.getOrderstatusdes());
orderVo.setOrdercreatetime(new SimpleDateFormat("yyyy-MM-dd").format(shoppingOrder.getOrdercreatetime()));
return orderVo;
}
private SubOrderVo transformSubOrderVo(ShoppingOrderDetail shoppingOrderDetail)
{
SubOrderVo subOrderVo = new SubOrderVo();
subOrderVo.setId(shoppingOrderDetail.getId());
subOrderVo.setOrderid(shoppingOrderDetail.getOrderid());
subOrderVo.setGoodsid(shoppingOrderDetail.getGoodsid());
subOrderVo.setGoodsname(shoppingOrderDetail.getGoodsname());
subOrderVo.setGoodscount(shoppingOrderDetail.getGoodscount());
subOrderVo.setGoodssumprice(shoppingOrderDetail.getGoodssumprice());
return subOrderVo;
}
private OrderTranportVo transformOrderTranportVo(ShoppingTransportTrace shoppingTransportTrace)
{
OrderTranportVo orderTranportVo = new OrderTranportVo();
orderTranportVo.setId(shoppingTransportTrace.getId());
orderTranportVo.setOrderid(shoppingTransportTrace.getOrderid());
orderTranportVo.setArrivetime(new SimpleDateFormat("yyyy-MM-dd hh:mm").format(shoppingTransportTrace.getArrivetime()));
orderTranportVo.setArrivedes(shoppingTransportTrace.getArrivedes());
return orderTranportVo;
}
}