| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\modules\client\controllers\v1;
- use app\models\AccountLog;
- use app\models\IntegralSetting;
- use app\models\Option;
- use app\models\Register;
- use app\models\SaasUser;
- use app\models\User;
- use app\models\UserGrowthValueLog;
- use app\modules\client\controllers\BaseController;
- use app\utils\Tools;
- class RegisterController extends BaseController
- {
- /**
- * 签到
- * @return \yii\web\Response
- */
- public function actionDo() {
- $store_id = get_store_id();
- $user_id = get_user_id();
- $register = new Register();
- $first_day = Register::find()->where(['store_id' => $store_id, 'user_id' => $user_id])->orderBy('created_at DESC')->asArray()->one();
- $setting = IntegralSetting::find()->where(['store_id' => get_store_id()])->asArray()->one();
- if (!$setting) {
- return $this->asJson([
- 'code' => 1,
- 'msg' => '签到未设置'
- ]);
- }
- if (intval($setting['register_status']) === 0) {
- return $this->asJson([
- 'code' => 1,
- 'msg' => '签到未开启'
- ]);
- }
- $day1 = $first_day['continuation'];
- $first_day['register_time'] = strtotime(date('Y-m-d', strtotime($first_day['register_time'])));
- $date = strtotime(date('Y-m-d', time()));
- if ($date == $first_day['register_time']) {
- return $this->asJson([
- 'code' => 1,
- 'msg' => '已签到'
- ]);
- }
- $day = ($date - $first_day['register_time']) / 86400;
- if ($day >= 1 && $day < 2) {
- $day1++;
- } else {
- $day1 = 1;
- }
- $register_integral = rand($setting['register_integral'] ?? 1, $setting['register_integral_end'] ?? 5);
- $register_reward = rand($setting['register_reward'] ?? 1, $setting['register_reward'] ?? 5);
- if ($day1 >= $setting['register_continuation']) {
- $score = $register_reward + $register_integral;
- } else {
- $score = $register_integral;
- }
- $today_date = date('Y-m-d');
- $register->store_id = get_store_id();
- $register->user_id = get_user_id();
- $register->register_time = $today_date;
- $register->created_at = time();
- $register->continuation = $day1;
- $register->integral = $score;
- if ($register->save()) {
- // 每日签到送积分
- AccountLog::saveLog($user_id, $score, AccountLog::TYPE_INTEGRAL, AccountLog::LOG_TYPE_INCOME, AccountLog::TYPE_REGISTER_INTEGRAL, 0, $today_date . "签到赠送积分");
- // 签到获取成长值
- $setting = Option::get('growth_setting',$store_id,'level','');
- if(!empty($setting)){
- $setting['value'] = json_decode($setting['value'],true);
- }
- // 未设置 或者 设置消费成长值为0 的时候直接返回
- if($setting && $setting['value']['sign_give'] > 0){
- $amount = $setting['value']['sign_give'];
- UserGrowthValueLog::setLog($store_id,$user_id,UserGrowthValueLog::LOG_TYPE_ADD,$amount,UserGrowthValueLog::TYPE_SIGN,"签到获赠{$amount}成长值");
- }
- return $this->asJson([
- 'code' => 0,
- 'msg' => '签到成功',
- 'data' => [
- 'continuation' => $register->continuation
- ]
- ]);
- } else {
- return $this->asJson([
- 'code' => 1,
- 'msg' => '签到失败',
- ]);
- }
- }
- /**
- * 签到首页
- * @return \yii\web\Response
- */
- public function actionIndex() {
- $today_day = date('Y-m-d');
- $store_id = get_store_id();
- $user_id = get_user_id();
- $setting = IntegralSetting::find()->where(['store_id' => $store_id])->asArray()->one();
- $today = Register::find()->where(['register_time' => $today_day, 'store_id' => $store_id, 'user_id' => $user_id])->asArray()->one();
- $register = Register::find()->where(['store_id' => $store_id, 'user_id' => $user_id])->orderBy('created_at DESC')->asArray()->one();
- $date_arr = Tools::getDate();
- $registerTime = Register::find()->where(['store_id' => $store_id, 'user_id' => $user_id])->asArray()->all();
- $register_day = count($registerTime);
- $time = [];
- foreach ($date_arr['date'] as $key => $value) {
- $reg = Register::find()->where(['register_time' => $value, 'store_id' => $store_id, 'user_id' => $user_id])->asArray()->one();
- $time[] = [
- 'register_time' => $value,
- 'day' => $value === date('Y-m-d',time()) ? '今天' : date('n.j',strtotime($value)) ,
- 'is_register' => $reg ? 1 : 0
- ];
- }
- // 积分记录
- $account_log = AccountLog::find()->where(['store_id' => get_store_id(), 'order_type' => AccountLog::TYPE_REGISTER_INTEGRAL])->limit(10)->orderBy('id DESC')->select('user_id, amount')->asArray()->all();
- $log = [];
- if (!empty($account_log)) {
- foreach ($account_log as &$a_log) {
- $saas_user = SaasUser::findOne(['mobile' => User::findOne($a_log['user_id'])->binding]);
- $log[] = ($saas_user->name ? Tools::substr_cut($saas_user->name) : '某**') . '获得' . intval($a_log['amount']) . '积分奖励';
- }
- }
- $setting['register_integral_end'] = $setting['register_integral_end'] ?? '5';
- $setting['register_reward_end'] = $setting['register_reward_end'] ?? '5';
- return $this->asJson([
- 'code' => 0,
- 'data' => [
- 'setting' => $setting,
- 'today' => $today ? 1 : 0,
- 'total_register_day' => $register_day,
- 'register' => $register ? $register['continuation'] : 0,
- 'registerTime' => $time,
- 'account_log' => $log
- ],
- ]);
- }
- }
|