* 商品管理(SPU) */ namespace app\allwin\model; use app\common\facade\Inform; use think\Model; class AllwinShop extends Model{ protected $pk = 'id'; protected $autoWriteTimestamp = true; //店铺 public function store(){ return $this->hasOne('AllwinStore','id','store_id'); } //栏目名称 public function cate(){ return $this->hasOne('AllwinShopCate','id','category_id'); } //选择优惠券 public function coupon(){ return $this->hasOne('Coupon','id','coupon_id'); } //搜索器 public function searchNameAttr($query,$value){ if(!empty($value)){ $query->where('name','like', '%'.$value .'%'); } } /** * @return \think\model\relation\HasOne * 觅探 */ public function detective(){ return $this->hasOne('app\common\model\SystemUser','id','detective_uid'); } /** * 检测单个SPU商品是否上架 * @param integer $spu_id * @return void */ public function isSell(int $spu_id){ return self::where(['id' => $spu_id,'is_sale'=>2])->find(); } //添加或编辑 public static function edit(array $param){ $data['category_id'] = $param['category_id']; $data['store_id'] = $param['store_id']; $data['name'] = $param['name']; $data['title'] = $param['title']; $data['types'] = $param['types']; $data['market_price'] = $param['market_price']; $data['sell_price'] = $param['sell_price']; $data['cost_price'] = $param['cost_price']; $data['share_price'] = $param['share_price']; $data['vip_price'] = $param['vip_price']; $data['points'] = $param['points']; $data['warehouse_num'] = $param['warehouse_num']; $data['warehouse_sellnum'] = $param['warehouse_sellnum']; $data['coupon_id'] = $param['coupon_id']; $data['content'] = $param['content']; $data['img'] = $param['img']; $data['imgs'] = json_encode($param['imgs']); $data['types'] = $param['types']; $data['group_title'] = $param['group_title']; $data['group_note'] = $param['group_note']; $data['group_img'] = $param['group_img']; $data['keyword'] = $param['keyword']; $data['notice'] = $param['notice']; $data['detective_price'] = $param['detective_price']; $data['detective_uid'] = $param['detective_uid']; $data['end_time'] = empty($param['end_time']) ? '' : strtotime($param['end_time']); $data['update_time'] = time(); if(isset($param['id'])){ self::where('id',$param['id'])->update($data); return $param['id']; }else{ $data['is_sale'] = 0; $data['member_miniapp_id'] = $param['member_miniapp_id']; return self::insertGetId($data); } } //添加或编辑 public static function editItem(array $param){ $param['update_time'] = time(); $param['is_sale'] = 0; if(isset($param['id'])){ $id = (int)$param['id']; self::where('id',$id)->update($param); return $id; }else{ return self::insertGetId($param); } } //批量操作 public static function ids_action(int $is_sale,string $ids){ switch ($is_sale) { case 1: $data['is_sale'] = 1; //在售 break; case 2: $data['is_del'] = 1; //删除 break; default: $data['is_sale'] = 0; $data['is_del'] = 0; break; } return self::whereIn('id',ids($ids))->data($data)->update(); //操作所有SPU商品 } /** * 删除SPU商品 * @param [type] $id * @param [type] $ids * @return void */ public static function ids_delete(int $id,$ids){ if(empty($ids)){ $ids = (int)$id; }else{ $ids = ids($ids); } $rel = self::whereIn('id',$ids)->field('is_del,id')->select()->toArray(); if(!empty($rel)){ $del_data = []; $up_data = []; foreach ($rel as $value) { if($value['is_del'] == 1){ $del_data[] = $value['id']; }else{ $up_data[] = $value['id']; } } if(!empty($del_data)){ self::whereIn('id',$del_data)->delete(); } if(!empty($up_data)){ self::whereIn('id',$up_data)->update(['is_del' => 1]); } } return true; } /** * 如果使用了优惠券的默认价格 */ public static function calculatePrice($sell_price,$coupon){ if($coupon->types){ $coupon_user_price = $sell_price - $sell_price * $coupon->discount/10; }else{ $coupon_user_price = $coupon->price; } return $coupon_user_price; } }