123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- <?php
- /**
- * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
- * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
- * @author pillar<ltmn@qq.com>
- * 订单管理
- */
- namespace app\smartbc\model;
- use think\Model;
- use app\smartbc\model\SmartbcCouponUser; //用户优惠券
- class SmartbcOrder extends Model{
- public function store(){
- return $this->hasOne('SmartbcStore','id','store_id');
- }
- public function conponUser(){
- return $this->hasOne('SmartbcCouponUser','id','coupon_user_id');
- }
- /**
- * 创建订单
- * @param array $param
- * @return void
- */
- public static function addOrder(array $param){
- $data = [];
- $data['member_miniapp_id'] = $param['member_miniapp_id'];
- $data['store_id'] = $param['store_id'];
- $data['store_chain_id'] = $param['store_chain_id'];
- $data['parent_store_id'] = $param['parent_store_id'] ?? 0;
- $data['uid'] = $param['uid'];
- $data['coupon_user_id'] = $param['user_couponr_id'];
- $data['order_no'] = $param['order_no'];
- $data['amount'] = $param['money']; //输入金额
- $data['price'] = $param['price']; //实际金额
- $data['coupon_cache'] = empty($param['coupon_cache'])?'':json_encode($param['coupon_cache']); //留存优惠券
- $data['state'] = 0;
- $data['update_time'] = time();
- return self::insertGetId($data);
- }
- /**
- * 计算器付款价格
- * @param array $param [计算参数]
- * @return type
- */
- public static function countPrice(array $param){
- $money = floatval($param['money']); //用户默认付款价
- //我的优惠券
- $coupon_user = [];
- $coupon_user['member_miniapp_id'] = $param['member_miniapp_id'];
- $coupon_user['store_id'] = $param['store_id'];
- $coupon_user['id'] = $param['user_couponr_id'];
- $coupon_user['uid'] = $param['uid'];
- $coupon_user['is_end'] = 0;
- $coupon_user_rel = SmartbcCouponUser::where($coupon_user)->find();
- //需要优惠的价格(分)
- $coupon_user_price = 0;
- if(!empty($coupon_user_rel)){
- if($money < $coupon_user_rel->howmuch){
- return false;
- }
- $config = SmartbcConfig::getConfig($coupon_user['member_miniapp_id']);
- if(!empty($config->end_time) && ($coupon_user_rel->create_time + $config->end_time * 60 * 60) <= time()){
- return false;
- }
- if($coupon_user_rel->types){//折扣
- $coupon_user_price = $money - $money * ($coupon_user_rel->discount/10);
- }else{//抵扣
- $coupon_user_price = $coupon_user_rel->price;
- }
- }
- $amount = $money - $coupon_user_price;
- $data['price'] = $amount <= 0 ? 0.01 : $amount;
- $data['coupon'] = $coupon_user_rel;
- return $data;
- }
- /**
- * 微信买单收益分账
- * @param array $order 订单信息
- * @return void
- */
- public static function income($order,$allMoney){
- $store = SmartbcStore::where(['id' => $order->store_id])->find();
- if(empty($store)){
- $order->parent_store_price = 0;
- $order->real = $order->price;
- return $order;
- }
- $setting = SmartbcConfig::getConfig($store->member_miniapp_id);
- if($order->parent_store_id > 0 && !empty($setting) && !empty($setting->profit)){
- $storeProfit = SmartbcStore::where(['id' => $order->parent_store_id])->find();
- if(empty($storeProfit)){
- return;
- }
- $queen = []; //分账队列参数
- $storeMoney = ($allMoney - money($allMoney * $setting->profit)) * 100;
- $profitMoney = money($allMoney * $setting->profit) * 100;
- //分给商户
- $queen[] = [
- 'member_miniapp_id' => $store->member_miniapp_id,
- 'store_id' => $store->id,
- 'uid' => 0,
- 'mch_id' => $store->mch_id,
- 'amount' => $storeMoney,
- 'transaction_id' => $order->paid_no,
- 'out_order_no' => $order->order_no,
- 'is_finish' => 0,
- 'types' => 1,
- 'msg' => '结算到商户号',
- ];
- $queen[] = [
- 'member_miniapp_id' => $storeProfit->member_miniapp_id,
- 'store_id' => $storeProfit->id,
- 'uid' => 0,
- 'mch_id' => $storeProfit->mch_id,
- 'amount' => $profitMoney,
- 'transaction_id' => $order->paid_no,
- 'out_order_no' => $order->order_no,
- 'is_finish' => 0,
- 'types' => 1,
- 'msg' =>'结算到商户号',
- ];
- $order->parent_store_price = $profitMoney;
- $order->real = $storeMoney;
- SmartbcQueen::createQueen($queen);
- SmartbcStoreBill::add(['miniapp_id' => $storeProfit->member_miniapp_id,'uid' => $storeProfit->manage_uid,'store_id' => $storeProfit->id,'pay_uid' => $order['user_id'],'money' => $profitMoney],'商圈引荐买单奖励'); //引荐商家账单
- }
- return $order;
- }
- }
|