82 lines
3.3 KiB
PHP
Executable File
82 lines
3.3 KiB
PHP
Executable File
<?php
|
||
namespace wstmart\common\model;
|
||
use Think\Db;
|
||
/**
|
||
* ============================================================================
|
||
* 惠宝业务处理器
|
||
*/
|
||
class UserScores extends Base{
|
||
/**
|
||
* 获取列表
|
||
*/
|
||
public function pageQuery($userId){
|
||
$type = (int)input('post.type');
|
||
$where = ['userId'=>(int)$userId];
|
||
if($type!=-1)$where['scoreType'] = $type;
|
||
$page = $this->where($where)->order('scoreId desc')->paginate()->toArray();
|
||
foreach ($page['Rows'] as $key => $v){
|
||
$page['Rows'][$key]['dataSrc'] = WSTLangScore($v['dataSrc']);
|
||
}
|
||
return $page;
|
||
}
|
||
|
||
/**
|
||
* 新增记录
|
||
*/
|
||
public function add($score,$isAddTotal = false){
|
||
$score['createTime'] = date('Y-m-d H:i:s');
|
||
$this->create($score);
|
||
$user = model('common/users')->get($score['userId']);
|
||
if($score['scoreType']==1){//收入
|
||
$user->userScore = $user->userScore + $score['score'];
|
||
if($isAddTotal)$user->userTotalScore = $user->userTotalScore+$score['score'];
|
||
}else{
|
||
$user->userScore = $user->userScore - $score['score'];
|
||
}
|
||
$userinfo = session('WST_USER');
|
||
$userinfo['userScore'] = $user->userScore;
|
||
session('WST_USER',$userinfo);
|
||
$user->save();
|
||
}
|
||
|
||
/**
|
||
*签到获得惠宝
|
||
*/
|
||
public function signScore($userId){
|
||
$time = date('Y-m-d');
|
||
$frontTime = date("Y-m-d",strtotime("-1 day"));
|
||
if(WSTConf('CONF.signScoreSwitch')==0)return WSTReturn("签到失败");
|
||
$userscores = $this->where(["userId"=>$userId,"dataSrc"=>5,])->order('createTime desc')->find();
|
||
if(!$userscores || date("Y-m-d",strtotime($userscores['createTime']))!=$time){//没签过或最后一次签到不是今天
|
||
$rs = Db::name('users')->where(["userId"=>$userId])->field('userScore')->find();
|
||
$days = $score = 0;
|
||
$days = (date("Y-m-d",strtotime($userscores['createTime']))==$frontTime)?($userscores['dataId']==30)?$userscores['dataId']:$userscores['dataId']+1:1;//是昨天签到的,第30天,返回天数,不然返回天数+1,不是昨天签到的,返回第一天
|
||
$signScore = explode(",",WSTConf('CONF.signScore'));//返回天数每天的惠宝
|
||
if($signScore[0]!=0){
|
||
$score = $signScore[$days-1];//天数对应的惠宝
|
||
}
|
||
$data['totalScore'] = $rs['userScore'] + $score;//用户惠宝+签到送的分
|
||
$data['score'] = $score;
|
||
if($score>0){
|
||
//添加
|
||
$userinfo = session('WST_USER');
|
||
$userinfo['signScoreTime'] = $time;
|
||
session('WST_USER',$userinfo);
|
||
$uscore = [];
|
||
$uscore['userId'] = $userId;
|
||
$uscore['score'] = $score;
|
||
$uscore['dataSrc'] = 5;
|
||
$uscore['dataId'] = $days;
|
||
$uscore['dataRemarks'] = "连续".$days."天签到,获得惠宝".$score."个";
|
||
$uscore['scoreType'] = 1;
|
||
$this->add($uscore,true);
|
||
return WSTReturn("签到第".$days."天,获得".$score."个惠宝",1,$data);
|
||
}else{
|
||
return WSTReturn("签到失败");
|
||
}
|
||
}else{
|
||
return WSTReturn("已签到,明天再来");
|
||
}
|
||
}
|
||
}
|