从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。
Structured Query Language(结构化查询语言)数据结构为关系型数据库,所以,在程序中可以通过 标准的SQL语句与数据结构进行交互,交互过程中采用通用的数据库访问接口。本软件通过springboot连接数据库,因此只要主机上spring boot服务程序即可以与Mysql数据库进行连接,实现对数据库的访问。
登录 | 输入 | 输出 | 检测 | |
---|---|---|---|---|
登录 | √ | √ | ||
注册 | √ | √ | ||
上架商品 | √ | √ | ||
购物车 | √ | √ | ||
发布订单 | √ | √ | √ |
无
public interface IAddressService
public interface ICartService
public interface IDistrictService
public interface IOrderService
public interface IProductService
public interface IUserService
-
收货地址持久层的接口
public interface AddressMapper;
插入用户的收货地址数据
Integer insert(Address address);
根据用户id统计收货地址数量
Integer countByUid(Integer uid);
根据用户id查询用户收获地址数据
List findByUid(Integer uid);
根据aid查询收货地址数据
Address findByAid(Integer aid);
根据用户的uid值来修改用户的收货地址设置为非默认
Integer updateNonDefault(Integer uid);
根据收货地址id删除收货地址数据
Integer deleteByAid(Integer aid);
根据用户uid查询当前用户最后一次被修改的收货地址数据
Address findLastModified(Integer uid);
更新用户地址信息
Integer updateInfoByAid(Address address);
-
购物车持久层的接口
public interface CartMapper
插入购物车数据
Integer insert(Cart cart);
更新购物车某件商品数量
Integer updateNumByCid(Integer cid, Integer num, String modifiedUser, Date modifiedTime);
根据用户id与商品id来查询购物车中数据
Cart findByUidAndPid(Integer uid,Integer pid);
根据用户uid查询VO类用户加入购物车的商品列表
List findVOByUid(Integer uid);
根据购物车cid值查询商品
Cart findByCid(Integer cid);
根据若干个购物车数据id查询详情的列表
List findVOByCids(Integer[] cids);
-
地区持久层的接口
public interface DistrictMapper
根据父代号查询区域信息
List findByParent(String parent);
根据code查询区域名称
String findNameByCode(String code);
-
订单持久层的接口
public interface OrderMapper
插入订单数据
Integer insertOrder(Order order);
插入订单项的数据
Integer insertOrderItem(OrderItem orderItem);
根据订单id查询详情的列表
List findVOByOid(Integer oid);
-
商品持久层的接口
public interface ProductMapper
查询热销商品
List findHotList();
查询评分最高商品
List findMarkList();
查询最贵的商品
List findDescList();
查询最便宜的商品
List findAscList();
根据商品id查询商品详情
Product findById(Integer id);
根据商品名查询商品详情
List findByTitle(String title);
查询所有在售商品
List findAllProducts();
发布商品
Integer insert(Product product);
-
用户持久层的接口
public interface UserMapper
插入用户的数据
Integer insert(User user);
根据用户名查询用户数据
User findByUsername(String username);
根据用户uid来修改用户密码
Integer updatePasswordByYid(Integer uid, String password, String modifiedUser, Date modifiedTime);
根据用户id查询用户的数据
User findByUid(Integer uid);
更新用户的数据信息
Integer updateInfoByUid(User user);
根据用户uid值修改用户头像
Integer updateAvatarByUid(@Param("uid") Integer uid, @Param("avatar") String avatar, @Param("modifiedUser") String modifiedUser, @Param("modifiedTime") Date modifiedTime);
- 用户:登录模块+注册模块+商家注册模块+购物车模块
- 主页:商品模块
- 商家:管理商品模块+订单模块+退款模块
- 管理员:登录模块+审核模块+商家管理模块
- 在客户端登录后数据库验证账号密码,通过后进入主界面;
- 新用户注册,提交用户名、密码、短信验证码;
- 管理员通过注册请求,更新数据库;
- 主界面显示当前所有在售的商品;
- 用户购买商品,填写收货信息并付款;
- 商家发货,买家确认收货,购买流程结束;
- 商家申请上架商品,提交商品图片和信息审核;
- 管理员审核商品上架,上架商品流程结束。
- 本系统的各个模块之间功能是相互联系的,故各模块占用各种资源的时间是累计的,所以运行时间由顾客 的操作和网络的运行速度决定。
- 时间规定:用户点击按钮,服务器综合响应时间不超过2s、数据库查询不超过1s、数据处理不得超过1s。
本系统使用MySql完成数据的存储与数据交互,创建数据库名为store2019011292
t_address表
名称 |
---|
收货地址id |
归属的用户id |
收货人姓名 |
省-名称 |
省-行政代号 |
市-名称 |
市-行政代号 |
区-名称 |
区-行政代号 |
邮政编码 |
详细地址 |
手机 |
固话 |
标签 |
是否默认:0-不默认,1-默认 |
创建人 |
创建时间 |
修改人 |
修改时间 |
t_cart表
名称 |
---|
购物车数据id |
用户id |
商品id |
加入时商品单价 |
商品数量 |
创建人 |
创建时间 |
修改人 |
修改时间 |
是否删除 |
t_comment表
名称 |
---|
主键id |
用户id |
商家id |
订单id |
商品id |
商品的评价 |
商家的评价 |
商品的评分 |
商家的回复 |
日志-创建人 |
日志-创建时间 |
日志-最后修改执行人 |
日志-最后修改时间 |
t_dict_district表
名称 |
---|
id |
parent |
code |
name |
t_order表
名称 |
---|
订单id |
用户id |
收货人姓名 |
收货人电话 |
收货人所在省 |
收货人所在市 |
收货人所在区 |
收货详细地址 |
总价 |
状态 |
下单时间 |
支付时间 |
创建人 |
创建时间 |
修改人 |
修改时间 |
t_order_item表
名称 |
---|
订单中的商品记录的id |
所归属的订单的id |
商品的id |
商品标题 |
商品图片 |
商品价格 |
购买数量 |
创建人 |
创建时间 |
修改人 |
修改时间 |
商品状态 |
t_purse_record_user表
名称 |
---|
金额变化记录id |
用户id |
用户名 |
用户当前余额 |
用户充值金额 |
用户扣除金额 |
用户购买的商品的id |
日志-创建人 |
日志-创建时间 |
日志-最后修改执行人 |
日志-最后修改时间 |
t_user表
名称 |
---|
用户id |
用户名 |
密码 |
盐值 |
电话号码 |
电子邮箱 |
性别 |
头像 |
是否删除 |
创建人 |
创建时间 |
修改人 |
修改时间 |
城市 |
银行账号 |
用户类型 |
是否通过审核 |
钱包 |
买家等级 |
用户积分 |
DAO面向表,Service面向业务。后端开发时先数据库设计出所有表,然后对每一张表设计出DAO层,然后根据具体的业务逻辑进一步封装DAO层成一个Service层,对外提供成一个服务。
通过前端的调用、数据交换等操作在controller提供的接口,在service层进行数据的逻辑操作最后通过model层进行数据与数据库的相应操作。
- 在用户使用错误的数据或访问没有权限的数据以及在用户操作非法时,系统会给出相应的警告提示。
- 在用户错误的操作可能导致网页的跳转出现错误。
- 数据库与服务器断开可能导致数据加载不成功。
数据库采用腾讯云服务器技术,提供数据服务与数据安全保障
- 提供实时数据备份能力,通过数据库备份DBS(冷备)或者数据传输DTS(热备)构建备份中心。当业务中心故障时,将业务流量切换到本地数据中心、或者备份中心RPO:0- 秒级
- 数据备份DBS安全能力 提供云数据库的数据库备份能力和方案。具备备份压缩、加密、备份数据查询和单表恢复等。
网站必须按照面向对象的软件工程的步骤进行开发,并充分考虑软件可维护性,软件的模块划分满足高内聚、低耦合的特点,同时程序的内部必须有详细的注释和统一的编码格式、按时认真的进行相应文档的龚写和备份工作,以利于未来版本的开发迭代与维护