parameters.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2017/1/6
  6. * Time: 下午5:56
  7. */
  8. namespace bonus;
  9. use Exception;
  10. use member_info;
  11. use bonus;
  12. class parameters
  13. {
  14. const admin_member_id = 36429;
  15. const admin_name = '熊猫美妆';
  16. const usable_days = 30;
  17. public static function invite($inviter)
  18. {
  19. try
  20. {
  21. $info = new member_info($inviter);
  22. $nickname = $info->nickname();
  23. $type_name = "{$nickname}的红包";
  24. }
  25. catch (Exception $ex) {
  26. $type_name = "好友邀请红包";
  27. $nickname = self::admin_name;
  28. }
  29. $amount = 10;
  30. $bless = "领{$amount}元美妆红包,加入{$nickname}好友圈";
  31. $param['make_type'] = type::MakeInviteType;
  32. $param['type_name'] = $type_name;
  33. $param['type_bless'] = $bless;
  34. $param['send_type'] = type::SendType_Fixed;
  35. $param['grab_type'] = type::GrabType_EXEXIST;
  36. $param['relayer_id'] = $inviter;
  37. $param['sender_id'] = self::admin_member_id;
  38. $param['sender_name'] = self::admin_name;
  39. $param['usable_days'] = self::usable_days;
  40. $param['rate_money'][] = ['amount' => $amount,'num' => 10, 'rate' => 100];
  41. return $param;
  42. }
  43. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  44. public static function user_reigster_fixed()
  45. {
  46. $params = [];
  47. $param['make_type'] = type::MakeRegisterType;
  48. $param['type_name'] = "新人购物红包";
  49. $param['type_bless'] = "感谢您加入熊猫美妆";
  50. $param['send_type'] = type::SendType_Fixed;
  51. $param['grab_type'] = type::GrabType_All;
  52. $param['sender_id'] = self::admin_member_id;
  53. $param['sender_name'] = self::admin_name;
  54. $param['usable_days'] = self::usable_days;
  55. $param['rate_money'][] = ['amount' => 100,'num' => 1, 'rate' => 30];
  56. $params[] = $param;
  57. return $params;
  58. }
  59. public static function user_register_random()
  60. {
  61. $params = [];
  62. $param['make_type'] = type::MakeRegisterType;
  63. $param['type_name'] = "新人红包";
  64. $param['send_type'] = type::SendType_Random;
  65. $param['grab_type'] = type::GrabType_All;
  66. $param['sender_id'] = self::admin_member_id;
  67. $param['sender_name'] = self::admin_name;
  68. $param['rate_money'][] = ['amount' => 50,'num' => 1, 'rate' => 30];
  69. $params[] = $param;
  70. return $params;
  71. }
  72. public static function guide_inviter($nickname,$level)
  73. {
  74. $rate_moneys = [
  75. ['amount' => 5, 'num' => 1, 'rate' => 100],
  76. ['amount' => 2, 'num' => 1, 'rate' => 100],
  77. ['amount' => 1, 'num' => 1, 'rate' => 100],
  78. ['amount' => 0.5, 'num' => 1, 'rate' => 100],
  79. ['amount' => 0.25,'num' => 1, 'rate' => 100],
  80. ['amount' => 0.10,'num' => 1, 'rate' => 100],
  81. ];
  82. $count = count($rate_moneys);
  83. $cur_index = $level < $count ? $level : $count -1;
  84. $params = [];
  85. $param['make_type'] = type::MakeInviteRewardType;
  86. $param['type_name'] = "邀请好友,奖励红包";
  87. $level = $level + 1;
  88. $param['type_bless'] = "祝贺{$nickname}成为您的{$level}度粉丝";
  89. $param['send_type'] = type::SendType_Fixed;
  90. $param['grab_type'] = type::GrabType_All;
  91. $param['sender_id'] = self::admin_member_id;
  92. $param['sender_name'] = self::admin_name;
  93. $param['usable_days'] = self::usable_days;
  94. $param['rate_money'][] = $rate_moneys[$cur_index];
  95. $params[] = $param;
  96. return $params;
  97. }
  98. public static function guide_invitee($inviter_name, $invitee_name, $level, $num)
  99. {
  100. $rate_moneys = [
  101. ['amount' => 2, 'num' => $num, 'rate' => 100],
  102. ['amount' => 1, 'num' => $num, 'rate' => 100],
  103. ['amount' => 0.5, 'num' => $num, 'rate' => 100]
  104. ];
  105. $count = count($rate_moneys);
  106. $cur_index = $level < $count ? $level : $count -1;
  107. $params = [];
  108. $param['make_type'] = type::MakeInviteRewardType;
  109. $param['type_name'] = "好友加入,雨露均沾";
  110. $level = $level + 1;
  111. $param['type_bless'] = "祝贺{$invitee_name}成为{$inviter_name}的{$level}度粉丝";
  112. $param['send_type'] = type::SendType_Fixed;
  113. $param['grab_type'] = type::GrabType_All;
  114. $param['sender_id'] = self::admin_member_id;
  115. $param['sender_name'] = self::admin_name;
  116. $param['usable_days'] = self::usable_days;
  117. $param['rate_money'][] = $rate_moneys[$cur_index];
  118. $params[] = $param;
  119. return $params;
  120. }
  121. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  122. static private function order_complete_fixed_rates($order_amount)
  123. {
  124. $money = intval($order_amount/100) * 100;
  125. if($money > 1000) {
  126. return ['amount' => 200,'num' => 1, 'rate' => 50];
  127. }
  128. elseif($money > 500) {
  129. return ['amount' => 200,'num' => 1, 'rate' => 40];
  130. }
  131. elseif ($money > 300) {
  132. return ['amount' => 200,'num' => 1, 'rate' => 30];
  133. }
  134. elseif ($money > 200) {
  135. return ['amount' => 100,'num' => 1, 'rate' => 30];
  136. }
  137. else {
  138. return ['amount' => 100,'num' => 1, 'rate' => 30];
  139. }
  140. }
  141. static private function order_complete_random_rates($order_amount)
  142. {
  143. $money = intval($order_amount/100) * 100;
  144. if($money > 1000) {
  145. return ['amount' => 200,'num' => 10, 'rate' => 50];
  146. }
  147. elseif($money > 500) {
  148. return ['amount' => 200,'num' => 10, 'rate' => 40];
  149. }
  150. elseif ($money > 300) {
  151. return ['amount' => 200,'num' => 10, 'rate' => 30];
  152. }
  153. elseif ($money > 200) {
  154. return ['amount' => 100,'num' => 10, 'rate' => 30];
  155. }
  156. else {
  157. return ['amount' => 100,'num' => 10, 'rate' => 30];
  158. }
  159. }
  160. public static function order_complete_fixed($order_amount)
  161. {
  162. $params = [];
  163. $param['make_type'] = type::MakePayType;
  164. $param['type_name'] = "购物奖励";
  165. $param['type_bless'] = "祝您购物愉快,请常回来看看~";
  166. $param['send_type'] = type::SendType_Fixed;
  167. $param['grab_type'] = type::GrabType_All;
  168. $param['sender_id'] = self::admin_member_id;
  169. $param['sender_name'] = self::admin_name;
  170. $param['usable_days'] = self::usable_days + 15;
  171. $param['rate_money'][] = self::order_complete_fixed_rates($order_amount);
  172. $params[] = $param;
  173. return $params;
  174. }
  175. public static function order_complete_random($order_amount)
  176. {
  177. $params = [];
  178. $param['make_type'] = type::MakePayType;
  179. $param['type_name'] = "购物奖励";
  180. $param['type_bless'] = "祝您购物愉快,请常回来看看~";
  181. $param['send_type'] = type::SendType_Random;
  182. $param['grab_type'] = type::GrabType_All;
  183. $param['sender_id'] = self::admin_member_id;
  184. $param['sender_name'] = self::admin_name;
  185. $param['usable_days'] = self::usable_days;
  186. $param['rate_money'][] = self::order_complete_random_rates($order_amount);
  187. $params[] = $param;
  188. return $params;
  189. }
  190. public static function order_complete_inviter($nickname,$level)
  191. {
  192. $rate_moneys = [
  193. ['amount' => 3, 'num' => 1, 'rate' => 100],
  194. ['amount' => 2, 'num' => 1, 'rate' => 100],
  195. ['amount' => 1, 'num' => 1, 'rate' => 100],
  196. ['amount' => 0.5, 'num' => 1, 'rate' => 100],
  197. ['amount' => 0.25,'num' => 1, 'rate' => 100],
  198. ['amount' => 0.10,'num' => 1, 'rate' => 100]
  199. ];
  200. $count = count($rate_moneys);
  201. $cur_index = $level < $count ? $level : $count -1;
  202. $params = [];
  203. $param['make_type'] = type::MakeInviteRewardType;
  204. $param['type_name'] = "粉丝购物,奖励红包";
  205. $level = $level + 1;
  206. $param['type_bless'] = "祝贺您的{$level}度粉丝{$nickname}购物成功";
  207. $param['send_type'] = type::SendType_Fixed;
  208. $param['grab_type'] = type::GrabType_All;
  209. $param['sender_id'] = self::admin_member_id;
  210. $param['sender_name'] = self::admin_name;
  211. $param['usable_days'] = self::usable_days;
  212. $param['rate_money'][] = $rate_moneys[$cur_index];
  213. $params[] = $param;
  214. return $params;
  215. }
  216. public static function order_complete_invitee($user_name, $level, $num)
  217. {
  218. $rate_moneys = [
  219. ['amount' => 2, 'num' => $num, 'rate' => 100],
  220. ['amount' => 1, 'num' => $num, 'rate' => 100],
  221. ['amount' => 0.5,'num' => $num, 'rate' => 100],
  222. ];
  223. $count = count($rate_moneys);
  224. $cur_index = $level < $count ? $level : $count -1;
  225. $params = [];
  226. $param['make_type'] = type::MakeInviteRewardType;
  227. $param['type_name'] = "好友购物,雨露均沾";
  228. $param['type_bless'] = "祝贺您的好友 {$user_name} 购物成功";
  229. $param['send_type'] = type::SendType_Fixed;
  230. $param['grab_type'] = type::GrabType_All;
  231. $param['sender_id'] = self::admin_member_id;
  232. $param['sender_name'] = self::admin_name;
  233. $param['usable_days'] = self::usable_days;
  234. $param['rate_money'][] = $rate_moneys[$cur_index];
  235. $params[] = $param;
  236. return $params;
  237. }
  238. public static function order_evaluate_fixed()
  239. {
  240. $params = [];
  241. $param['make_type'] = type::MakeEvaluateType;
  242. $param['type_name'] = "订单评论奖励红包";
  243. $param['send_type'] = type::SendType_Fixed;
  244. $param['grab_type'] = type::GrabType_All;
  245. $param['sender_id'] = self::admin_member_id;
  246. $param['sender_name'] = self::admin_name;
  247. $param['usable_days'] = self::usable_days;
  248. $param['rate_money'][] = ['amount' => 5,'num' => 1, 'rate' => 50];
  249. $params[] = $param;
  250. return $param;
  251. }
  252. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  253. public static function admin_fixed($rate,$amount,$num,$type_name)
  254. {
  255. $param['make_type'] = type::MakeSendType;
  256. $param['type_name'] = empty($type_name) ? "系统红包" : $type_name;
  257. $param['send_type'] = type::SendType_Fixed;
  258. $param['grab_type'] = type::GrabType_All;
  259. $param['sender_id'] = self::admin_member_id;
  260. $param['sender_name'] = self::admin_name;
  261. $param['usable_days'] = self::usable_days;
  262. $param['rate_money'][] = ['amount' => $amount,'num' => $num, 'rate' => $rate];
  263. return $param;
  264. }
  265. public static function appreciate($sender_id,$rate,$amount,$bless)
  266. {
  267. $param['make_type'] = type::MakeSendType;
  268. $param['type_name'] = "赞赏红包";
  269. $param['type_bless'] = $bless;
  270. $param['send_type'] = type::SendType_Fixed;
  271. $param['grab_type'] = type::GrabType_All;
  272. $param['sender_id'] = $sender_id;
  273. $param['sender_name'] = self::admin_name;
  274. $param['usable_days'] = self::usable_days;
  275. $param['rate_money'][] = ['amount' => $amount,'num' => 1, 'rate' => $rate];
  276. return $param;
  277. }
  278. public static function shake_system($rate_moneys)
  279. {
  280. $param['make_type'] = type::MakeShakeGainType;
  281. $param['type_name'] = "从熊猫美妆摇来的红包";
  282. $param['send_type'] = type::SendType_Random;
  283. $param['grab_type'] = type::GrabType_All;
  284. $param['sender_id'] = self::admin_member_id;
  285. $param['sender_name'] = self::admin_name;
  286. $param['rate_money'] = $rate_moneys;
  287. return $param;
  288. }
  289. public static function shake_gain($from_id,$mobile,$nickname,$rate,$money)
  290. {
  291. $param['type_name'] = "从{$nickname}摇来的红包";
  292. $param['sender_id'] = $from_id;
  293. $param['sender_mobile'] = $mobile;
  294. $param['sender_name'] = $nickname;
  295. $param['make_type'] = type::MakeShakeGainType;
  296. $param['send_type'] = type::SendType_Fixed;
  297. $param['grab_type'] = type::GrabType_All;
  298. $param['rate_money'][] = ['amount' => $money,'num' => 1, 'rate' => $rate];
  299. return $param;
  300. }
  301. public static function shake_lost($from_id,$mobile,$nickname,$rate,$money)
  302. {
  303. $param['sender_id'] = $from_id;
  304. $param['sender_mobile'] = $mobile;
  305. $param['sender_name'] = $nickname;
  306. $param['make_type'] = type::MakeShakeLostType;
  307. $param['type_name'] = "{$nickname}摇飞的红包";
  308. $param['send_type'] = type::SendType_Fixed;
  309. $param['grab_type'] = type::GrabType_All;
  310. $param['rate_money'][] = ['amount' => $money,'num' => 1, 'rate' => $rate];
  311. return $param;
  312. }
  313. static private function paied_rates($order_amount)
  314. {
  315. $money = intval($order_amount/100) * 100;
  316. $rate_moneys = [];
  317. if($money > 500) {
  318. $amount = 200;
  319. }
  320. elseif ($money > 300) {
  321. $amount = 100;
  322. }
  323. if(isset($amount) && $amount > 0) {
  324. $item['amount'] = $amount;
  325. $item['num'] = 5;
  326. $item['rate'] = 40;
  327. $rate_moneys[] = $item;
  328. }
  329. if($money > 500) {
  330. $amount = 500;
  331. }
  332. elseif ($money > 300) {
  333. $amount = 300;
  334. }
  335. else {
  336. $amount = 100;
  337. }
  338. if(isset($amount) && $amount > 0) {
  339. $item['amount'] = $amount;
  340. $item['num'] = 10;
  341. $item['rate'] = 30;
  342. $rate_moneys[] = $item;
  343. }
  344. return $rate_moneys;
  345. }
  346. public static function order_complete($order_amount)
  347. {
  348. $rate_moneys = self::paied_rates($order_amount);
  349. $params = [];
  350. foreach ($rate_moneys as $rate_money)
  351. {
  352. $param = [];
  353. $param['make_type'] = type::MakePayType;
  354. $param['type_name'] = "支付奖励红包(可分享)";
  355. $param['send_type'] = type::SendType_Random;
  356. $param['grab_type'] = type::GrabType_All;
  357. $param['sender_id'] = self::admin_member_id;
  358. $param['sender_name'] = self::admin_name;
  359. $param['rate_money'][] = $rate_money;
  360. $params[] = $param;
  361. }
  362. return $params;
  363. }
  364. public static function order_cancel($bonus_rates)
  365. {
  366. $params = [];
  367. foreach ($bonus_rates as $rate => $amount)
  368. {
  369. $param = [];
  370. $param['make_type'] = bonus\type::MakeOrderCancelType;
  371. $param['type_name'] = '订单退款';
  372. $param['sender_id'] = self::admin_member_id;
  373. $param['sender_name'] = self::admin_name;
  374. $param['send_type'] = type::SendType_Fixed;
  375. $param['grab_type'] = type::GrabType_All;
  376. $param['rate_money'][] = ['amount' => $amount,'num' => 1, 'rate' => $rate];
  377. $params[] = $param;
  378. }
  379. return $params;
  380. }
  381. public static function bonus_refund($rate,$amount)
  382. {
  383. $param['make_type'] = \bonus\type::MakeBonusRefundType;
  384. $param['type_name'] = '红包过期退款';
  385. $param['sender_id'] = self::admin_member_id;
  386. $param['sender_name'] = self::admin_name;
  387. $param['send_type'] = type::SendType_Fixed;
  388. $param['grab_type'] = type::GrabType_All;
  389. $param['rate_money'][] = ['amount' => $amount,'num' => 1, 'rate' => $rate];
  390. return $param;
  391. }
  392. }
  393. class sys_bonus
  394. {
  395. private $mType_sn;
  396. public function __construct() {
  397. $this->mType_sn = null;
  398. }
  399. public function reset($type_sn) {
  400. $this->mType_sn = $type_sn;
  401. }
  402. private function rate_moneys()
  403. {
  404. $result = [];
  405. {
  406. $item['amount'] = 50;
  407. $item['num'] = 10;
  408. $item['rate'] = 50;
  409. $result[] = $item;
  410. }
  411. {
  412. $item['amount'] = 100;
  413. $item['num'] = 20;
  414. $item['rate'] = 40;
  415. $result[] = $item;
  416. }
  417. {
  418. $item['amount'] = 850;
  419. $item['num'] = 70;
  420. $item['rate'] = 30;
  421. $result[] = $item;
  422. }
  423. return $result;
  424. }
  425. public function type_sn() {
  426. return $this->mType_sn;
  427. }
  428. public function bind_over()
  429. {
  430. if($this->mType_sn == null) {
  431. return true;
  432. }
  433. $type = type::create_by_sn($this->mType_sn);
  434. return $type->binded_over();
  435. }
  436. public function gen_param(&$rates)
  437. {
  438. $rates = $this->rate_moneys();
  439. return parameters::shake_system($rates);
  440. }
  441. }