where('article_id',$articleId) ->where('member_id',$memberId) ->where('hierarchy',0) ->where('reward_member_id',$sourceMember) ->value('id'); return $id > 0; } /** * Common: 领取分享奖励 * Author: wu-hui * Time: 2022/12/09 15:09 * @param $articleId * @param $member_id * @param $sourceMember * @param $integral * @param int $hierarchy * @return array */ public function shareReward($articleId,$member_id,$sourceMember,$integral,$hierarchy = 0){ $this->startTrans(); try{ if($member_id == $sourceMember) return $this->error('','领取失败,同一个用户!'); // 判断:今天是否进行达标 $set = (new Config())->getConfigInfo('ARTICLE_SETTING'); $maxIntegral = (float)$set['max_integral']; if($maxIntegral > 0){ // 今天已经获取的数量 [$startTime,$endTime] = getTimeStamp('today'); $toDayIntegral = (float)$this ->where('reward_member_id',$sourceMember) ->where('create_time','>=',$startTime) ->where('create_time','<',$endTime) ->sum('integral'); if($toDayIntegral >= $maxIntegral) { return $this->error('','超出领取限制'); } else { $surplus = (float)($maxIntegral - $toDayIntegral);// 今日剩余可以获取的奖励积分 $integral = $surplus >= $integral ? $integral : $surplus; } } // 添加奖励记录 $data = [ 'site_id' => $this->site_id, 'article_id' => $articleId, 'member_id' => $member_id, 'hierarchy' => $hierarchy, 'reward_member_id' => $sourceMember, 'create_time' => time(), 'integral' => $integral, ]; $this->insert($data); // 奖励发放 $remark = '文章分享奖励'; (new MemberAccountModel())->addMemberAccount($this->site_id, $sourceMember, 'point', $integral, 'share_article', 0, $remark); $this->commit(); return $this->success(); }catch(\Exception $e){ $this->rollback(); return $this->error('',$e->getMessage()); } } }