广告电商APP系统开发源码分享:
order('id', 'asc');
if ($page) $model = $model->page((int)$page, (int)$limit);
$data = ($data = $model->select()) ? $data->toArray() : [];
if(!empty($data)){
foreach($data as $k => $v) {
$count = AdTaskLog::where('uid', $uid)->where('task_id', $v['id'])->count('*');
if($count > 0){
$data[$k]['is_use'] = 1;
} else {
$data[$k]['is_use'] = 0;
}
}
}
return $data;
}
public static function setAdTask($uid, $data){
$user = User::getUserInfo($uid);
$adTaskLog = [
'uid' => $uid,
'add_time' => time(),
'task_id' => $data['id']
];
self::beginTrans();
$res1 = AdTaskLog::create($adTaskLog);
$info = [];
if($user['task_log_id'] > 0) {
$log = self::getTask($user['task_log_id'])->toArray();
if($log['level'] < $data['level']){
$info['task_log_id'] = $res1->id;
$info['see_ad_count'] = $data['counts'] - ($log['counts'] - $user['see_ad_count']);
}
} else {
$info['task_log_id'] = $res1->id;
$info['see_ad_count'] = $data['counts'];
}
$res2 = true;
if(!empty($info)){
$res2 = User::edit($info, $user['uid'], 'uid');
}
$res = $res1 && $res2;
self::checkTrans($res);
return $res;
}
public static function getTask($taskId){
$model = new self;
$model = $model->alias('a');
$model = $model->join('AdTaskLog l', 'a.id=l.task_id');
$model = $model->where('l.id', $taskId);
$model = $model->field("a.*,l.uid");
return $model->find();
}
public static function adCount($uid, $aid) {
$user = User::getUserInfo($uid);
if($user['see_ad_count'] <= 0){
return false;
}
if($user['task_log_id'] == 0){
return false;
}
$adInfo = Video::where('status',0)->where('id',$aid)->find();
if(!count($adInfo)){
return false;
}
//获取会员领取的广告任务
$task = self::getTask($user['task_log_id']);
//每次看广告获取的金额
$money = $task['money'];
$balance = bcadd($user['brokerage_price'], $money, 3);
$mark = '获得广告收益' . floatval($money) . '元';
self::beginTrans();
$res1 = UserBill::income2('获得广告收益', $user['uid'], 'now_money', 'brokerage', $money, 0, $balance, $mark, 1);
$res2 = true;
if($user['spread_uid'] > 0){
$res2 = User::getAdMoney($user, $user['spread_uid'], 1, true);
}
//$res3 = User::bcDec($user['uid'], 'see_ad_count', 1, 'uid');
$res3 = User::edit(['see_ad_count' => $user['see_ad_count'] - 1, 'brokerage_price' => $balance], $user['uid'], 'uid');
$res4 = AdSeeLog::insert(['uid' => $uid, 'ad_id' => $aid, 'add_time' => time()]);
$res = $res1 && $res2 && $res3 && $res4;
self::checkTrans($res);
return $res;
}
}



