## 运费模板 ### 商城应用 在亚米商城系统中,商家在添加商品时,【配送方式】选择商家配送时,需要选择相应的运费模板。 ![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 **注意**:需要【指定条件包邮】勾选中,模板中指定条件的包邮项才可生效。