## 运费模板 ### 商城应用 在mall4j商城系统中,商家在添加商品时,【配送方式】选择商家配送时,需要选择相应的运费模板。 ![1566821181888](..\img\后台新增商品运费模板展示.png) 在【门店管理】-【运费模板】中,可新增商品所需要的运费模板。 ![1566820766067](..\img\后台运费模板新增.png) ### 数据库设计 #### 整体实体类关系如下图: ![1566820283989](..\img\运费模板数据库关系.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](..\img\后台指定包邮条件.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](..\img\运费模板运费项.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](..\img\运费模板城市.png) 运费项可以根据需求指定特定区域的进行设置,运费项表与运费项关联城市表之间为一对多的关系,设定的区域优先于所有地区。 + `transcityId` , 模板项关联城市ID + `transfeeId` ,关联的模板项目ID + `cityId` , 关联mall4j商城系统中的区域管理模块 ##### 指定条件包邮项表(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](..\img\后台指定区域包邮项.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](..\img\运费模板指定包邮城市.png) 指定条件包邮城市项表与运费项关联城市表同理,可以根据需求选择特定区域,当满足包邮条件时对买家订单进行包邮,指定条件包邮项表与指定条件包邮城市项表之间为一对多的关系。 - `transcityFreeId` , 指定条件包邮城市项ID - `transfeeFreeId`,指定条件包邮项id - `freeCityId` , 关联mall4j商城系统中区域管理模块的城市ID **注意**:需要【指定条件包邮】勾选中,模板中指定条件的包邮项才可生效。