JLEventService.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace Modules\Callback\Services;
  3. use Illuminate\Support\Facades\DB;
  4. use Modules\Permissions\Middlewares\PermissionGate;
  5. /**
  6. * 巨量2.0事件-微信小程序
  7. */
  8. class JLEventService
  9. {
  10. /**
  11. * 判断回传配置的金额项
  12. * @param $chargeMoneyMap
  13. * <pre>
  14. * [
  15. * [
  16. * 'min_money' => 1, // 最小金额
  17. * 'max_money' => 2, // 最大金额(不包含)
  18. * 'callback_type' => 1, // 回传参数,类型:1-全部回传,2-全部不回传,3-自定义
  19. * 'callback_param' => '1:1', // callback_type == 3 时, 自定义,传几卡几
  20. * ]
  21. * ]
  22. * </pre>
  23. */
  24. public static function judgeChargeMoneyOk($chargeMoneyMap) {
  25. $len = count($chargeMoneyMap);
  26. for($i = 0; $i < $len; $i++) {
  27. for($j = $i+1; $j < $len ; $j ++) {
  28. if($chargeMoneyMap[$i]['min_money'] >= $chargeMoneyMap[$j]['max_money'] ||
  29. $chargeMoneyMap[$i]['max_money'] <= $chargeMoneyMap[$j]['min_money']) {
  30. continue;
  31. } else {
  32. return false;
  33. }
  34. }
  35. }
  36. return true;
  37. }
  38. /**
  39. * 金额项的卡比例选项
  40. * @return array
  41. */
  42. public static function listCustomCallBackRate() {
  43. $arr = explode(',', config('callback.jlEvent.customRate'));
  44. $result = [];
  45. foreach ($arr as $item) {
  46. $temp = explode(':', $item);
  47. $result[$item] = '传'.$temp[0].'卡'.$temp[1];
  48. }
  49. return $result;
  50. }
  51. /**
  52. * 回传配置的金额项的比例配置信息
  53. * @param $userId 优化师id
  54. * @param $configId 回传配置id
  55. * @param $chargeMoneyMap
  56. * <pre>
  57. * [
  58. * [
  59. * 'min_money' => 1, // 最小金额
  60. * 'max_money' => 2, // 最大金额(不包含)
  61. * 'callback_type' => 1, // 回传参数,类型:1-全部回传,2-全部不回传,3-自定义
  62. * 'callback_param' => '1:1', // callback_type == 3 时, 自定义,传几卡几
  63. * ]
  64. * ]
  65. * </pre>
  66. */
  67. public static function saveRateConfigLog($userId, $configId, $chargeMoneyMap){
  68. $now = date('Y-m-d H:i:s');
  69. DB::table('jl_event_rate_config_log')
  70. ->where([
  71. 'user_id' => $userId, 'config_id' => $configId,
  72. 'is_enabled' => 1,
  73. ])->update([
  74. 'is_enabled' => 0, 'updated_at' => $now,
  75. ]);
  76. $insertData = [];
  77. foreach ($chargeMoneyMap as $item) {
  78. if(3 == $item['callback_type']) {
  79. $insertData[] = [
  80. 'user_id' => $userId,
  81. 'config_id' => $configId,
  82. 'rate_str' => $item['callback_param'],
  83. 'created_at' => $now, 'updated_at' => $now,
  84. 'min_money' => $item['min_money'],
  85. 'max_money' => $item['max_money']
  86. ];
  87. }
  88. }
  89. if(count($insertData)) {
  90. DB::table('jl_event_rate_config_log')
  91. ->insert($insertData);
  92. }
  93. }
  94. }