多模块团队开发项目总结
项目简介
前台项目包含功能:
普通用户的查看商品、查看公告、进入留言板;
会员的注册,登录、查看、购买商品网上留言、订单查询;
用户按照导购可以选择性的选购鲜花、商店位置导航;
后台项目包含功能:
管理员对商品管理、结算管理、用户管理【普通用户/会员】、订单管理;
店内监控、日常报表导出;
以及网站的日常维护(比如,网上花店简介;网上花店信息发布;客户留言及对客户留言的反馈)。
实现用户在线注册功能【第三方注册】、登陆功能【第三方登录】、报表查询功能、购物车功能;
项目运用技术
SSM-Spring
SpringMVC
MyBatisMyBatis教程API
bootstrap bootstrap教程API
MySQLMySQL教程API
SVNSVN教程API
多模块搭建
基本项目模块
用户登录管理模块
|----|用户注册功能||----|
|----|用户登录功能(普通、会员、管理员用户)|----|
|----|查看商品详情|----|
|----|留言、网站公告|----|
商品信息展示
|----|新品花介绍|----|
|----|特价花展示|----|
|----|鲜花查询(按种类、价格、花材查询)|----|
购物车管理
|----|购物车查询|----|
|----|订单查询|----|
后台管理
|----|会员管理|----|
|----|订单管理|----|
|----|商品管理(增添删改)|----|
业务流程分析
业务总体结构图
项目数据库的设计
登录表【admin】
会员表【vip】
商品表【product】
购物车表【store】
留言表【message】
订单表【order】
基础数据项目搭建
基础数据维护以及权限模块
【店员】权限管理【shiro】–搭建数据库
管理人员manager维护(CRUD)
店员人员管理(CRUD)
权限
【会员/普通客户】是否是会员–搭建数据库
会员管理CRUD
会员管理高级查询
权限
【普通客户】是否是普通用户–搭建数据库
普通客户CRUD
普通客户高级查询
权限
【商品资源库存】–搭建数据库
鲜花库存鲜花种类管理【CRUD】
【页面菜单功能设计及展示】–根据业务需求设计
【包含前后台】
订单模块搭建
客户订单主单的生成【CRUD】
【客户订单的高级查询操作】
【订单取消/作废高级查询操作】
结算库存
【结算方式】(支付方式CRUD)管理
【结算单生成-可导出】
【结算单取消】
结算单外部【客户方权限操作】查询工作
登录管理模块
【用户普通登录】
【用户第三方登录】
【用户注册】
【用户注销】
【用户验证码】
【记住用户名和密码】
鲜花管理模块
【负责鲜花库存的】CRUD
【负责鲜花入库出库添加-包含鲜花运输折损折算】
【负责鲜花高级查询操作】
多模块项目结构搭建
多模块项目结构
公共抽取模块【可继承模块】
工具类抽取模块
domain层模块
Mapper层【组件】
service层【核心配置文件】
WEB层【界面】
POM.XML【多模块配置】
配置代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.itsource</groupId>
<artifactId>itsource-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>basic-core</module>
<module>basic-util</module>
<module>crm-common</module>
<module>crm-mapper</module>
<module>crm-service</module>
<module>crm-web</module>
<module>crm-velocity</module>
</modules>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- spring版本号 -->
<spring.version>4.1.2.RELEASE</spring.version>
<!-- mybatis版本号 -->
<mybatis.version>3.2.1</mybatis.version>
<!-- log4j日志文件管理包版本 -->
<slf4j.version>1.7.2</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<!-- jackson包版本 -->
<jackson.version>2.5.0</jackson.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!-- shiro的支持包 -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-all</artifactId>
<version>1.4.0</version>
</dependency>
<!-- shiro与Spring的集成包 -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.4.0</version>
</dependency>
<!--自己的jar-->
<dependency>
<groupId>cn.itsource</groupId>
<artifactId>basic-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--提交一个包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
<dependency>
<groupId>cn.itsource</groupId>
<artifactId>basic-util</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.itsource</groupId>
<artifactId>crm-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.itsource</groupId>
<artifactId>crm-mapper</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.itsource</groupId>
<artifactId>crm-service</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.itsource</groupId>
<artifactId>crm-web</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--spring核心包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!--jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis/spring包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.0</version>
</dependency>
<!--数据库连接池-->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
<!--log4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!--slf4j-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- JSTL标签类 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<!--aop依赖包-->
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.8</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.1</version>
</dependency>
<!--shrio-->
</dependencies>
</dependencyManagement>
</project>
搭建逻辑多模块
数据库搭建【注意字段类型与转换】—domain【搭建注意类型可绑定database反向生成】—service【【接口/实现】继承基础公共的service【接口/实现】】—mapper【SQL语句建议写一条SQL在MySQL查询运行一次】—【web层展示静态数据】—完成CRUD【实现动态获取】–页面设计美化
【项目源码整理后上传网盘】