| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | 
							- <?php
 
- namespace app\admin\model\unishop;
 
- use think\Model;
 
- use think\Db;
 
- use think\Exception;
 
- use think\Request;
 
- class Delivery extends Model
 
- {
 
-     //数据库
 
-     protected $connection = 'database';
 
-     // 表名
 
-     protected $name = 'unishop_delivery';
 
-     // 自动写入时间戳字段
 
-     protected $autoWriteTimestamp = 'int';
 
-     // 定义时间戳字段名
 
-     protected $createTime = 'createtime';
 
-     protected $updateTime = 'updatetime';
 
-     protected $deleteTime = false;
 
-     // 是否上架
 
-     const SWITCH_YES = 1;
 
-     const SWITCH_NO = 0;
 
-     // 追加属性
 
-     protected $append = [
 
-         'type_text'
 
-     ];
 
-     public function getTypeList()
 
-     {
 
-         return ['quantity' => __('Quantity'), 'weight' => __('Weight')];
 
-     }
 
-     public function getTypeTextAttr($value, $data)
 
-     {
 
-         $value = $value ? $value : (isset($data['type']) ? $data['type'] : '');
 
-         $list = $this->getTypeList();
 
-         return isset($list[$value]) ? $list[$value] : '';
 
-     }
 
-     /**
 
-      * 关联配送模板区域及运费
 
-      * @return \think\model\relation\HasMany
 
-      */
 
-     public function rule()
 
-     {
 
-         return $this->hasMany('DeliveryRule','delivery_id','id');
 
-     }
 
-     /**
 
-      * 计费方式
 
-      * @param $value
 
-      * @return array
 
-      */
 
-     public function getMethodAttr($value)
 
-     {
 
-         $method = ['quantity' => '按件数', 'weight' => '按重量'];
 
-         return ['text' => $method[$value], 'value' => $value];
 
-     }
 
-     /**
 
-      * 获取全部
 
-      * @return unied
 
-      */
 
-     public static function getAll()
 
-     {
 
-         $model = new static;
 
-         return $model->select();
 
-     }
 
-     /**
 
-      * 获取列表
 
-      * @return \think\Paginator
 
-      * @throws \think\exception\DbException
 
-      */
 
-     public function getList()
 
-     {
 
-         return $this->with(['rule'])
 
-             ->order(['sort' => 'asc'])
 
-             ->paginate(15, false, [
 
-                 'query' => Request::instance()->request()
 
-             ]);
 
-     }
 
-     /**
 
-      * 运费模板详情
 
-      * @param $delivery_id
 
-      * @return null|static
 
-      * @throws \think\exception\DbException
 
-      */
 
-     public static function detail($delivery_id)
 
-     {
 
-         return self::get($delivery_id, ['rule']);
 
-     }
 
-     /**
 
-      * 保存运费模板
 
-      * @param array $params
 
-      * @return false|int|void
 
-      */
 
-     public static function saveDelivery($params){
 
-         Db::startTrans();
 
-         try{
 
-             $result = self::create($params,true);
 
-             $data['delivery_id'] = $result['id'];
 
-             foreach ($params['first'] as $k => $v){
 
-                 $data['area'] = $params['area'][$k];
 
-                 $data['first'] = $params['first'][$k];
 
-                 $data['first_fee'] = $params['first_fee'][$k];
 
-                 $data['additional'] = $params['additional'][$k];
 
-                 $data['additional_fee'] = $params['additional_fee'][$k];
 
-                 DeliveryRule::create($data,true);
 
-             }
 
-         }catch (Exception $e){
 
-             Db::rollback();
 
-             return false;
 
-         }
 
-         Db::commit();
 
-         return true;
 
-     }
 
-     /**
 
-      * 修改运费模板
 
-      * @param $params
 
-      * @param $ids
 
-      * @return bool
 
-      */
 
-     public static function editDelivery($params,$ids){
 
-         Db::startTrans();
 
-         try{
 
-             $model = new static;
 
-             $model->update($params,['id'=>$ids],true);
 
-             DeliveryRule::where('delivery_id',$ids)->delete();
 
-             $data['delivery_id'] = $ids;
 
-             foreach ($params['first'] as $k => $v){
 
-                 $data['area'] = $params['area'][$k];
 
-                 $data['first'] = $params['first'][$k];
 
-                 $data['first_fee'] = $params['first_fee'][$k];
 
-                 $data['additional'] = $params['additional'][$k];
 
-                 $data['additional_fee'] = $params['additional_fee'][$k];
 
-                 DeliveryRule::create($data,true);
 
-             }
 
-         }catch (Exception $e){
 
-             Db::rollback();
 
-             return false;
 
-         }
 
-         Db::commit();
 
-         return true;
 
-     }
 
- }
 
 
  |