添加内测签到倍数
This commit is contained in:
parent
56002f390d
commit
1719ebfa07
|
|
@ -111,6 +111,7 @@ class Config extends Base
|
|||
$infinite_multiple = getConfig('infinite_multiple');
|
||||
$wechatofficialaccount_setting = getConfig('wechatofficialaccount_setting');
|
||||
$rank_setting = getConfig('rank_setting');
|
||||
$system_test = getConfig('system_test');
|
||||
|
||||
View::assign("key", "systemconfig");
|
||||
View::assign("data", $config);
|
||||
|
|
@ -120,6 +121,7 @@ class Config extends Base
|
|||
View::assign("wechatofficialaccount_setting", $wechatofficialaccount_setting);
|
||||
View::assign("infinite_multiple", $infinite_multiple);
|
||||
View::assign("rank_setting", $rank_setting);
|
||||
View::assign("system_test", $system_test);
|
||||
return View::fetch('Config/systemconfig');
|
||||
}
|
||||
|
||||
|
|
@ -218,6 +220,11 @@ class Config extends Base
|
|||
($redis->getRedis())->del('config:app_setting');
|
||||
}
|
||||
|
||||
if ($data['key'] == 'system_test') {
|
||||
//清除redis缓存:system_test
|
||||
\app\common\helper\ConfigHelper::clearSystemTestCache();
|
||||
}
|
||||
|
||||
$result = setConfig($data['key'], $data);
|
||||
if ($result) {
|
||||
return $this->renderSuccess('修改成功');
|
||||
|
|
|
|||
|
|
@ -237,6 +237,42 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">内测配置</div>
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" action="" lay-filter="system-test-form">
|
||||
<input type="hidden" name="key" value="system_test">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否开启内测</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="enable_test" value="1" title="开启" {if isset($system_test.enable_test) && $system_test.enable_test==1}checked{/if}>
|
||||
<input type="radio" name="enable_test" value="0" title="关闭" {if !isset($system_test.enable_test) || $system_test.enable_test==0}checked{/if}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否禁用微信支付</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="disable_wechat_pay" value="1" title="禁用" {if isset($system_test.disable_wechat_pay) && $system_test.disable_wechat_pay==1}checked{/if}>
|
||||
<input type="radio" name="disable_wechat_pay" value="0" title="启用" {if !isset($system_test.disable_wechat_pay) || $system_test.disable_wechat_pay==0}checked{/if}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">签到倍数</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="sign_multiple" value="{$system_test.sign_multiple|default=1}" autocomplete="off" class="layui-input" min="1">
|
||||
<div class="layui-form-mid layui-word-aux">签到时获得的积分将乘以此倍数</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="system-test-form">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
|
|
@ -268,8 +304,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- 排行榜设置卡片 -->
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
|
|
@ -774,6 +808,26 @@
|
|||
return false;
|
||||
});
|
||||
|
||||
// 内测配置表单提交
|
||||
form.on('submit(system-test-form)', function (data) {
|
||||
var field = data.field;
|
||||
|
||||
// 提交到后台
|
||||
$.ajax({
|
||||
url: '{:url("/admin/update")}',
|
||||
type: 'post',
|
||||
data: field,
|
||||
success: function (res) {
|
||||
if (res.status) {
|
||||
layer.msg(res.msg, { icon: 1 });
|
||||
} else {
|
||||
layer.msg(res.msg, { icon: 2 });
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
// 微信公众号设置表单提交
|
||||
form.on('submit(wechatofficialaccount-setting-form)', function (data) {
|
||||
var field = data.field;
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ class ConfigHelper
|
|||
|
||||
private static $appSetting = null;
|
||||
|
||||
private static $systemTest = null;
|
||||
|
||||
/**
|
||||
* 获取应用设置
|
||||
*
|
||||
|
|
@ -279,4 +281,85 @@ class ConfigHelper
|
|||
// 删除缓存,返回是否成功
|
||||
return $redis->delete($redisKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取内测配置
|
||||
*
|
||||
* @return array 内测配置
|
||||
*/
|
||||
public static function getSystemTest()
|
||||
{
|
||||
// 如果静态属性已有值,直接返回
|
||||
if (self::$systemTest !== null) {
|
||||
return self::$systemTest;
|
||||
}
|
||||
|
||||
// 实例化Redis助手
|
||||
$redis = new RedisHelper();
|
||||
|
||||
// 设置Redis键名
|
||||
$redisKey = 'config:system_test';
|
||||
|
||||
// 尝试从Redis获取
|
||||
$cachedValue = $redis->get($redisKey);
|
||||
if ($cachedValue !== false) {
|
||||
// 缓存结果到静态属性
|
||||
self::$systemTest = json_decode($cachedValue, true);
|
||||
return self::$systemTest;
|
||||
}
|
||||
|
||||
// Redis中不存在,从数据库获取
|
||||
$config = Db::name('config')
|
||||
->where('key', 'system_test')
|
||||
->value('value');
|
||||
|
||||
// 解析JSON数据
|
||||
$configArray = json_decode($config, true) ?: [];
|
||||
|
||||
// 存入Redis,过期时间为1小时(3600秒)
|
||||
$redis->set($redisKey, json_encode($configArray), 3600);
|
||||
|
||||
// 缓存结果到静态属性
|
||||
self::$systemTest = $configArray;
|
||||
|
||||
return self::$systemTest;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取内测配置
|
||||
*
|
||||
* @return array 内测配置
|
||||
*/
|
||||
public static function getSystemTestKey($key)
|
||||
{
|
||||
// 如果静态属性已有值,直接返回
|
||||
$system_test = self::getSystemTest();
|
||||
if ($system_test != null && $system_test['enable_test'] == "1") {
|
||||
|
||||
return $system_test[$key];
|
||||
}
|
||||
if ($key == "sign_multiple") {
|
||||
return "0";
|
||||
}
|
||||
|
||||
return "0";
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除内测配置缓存
|
||||
*
|
||||
* @return bool 是否成功清除缓存
|
||||
*/
|
||||
public static function clearSystemTestCache()
|
||||
{
|
||||
// 重置静态属性
|
||||
self::$systemTest = null;
|
||||
|
||||
// 清除Redis缓存
|
||||
$redis = new RedisHelper();
|
||||
$redisKey = 'config:system_test';
|
||||
|
||||
// 删除缓存,返回是否成功
|
||||
return $redis->delete($redisKey);
|
||||
}
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@ use app\common\model\SignConfig;
|
|||
use app\common\model\SignConfigReward;
|
||||
use app\common\service\RewardService;
|
||||
use think\Model;
|
||||
|
||||
use app\common\helper\ConfigHelper;
|
||||
class UserSign extends Base
|
||||
{
|
||||
|
||||
|
|
@ -74,7 +74,7 @@ class UserSign extends Base
|
|||
if ($res1) {
|
||||
|
||||
foreach ($res1 as $item) {
|
||||
$msg = $msg .'每日签到获得:'. $item['msg'] . ',';
|
||||
$msg = $msg . '每日签到获得:' . $item['msg'] . ',';
|
||||
}
|
||||
}
|
||||
// 处理累计签到奖励
|
||||
|
|
@ -82,7 +82,7 @@ class UserSign extends Base
|
|||
if ($res2) {
|
||||
$res[] = $res2;
|
||||
foreach ($res2 as $item) {
|
||||
$msg = $msg .'累计签到获得:'. $item['msg'] . ',';
|
||||
$msg = $msg . '累计签到获得:' . $item['msg'] . ',';
|
||||
}
|
||||
}
|
||||
if ($msg) {
|
||||
|
|
@ -101,6 +101,15 @@ class UserSign extends Base
|
|||
protected static function processSignRewards($user_id, $type, $day)
|
||||
{
|
||||
|
||||
$sign_multiple = ConfigHelper::getSystemTestKey("sign_multiple");
|
||||
if (!$sign_multiple) {
|
||||
$sign_multiple = 0;
|
||||
} else {
|
||||
$sign_multiple = intval($sign_multiple);
|
||||
}
|
||||
if ($sign_multiple <= 0) {
|
||||
$sign_multiple = 1;
|
||||
}
|
||||
// 查找符合条件的配置
|
||||
$reward = SignConfig::where('type', '=', $type)
|
||||
->where('status', '=', 1)
|
||||
|
|
@ -108,7 +117,7 @@ class UserSign extends Base
|
|||
->field('reward_id')->find();
|
||||
$res = [];
|
||||
if ($reward) {
|
||||
$res = RewardService::sendReward($user_id, $reward['reward_id'], $type == 1 ? "签到奖励" : "累计签到奖励");
|
||||
$res = RewardService::sendRewardsMultiple($user_id, $reward['reward_id'], $sign_multiple,$type == 1 ? "签到奖励" : "累计签到奖励");
|
||||
if ($res && $res['status']) {
|
||||
return $res['data'];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,44 @@ class RewardService
|
|||
return ['status' => true, 'msg' => '奖励发放成功', 'data' => $result];
|
||||
}
|
||||
|
||||
/**
|
||||
* 发放奖励
|
||||
* @param int $user_id 用户ID
|
||||
* @param string $reward_ids 奖励ID或奖励ID数组
|
||||
* @param string $source 奖励来源(如:签到、任务等)
|
||||
* @return array 处理结果
|
||||
*/
|
||||
public static function sendRewardsMultiple($user_id, $reward_id, $sign_multiple, $source = '系统奖励')
|
||||
{
|
||||
if (!$user_id) {
|
||||
return ['status' => false, 'msg' => '用户ID不能为空'];
|
||||
}
|
||||
|
||||
|
||||
// 获取奖励信息
|
||||
$rewards = Reward::where('reward_id', '=', $reward_id)
|
||||
->select()
|
||||
->toArray();
|
||||
|
||||
if (empty($rewards)) {
|
||||
return ['status' => false, 'msg' => '未找到有效奖励'];
|
||||
}
|
||||
|
||||
$result = [];
|
||||
$user = User::find($user_id);
|
||||
|
||||
if (empty($user)) {
|
||||
return ['status' => false, 'msg' => '用户不存在'];
|
||||
}
|
||||
foreach ($rewards as &$reward) {
|
||||
$reward['reward_value'] = $reward['reward_value'] * $sign_multiple;
|
||||
$res = self::sendSingleReward($user_id, $reward, $source);
|
||||
$result[] = $res;
|
||||
}
|
||||
|
||||
return ['status' => true, 'msg' => '奖励发放成功', 'data' => $result];
|
||||
}
|
||||
|
||||
/**
|
||||
* 发放单个奖励
|
||||
* @param int $user_id 用户ID
|
||||
|
|
@ -61,20 +99,20 @@ class RewardService
|
|||
case 1: // 钻石
|
||||
$res = User::changeMoney($user_id, $reward['reward_value'], 6, $source);
|
||||
$result['status'] = !empty($res);
|
||||
$result['msg'] = $result['status'] ? '获得钻石*'.$reward['reward_value'] : '钻石发放失败';
|
||||
$result['msg'] = $result['status'] ? '获得钻石*' . $reward['reward_value'] : '钻石发放失败';
|
||||
break;
|
||||
|
||||
|
||||
|
||||
case 2: // 货币1
|
||||
$res = User::changeIntegral($user_id, $reward['reward_value'], 6, $source);
|
||||
$result['status'] = !empty($res);
|
||||
$result['msg'] = $result['status'] ? '获得UU币*'.$reward['reward_value'] : 'UU币发放失败';
|
||||
$result['msg'] = $result['status'] ? '获得UU币*' . $reward['reward_value'] : 'UU币发放失败';
|
||||
break;
|
||||
|
||||
case 3: // 货币2
|
||||
$res = User::changeMoney2($user_id, $reward['reward_value'], 6, $source);
|
||||
$result['status'] = !empty($res);
|
||||
$result['msg'] = $result['status'] ? '获得达达券*'.$reward['reward_value'] : '达达券发放失败';
|
||||
$result['msg'] = $result['status'] ? '获得达达券*' . $reward['reward_value'] : '达达券发放失败';
|
||||
break;
|
||||
case 4: // 优惠券
|
||||
if (!empty($reward['reward_extend'])) {
|
||||
|
|
@ -110,4 +148,5 @@ class RewardService
|
|||
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user