MchIdQueen.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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\allwin\model;
  9. use think\Model;
  10. class MchIdQueen extends Model{
  11. protected $pk = 'id';
  12. protected $table = 'ai_allwin_mch_queen';
  13. //商家
  14. public function store(){
  15. return $this->hasOne('AllwinStore','id','store_id');
  16. }
  17. //用户
  18. public function user(){
  19. return $this->hasOne('app\common\model\SystemUser','id','uid');
  20. }
  21. //商户号
  22. public function mch(){
  23. return $this->hasOne('MchId','id','mch_id');
  24. }
  25. /**
  26. * 创建分账队列
  27. * $data[] = [
  28. * 'member_miniapp_id' => 应用ID,
  29. * 'store_id' => 店铺ID,
  30. * 'uid' => 0,
  31. * 'mch_id' => 商户ID,
  32. * 'amount' => 金额分
  33. * 'transaction_id' => 微信支付订单号,
  34. * 'out_order_no' => 支付订单号,
  35. * 'is_finish' => 0,
  36. * 'types' => 1, (0用户/1商家)
  37. * 'msg' => 日志内容,
  38. * ];
  39. */
  40. public static function createQueen(array $data){
  41. $mch_queen = [];
  42. $uid_queen = [];
  43. foreach ($data as $value) {
  44. switch ($value['types']) {
  45. case 0: //个人
  46. if(!isset($uid_queen[$value['uid']])){
  47. $uid_queen[$value['uid']] = $value;
  48. $uid_queen[$value['uid']]['msg'] = $value['msg'].'(¥'.money($value['amount']/100).')';
  49. }else{
  50. $uid_queen[$value['uid']]['amount'] += $value['amount'];
  51. $uid_queen[$value['uid']]['msg'] .= ' | '.$value['msg'].'(¥'.money($value['amount']/100).')';
  52. }
  53. break;
  54. case 1: //商家
  55. if(!isset($mch_queen[$value['mch_id']])){
  56. $mch_queen[$value['mch_id']] = $value;
  57. $mch_queen[$value['mch_id']]['msg'] = $value['msg'].'(¥'.money($value['amount']/100).')';
  58. }else{
  59. $mch_queen[$value['mch_id']]['amount'] += $value['amount'];
  60. $mch_queen[$value['mch_id']]['msg'] .= ' | '.$value['msg'].'(¥'.money($value['amount']/100).')';
  61. }
  62. break;
  63. default:
  64. $mch_queen[$value['mch_id']] = $value;
  65. break;
  66. }
  67. }
  68. $mch = array_values($mch_queen);
  69. $uid = array_values($uid_queen);
  70. $queen = array_merge($mch,$uid);
  71. if(empty($queen)){
  72. return;
  73. }
  74. return self::insertAll($queen);
  75. }
  76. }