按重计费、2=>按件计费】 * @property int $compute_type 计算方式[1=按不同商品计算,2=按同件商品计算] * @property int $created_at 创建时间 * @property int $updated_at 更新时间 */ class FreightRules extends \common\models\base\BaseActiveRecord { /** * {@inheritdoc} */ public static function tableName() { return '{{%freight_rules}}'; } /** * {@inheritdoc} */ public function rules() { return [ [['mall_id', 'mch_id', 'select_com', 'is_default', 'status', 'type', 'compute_type', 'created_at', 'updated_at'], 'integer'], [['rule'], 'required'], [['rule'], 'string'], [['name'], 'string', 'max' => 65], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'mall_id' => '商城ID', 'mch_id' => '商户ID', 'name' => '规则名称', 'select_com' => '选择地区组件[0=多选地区,1=单选地区]', 'rule' => '规则详情', 'is_default' => '是否默认', 'status' => '状态【1启用 0禁用 -1删除】', 'type' => '计费方式【1=>按重计费、2=>按件计费】', 'compute_type' => '计算方式[1=按不同商品计算,2=按同件商品计算]', 'created_at' => '创建时间', 'updated_at' => '更新时间', ]; } /** * 保存数据 * @Author bing * @DateTime 2021-08-26 14:16:24 * @copyright: Copyright (c) 2020 广东七件事集团 * @param array $params * @return object|boolean */ public static function setData(array $params){ try{ if(!empty($params['id'])){ $model = self::findOne(['and',['id' => $params['id'],'mall_id' => $params['mall_id']],['<>','status',StatusEnum::DELETE]]); if(empty($model)) throw new \Exception('规则存在或已删除'); }else{ $model = new self(); $model->loadDefaultValues(); $model->mall_id = $params['mall_id']; $model->mch_id = $params['mch_id']; } isset($params['name']) && $model->name = $params['name']; isset($params['select_com']) && $model->select_com = $params['select_com']; isset($params['rule']) && $model->rule = json_encode($params['rule'],JSON_UNESCAPED_UNICODE); if(isset($params['is_default']) && $params['is_default'] == WhetherEnum::ENABLED){ self::updateAll(['is_default' => WhetherEnum::DISABLED], [ 'mall_id' => $params['mall_id'], 'mch_id' => $params['mch_id'] ]); $model->is_default = $params['is_default']; } isset($params['status']) && $model->status = $params['status']; isset($params['type']) && $model->type = $params['type']; isset($params['compute_type']) && $model->compute_type = $params['compute_type']; $res = $model->save(); if($res === false) throw new \Exception($model->getErrorMessage()); return $model; }catch(\Exception $e){ self::$static_error = $e->getMessage(); return false; } } /** * 获取运费模板列表 * @Author bing * @DateTime 2021-08-26 13:00:11 * @copyright: Copyright (c) 2020 广东七件事集团 * @param array $cond * @param array $with * @param integer $is_array * @return array|null */ public static function getFreightRules(array $cond=[],array $with=[],bool $is_array=true,string $select='*'){ $default_cond = [['<>','status',StatusEnum::DELETE]]; $cond = array_merge($default_cond,$cond); $query = self::find()->select($select); self::paramPack(['where'=>$cond,'with'=>$with],$query); $cates = $query->asArray($is_array)->all(); return $cates; } /** * 获取包邮规则的包邮地区id * @Author: lun * @DateTime: 2021/9/29 0029 9:26 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $mall_id * @return array */ public static function getFreightRulesArea($mall_id, $mch_id) { $list = self::getFreightRules([['mall_id' => $mall_id, 'mch_id' => $mch_id ?? 0]]); if (empty($list)) return []; $districtArr = []; foreach ($list as $item) { $districtArr[$item['id']] = [ 'id' => $item['id'], 'type' => $item['type'],// 计费方式【1=>按重计费、2=>按件计费】 'compute_type' => $item['compute_type'],// 计算方式【1=>按不同商品计算、2=>按同件商品计算】 'rule' => Json::decode($item['rule'], true), ]; } return $districtArr; } }