UserSize.php 2.7 KB
<?php

namespace app\common\model;

use think\Model;

class UserSize extends Model
{
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';

    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    protected $deleteTime = false;

    /**
     * 隐藏字段
     * @var array
     */
    protected $hidden = [
        'createtime',
        'updatetime'
    ];

	/**
     * 尺寸列表
     */
    public static function sizeList($user_id)
    {
        return self::all(compact('user_id'));
    }

    /**
     * 新增尺寸
     */
    public function add($user, $data)
    {
        empty($data['isdefault']) && $data['isdefault'] = '0';
        // 该尺寸设为默认,其他地址就设为非默认
        if($data['isdefault'] == '1'){
            $this->where('user_id',$user['id'])->update(['isdefault'=>'0']);
        }
        // 对象转json字符串
        if(!empty($data['body_info']) && is_array($data['body_info'])){
            $data['body_info'] = json_encode($data['body_info']);
        }
        $this->allowField(true)->save(array_merge([
            'user_id' => $user['id'],
        ], $data));
        // 没有默认收货地址,就把该收货地址设为默认
        !$this->get(['user_id'=>$user['id'],'isdefault'=>'1']) && $this->update(['id'=>$this['id'],'isdefault'=>'1']);
        return true;
    }

    /**
     * 编辑尺寸
     */
    public function edit($data)
    {
        empty($data['isdefault']) && $data['isdefault'] = '0';
        // 该地址设为默认,其他地址就设为非默认
        if($data['isdefault'] == '1'){
            $this->where('user_id',$this['user_id'])->update(['isdefault'=>'0']);
        }
        // 对象转json字符串
        if(!empty($data['body_info']) && is_array($data['body_info'])){
            $data['body_info'] = json_encode($data['body_info']);
        }
        return $this->allowField(true)
            ->save($data);
    }

    /**
     * 删除尺寸
     */
    public function remove($user)
    {
        // 查询当前是否为默认地址
        if($this['isdefault'] == '1'){
            $this->delete();
            $size = $this->get(['user_id'=>$user['id']]);
            $size->isdefault = '1';
            $size->save();
        }else{
            $this->delete();
        }
        return true;
    }

    /**
     * 设置为默认
     */
    public function setDefault()
    {
        $this->where('user_id',$this['user_id'])->update(['isdefault'=>'0']);
        $this->update(['id'=>$this['id'],'isdefault'=>'1']);
        return true;
    }

    /**
     * 尺寸详情
     */
    public static function detail($user_id, $id)
    {
        return self::get(compact('user_id', 'id'));
    }
}