|
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Wap\Web;
|
|
|
|
|
|
use App\Modules\Activity\Services\ActivityService;
|
|
|
use App\Modules\Product\Services\ProductService;
|
|
|
+use App\Modules\User\Services\UserService;
|
|
|
use Illuminate\Http\Request;
|
|
|
use App\Http\Controllers\Wap\BaseController;
|
|
|
use Redis;
|
|
@@ -13,15 +14,16 @@ class ActivityController extends BaseController
|
|
|
{
|
|
|
|
|
|
//渠道自定义活动 可以多少充值
|
|
|
- public function channelCustomActivity(Request $request){
|
|
|
+ public function channelCustomActivity(Request $request)
|
|
|
+ {
|
|
|
$encode_distribution_channel_id = encodeDistributionChannelId($this->distribution_channel_id);
|
|
|
$token = $request->input('token');
|
|
|
$activity_info = ActivityService::getByToken($token);
|
|
|
$img = 'https://cdn-novel.iycdm.com/h5/activity-chanel-custom/btn48.jpg';
|
|
|
if ($activity_info && $activity_info->product_id) {
|
|
|
- $customer_activity_info = DB::table('channel_custom_activity')->where('product_id',$activity_info->product_id)->select('setting')->first();
|
|
|
- if($customer_activity_info && $customer_activity_info->setting){
|
|
|
- $img = json_decode($customer_activity_info->setting,1)['img'];
|
|
|
+ $customer_activity_info = DB::table('channel_custom_activity')->where('product_id', $activity_info->product_id)->select('setting')->first();
|
|
|
+ if ($customer_activity_info && $customer_activity_info->setting) {
|
|
|
+ $img = json_decode($customer_activity_info->setting, 1)['img'];
|
|
|
}
|
|
|
$from = $request->input('fromtype', 'main');
|
|
|
$uv_key_format = 'activity:%s:distribution_channel_id:%s:date:%s:uv';
|
|
@@ -33,15 +35,15 @@ class ActivityController extends BaseController
|
|
|
//$order = Order::where('uid',$this->uid)->where('status','PAID')->where('activity_id',$activity_info->id)->count();
|
|
|
//渠道不符合
|
|
|
if ($activity_info->distribution_channel_id != $this->distribution_channel_id) {
|
|
|
- return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img'=>$img,'code' => -1, 'start_time' => date('Y-m-d', time() - 86400 * 2), 'end_time' => date('Y-m-d', time() - 86400)]);
|
|
|
+ return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img' => $img, 'code' => -1, 'start_time' => date('Y-m-d', time() - 86400 * 2), 'end_time' => date('Y-m-d', time() - 86400)]);
|
|
|
}
|
|
|
//活动未开始
|
|
|
if (time() < strtotime($activity_info->start_time)) {
|
|
|
- return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img'=>$img, 'code' => -3, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
|
|
|
+ return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img' => $img, 'code' => -3, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
|
|
|
}
|
|
|
//活动结束
|
|
|
if (time() > strtotime($activity_info->end_time)) {
|
|
|
- return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img'=>$img, 'code' => -1, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
|
|
|
+ return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img' => $img, 'code' => -1, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
|
|
|
}
|
|
|
|
|
|
if (time() > strtotime($activity_info->start_time) && time() < strtotime($activity_info->end_time)) {
|
|
@@ -55,10 +57,10 @@ class ActivityController extends BaseController
|
|
|
'pay_redirect_url' => env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/person'
|
|
|
];
|
|
|
$url = env('CREATE_PAY_URL') . '?' . http_build_query($param);
|
|
|
- return view('pay.activity.ChannelCustomerV1', ['url' => $url, 'img'=>$img, 'code' => 0, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
|
|
|
+ return view('pay.activity.ChannelCustomerV1', ['url' => $url, 'img' => $img, 'code' => 0, 'start_time' => date('Y-m-d', strtotime($activity_info->start_time)), 'end_time' => date('Y-m-d', strtotime($activity_info->end_time) - 100)]);
|
|
|
}
|
|
|
}
|
|
|
- return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img'=>$img, 'code' => -1, 'start_time' => date('Y-m-d', time() - 86400 * 2), 'end_time' => date('Y-m-d', time() - 86400)]);
|
|
|
+ return view('pay.activity.ChannelCustomerV1', ['url' => '###', 'img' => $img, 'code' => -1, 'start_time' => date('Y-m-d', time() - 86400 * 2), 'end_time' => date('Y-m-d', time() - 86400)]);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -81,7 +83,7 @@ class ActivityController extends BaseController
|
|
|
$redirect_url = urldecode($redirect_url);
|
|
|
}
|
|
|
$product_id = $activity_info->product_id;
|
|
|
- if($activity_info->id == 6000){
|
|
|
+ if ($activity_info->id == 6000) {
|
|
|
$imgs['page_bd_img'] = 'https://cdn-novel.iycdm.com/h5/activity-2019-04-29/bg2.jpg';
|
|
|
$product_id = 5788;
|
|
|
}
|
|
@@ -110,96 +112,151 @@ class ActivityController extends BaseController
|
|
|
return redirect()->to($default_url);
|
|
|
}
|
|
|
|
|
|
- public function crmActivity(Request $request){
|
|
|
+ public function crmActivity(Request $request)
|
|
|
+ {
|
|
|
$default_url = env('H5_SCHEME', 'https') . '://site' . $this->en_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
|
|
|
|
|
|
$token = $request->input('token');
|
|
|
- if(!$token){
|
|
|
+ if (!$token) {
|
|
|
return redirect()->to($default_url);
|
|
|
}
|
|
|
$activity_info = ActivityService::getByToken($token);
|
|
|
- if(!$activity_info){
|
|
|
+ if (!$activity_info) {
|
|
|
return redirect()->to($default_url);
|
|
|
}
|
|
|
- $img = \GuzzleHttp\json_decode($activity_info->setting,1);
|
|
|
+ $img = \GuzzleHttp\json_decode($activity_info->setting, 1);
|
|
|
$param = [
|
|
|
'uid' => $this->uid,
|
|
|
'distribution_channel_id' => $this->distribution_channel_id,
|
|
|
'product_id' => $activity_info->product_id,
|
|
|
'activity_id' => $activity_info->id,
|
|
|
'fromtype' => 'crm',
|
|
|
- 'pay_redirect_url' => $default_url.'person',
|
|
|
+ 'pay_redirect_url' => $default_url . 'person',
|
|
|
'limit' => 100,
|
|
|
];
|
|
|
$product_info = ProductService::getProductSingle($activity_info->product_id);
|
|
|
$url = env('CREATE_PAY_URL') . '?' . http_build_query($param);
|
|
|
- $fee = $product_info->price*100+$product_info->given;
|
|
|
- return view('crm.crmActivity', ['url' => $url,'img'=>$img['button'],'fee'=>$fee]);
|
|
|
+ $fee = $product_info->price * 100 + $product_info->given;
|
|
|
+ return view('crm.crmActivity', ['url' => $url, 'img' => $img['button'], 'fee' => $fee]);
|
|
|
}
|
|
|
|
|
|
- public function huaweiActivity(Request $request){
|
|
|
+ public function huaweiActivity(Request $request)
|
|
|
+ {
|
|
|
$encode_distribution_channel_id = encodeDistributionChannelId($this->distribution_channel_id);
|
|
|
- $token = $request->input('token');
|
|
|
- $activity_info = ActivityService::getByToken($token);
|
|
|
+ $activity_id = redisEnv('HUAWEI_ACTIVITY_ID',0);
|
|
|
+ $activity_info = ActivityService::getById($activity_id);
|
|
|
if ($activity_info && isset($activity_info->setting) && empty(!$activity_info->setting)) {
|
|
|
- $imgs = json_decode($activity_info->setting, 1);
|
|
|
$from = $request->input('fromtype', 'main');
|
|
|
+ $display_dialog = $request->input('display_dialog', 'none');
|
|
|
$uv_key_format = 'activity:%s:distribution_channel_id:%s:date:%s:uv';
|
|
|
$pv_key_format = 'activity:%s:distribution_channel_id:%s:pv';
|
|
|
$uv_key = sprintf($uv_key_format, $activity_info->id, $this->distribution_channel_id, date('Y-m-d'));
|
|
|
$pv_key = sprintf($pv_key_format, $activity_info->id, $this->distribution_channel_id);
|
|
|
-
|
|
|
- $redirect_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/person';
|
|
|
- if ($request->input('redirect_url')) {
|
|
|
- $redirect_url = $request->input('redirect_url');
|
|
|
- $redirect_url = urldecode($redirect_url);
|
|
|
- }
|
|
|
if (time() > strtotime($activity_info->start_time) && time() < strtotime($activity_info->end_time)) {
|
|
|
Redis::sadd($uv_key, $this->uid);
|
|
|
Redis::hincrby($pv_key, date('Y-m-d'), 1);
|
|
|
- $products = explode(',',$activity_info->setting);
|
|
|
+ $products = explode(',', $activity_info->setting);
|
|
|
$url = [];
|
|
|
- foreach ($products as $v){
|
|
|
+ $request_param = $request->except('_url');
|
|
|
+ $request_param['display_dialog'] = 'block';
|
|
|
+ $count_info = DB::table('huaweilottery_user_counts')->where('uid', $this->uid)->select('count')->first();
|
|
|
+ $count = 0;
|
|
|
+ if($count_info && $count_info->count){
|
|
|
+ $count = $count_info->count;
|
|
|
+ }
|
|
|
+ foreach ($products as $v) {
|
|
|
$param = [
|
|
|
'uid' => $this->uid,
|
|
|
'distribution_channel_id' => $this->distribution_channel_id,
|
|
|
'product_id' => $v,
|
|
|
'activity_id' => $activity_info->id,
|
|
|
'fromtype' => $from,
|
|
|
- 'pay_redirect_url' => $redirect_url,
|
|
|
+ 'pay_redirect_url' => '/activity/huaweiActivity?'.http_build_query($request_param),
|
|
|
'limit' => 100,
|
|
|
];
|
|
|
$url[] = env('CREATE_PAY_URL') . '?' . http_build_query($param);
|
|
|
}
|
|
|
- return view('pay.activity.huaweiActivity', ['url' => $url, 'code' => 0, 'img' => $imgs]);
|
|
|
+ return view('pay.activity.huaweiActivity', ['url' => $url, 'code' => 0,'display_dialog'=>$display_dialog,'count'=>$count ,'end_time'=>$activity_info->end_time]);
|
|
|
} else if (time() <= strtotime($activity_info->start_time)) {
|
|
|
- return view('pay.activity.huaweiActivity', ['url' => [], 'code' => 1, 'img' => $imgs]);
|
|
|
+ return view('pay.activity.huaweiActivity', ['url' => [], 'code' => 1 ,'display_dialog'=>'none','count'=>0,'end_time'=>$activity_info->end_time]);
|
|
|
} else {
|
|
|
- return view('pay.activity.huaweiActivity', ['url' => [], 'code' => 2, 'img' => $imgs]);
|
|
|
+ return view('pay.activity.huaweiActivity', ['url' => [], 'code' => 2,'display_dialog'=>'none','count'=>0,'end_time'=>$activity_info->end_time]);
|
|
|
}
|
|
|
}
|
|
|
$default_url = env('H5_SCHEME', 'https') . '://site' . $encode_distribution_channel_id . '.' . env('CUSTOM_HOST') . '.com/';
|
|
|
return redirect()->to($default_url);
|
|
|
}
|
|
|
|
|
|
- public function huaweiLotteryView(){
|
|
|
- return view('pay.activity.huaweiLottery', ['count'=>10,'time_diff'=>6554]);
|
|
|
- }
|
|
|
+ public function huaweiLotteryView()
|
|
|
+ {
|
|
|
+ $count_info = DB::table('huaweilottery_user_counts')->where('uid', $this->uid)->select('count')->first();
|
|
|
+ $count = 0;
|
|
|
+ if($count_info && $count_info->count){
|
|
|
+ $count = $count_info->count;
|
|
|
+ }
|
|
|
+ $activity_id = redisEnv('HUAWEI_ACTIVITY_ID',0);
|
|
|
|
|
|
- public function huaweiLottery(){
|
|
|
- $code = random_int(1,1000);
|
|
|
- $count = random_int(6,10);
|
|
|
- if($code <=20){
|
|
|
- // 100书币
|
|
|
- $point = 20+45*7;
|
|
|
- }elseif($code <= 200){
|
|
|
- $point = 20+45;
|
|
|
- }elseif($code <= 700){
|
|
|
- $point =20+45*3;
|
|
|
+ $activity_info = ActivityService::getById($activity_id);
|
|
|
+ if(!$activity_info){
|
|
|
+ $diff = 0;
|
|
|
}else{
|
|
|
- $point =20+45*2;
|
|
|
+ $diff = time()-strtotime($activity_info->end_time);
|
|
|
+ $diff = $diff>0?$diff:0;
|
|
|
+ }
|
|
|
+ $list = DB::table('huaweilottery_record')
|
|
|
+ ->where('uid',$this->uid)
|
|
|
+ ->where('price','>',0)
|
|
|
+ ->select('created_at','price')
|
|
|
+ ->get();
|
|
|
+ return view('pay.activity.huaweiLottery', ['count' => $count, 'time_diff' => $diff,'list'=>$list]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function huaweiLottery()
|
|
|
+ {
|
|
|
+ $count_info = DB::table('huaweilottery_user_counts')->where('uid', $this->uid)->select('count')->first();
|
|
|
+ $rest_count = 0;
|
|
|
+ if ($count_info && $count_info->count) {
|
|
|
+ $rest_count = $count_info->count;
|
|
|
}
|
|
|
- $rotate = $point+360*$count;
|
|
|
- return response()->success(compact('rotate'));
|
|
|
+
|
|
|
+ $count = random_int(6, 10);
|
|
|
+ if ($rest_count <= 0) {
|
|
|
+ return response()->success(['rotate' => 20 + 45 * 2 * $count]);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ DB::table('huaweilottery_user_counts')->where('uid', $this->uid)->update([
|
|
|
+ 'count' => $rest_count - 1,
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s')
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $code = random_int(1, 1000);
|
|
|
+ if ($code <= 20) {
|
|
|
+ // 1000书币
|
|
|
+ $point = 20 + 45 * 7;
|
|
|
+ $price = 1000;
|
|
|
+ } elseif ($code <= 200) {
|
|
|
+ //100
|
|
|
+ $point = 20 + 45;
|
|
|
+ $price = 100;
|
|
|
+ } elseif ($code <= 700) {
|
|
|
+ //50
|
|
|
+ $point = 20 + 45 * 3;
|
|
|
+ $price = 50;
|
|
|
+ } else {
|
|
|
+ $point = 20 + 45 * 2;
|
|
|
+ $price = 0;
|
|
|
+ }
|
|
|
+ $rotate = $point + 360 * $count;
|
|
|
+ if ($price > 0) {
|
|
|
+ UserService::addBalance($this->uid, $price, 0, $price);
|
|
|
+ }
|
|
|
+ DB::table('huaweilottery_record')->insert([
|
|
|
+ 'uid' => $this->uid,
|
|
|
+ 'price' => $price,
|
|
|
+ 'created_at' => date('Y-m-d H:i:s'),
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
+ ]);
|
|
|
+ return response()->success(compact('rotate','price'));
|
|
|
}
|
|
|
}
|