12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?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\ais\model;
- use think\Model;
- class AisQueen extends Model{
-
- protected $pk = 'id';
-
- //商家
- public function store(){
- return $this->hasOne('AisStore','id','store_id');
- }
-
- //用户
- public function user(){
- return $this->hasOne('app\common\model\SystemUser','id','uid');
- }
- /**
- * 创建分账队列
- * $data[] = [
- * 'member_miniapp_id' => 应用ID,
- * 'store_id' => 店铺ID,
- * 'uid' => 0,
- * 'mch_id' => 商户ID,
- * 'amount' => 金额分
- * 'transaction_id' => 微信支付订单号,
- * 'out_order_no' => 支付订单号,
- * 'is_finish' => 0,
- * 'types' => 1, (0用户/1商家)
- * 'msg' => 日志内容,
- * ];
- */
- public static function createQueen(array $data){
- $mch_queen = [];
- $uid_queen = [];
- foreach ($data as $value) {
- switch ($value['types']) {
- case 0: //个人
- if(!isset($uid_queen[$value['uid']])){
- $uid_queen[$value['uid']] = $value;
- $uid_queen[$value['uid']]['msg'] = $value['msg'].'(¥'.money($value['amount']/100).')';
- }else{
- $uid_queen[$value['uid']]['amount'] += $value['amount'];
- $uid_queen[$value['uid']]['msg'] .= ' | '.$value['msg'].'(¥'.money($value['amount']/100).')';
- }
- break;
- case 1: //商家
- if(!isset($mch_queen[$value['mch_id']])){
- $mch_queen[$value['mch_id']] = $value;
- $mch_queen[$value['mch_id']]['msg'] = $value['msg'].'(¥'.money($value['amount']/100).')';
- }else{
- $mch_queen[$value['mch_id']]['amount'] += $value['amount'];
- $mch_queen[$value['mch_id']]['msg'] .= ' | '.$value['msg'].'(¥'.money($value['amount']/100).')';
- }
- break;
- default:
- $mch_queen[$value['mch_id']] = $value;
- break;
- }
- }
- $mch = array_values($mch_queen);
- $uid = array_values($uid_queen);
- $queen = array_merge($mch,$uid);
- if(empty($queen)){
- return;
- }
- return self::insertAll($queen);
- }
- }
|