| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | <?phpnamespace 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;    }}
 |