12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
- namespace addons\unishop\model;
- use think\Model;
- class Delivery extends Model
- {
- // 表名
- protected $name = 'unishop_delivery';
- const TABLE_NAME = 'unishop_delivery';
- // 自动写入时间戳字段
- protected $autoWriteTimestamp = 'int';
- // 定义时间戳字段名
- protected $createTime = 'createtime';
- protected $updateTime = 'updatetime';
- // 是否上架
- const SWITCH_YES = 1;
- const SWITCH_NO = 0;
- /**
- * 关联配送模板区域及运费
- * @return \think\model\relation\HasMany
- */
- public function rule()
- {
- return $this->hasMany('DeliveryRule','delivery_id','id');
- }
- /**
- * 运费算法
- * @param Delivery $delivery
- * @param int $number
- * @return int
- */
- public static function algorithm($delivery, $number) {
- $deliveryPrice = 0;
- $delivery['first'] = $delivery['first'] == 0 ? 1 : $delivery['first'];
- $delivery['additional'] = $delivery['additional'] == 0 ? 1 : $delivery['additional'];
- for ($i = 0; $i < $number; ) {
- if ($i === 0) {
- $deliveryPrice = bcadd($delivery['first_fee'], $deliveryPrice, 2);
- $i += $delivery['first'];
- } else {
- $deliveryPrice = bcadd($delivery['additional_fee'], $deliveryPrice, 2);
- $i += $delivery['additional'];
- }
- }
- return $deliveryPrice;
- }
- }
|