account_helper.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 16/6/27
  6. * Time: 下午2:46
  7. */
  8. require_once (BASE_ROOT_PATH . '/helper/bonus/type.php');
  9. require_once (BASE_ROOT_PATH . '/helper/bonus_helper.php');
  10. class account_helper
  11. {
  12. const admin_member_id = 36429;
  13. const admin_mobile = '13911129867';
  14. const admin_name = '熊猫美妆';
  15. private static function base_param($amount,$total_num)
  16. {
  17. $param = array();
  18. $param['total_amount'] = $amount;
  19. $param['total_num'] = $total_num;
  20. $param['send_type'] = 1;
  21. $param['use_type'] = 1;
  22. $param['user_type'] = 2;
  23. return $param;
  24. }
  25. private static function admin_param(&$param)
  26. {
  27. $param['sender_id'] = self::admin_member_id;
  28. $param['sender_mobile'] = self::admin_mobile;
  29. $param['sender_name'] = self::admin_name;
  30. }
  31. public static function gain_bonus($from_id,$to_id,$amount)
  32. {
  33. $param = self::base_param($amount,1);
  34. $minfo = new member_info($from_id);
  35. $param['sender_id'] = $minfo->member_id();
  36. $param['sender_mobile'] = $minfo->mobile();
  37. $param['sender_name'] = $minfo->nickname();
  38. $param['make_type'] = \bonus\type::MakeShakeType;
  39. $name = $minfo->nickname();
  40. $param['type_name'] = "从{$name}摇来的红包";
  41. $ret = bonus_helper::make_bonus($param);
  42. if($ret != false) {
  43. $to_minfo = new member_info($to_id);
  44. $thief =$to_minfo->nickname();
  45. $predo = new predeposit_helper($from_id);
  46. $predo->handout_bonus($amount,$ret['type_sn'],$minfo->nickname(),"{$thief}摇走了您{$amount}元的红包.");
  47. bonus_helper::withold($from_id,$amount);
  48. $bonusex = bonus_helper::send($ret['type_sn'],array($to_id));
  49. $push_param = array();
  50. $push_param['member_id'] = $from_id;
  51. $push_param['text'] = "{$thief}摇走了您{$amount}元的红包.";
  52. $push_param['go_type'] = 'bonus';
  53. QueueClient::push('upushSendMsg',$push_param);
  54. return $bonusex;
  55. } else {
  56. return false;
  57. }
  58. }
  59. public static function lost_bonus($from_id,$to_id,$amount)
  60. {
  61. $param = self::base_param($amount,1);
  62. $minfo = new member_info($from_id);
  63. $param['sender_id'] = $minfo->member_id();
  64. $param['sender_mobile'] = $minfo->mobile();
  65. $param['sender_name'] = $minfo->nickname();
  66. $param['make_type'] = \bonus\type::MakeShakeType;
  67. $name = $minfo->nickname();
  68. $param['type_name'] = "{$name}摇过来的红包";
  69. $ret = bonus_helper::make_bonus($param);
  70. if($ret != false)
  71. {
  72. $predo = new predeposit_helper($from_id);
  73. $predo->handout_bonus($amount,$ret['type_sn'],$minfo->nickname(),"您摇丢了{$amount}的红包.");
  74. bonus_helper::withold($from_id,$amount);
  75. $bonusex = bonus_helper::send($ret['type_sn'],array($to_id));
  76. $push_param = array();
  77. $push_param['member_id'] = $to_id;
  78. $push_param['text'] = "{$name}的{$amount}元的红包,在向您飞来~.";
  79. $push_param['go_type'] = 'bonus';
  80. QueueClient::push('upushSendMsg',$push_param);
  81. return $bonusex;
  82. } else {
  83. return false;
  84. }
  85. }
  86. public static function share_bonus($member_id,$bonus_sn,&$msg)
  87. {
  88. $bonus = bonus\user_bonus::create_by_sn($bonus_sn);
  89. $amount = $bonus->remain_amount();
  90. if($bonus->spend_over()) {
  91. $msg = "该红包现金已经花光了~";
  92. return false;
  93. }
  94. $param = self::base_param($amount,1);
  95. $minfo = new member_info($member_id);
  96. $param['sender_id'] = $member_id;
  97. $param['sender_mobile'] = $minfo->mobile();
  98. $param['sender_name'] = $minfo->nickname();
  99. $param['make_type'] = \bonus\type::MakeSendType;
  100. $name = $minfo->nickname();
  101. $param['type_name'] = "{$name}";
  102. $ret = bonus_helper::make_bonus($param);
  103. if($ret != false) {
  104. $predo = new predeposit_helper($member_id);
  105. $predo->handout_bonus($amount,$ret['type_sn'],$minfo->nickname(),"您分享了{$amount}元的红包.");
  106. bonus_helper::withold_bonus($member_id,$bonus_sn);
  107. return $ret;
  108. } else {
  109. return false;
  110. }
  111. }
  112. public static function gain_sysBonus($to_id,$amount)
  113. {
  114. $param = self::base_param($amount,1);
  115. self::admin_param($param);
  116. $param['make_type'] = \bonus\type::MakeShakeType;
  117. $param['type_name'] = "从熊猫美妆摇来的红包";
  118. $ret = bonus_helper::make_bonus($param);
  119. if($ret != false) {
  120. $bonusex = bonus_helper::send($ret['type_sn'],array($to_id));
  121. return $bonusex;
  122. } else {
  123. return false;
  124. }
  125. }
  126. private static function pay_refund($member_id,$amount,$bonus_name)
  127. {
  128. $param = self::base_param($amount,1);
  129. self::admin_param($param);
  130. $param['make_type'] = \bonus\type::MakePayRefundType;
  131. $param['type_name'] = $bonus_name;
  132. $ret = bonus_helper::make_bonus($param);
  133. if($ret != false)
  134. {
  135. bonus_helper::send($ret['type_sn'],array($member_id));
  136. $push_param = array();
  137. $push_param['member_id'] = $member_id;
  138. $push_param['text'] = "红包退款通知:金额{$amount}元.";
  139. $push_param['go_type'] = 'bonus';
  140. QueueClient::push('upushSendMsg',$push_param);
  141. } else {
  142. Log::record("给用户 {$member_id} 退款{$amount}失败.");
  143. }
  144. }
  145. private static function bonus_refund($member_id,$amount,$bonus_name)
  146. {
  147. $param = self::base_param($amount,1);
  148. self::admin_param($param);
  149. $param['make_type'] = \bonus\type::MakeBonusRefundType;
  150. $param['type_name'] = $bonus_name;
  151. $ret = bonus_helper::make_bonus($param);
  152. if($ret != false)
  153. {
  154. bonus_helper::send($ret['type_sn'],array($member_id));
  155. $push_param = array();
  156. $push_param['member_id'] = $member_id;
  157. $push_param['text'] = "红包退款通知:金额{$amount}元.";
  158. $push_param['go_type'] = 'bonus';
  159. QueueClient::push('upushSendMsg',$push_param);
  160. } else {
  161. Log::record("给用户 {$member_id} 退款{$amount}失败.");
  162. }
  163. }
  164. public static function onPredeposit($change_type,$member_id,$pd_amount)
  165. {
  166. if($change_type == 'order_pay' || $change_type == 'order_freeze') {
  167. bonus_helper::withold($member_id,$pd_amount);
  168. }
  169. elseif($change_type == 'order_cancel') { // 发送给该用户一个同等额度的红包
  170. self::pay_refund($member_id,$pd_amount,"退款红包");
  171. }
  172. elseif($change_type == 'refund') { // 发送给该用户一个同等额度的红包
  173. self::pay_refund($member_id,$pd_amount,"退款红包");
  174. }
  175. elseif($change_type == 'bonus_refund') { // 发送给该用户一个同等额度的红包
  176. self::bonus_refund($member_id,$pd_amount,"红包过期未领退款");
  177. }
  178. }
  179. }