AisQueen.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 分账队列
  7. */
  8. namespace app\ais\model;
  9. use think\Model;
  10. class AisQueen extends Model{
  11. protected $pk = 'id';
  12. //商家
  13. public function store(){
  14. return $this->hasOne('AisStore','id','store_id');
  15. }
  16. //用户
  17. public function user(){
  18. return $this->hasOne('app\common\model\SystemUser','id','uid');
  19. }
  20. /**
  21. * 创建分账队列
  22. * $data[] = [
  23. * 'member_miniapp_id' => 应用ID,
  24. * 'store_id' => 店铺ID,
  25. * 'uid' => 0,
  26. * 'mch_id' => 商户ID,
  27. * 'amount' => 金额分
  28. * 'transaction_id' => 微信支付订单号,
  29. * 'out_order_no' => 支付订单号,
  30. * 'is_finish' => 0,
  31. * 'types' => 1, (0用户/1商家)
  32. * 'msg' => 日志内容,
  33. * ];
  34. */
  35. public static function createQueen(array $data){
  36. $mch_queen = [];
  37. $uid_queen = [];
  38. foreach ($data as $value) {
  39. switch ($value['types']) {
  40. case 0: //个人
  41. if(!isset($uid_queen[$value['uid']])){
  42. $uid_queen[$value['uid']] = $value;
  43. $uid_queen[$value['uid']]['msg'] = $value['msg'].'(¥'.money($value['amount']/100).')';
  44. }else{
  45. $uid_queen[$value['uid']]['amount'] += $value['amount'];
  46. $uid_queen[$value['uid']]['msg'] .= ' | '.$value['msg'].'(¥'.money($value['amount']/100).')';
  47. }
  48. break;
  49. case 1: //商家
  50. if(!isset($mch_queen[$value['mch_id']])){
  51. $mch_queen[$value['mch_id']] = $value;
  52. $mch_queen[$value['mch_id']]['msg'] = $value['msg'].'(¥'.money($value['amount']/100).')';
  53. }else{
  54. $mch_queen[$value['mch_id']]['amount'] += $value['amount'];
  55. $mch_queen[$value['mch_id']]['msg'] .= ' | '.$value['msg'].'(¥'.money($value['amount']/100).')';
  56. }
  57. break;
  58. default:
  59. $mch_queen[$value['mch_id']] = $value;
  60. break;
  61. }
  62. }
  63. $mch = array_values($mch_queen);
  64. $uid = array_values($uid_queen);
  65. $queen = array_merge($mch,$uid);
  66. if(empty($queen)){
  67. return;
  68. }
  69. return self::insertAll($queen);
  70. }
  71. }