account_helper.php 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  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. require_once (BASE_ROOT_PATH . '/helper/model_helper.php');
  11. class account_helper
  12. {
  13. const admin_member_id = 36429;
  14. const admin_mobile = '13911129867';
  15. const admin_name = '熊猫美妆';
  16. private static function base_param($amount,$total_num)
  17. {
  18. $param = array();
  19. $param['total_amount'] = $amount;
  20. $param['total_num'] = $total_num;
  21. $param['send_type'] = 1;
  22. $param['use_type'] = 1;
  23. $param['user_type'] = 2;
  24. return $param;
  25. }
  26. private static function admin_param(&$param)
  27. {
  28. $param['sender_id'] = self::admin_member_id;
  29. $param['sender_mobile'] = self::admin_mobile;
  30. $param['sender_name'] = self::admin_name;
  31. }
  32. public static function gain_bonus($from_id,$to_id,$amount)
  33. {
  34. Log::record("gain_bonus {$amount} {$from_id} {$to_id}",Log::DEBUG);
  35. $param = self::base_param($amount,1);
  36. $minfo = new member_info($from_id);
  37. $param['sender_id'] = $minfo->member_id();
  38. $param['sender_mobile'] = $minfo->mobile();
  39. $param['sender_name'] = $minfo->nickname();
  40. $param['make_type'] = \bonus\type::MakeShakeGainType;
  41. $name = $minfo->nickname();
  42. $param['type_name'] = "从{$name}摇来的红包";
  43. $ret = bonus_helper::make_bonus($param);
  44. if($ret != false) {
  45. $to_minfo = new member_info($to_id);
  46. $thief =$to_minfo->nickname();
  47. $predo = new predeposit_helper($from_id);
  48. $predo->handout_bonus($amount,$ret['type_sn'],$thief,"{$thief}摇走了您{$amount}元的红包.",\bonus\type::MakeShakeGainType);
  49. bonus_helper::withold($from_id,$amount);
  50. $bonusex = bonus_helper::send($ret['type_sn'],array($to_id));
  51. $push_param = array();
  52. $push_param['member_id'] = $from_id;
  53. $push_param['text'] = "{$thief}偷走了您{$amount}元的红包.";
  54. $push_param['go_type'] = 'bonus';
  55. QueueClient::push('upushSendMsg',$push_param);
  56. return $bonusex;
  57. } else {
  58. return false;
  59. }
  60. }
  61. public static function lost_bonus($from_id,$to_id,$amount)
  62. {
  63. Log::record("lost_bonus {$amount} {$from_id} {$to_id}",Log::DEBUG);
  64. $param = self::base_param($amount,1);
  65. $minfo = new member_info($from_id);
  66. $param['sender_id'] = $minfo->member_id();
  67. $param['sender_mobile'] = $minfo->mobile();
  68. $param['sender_name'] = $minfo->nickname();
  69. $param['make_type'] = \bonus\type::MakeShakeLostType;
  70. $name = $minfo->nickname();
  71. $param['type_name'] = "{$name}摇飞的红包";
  72. $ret = bonus_helper::make_bonus($param);
  73. if($ret != false)
  74. {
  75. $to_info = new member_info($to_id);
  76. $predo = new predeposit_helper($from_id);
  77. $predo->handout_bonus($amount,$ret['type_sn'],$to_info->nickname(),"您摇丢了{$amount}的红包.",\bonus\type::MakeShakeLostType);
  78. bonus_helper::withold($from_id,$amount);
  79. $bonusex = bonus_helper::send($ret['type_sn'],array($to_id));
  80. $push_param = array();
  81. $push_param['member_id'] = $to_id;
  82. $push_param['text'] = "{$name}的{$amount}元的红包,在向您飞来~.";
  83. $push_param['go_type'] = 'bonus';
  84. QueueClient::push('upushSendMsg',$push_param);
  85. return $bonusex;
  86. } else {
  87. return false;
  88. }
  89. }
  90. public static function share_bonus($member_id,$bonus_sn,&$msg)
  91. {
  92. $bonus = bonus\user_bonus::create_by_sn($bonus_sn);
  93. $amount = $bonus->remain_amount();
  94. if($bonus->spend_over()) {
  95. $msg = "该红包现金已经花光了~";
  96. return false;
  97. }
  98. $param = self::base_param($amount,1);
  99. $minfo = new member_info($member_id);
  100. $param['sender_id'] = $member_id;
  101. $param['sender_mobile'] = $minfo->mobile();
  102. $param['sender_name'] = $minfo->nickname();
  103. $param['make_type'] = \bonus\type::MakeSendType;
  104. $name = $minfo->nickname();
  105. $param['type_name'] = "{$name}";
  106. $ret = bonus_helper::make_bonus($param);
  107. if($ret != false) {
  108. $predo = new predeposit_helper($member_id);
  109. $predo->handout_bonus($amount,$ret['type_sn'],$minfo->nickname(),"您分享了{$amount}元的红包.",\bonus\type::MakeSendType);
  110. bonus_helper::withold_bonus($member_id,$bonus_sn);
  111. return $ret;
  112. } else {
  113. return false;
  114. }
  115. }
  116. public static function gain_sysBonus($to_id,$amount)
  117. {
  118. $param = self::base_param($amount,1);
  119. self::admin_param($param);
  120. $param['make_type'] = \bonus\type::MakeShakeGainType;
  121. $param['type_name'] = "从熊猫美妆摇来的红包";
  122. $ret = bonus_helper::make_bonus($param);
  123. if($ret != false) {
  124. $bonusex = bonus_helper::send($ret['type_sn'],array($to_id));
  125. return $bonusex;
  126. } else {
  127. return false;
  128. }
  129. }
  130. private static function pay_refund($member_id,$amount,$bonus_name)
  131. {
  132. $param = self::base_param($amount,1);
  133. self::admin_param($param);
  134. $param['make_type'] = \bonus\type::MakePayRefundType;
  135. $param['type_name'] = $bonus_name;
  136. $ret = bonus_helper::make_bonus($param);
  137. if($ret != false)
  138. {
  139. bonus_helper::send($ret['type_sn'],array($member_id));
  140. $push_param = array();
  141. $push_param['member_id'] = $member_id;
  142. $push_param['text'] = "购物退款通知:金额{$amount}元.";
  143. $push_param['go_type'] = 'bonus';
  144. QueueClient::push('upushSendMsg',$push_param);
  145. } else {
  146. Log::record("给用户 {$member_id} 退款{$amount}失败.");
  147. }
  148. }
  149. private static function order_cancel($member_id,$amount,$bonus_name)
  150. {
  151. $param = self::base_param($amount,1);
  152. self::admin_param($param);
  153. $param['make_type'] = \bonus\type::MakeOrderCancelType;
  154. $param['type_name'] = $bonus_name;
  155. $ret = bonus_helper::make_bonus($param);
  156. if($ret != false)
  157. {
  158. bonus_helper::send($ret['type_sn'],array($member_id));
  159. $push_param = array();
  160. $push_param['member_id'] = $member_id;
  161. $push_param['text'] = "取消订单退款通知:金额{$amount}元.";
  162. $push_param['go_type'] = 'bonus';
  163. QueueClient::push('upushSendMsg',$push_param);
  164. } else {
  165. Log::record("给用户 {$member_id} 退款{$amount}失败.");
  166. }
  167. }
  168. private static function bonus_refund($member_id,$amount,$bonus_name)
  169. {
  170. $param = self::base_param($amount,1);
  171. self::admin_param($param);
  172. $param['make_type'] = \bonus\type::MakeBonusRefundType;
  173. $param['type_name'] = $bonus_name;
  174. $ret = bonus_helper::make_bonus($param);
  175. if($ret != false)
  176. {
  177. $bonus = bonus_helper::send($ret['type_sn'],array($member_id));
  178. if($bonus != false) {
  179. $push_param = array();
  180. $push_param['member_id'] = $member_id;
  181. $push_param['text'] = "红包退还通知:您发送的红包已超过24小时,退还未被领取的金额{$amount}元,请在收支明细中查看.";
  182. $push_param['go_type'] = 'bonus';
  183. QueueClient::push('upushSendMsg',$push_param);
  184. }
  185. } else {
  186. Log::record("给用户 {$member_id} 红包退款{$amount}失败.");
  187. }
  188. }
  189. public static function register_bonus($member_id,$amount)
  190. {
  191. $param = self::base_param($amount,1);
  192. self::admin_param($param);
  193. $param['make_type'] = \bonus\type::MakeRegister;
  194. $param['type_name'] = "新用户注册红包";
  195. $ret = bonus_helper::make_bonus($param);
  196. if($ret != false)
  197. {
  198. $bonus = bonus_helper::send($ret['type_sn'],array($member_id));
  199. return $bonus;
  200. } else {
  201. return false;
  202. }
  203. }
  204. public static function onPredeposit($change_type,$member_id,$pd_amount,$sn)
  205. {
  206. Log::record("onPredeposit {$change_type},{$member_id},{$pd_amount}",Log::DEBUG);
  207. if($change_type == 'order_pay') {
  208. bonus_helper::withold($member_id,$pd_amount);
  209. }
  210. elseif($change_type == 'order_freeze') {
  211. bonus_helper::withold($member_id,$pd_amount);
  212. }
  213. elseif($change_type == 'order_comb_pay') {
  214. }
  215. elseif($change_type == 'order_cancel') { // 发送给该用户一个同等额度的红包
  216. self::order_cancel($member_id,$pd_amount,"退款红包");
  217. }
  218. elseif($change_type == 'refund')
  219. { // 发送给该用户一个同等额度的红包
  220. $order_sn = $sn;
  221. $order = order::create_by_sn($order_sn);
  222. if($order == false) {
  223. self::pay_refund($member_id,$pd_amount,"退款红包");
  224. } else {
  225. self::pay_refund($member_id,$order->pd_amount(),"退款红包");
  226. }
  227. }
  228. elseif($change_type == 'bonus_refund') { // 发送给该用户一个同等额度的红包
  229. self::bonus_refund($member_id,$pd_amount,"红包过期未领退款");
  230. }
  231. }
  232. }