* 订单数据 */ namespace app\ais\model; use app\common\model\SystemUserLevel; use think\Model; class AisShopOrder extends Model{ protected $pk = 'id'; protected $type = [ 'shop_cache' => 'array', ]; /** * @return \think\model\relation\HasOne * 商品 */ public function shop(){ return $this->hasOne('AisShop','id','shop_id'); } /** * @return \think\model\relation\HasOne * 店铺 */ public function store(){ return $this->hasOne('AisStore','id','store_id'); } /** * @return \think\model\relation\hasMany * 店铺管理员类别 */ public function storeWorker(){ return $this->hasMany('AisStoreWorker','store_id','store_id'); } /** * @return \think\model\relation\HasOne * 用户 */ public function user(){ return $this->hasOne('app\common\model\SystemUser','id','uid'); } /** * 订单是否核销 */ public function getStatuAttr($value,$data){ $statu = [0 =>'待核销',1 =>'已核销']; return $statu[$data['status']]; } /** * @param $data * @param $order_no * 购买商品生成订单数据 */ public static function createOrder($param,$order_no){ $order = [ 'shop_id' => $param['id'], 'store_id' => $param['store_id'], 'member_miniapp_id' => $param['member_miniapp_id'], 'phone' => $param['telphone'], 'message' => $param['message'], 'share_uid' => $param['share_uid'] ?: 0, 'uid' => $param['uid'], 'order_no' => $order_no, 'points' => $param['points'], 'amount' => $param['amount'], 'sell_price' => $param['sell_price'], 'thrifty' => $param['thrifty'], 'shop_cache' => $param['shop_cache'], 'status' => 0, 'is_del' => 0, 'paid_at' => 0, 'create_time' => time() ]; return self::create($order); } public static function income($order,$total_fee,$flag){ $allMoney = money(($total_fee - $total_fee * 6 / 1000)); $ex = 0; $order->real = $allMoney; $store = AisStore::where(['id' => $order->store_id])->field('id,member_miniapp_id,charges,manage_uid,mch_id,name')->find(); if(empty($store) && $flag == 'N'){ return; } //商品信息 $shopItme = AisShop::where(['member_miniapp_id'=>$order->member_miniapp_id,'id' => $order->shop_id])->find(); $queen = []; //分账队列参数 //上级会员 $level = SystemUserLevel::where(['user_id' => $order->uid,'level' => 1])->find(); //发放会员收益 if($store->manage_uid != $level->parent_id && $shopItme->share_vip_price){ if($level){ $money = money($shopItme->sell_price * $shopItme->share_vip_price); $allMoney -= $money; $ex += $money; if($money >= 0){ //会员余额增加 $bank = AisBank::where(['uid' => $level->parent_id])->find(); if(empty($bank)){ $bank = new AisBank; $bank->uid = $level->parent_id; $bank->member_miniapp_id = $order->member_miniapp_id; $bank->money = 0; } $bank->money = $bank->money + $money; $bank->save(); AisBill::add(['miniapp_id'=>$order->member_miniapp_id,'store_id' => 0,'money' => $money,'uid'=>$level->parent_id], '优选下单会员收益'); } } } //发放分享收益 if($order->share_uid){ $money = money($shopItme->sell_price * $shopItme->share_price); $allMoney -= $money; $ex += $money; if($money >= 0){ //会员余额增加 $bank = AisBank::where(['uid' => $order->share_uid])->find(); if(empty($bank)){ $bank = new AisBank; $bank->uid = $order->share_uid; $bank->member_miniapp_id = $order->member_miniapp_id; $bank->money = 0; } $bank->money = $bank->money + $money; $bank->save(); AisBill::add(['miniapp_id'=>$order->member_miniapp_id,'store_id' => 0,'money' => $money,'uid'=>$order->share_uid], '分享商品收益'); } } if($allMoney > 0){ if($store->mch_id){ //分给商户 $queen[] = [ 'member_miniapp_id' => $store->member_miniapp_id, 'store_id' => $store->id, 'uid' => 0, 'mch_id' => $store->mch_id, 'amount' => $allMoney * 100, 'transaction_id' => $order->paid_no, 'out_order_no' => $order->order_no, 'is_finish' => 0, 'types' => 1, 'msg' => '结算到商户号', ]; } if($ex > 0){ //平台收入 $queen[] = [ 'member_miniapp_id' => $order->member_miniapp_id, 'store_id' => 0, 'uid' => 0, 'mch_id' => 0, 'amount' => $ex * 100, 'transaction_id' => $order->paid_no, 'out_order_no' => $order->order_no, 'is_finish' => 0, 'types' => 2, 'msg' => '结算到平台', ]; } AisQueen::createQueen($queen); if($shopItme->warehouse_num >= 0){ $shopItme->warehouse_num = $shopItme->warehouse_num - 1; $shopItme->save(); } } $order->real = $allMoney; return $order; } }