Kirin 1 rok pred
rodič
commit
cce9086764
1 zmenil súbory, kde vykonal 86 pridanie a 76 odobranie
  1. 86 76
      app/services/agent/AgentLevelServices.php

+ 86 - 76
app/services/agent/AgentLevelServices.php

@@ -14,6 +14,7 @@ namespace app\services\agent;
 use app\dao\agent\AgentLevelDao;
 use app\services\BaseServices;
 use app\services\order\StoreOrderServices;
+use app\services\user\UserAwardIntegralServices;
 use app\services\user\UserBrokerageServices;
 use app\services\user\UserExtractServices;
 use app\services\user\UserServices;
@@ -69,19 +70,19 @@ class AgentLevelServices extends BaseServices
     {
         $where['is_del'] = 0;
         [$page, $limit] = $this->getPageValue();
-		$count = $this->dao->count($where);
-		$list = [];
-		if ($count) {
-			$list = $this->dao->getList($where, '*', ['task' => function ($query) {
-				$query->field('count(*) as sum');
-			}], $page, $limit);
-			$store_brokerage_ratio = sys_config('store_brokerage_ratio');
-			$store_brokerage_two = sys_config('store_brokerage_two');
-			foreach ($list as &$item) {
-				$item['one_brokerage_ratio'] = $this->compoteBrokerage($store_brokerage_ratio, $item['one_brokerage']);
-				$item['two_brokerage_ratio'] = $this->compoteBrokerage($store_brokerage_two, $item['two_brokerage']);
-			}
-		}
+        $count = $this->dao->count($where);
+        $list = [];
+        if ($count) {
+            $list = $this->dao->getList($where, '*', ['task' => function ($query) {
+                $query->field('count(*) as sum');
+            }], $page, $limit);
+            $store_brokerage_ratio = sys_config('store_brokerage_ratio');
+            $store_brokerage_two = sys_config('store_brokerage_two');
+            foreach ($list as &$item) {
+                $item['one_brokerage_ratio'] = $this->compoteBrokerage($store_brokerage_ratio, $item['one_brokerage']);
+                $item['two_brokerage_ratio'] = $this->compoteBrokerage($store_brokerage_two, $item['two_brokerage']);
+            }
+        }
         return compact('count', 'list');
     }
 
@@ -143,10 +144,10 @@ class AgentLevelServices extends BaseServices
         //推广人排行
         $startTime = strtotime('this week Monday');
         $endTime = time();
-		$field = 'spread_uid,count(uid) AS count,spread_time';
-		/** @var UserSpreadServices $userSpreadServices */
-		$userSpreadServices = app()->make(UserSpreadServices::class);
-		$rankList = $userSpreadServices->getAgentRankList([$startTime, $endTime], $field);
+        $field = 'spread_uid,count(uid) AS count,spread_time';
+        /** @var UserSpreadServices $userSpreadServices */
+        $userSpreadServices = app()->make(UserSpreadServices::class);
+        $rankList = $userSpreadServices->getAgentRankList([$startTime, $endTime], $field);
         $rank = 0;
         foreach ($rankList as $key => $item) {
             if ($item['spread_uid'] == $uid) $rank = $key + 1;
@@ -156,7 +157,16 @@ class AgentLevelServices extends BaseServices
         /** @var UserExtractServices $extractService */
         $extractService = app()->make(UserExtractServices::class);
         $user['extract_price'] = $extractService->sum(['uid' => $uid, 'status' => 1], 'extract_price');
-        return ['user' => $user, 'level_list' => $list, 'level_info' => $levelInfo];
+
+        $award_integral_service = app()->make(UserAwardIntegralServices::class);
+        $award_lack = $award_integral_service->getLake();
+        $integral_price = $award_integral_service->getPrice();
+        $static_integral = $award_integral_service->getIntegralSum(['status' => 0, 'type' => 0, 'uid' => $user['uid']]);
+        $action_integral = $award_integral_service->getIntegralSum(['status' => 0, 'type' => 1, 'uid' => $user['uid']]);
+        $user['is_default_avatar'] = $user['avatar'] == sys_config('h5_avatar') ? 1 : 0;
+        $user['achievement'] = $award_integral_service->getAchievement($user['uid']);
+
+        return ['user' => array_merge($user, compact('award_lack', 'integral_price', 'static_integral', 'action_integral')), 'level_list' => $list, 'level_info' => $levelInfo];
     }
 
     /**
@@ -279,69 +289,69 @@ class AgentLevelServices extends BaseServices
     }
 
 
-	/**
-	 * 计算一二级返佣比率上浮
-	 * @param $ratio
-	 * @param $brokerage
-	 * @return int|string
-	 */
-	public function compoteBrokerage($ratio, $brokerage)
-	{
-		if (!$ratio) {
-			return 0;
-		}
-		$brokerage = bcdiv((string)$brokerage, '100', 4);
-		if ($brokerage) {
-			return bcmul((string)$ratio, bcadd('1', (string)$brokerage, 4), 2);
-		}
-		return $brokerage;
-	}
+    /**
+     * 计算一二级返佣比率上浮
+     * @param $ratio
+     * @param $brokerage
+     * @return int|string
+     */
+    public function compoteBrokerage($ratio, $brokerage)
+    {
+        if (!$ratio) {
+            return 0;
+        }
+        $brokerage = bcdiv((string)$brokerage, '100', 4);
+        if ($brokerage) {
+            return bcmul((string)$ratio, bcadd('1', (string)$brokerage, 4), 2);
+        }
+        return $brokerage;
+    }
 
-	/**
-	 * 添加等级表单
-	 * @param int $id
-	 * @return array
-	 * @throws \FormBuilder\Exception\FormBuilderException
-	 */
-	public function createForm()
-	{
-		$store_brokerage_ratio = sys_config('store_brokerage_ratio');
-		$store_brokerage_two = sys_config('store_brokerage_two');
+    /**
+     * 添加等级表单
+     * @param int $id
+     * @return array
+     * @throws \FormBuilder\Exception\FormBuilderException
+     */
+    public function createForm()
+    {
+        $store_brokerage_ratio = sys_config('store_brokerage_ratio');
+        $store_brokerage_two = sys_config('store_brokerage_two');
 
-		$field[] = Form::input('name', '等级名称')->col(24);
-		$field[] = Form::number('grade', '等级', 0)->min(0)->precision(0);
-		$field[] = Form::frameImage('image', '背景图', Url::buildUrl(config('admin.admin_prefix') .  '/widget.images/index', array('fodder' => 'image')))->icon('ios-add')->width('960px')->height('505px')->modal(['footer-hide' => true])->appendValidate(Iview::validateStr()->required()->message('请选择背景图'));
-		$field[] = Form::number('one_brokerage', '一级上浮', 0)->info('在分销一级佣金基础上浮(0-1000之间整数)百分比,目前一级返佣比率:'. $store_brokerage_ratio . '%,例如上浮10%,则返佣比率:一级返佣比率 * (1 + 一级上浮比率) = ' . $this->compoteBrokerage($store_brokerage_ratio, 10) .'%')->min(0)->max(1000);
-		$field[] = Form::number('two_brokerage', '二级上浮', 0)->info('在分销二级佣金基础上浮(0-1000之间整数)百分比,目前二级返佣比率:'. $store_brokerage_two . '%,例如上浮10%,则返佣比率:二级返佣比率 * (1 + 二级上浮比率) = ' . $this->compoteBrokerage($store_brokerage_two, 10). '%')->min(0)->max(1000);
-		$field[] = Form::radio('status', '是否显示', 1)->options([['value' => 1, 'label' => '显示'], ['value' => 0, 'label' => '隐藏']]);
-		return create_form('添加分销员等级', $field, Url::buildUrl('/agent/level'), 'POST');
-	}
+        $field[] = Form::input('name', '等级名称')->col(24);
+        $field[] = Form::number('grade', '等级', 0)->min(0)->precision(0);
+        $field[] = Form::frameImage('image', '背景图', Url::buildUrl(config('admin.admin_prefix') . '/widget.images/index', array('fodder' => 'image')))->icon('ios-add')->width('960px')->height('505px')->modal(['footer-hide' => true])->appendValidate(Iview::validateStr()->required()->message('请选择背景图'));
+        $field[] = Form::number('one_brokerage', '一级上浮', 0)->info('在分销一级佣金基础上浮(0-1000之间整数)百分比,目前一级返佣比率:' . $store_brokerage_ratio . '%,例如上浮10%,则返佣比率:一级返佣比率 * (1 + 一级上浮比率) = ' . $this->compoteBrokerage($store_brokerage_ratio, 10) . '%')->min(0)->max(1000);
+        $field[] = Form::number('two_brokerage', '二级上浮', 0)->info('在分销二级佣金基础上浮(0-1000之间整数)百分比,目前二级返佣比率:' . $store_brokerage_two . '%,例如上浮10%,则返佣比率:二级返佣比率 * (1 + 二级上浮比率) = ' . $this->compoteBrokerage($store_brokerage_two, 10) . '%')->min(0)->max(1000);
+        $field[] = Form::radio('status', '是否显示', 1)->options([['value' => 1, 'label' => '显示'], ['value' => 0, 'label' => '隐藏']]);
+        return create_form('添加分销员等级', $field, Url::buildUrl('/agent/level'), 'POST');
+    }
 
 
-	/**
-	 * 获取修改等级表单
-	 * @param int $id
-	 * @return array
-	 * @throws \FormBuilder\Exception\FormBuilderException
-	 */
-	public function editForm(int $id)
-	{
-		$store_brokerage_ratio = sys_config('store_brokerage_ratio');
-		$store_brokerage_two = sys_config('store_brokerage_two');
-		$levelInfo = $this->getLevelInfo($id);
-		if (!$levelInfo)
-			throw new AdminException('数据不存在');
-		$field = [];
-		$field[] = Form::hidden('id', $id);
-		$field[] = Form::input('name', '等级名称', $levelInfo['name'])->col(24);
-		$field[] = Form::number('grade', '等级', $levelInfo['grade'])->min(0)->precision(0);
-		$field[] = Form::frameImage('image', '背景图', Url::buildUrl(config('admin.admin_prefix') .  '/widget.images/index', array('fodder' => 'image')), $levelInfo['image'])->icon('ios-add')->width('960px')->height('505px')->modal(['footer-hide' => true])->appendValidate(Iview::validateStr()->required()->message('请选择背景图'));
-		$field[] = Form::number('one_brokerage', '一级上浮', $levelInfo['one_brokerage'])->info('在分销一级佣金基础上浮(0-1000之间整数)百分比,目前一级返佣比率:'. $store_brokerage_ratio . '%,上浮'. $levelInfo['one_brokerage'] . '%,则返佣比率:一级返佣比率 * (1 + 一级上浮比率) = ' . $this->compoteBrokerage($store_brokerage_ratio, $levelInfo['one_brokerage']) .'%')->min(0)->max(1000);
-		$field[] = Form::number('two_brokerage', '二级上浮', $levelInfo['two_brokerage'])->info('在分销二级佣金基础上浮(0-1000之间整数)百分比,目前二级返佣比率:'. $store_brokerage_two . '%,上浮' . $levelInfo['two_brokerage'] . '%,则返佣比率:二级返佣比率 * (1 + 二级上浮比率) = ' . $this->compoteBrokerage($store_brokerage_two, $levelInfo['two_brokerage']). '%')->min(0)->max(1000);
-		$field[] = Form::radio('status', '是否显示', $levelInfo['status'])->options([['value' => 1, 'label' => '显示'], ['value' => 0, 'label' => '隐藏']]);
+    /**
+     * 获取修改等级表单
+     * @param int $id
+     * @return array
+     * @throws \FormBuilder\Exception\FormBuilderException
+     */
+    public function editForm(int $id)
+    {
+        $store_brokerage_ratio = sys_config('store_brokerage_ratio');
+        $store_brokerage_two = sys_config('store_brokerage_two');
+        $levelInfo = $this->getLevelInfo($id);
+        if (!$levelInfo)
+            throw new AdminException('数据不存在');
+        $field = [];
+        $field[] = Form::hidden('id', $id);
+        $field[] = Form::input('name', '等级名称', $levelInfo['name'])->col(24);
+        $field[] = Form::number('grade', '等级', $levelInfo['grade'])->min(0)->precision(0);
+        $field[] = Form::frameImage('image', '背景图', Url::buildUrl(config('admin.admin_prefix') . '/widget.images/index', array('fodder' => 'image')), $levelInfo['image'])->icon('ios-add')->width('960px')->height('505px')->modal(['footer-hide' => true])->appendValidate(Iview::validateStr()->required()->message('请选择背景图'));
+        $field[] = Form::number('one_brokerage', '一级上浮', $levelInfo['one_brokerage'])->info('在分销一级佣金基础上浮(0-1000之间整数)百分比,目前一级返佣比率:' . $store_brokerage_ratio . '%,上浮' . $levelInfo['one_brokerage'] . '%,则返佣比率:一级返佣比率 * (1 + 一级上浮比率) = ' . $this->compoteBrokerage($store_brokerage_ratio, $levelInfo['one_brokerage']) . '%')->min(0)->max(1000);
+        $field[] = Form::number('two_brokerage', '二级上浮', $levelInfo['two_brokerage'])->info('在分销二级佣金基础上浮(0-1000之间整数)百分比,目前二级返佣比率:' . $store_brokerage_two . '%,上浮' . $levelInfo['two_brokerage'] . '%,则返佣比率:二级返佣比率 * (1 + 二级上浮比率) = ' . $this->compoteBrokerage($store_brokerage_two, $levelInfo['two_brokerage']) . '%')->min(0)->max(1000);
+        $field[] = Form::radio('status', '是否显示', $levelInfo['status'])->options([['value' => 1, 'label' => '显示'], ['value' => 0, 'label' => '隐藏']]);
 
-		return create_form('编辑分销员等级', $field, Url::buildUrl('/agent/level/' . $id), 'PUT');
-	}
+        return create_form('编辑分销员等级', $field, Url::buildUrl('/agent/level/' . $id), 'PUT');
+    }
 
     /**
      * 赠送分销等级表单