account_helper.php 7.4 KB

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