Browse Source

增加门店佣金

linwu 1 năm trước cách đây
mục cha
commit
7d4cff12df

+ 9 - 15
app/admin/common.php

@@ -10,21 +10,6 @@
 // +----------------------------------------------------------------------
 
 // 应用公共文件
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 function outExcel($data){
         $objExcel = new PHPExcel();
         $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
@@ -114,3 +99,12 @@ if (!function_exists('excel_export')) {
         exit();
     }
 }
+
+function array_get($array,$key,$default = '')
+{
+    if (empty($array[$key])) {
+        return $default;
+    }
+
+    return $array[$key];
+}

+ 5 - 0
app/admin/view/user/commission.html

@@ -10,26 +10,31 @@
 								<th>任务</th>
 								<th>用户佣金(元)</th>
 								<th>经纪人佣金(元)</th>
+								<th>门店佣金(元)</th>
 							</tr>
 							<tr class="form-tr">
 								<td>新人注册</td>
 								<td><input type="number" name="balance_register_user" class="layui-input" value="{$commission.balance_register_user}"></td>
 								<td><input type="number" name="balance_register_broker" class="layui-input" value="{$commission.balance_register_broker}"></td>
+								<td><input type="number" name="balance_register_agent" class="layui-input" value="{:array_get($commission,'balance_register_agent',0)}"></td>
 							</tr>
 							<tr class="form-tr">
 								<td>完善简历</td>
 								<td><input type="number" name="balance_improve_resume_user" class="layui-input" value="{$commission.balance_improve_resume_user}"></td>
 								<td><input type="number" name="balance_improve_resume_broker" class="layui-input" value="{$commission.balance_improve_resume_broker}"></td>
+								<td><input type="number" name="balance_improve_resume_agent" class="layui-input" value="{:array_get($commission,'balance_improve_resume_agent',0)}"></td>
 							</tr>
 							<tr class="form-tr">
 								<td>实名认证</td>
 								<td><input type="number" name="balance_certification_user" class="layui-input" value="{$commission.balance_certification_user}"></td>
 								<td><input type="number" name="balance_certification_broker" class="layui-input" value="{$commission.balance_certification_broker}"></td>
+								<td><input type="number" name="balance_certification_agent" class="layui-input" value="{:array_get($commission,'balance_certification_agent',0)}"></td>
 							</tr>
 							<tr class="form-tr">
 								<td>对接成功</td>
 								<td><input type="number" name="balance_entry_user" class="layui-input" value="{$commission.balance_entry_user}"></td>
 								<td><input type="number" name="balance_entry_broker" class="layui-input" value="{$commission.balance_entry_broker}"></td>
+								<td><input type="number" name="balance_entry_agent" class="layui-input" value="{:array_get($commission,'balance_entry_agent',0)}"></td>
 							</tr>
 						</table>
 						<div class="layui-input-block" style="text-align:center;margin-top:20px;">

+ 2 - 0
app/common/model/Agent.php

@@ -39,6 +39,8 @@ class Agent extends Model
         'income'       => 'decimal',
         'income_total' => 'decimal',
         'is_settle'    => 'tinyint',
+        'money'        => 'decimal',
+        'money_total'  => 'decimal',
     ];
 
     // 设置字段自动转换类型

+ 41 - 0
app/common/model/AgentMoney.php

@@ -0,0 +1,41 @@
+<?php
+
+namespace app\common\model;
+
+use think\Model;
+
+class AgentMoney extends Model
+{
+    // 设置字段信息
+    protected $schema = [
+        'id'           => 'int',
+        'workerid'     => 'int',
+        'agentid'      => 'int',
+        'title'        => 'string',
+        'origin_value' => 'decimal',
+        'value'        => 'decimal',
+        'remark'       => 'string',
+        'status'       => 'int',
+        'type'         => 'int',
+        'createtime'   => 'int',
+        'yeartime'     => 'int',
+        'monthtime'    => 'int',
+    ];
+
+    // 设置字段自动转换类型
+    protected $type = [
+        'createtime' => 'timestamp:Y-m-d H:i:s',
+    ];
+
+    public function getTypeTextAttr($value, $data)
+    {
+        $type = [1 => '普通', 2 => '提现'];
+        return $type[$data['type']];
+    }
+
+    public function getStatusTextAttr($value, $data)
+    {
+        $type = [1 => '待处理', 2 => '已成功', 3 => '已拒绝'];
+        return $type[$data['status']];
+    }
+}

+ 50 - 0
app/common/service/AgentMoneyService.php

@@ -0,0 +1,50 @@
+<?php
+
+namespace app\common\service;
+
+use app\common\model\AgentMoney as AgentMoneyModel;
+use app\common\model\Agent as AgentModel;
+use app\common\model\Broker as BrokerModel;
+use app\common\model\Config;
+
+class AgentMoneyService extends BaseService
+{
+    public function add($broker_id, $value, $title, $remark = '', $type = 1)
+    {
+        if (empty($value)) {
+            return $this->error('金额必填');
+        }
+
+        if (empty($broker_id)) {
+            $broker_id = Config::getConfigValue('default_broker');
+        }
+
+        $broker = BrokerModel::where('id', $broker_id)->find();
+        $agent = AgentModel::where('id',$broker['agentid'])->find();
+        $money = new AgentMoneyModel();
+        $money->save([
+            'workerid'     => $broker['workerid'],
+            'agentid'      => $broker['agentid'],
+            'title'        => $title,
+            'origin_value' => $agent['money'],
+            'value'        => $value,
+            'type'         => $type,
+            'status'       => $type == 2 ? 1 : 2,
+            'remark'       => $remark,
+            'createtime'   => time(),
+            'yeartime'     => date("Y"),
+            'monthtime'    => date("Ym"),
+        ]);
+
+        //修改收益
+        $agent->money += $value;
+
+        //修改累计收益
+        if ($value > 0) {
+            $agent->money_total += $value;
+        }
+        $agent->save();
+
+        return $this->success('成功');
+    }
+}

+ 11 - 5
app/common/service/BalanceService.php

@@ -22,10 +22,10 @@ class BalanceService extends BaseService
     ];
 
     private $_field = [
-        ['user' => 'balance_register_user', 'broker' => 'balance_register_broker'],
-        ['user' => 'balance_improve_resume_user', 'broker' => 'balance_improve_resume_broker'],
-        ['user' => 'balance_certification_user', 'broker' => 'balance_certification_broker'],
-        ['user' => 'balance_entry_user', 'broker' => 'balance_entry_broker'],
+        ['user' => 'balance_register_user', 'broker' => 'balance_register_broker', 'agent' => 'balance_register_agent'],
+        ['user' => 'balance_improve_resume_user', 'broker' => 'balance_improve_resume_broker', 'agent' => 'balance_improve_resume_agent'],
+        ['user' => 'balance_certification_user', 'broker' => 'balance_certification_broker', 'agent' => 'balance_certification_agent'],
+        ['user' => 'balance_entry_user', 'broker' => 'balance_entry_broker', 'agent' => 'balance_entry_agent'],
     ];
 
     public function add($user_id, $type_index)
@@ -51,7 +51,7 @@ class BalanceService extends BaseService
                 'monthtime'    => date("Ym"),
             ]);
 
-            $user->balance += $commission[$field['user']];
+            $user->balance       += $commission[$field['user']];
             $user->balance_total += $commission[$field['user']];
             $user->save();
         }
@@ -61,5 +61,11 @@ class BalanceService extends BaseService
             $incomeService = new IncomeService();
             $incomeService->add($user['broker_id'], $commission[$field['broker']], $type['title'], $type['remark']);
         }
+
+        //门店收益
+        if (!empty($commission[$field['agent']])) {
+            $moneyService = new AgentMoneyService();
+            $moneyService->add($user['broker_id'], $commission[$field['broker']], $type['title'], $type['remark']);
+        }
     }
 }

+ 3 - 1
app/common/service/IncomeService.php

@@ -13,7 +13,7 @@ class IncomeService extends BaseService
     public function add($broker_id, $value, $title, $remark = '', $type = 1)
     {
         if (empty($value)) {
-            return false;
+            return $this->error('金额必填');
         }
 
         if (empty($broker_id)) {
@@ -55,5 +55,7 @@ class IncomeService extends BaseService
             $broker->income_total += $value;
         }
         $broker->save();
+
+        return $this->success('成功');
     }
 }