| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- /**
- * 奖励服务模块
- * @author wesmiler
- */
- namespace app\weixin\service;
- use app\weixin\model\Member;
- use app\weixin\model\Wechat;
- class Award
- {
- public static function inviteUser($userId, $regUserInfo = [])
- {
- $userInfo = Member::where(['id' => $userId, 'user_status' => 1])
- ->field('id,user_login,user_nickname,openid,redheart')
- ->find();
- PRedis::set('test:userInfo', ['data'=> $userInfo,'userId'=> $userId], 600);
- $inviteOpenid = isset($userInfo['openid']) ? $userInfo['openid'] : '';
- $inviteNickname = isset($userInfo['user_nickname']) ? $userInfo['user_nickname'] : '';
- $redheart = isset($userInfo['redheart']) ? floatval($userInfo['redheart']) : 0;
- if (empty($userInfo)) {
- return false;
- }
- $siteInfo = cmf_get_site_info();
- $awardNum = isset($siteInfo['invite_award_redheart']) ? intval($siteInfo['invite_award_redheart']) : 0;
- if ($awardNum > 0) {
- // 奖励入账
- Member::where(['id' => $userId])->update(['redheart' => moneyFormat($redheart + $awardNum), 'updated_at' => date('Y-m-d H:i:s')]);
- // 账户明细
- $dateTime = date('Y-m-d H:i:s');
- $regNickname = isset($regUserInfo['user_nickname']) ? $regUserInfo['user_nickname'] : '';
- $regUserId = isset($regUserInfo['id']) ? $regUserInfo['id'] : '';
- $logData = [
- 'user_id' => $userId,
- 'type' => 4,
- 'account_type' => 1,
- 'change_type' => 1,
- 'money' => $awardNum,
- 'balance' => $redheart,
- 'remark' => "邀请用户[$regUserId],昵称[{$regNickname}]完成注册奖励",
- 'created_at' => $dateTime,
- ];
- db('account_log')->insertGetId($logData);
- // 推送消息
- $message = [];
- $pushInvite = isset($siteInfo['push_invite']) ? $siteInfo['push_invite'] : true;
- if ($inviteOpenid && $pushInvite) {
- $siteName = isset($siteInfo['site_name']) ? $siteInfo['site_name'] : '本公众号';
- $inviteMsg = isset($siteInfo['invite_msg']) ? $siteInfo['invite_msg'] : '';
- $match = ['{nickname}', '{inviteNickname}', '{awardNum}', '{datetime}', '{date}'];
- $data = [$regNickname, $inviteNickname, $awardNum, $dateTime, date('Y.m.d')];
- $inviteMsg = $inviteMsg ? str_replace($match, $data, $inviteMsg) : "尊敬的【{$inviteNickname}】,您在{$dateTime}成功邀请了用户{$regNickname}关注{$siteName},获得奖励{$awardNum}颗爱心!!!";
- $message = ['content'=> $inviteMsg];
- }
- return ['openid'=> $inviteOpenid, 'message'=> $message];
- }
- return false;
- }
- }
|