1
0

first commit

This commit is contained in:
2020-08-06 14:58:51 +08:00
commit 17096657dc
780 changed files with 92857 additions and 0 deletions

View 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;
}
}