## 运费模板
### 商城应用
在亚米商城系统中,商家在添加商品时,【配送方式】选择商家配送时,需要选择相应的运费模板。
![1566821181888](https://img.kancloud.cn/8d/6c/8d6c00fe4a8a43aee27eb15fc3c8a615_1597x844.png)
在【门店管理】-【运费模板】中,可新增商品所需要的运费模板。
![1566820766067](https://img.kancloud.cn/a6/f2/a6f2a0b56053ecd83ed3f2aec5aab900_1387x931.png)
### 数据库设计
#### 整体实体类关系如下图:
![1566820283989](https://img.kancloud.cn/22/93/22934c433e62b602e42e8528b0d7d6e7_515x404.png)
#### model实体类:
##### 运费模板类(tz_transport)
```java
@Data
@TableName("tz_transport")
public class Transport{
/**
* 运费模板id
*/
@TableId
@ApiModelProperty(value = "运费模板id",required=true)
private Long transportId;
/**
* 运费模板名称
*/
@ApiModelProperty(value = "运费模板名称",required=true)
private String transName;
/**
* 店铺id
*/
@ApiModelProperty(value = "店铺id",required=true)
private Long shopId;
/**
* 参考 TransportChargeType
* 收费方式(0 按件数,1 按重量 2 按体积)
*/
@ApiModelProperty(value = "收费方式(0 按件数,1 按重量 2 按体积)",required=true)
private Integer chargeType;
/**
* 是否包邮 0:不包邮 1:包邮
*/
@ApiModelProperty(value = "是否包邮 0:不包邮 1:包邮",required=true)
private Integer isFreeFee;
/**
* 是否含有包邮条件
*/
@ApiModelProperty(value = "是否含有包邮条件",required=true)
private Integer hasFreeCondition;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间",required=true)
private Date createTime;
}
```
- `transportId` ,运费模板id
- `transName`,运费模板名称,存在多个运费模板时,方便商家选择更好的运费模板
- `shopId`,店铺id,可扩展为B2B2C模式
- `isFreeFee`,是否包邮,如果商家选择了包邮,则不需要后面的其他操作
- `chargeType`,收费方式可分为按件数、按重量 、按体积,影响运费项表中`firstPiece`、`continuousFee`的单位
- `hasFreeCondition`,是否包含包邮条件,勾选后,商家可以设定指定包邮的地区与条件
![1566822457303](https://img.kancloud.cn/76/b9/76b9eeb36d4cd52e201c8d53eef21934_1126x666.png)
- `createTime` , 创建模板时间
##### 运费项(tz_transfee)
```java
@Data
@TableName("tz_transfee")
public class Transfee {
/**
* 运费项id
*/
@TableId
@ApiModelProperty(value = "运费项id",required=true)
private Long transfeeId;
/**
* 运费模板id
*/
@ApiModelProperty(value = "运费模板id",required=true)
private Long transportId;
/**
* 续件数量
*/
@ApiModelProperty(value = "续件数量",required=true)
private Double continuousPiece;
/**
* 首件数量
*/
@ApiModelProperty(value = "首件数量",required=true)
private Double firstPiece;
/**
* 续件费用
*/
@ApiModelProperty(value = "续件费用",required=true)
private Double continuousFee;
/**
* 首件费用
*/
@ApiModelProperty(value = "首件费用",required=true)
private Double firstFee;
}
```
![1566823048345](https://img.kancloud.cn/f4/d7/f4d716b11eeac6a7ebb340f109575134_1387x511.png)
点击【点击添加可配送的区域和运费】可在模板中新增一条运费项记录,运费模板与运费项为一对多关系。
+ `transfeeId`, 运费项目id
+ `transportId` ,运费模板id,表明所属于哪个运费模板
+ `firstPiece`,首件数量\重量\体积,根据运费模板中的收费方式而定
+ `firstFee`,首重费用
+ `continuousPiece`,续件数量
+ `continuousFee`,续件费用
##### 运费项关联城市表(tz_transcity)
```java
@Data
@TableName("tz_transcity")
public class Transcity implements Serializable {
@TableId
private Long transcityId;
/**
* 运费项id
*/
private Long transfeeId;
/**
* 城市id
*/
private Long cityId;
}
```
![1566823763160](https://img.kancloud.cn/5b/d5/5bd5ae1b0f20c80dcb9520bc760d60cb_1388x391.png)
运费项可以根据需求指定特定区域的进行设置,运费项表与运费项关联城市表之间为一对多的关系,设定的区域优先于所有地区。
+ `transcityId` , 模板项关联城市ID
+ `transfeeId` ,关联的模板项目ID
+ `cityId` , 关联亚米商城系统中的区域管理模块
##### 指定条件包邮项表(tz_transfee_free)
```java
@Data
@TableName("tz_transfee_free")
public class TransfeeFree {
/**
* 指定条件包邮项id
*/
@TableId
@ApiModelProperty(value = "指定条件包邮项id",required=true)
private Long transfeeFreeId;
/**
* 运费模板id
*/
@ApiModelProperty(value = "运费模板id",required=true)
private Long transportId;
/**
* 包邮方式 (0 满x件/重量/体积包邮 1满金额包邮 2满x件/重量/体积且满金额包邮)
*/
@ApiModelProperty(value = "包邮方式 (0 满x件/重量/体积包邮 1满金额包邮 2满x件/重量/体积且满金额包邮)",required=true)
private Integer freeType;
/**
* 需满金额
*/
@ApiModelProperty(value = "需满金额",required=true)
private Double amount;
/**
* 包邮x件/重量/体积
*/
@ApiModelProperty(value = "包邮x件/重量/体积",required=true)
private Double piece;
}
```
![1566824529223](https://img.kancloud.cn/fd/e2/fde2d438d68c797e7c85757d4004186d_1388x390.png)
在运费模板中,还可以指定区域进行包邮,运费模板表与指定条件包邮项表为一对多关系。
+ `transfeeFreeId` 指定条件包邮项id
+ `transportId` 所关联的运费模板id
+ `freeType`包邮条件可分为 满x件/重量/体积包邮 、满金额包邮 、满x件/重量/体积且满金额包邮
+ `amount`需满金额 --条件
+ `piece`包邮x件/重量/体积 --条件
##### 指定条件包邮城市项表(tz_transcity_free)
```java
@Data
@TableName("tz_transcity_free")
public class TranscityFree implements Serializable {
private static final long serialVersionUID = 2579465286635831076L;
/**
* 指定条件包邮城市项id
*/
@TableId
private Long transcityFreeId;
/**
* 指定条件包邮项id
*/
private Long transfeeFreeId;
/**
* 城市id
*/
private Long freeCityId;
}
```
![1566825029884](https://img.kancloud.cn/a3/8c/a38c1ebab06f54bce551aaeff7e5647d_1386x436.png)
指定条件包邮城市项表与运费项关联城市表同理,可以根据需求选择特定区域,当满足包邮条件时对买家订单进行包邮,指定条件包邮项表与指定条件包邮城市项表之间为一对多的关系。
- `transcityFreeId` , 指定条件包邮城市项ID
- `transfeeFreeId`,指定条件包邮项id
- `freeCityId` , 关联亚米商城系统中区域管理模块的城市ID
**注意**:需要【指定条件包邮】勾选中,模板中指定条件的包邮项才可生效。
- 开发环境准备
- 基本开发手册
- 项目目录结构
- 权限管理
- 通用分页表格
- Swagger文档
- undertow容器
- 对xss攻击的防御
- 分布式锁
- 统一的系统日志
- 统一验证
- 统一异常处理
- 文件上传下载
- 一对多、多对多分页
- 认证与授权
- 从授权开始看源码
- 自己写个授权的方法-开源版
- 商城表设计
- 商品信息
- 商品分组
- 购物车
- 订单
- 地区管理
- 运费模板
- 接口设计
- 必读
- 购物车的设计
- 订单设计-确认订单
- 订单设计-提交订单
- 订单设计-支付
- 生产环境
- nginx安装与跨域配置
- 安装mysql
- 安装redis
- 传统方式部署项目
- docker
- 使用docker部署商城
- centos jdk安装
- docker centos 安装
- Docker Compose 安装与卸载
- docker 镜像的基本操作
- docker 容器的基本操作
- 通过yum安装maven
- 常见问题