first commit
This commit is contained in:
197
application/common/service/Score.php
Normal file
197
application/common/service/Score.php
Normal file
@@ -0,0 +1,197 @@
|
||||
<?php
|
||||
// +------------------------------------------------+
|
||||
// |http://www.cjango.com |
|
||||
// +------------------------------------------------+
|
||||
// | 修复BUG不是一朝一夕的事情,等我喝醉了再说吧! |
|
||||
// +------------------------------------------------+
|
||||
// | Author: 小陈叔叔 <Jason.Chen> |
|
||||
// +------------------------------------------------+
|
||||
namespace app\common\service;
|
||||
|
||||
use app\common\model\Member as MemberModel;
|
||||
use app\common\model\MemberInfo as MemberInfoModel;
|
||||
use app\common\model\Score as ScoreModel;
|
||||
use app\common\model\ScoreRules as ScoreRulesModel;
|
||||
use app\common\model\VipOrder as VipOrderModel;
|
||||
use tools\Time;
|
||||
|
||||
class Score extends _Init
|
||||
{
|
||||
/**
|
||||
* 注册赠送积分
|
||||
* @param [type] $uid [description]
|
||||
* @param [type] $remark [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
public static function register($uid)
|
||||
{
|
||||
$ruleInfo = self::getRule('register');
|
||||
$MemberInfo = MemberInfoModel::where('uid', $uid)->find();
|
||||
|
||||
if ($ruleInfo->status == 1) {
|
||||
self::addScore($ruleInfo, $MemberInfo, '注册赠送');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置信息
|
||||
* @param [type] $uid [description]
|
||||
* @param [type] $name [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
public static function setting($uid, $name)
|
||||
{
|
||||
$title = [
|
||||
'headimgurl' => '头像',
|
||||
'nickname' => '姓名',
|
||||
'wechat' => '微信',
|
||||
'qq' => 'qq',
|
||||
'email' => '邮箱',
|
||||
'qrcode' => '微信二维码',
|
||||
'position' => '职位',
|
||||
'city' => '所在城市',
|
||||
'openid' => '绑定微信',
|
||||
];
|
||||
$ruleInfo = self::getRule('setting');
|
||||
$MemberInfo = MemberInfoModel::where('uid', $uid)->find();
|
||||
if ($ruleInfo->status == 1) {
|
||||
self::addScore($ruleInfo, $MemberInfo, '设置 ' . $title[$name] . ' 获取');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 邀请/采集文章
|
||||
* @param [type] $uid [description]
|
||||
* @param [type] $name [description]
|
||||
*/
|
||||
public static function addArticle($uid, $name)
|
||||
{
|
||||
$ruleInfo = self::getRule($name);
|
||||
$MemberInfo = MemberInfoModel::where('uid', $uid)->find();
|
||||
$count = ScoreModel::where('create_time', 'between', Time::day())->where('rule_id', $ruleInfo->id)->count();
|
||||
$str = $name == 'add' ? '添加文章' : '采集文章';
|
||||
if ($ruleInfo->status == 1 && $count < $ruleInfo->times) {
|
||||
self::addScore($ruleInfo, $MemberInfo, $str . '获取');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 邀请好友
|
||||
* @param [type] $uid [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
public static function invite($uid)
|
||||
{
|
||||
$ruleInfo = self::getRule('invite');
|
||||
$MemberInfo = MemberInfoModel::where('uid', $uid)->find();
|
||||
if (!$MemberInfo) {
|
||||
die();
|
||||
}
|
||||
$count = ScoreModel::where('create_time', 'between', Time::day())->where('rule_id', $ruleInfo->id)->count();
|
||||
if ($ruleInfo->status == 1 && $count < $ruleInfo->times) {
|
||||
self::addScore($ruleInfo, $MemberInfo, '邀请好友获取 ');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开通vip
|
||||
* @param [type] $uid [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
public static function vip($uid)
|
||||
{
|
||||
$ruleInfo = self::getRule('vip');
|
||||
$MemberInfo = MemberInfoModel::where('uid', $uid)->find();
|
||||
if ($ruleInfo->status == 1) {
|
||||
self::addScore($ruleInfo, $MemberInfo, '开通vip 获取');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 积分兑换vip
|
||||
* @param [type] $uid [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
public static function buyVip($uid, $orderid)
|
||||
{
|
||||
$ruleInfo = self::getRule('buy_vip');
|
||||
$MemberInfo = MemberInfoModel::where('uid', $uid)->find();
|
||||
|
||||
if (empty($ruleInfo) || $ruleInfo->status != 1) {
|
||||
return '兑换功能已经关闭';
|
||||
} else if ($MemberInfo->score < $ruleInfo->score) {
|
||||
return '您的积分不够兑换,兑换一年Vip需要 ' . $ruleInfo->score . ' 积分';
|
||||
} else {
|
||||
$order = VipOrderModel::where('orderid', $orderid)->find();
|
||||
$order->save(['status' => 20, 'money' => $ruleInfo->score, 'model' => 'score']);
|
||||
$res = self::addScore($ruleInfo, $MemberInfo, '积分兑换一年vip 使用', false);
|
||||
|
||||
if ($res == 1) {
|
||||
$rule = ScoreRulesModel::where('model', 'vip')->find();
|
||||
self::addScore($rule, $MemberInfo, '开通vip获取');
|
||||
$time = ($MemberInfo->is_vip == 1) ? $MemberInfo->vip_end_time : time();
|
||||
$res = $MemberInfo->save(['is_vip' => 1, 'vip_time' => $time + 31536000]);
|
||||
return $res;
|
||||
} else {
|
||||
return '兑换失败';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 分享文章
|
||||
* @param [type] $uid [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
public static function share($uid)
|
||||
{
|
||||
$ruleInfo = self::getRule('share');
|
||||
$MemberInfo = MemberInfoModel::where('uid', $uid)->find();
|
||||
$count = ScoreModel::where('create_time', 'between', Time::day())->where('rule_id', $ruleInfo->id)->count();
|
||||
if ($ruleInfo->status == 1 && $count < $ruleInfo->times) {
|
||||
self::addScore($ruleInfo, $MemberInfo, '分享文章获取 ');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取规则信息
|
||||
* @param [type] $model [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
public static function getRule($model)
|
||||
{
|
||||
return ScoreRulesModel::where('model', $model)->find();
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加积分
|
||||
* @param [type] $uid [description]
|
||||
* @param [type] $ruleInfo [description]
|
||||
*/
|
||||
public static function addScore($ruleInfo, $MemberInfo, $remark, $add = true)
|
||||
{
|
||||
$data = [
|
||||
'uid' => $MemberInfo->uid,
|
||||
'rule_id' => $ruleInfo->id,
|
||||
'score' => $ruleInfo->score,
|
||||
'remark' => $remark . $ruleInfo->score . ' 积分',
|
||||
];
|
||||
ScoreModel::create($data);
|
||||
//增加积分
|
||||
if ($add) {
|
||||
$res = $MemberInfo->setInc('score', $ruleInfo->score);
|
||||
} else {
|
||||
$res = $MemberInfo->setDec('score', $ruleInfo->score);
|
||||
}
|
||||
$Member = MemberModel::get($MemberInfo->uid);
|
||||
$openid = $Member->openid;
|
||||
if (!empty($openid)) {
|
||||
if ($ruleInfo->model == 'buy_vip') {
|
||||
Message::openvip($MemberInfo);
|
||||
}
|
||||
Message::addScoreMessage($ruleInfo, $MemberInfo, $remark);
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user