account_helper.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  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::MakeShakeGainType;
  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'],$thief,"{$thief}摇走了您{$amount}元的红包.",\bonus\type::MakeShakeGainType);
  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::MakeShakeLostType;
  69. $name = $minfo->nickname();
  70. $param['type_name'] = "{$name}摇飞的红包";
  71. $ret = bonus_helper::make_bonus($param);
  72. if($ret != false)
  73. {
  74. $to_info = new member_info($to_id);
  75. $predo = new predeposit_helper($from_id);
  76. $predo->handout_bonus($amount,$ret['type_sn'],$to_info->nickname(),"您摇丢了{$amount}的红包.",\bonus\type::MakeShakeLostType);
  77. bonus_helper::withold($from_id,$amount);
  78. $bonusex = bonus_helper::send($ret['type_sn'],array($to_id));
  79. $push_param = array();
  80. $push_param['member_id'] = $to_id;
  81. $push_param['text'] = "{$name}的{$amount}元的红包,在向您飞来~.";
  82. $push_param['go_type'] = 'bonus';
  83. QueueClient::push('upushSendMsg',$push_param);
  84. return $bonusex;
  85. } else {
  86. return false;
  87. }
  88. }
  89. public static function share_bonus($member_id,$bonus_sn,&$msg)
  90. {
  91. $bonus = bonus\user_bonus::create_by_sn($bonus_sn);
  92. $amount = $bonus->remain_amount();
  93. if($bonus->spend_over()) {
  94. $msg = "该红包现金已经花光了~";
  95. return false;
  96. }
  97. $param = self::base_param($amount,1);
  98. $minfo = new member_info($member_id);
  99. $param['sender_id'] = $member_id;
  100. $param['sender_mobile'] = $minfo->mobile();
  101. $param['sender_name'] = $minfo->nickname();
  102. $param['make_type'] = \bonus\type::MakeSendType;
  103. $name = $minfo->nickname();
  104. $param['type_name'] = "{$name}";
  105. $ret = bonus_helper::make_bonus($param);
  106. if($ret != false) {
  107. $predo = new predeposit_helper($member_id);
  108. $predo->handout_bonus($amount,$ret['type_sn'],$minfo->nickname(),"您分享了{$amount}元的红包.",\bonus\type::MakeSendType);
  109. bonus_helper::withold_bonus($member_id,$bonus_sn);
  110. return $ret;
  111. } else {
  112. return false;
  113. }
  114. }
  115. public static function gain_sysBonus($to_id,$amount)
  116. {
  117. $param = self::base_param($amount,1);
  118. self::admin_param($param);
  119. $param['make_type'] = \bonus\type::MakeShakeGainType;
  120. $param['type_name'] = "从熊猫美妆摇来的红包";
  121. $ret = bonus_helper::make_bonus($param);
  122. if($ret != false) {
  123. $bonusex = bonus_helper::send($ret['type_sn'],array($to_id));
  124. return $bonusex;
  125. } else {
  126. return false;
  127. }
  128. }
  129. private static function pay_refund($member_id,$amount,$bonus_name)
  130. {
  131. $param = self::base_param($amount,1);
  132. self::admin_param($param);
  133. $param['make_type'] = \bonus\type::MakePayRefundType;
  134. $param['type_name'] = $bonus_name;
  135. $ret = bonus_helper::make_bonus($param);
  136. if($ret != false)
  137. {
  138. bonus_helper::send($ret['type_sn'],array($member_id));
  139. $push_param = array();
  140. $push_param['member_id'] = $member_id;
  141. $push_param['text'] = "购物退款通知:金额{$amount}元.";
  142. $push_param['go_type'] = 'bonus';
  143. QueueClient::push('upushSendMsg',$push_param);
  144. } else {
  145. Log::record("给用户 {$member_id} 退款{$amount}失败.");
  146. }
  147. }
  148. private static function order_cancel($member_id,$amount,$bonus_name)
  149. {
  150. $param = self::base_param($amount,1);
  151. self::admin_param($param);
  152. $param['make_type'] = \bonus\type::MakeOrderCancelType;
  153. $param['type_name'] = $bonus_name;
  154. $ret = bonus_helper::make_bonus($param);
  155. if($ret != false)
  156. {
  157. bonus_helper::send($ret['type_sn'],array($member_id));
  158. $push_param = array();
  159. $push_param['member_id'] = $member_id;
  160. $push_param['text'] = "取消订单退款通知:金额{$amount}元.";
  161. $push_param['go_type'] = 'bonus';
  162. QueueClient::push('upushSendMsg',$push_param);
  163. } else {
  164. Log::record("给用户 {$member_id} 退款{$amount}失败.");
  165. }
  166. }
  167. private static function bonus_refund($member_id,$amount,$bonus_name)
  168. {
  169. $param = self::base_param($amount,1);
  170. self::admin_param($param);
  171. $param['make_type'] = \bonus\type::MakeBonusRefundType;
  172. $param['type_name'] = $bonus_name;
  173. $ret = bonus_helper::make_bonus($param);
  174. if($ret != false)
  175. {
  176. bonus_helper::send($ret['type_sn'],array($member_id));
  177. $push_param = array();
  178. $push_param['member_id'] = $member_id;
  179. $push_param['text'] = "红包退款通知:金额{$amount}元.";
  180. $push_param['go_type'] = 'bonus';
  181. QueueClient::push('upushSendMsg',$push_param);
  182. } else {
  183. Log::record("给用户 {$member_id} 退款{$amount}失败.");
  184. }
  185. }
  186. public static function register_bonus($member_id,$amount)
  187. {
  188. $param = self::base_param($amount,1);
  189. self::admin_param($param);
  190. $param['make_type'] = \bonus\type::MakeRegister;
  191. $param['type_name'] = "新用户注册红包";
  192. $ret = bonus_helper::make_bonus($param);
  193. if($ret != false)
  194. {
  195. $bonus = bonus_helper::send($ret['type_sn'],array($member_id));
  196. return $bonus;
  197. } else {
  198. return false;
  199. }
  200. }
  201. public static function onPredeposit($change_type,$member_id,$pd_amount)
  202. {
  203. Log::record("onPredeposit {$change_type},{$member_id},{$pd_amount}");
  204. if($change_type == 'order_pay') {
  205. bonus_helper::withold($member_id,$pd_amount);
  206. }
  207. elseif($change_type == 'order_freeze') {
  208. bonus_helper::withold($member_id,$pd_amount);
  209. }
  210. elseif($change_type == 'order_comb_pay') {
  211. }
  212. elseif($change_type == 'order_cancel') { // 发送给该用户一个同等额度的红包
  213. self::order_cancel($member_id,$pd_amount,"退款红包");
  214. }
  215. elseif($change_type == 'refund') { // 发送给该用户一个同等额度的红包
  216. self::pay_refund($member_id,$pd_amount,"退款红包");
  217. }
  218. elseif($change_type == 'bonus_refund') { // 发送给该用户一个同等额度的红包
  219. self::bonus_refund($member_id,$pd_amount,"红包过期未领退款");
  220. }
  221. }
  222. }