12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- // +----------------------------------------------------------------------
- // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
- // +----------------------------------------------------------------------
- // | Author: CRMEB Team <admin@crmeb.com>
- // +----------------------------------------------------------------------
- namespace app\wap\model\user;
- use service\SystemConfigService;
- use basic\ModelBasic;
- use traits\ModelTrait;
- /**用户签到表
- * Class UserSign
- * @package app\wap\model\user
- */
- class UserSign extends ModelBasic
- {
- use ModelTrait;
- public static function checkUserSigned($uid)
- {
- return UserBill::be(['uid' => $uid, 'add_time' => ['>', strtotime('today')], 'category' => 'gold_num', 'type' => 'sign']);
- }
- public static function userSignedCount($uid)
- {
- return self::userSignBillWhere($uid)->count();
- }
- /**
- * @param $uid
- * @return Model
- */
- public static function userSignBillWhere($uid)
- {
- return UserBill::where(['uid' => $uid, 'category' => 'gold_num', 'type' => 'sign']);
- }
- /**近期用户签到记录
- * @param $uid
- */
- public static function userSignInlist($uid, $page, $limit)
- {
- $list = self::userSignBillWhere($uid)->field('number,add_time')->order('add_time DESC')
- ->page((int)$page, (int)$limit)->select();
- $list = count($list) > 0 ? $list->toArray() : [];
- foreach ($list as &$value) {
- $value['add_time'] = date('Y-m-d H:i:s', $value['add_time']);
- }
- return $list;
- }
- public static function sign($userInfo, $gold_name)
- {
- $uid = $userInfo['uid'];
- $gold_coin = SystemConfigService::get('single_gold_coin') ?: 0;
- $balance = bcadd($gold_coin, $userInfo['gold_num'], 0);
- self::beginTrans();
- $res1 = UserBill::income('用户签到', $uid, 'gold_num', 'sign', $gold_coin, 0, $balance, '签到获得' . floatval($gold_coin) . $gold_name);
- $res2 = User::bcInc($uid, 'gold_num', $gold_coin, 'uid');
- $res3 = self::userSign($gold_coin, $uid, $balance);
- $res = $res1 && $res2 && $res3;
- self::checkTrans($res);
- if ($res)
- return $gold_coin;
- else
- return false;
- }
- public static function userSign($gold_coin, $uid, $balance)
- {
- $data = [
- 'uid' => $uid,
- 'title' => '签到奖励',
- 'number' => $gold_coin,
- 'balance' => $balance,
- 'add_time' => time()
- ];
- return self::set($data);
- }
- }
|