瀏覽代碼

积分任务更改为钱包和收益

linwu 1 年之前
父節點
當前提交
32d1077573

+ 37 - 6
app/admin/controller/User.php

@@ -19,6 +19,7 @@ use app\common\model\ComjobsCate as ComjobsCateModel;
 use app\common\model\Agent as AgentModel;
 use app\common\model\Broker as BrokerModel;
 
+use app\common\service\BalanceService;
 use app\common\service\IntegralService;
 use app\common\service\UserService;
 use app\common\validate\User as UserValidate;
@@ -826,8 +827,11 @@ class User extends BaseController
             if ($user['authstatus'] == 3 && $user['is_auth'] == 2) {
                 $user->is_auth = 1;
                 $user->save();
-                $integralService = new IntegralService();
-                $integralService->add($id, IntegralService::CERTIFICATION);
+                /*$integralService = new IntegralService();
+                $integralService->add($id, IntegralService::CERTIFICATION);*/
+                //发放佣金
+                $balanceService = new BalanceService();
+                $balanceService->add($id, BalanceService::CERTIFICATION);
             }
         }
 
@@ -956,7 +960,7 @@ class User extends BaseController
     // 提现设置
     public function getmoney()
     {
-        $param = UserParamModel::field('getmoney')->where(1)->findOrEmpty();
+        $param = UserParamModel::where(1)->findOrEmpty();
         return view('user/getmoney', [
             'getmoney' => $param['getmoney'],
         ]);
@@ -964,7 +968,7 @@ class User extends BaseController
 
     public function editGetmoney()
     {
-        $param = UserParamModel::where(1)->findOrEmpty();
+        $param = UserParamModel::fwhere(1)->findOrEmpty();
         $data  = [
             'getmoney' => input('getmoney/a', []),
         ];
@@ -972,13 +976,13 @@ class User extends BaseController
             if ($v['money'] <= 0) {
                 exit(json_encode([
                     'code' => 1,
-                    'msg'  => "金额必须大于0",
+                    'msg'  => "金额必须大于等于0",
                 ]));
             }
             if ($v['num'] <= 0) {
                 exit(json_encode([
                     'code' => 1,
-                    'msg'  => "次数必须大于0",
+                    'msg'  => "次数必须大于等于0",
                 ]));
             }
         }
@@ -994,6 +998,33 @@ class User extends BaseController
         ]));
     }
 
+    // 佣金设置
+    public function commission()
+    {
+        $param = UserParamModel::where(1)->findOrEmpty();
+        return view('user/commission', [
+            'commission' => $param['commission'],
+        ]);
+    }
+
+    public function editCommission()
+    {
+        $param = UserParamModel::where(1)->findOrEmpty();
+        $data  = [
+            'commission' => input('commission/a', []),
+        ];
+        if ($param->isEmpty()) {
+            UserParamModel::create($data);
+        } else {
+            $param->commission = $data['commission'];
+            $param->save();
+        }
+        exit(json_encode([
+            'code' => 0,
+            'msg'  => "",
+        ]));
+    }
+
     // 用户组
     public function willList()
     {

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

@@ -0,0 +1,76 @@
+<div class="layui-fluid">
+	<div class="layui-row layui-col-space15">
+		<div class="layui-col-md12">
+			<div class="layui-card">
+				<div class="layui-card-header">佣金设置</div>
+				<div class="layui-card-body" pad15>
+					<div class="layui-form layui-form-pane">
+						<table class="layui-table" id="table">
+							<tr>
+								<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>
+							</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>
+							</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>
+							</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>
+							</tr>
+						</table>
+						<div class="layui-input-block" style="text-align:center;margin-top:20px;">
+							<button class="layui-btn" id="submit">确认修改</button>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'set'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin;
+
+		$('#submit').click(function(){
+			let form = $('input');
+
+			let data = {};
+			$.each(form,function(k,v){
+				if ($(v).val() < 0) {
+					layer.msg("佣金必须大于等于0", { icon: 2 });
+					return false;
+				}
+				data[$(v).attr('name')] = $(v).val();
+			});
+
+			admin.req({
+				url: setter.baseAdminUrl + 'user/editCommission',
+				data: {commission:data},
+				done: function(res) {
+					layer.msg("提交成功", { icon: 1 });
+				}
+			});
+		});
+	});
+</script>

+ 63 - 60
app/common/model/Broker.php

@@ -1,76 +1,79 @@
 <?php
+
 namespace app\common\model;
 
 use think\Model;
 use think\model\concern\SoftDelete;
+
 class Broker extends Model
 {
     use SoftDelete;
     protected $deleteTime = 'deletetime';
     protected $defaultSoftDelete = 0;
 
-	// 设置字段信息
+    // 设置字段信息
     protected $schema = [
-        'id'			=> 'int',
-		'userid'		=> 'int',
-		'workerid'		=> 'int',
-		'agentid'		=> 'int',
-		'title'			=> 'string',
-		'mobile'		=> 'string',
-		'weixin'		=> 'string',
-		'qq'			=> 'string',
-		
-		'province'      => 'string',
-		'city'       	=> 'string',
-		'district'     	=> 'string',
-		'details'       => 'string',
-		
-		'status'		=> 'tinyint',
-		'powerreport'	=> 'tinyint',
-		'createtime'    => 'int'
+        'id'       => 'int',
+        'userid'   => 'int',
+        'workerid' => 'int',
+        'agentid'  => 'int',
+        'title'    => 'string',
+        'mobile'   => 'string',
+        'weixin'   => 'string',
+        'qq'       => 'string',
+
+        'province' => 'string',
+        'city'     => 'string',
+        'district' => 'string',
+        'details'  => 'string',
+
+        'status'      => 'tinyint',
+        'powerreport' => 'tinyint',
+        'createtime'  => 'int',
+        'income'      => 'decimal',
     ];
-	
-	// 设置字段自动转换类型
-	protected $type = [
-		'createtime'	=> 'timestamp:Y-m-d H:i:s'
+
+    // 设置字段自动转换类型
+    protected $type = [
+        'createtime' => 'timestamp:Y-m-d H:i:s',
     ];
-	
-	public function getStatusTextAttr($value,$data)
-	{
-		$status = [1=>'正常',2=>'禁用'];
-		return $status[$data['status']];
-	}
-	
-	public function getPowerreportTextAttr($value,$data)
-	{
-		$status = [1=>'是',2=>'否'];
-		return $status[$data['powerreport']];
-	}
-	
-	
-	// 关联User
-	public function muser()
-	{
-	    return $this->hasOne(User::class, "id", "userid");
-	}
-	
-	// 关联Worker
-	public function worker()
-	{
-	    return $this->hasOne(Worker::class, "id", "workerid");
-	}
-	
-	// 关联Agent
-	public function agent()
-	{
-	    return $this->hasOne(Agent::class, "id", "agentid");
-	}
-	
-	// 关联User
-	public function user()
-	{
-	    return $this->hasMany(User::class, "brokerid", "id");
-	}
-	
+
+    public function getStatusTextAttr($value, $data)
+    {
+        $status = [1 => '正常', 2 => '禁用'];
+        return $status[$data['status']];
+    }
+
+    public function getPowerreportTextAttr($value, $data)
+    {
+        $status = [1 => '是', 2 => '否'];
+        return $status[$data['powerreport']];
+    }
+
+
+    // 关联User
+    public function muser()
+    {
+        return $this->hasOne(User::class, "id", "userid");
+    }
+
+    // 关联Worker
+    public function worker()
+    {
+        return $this->hasOne(Worker::class, "id", "workerid");
+    }
+
+    // 关联Agent
+    public function agent()
+    {
+        return $this->hasOne(Agent::class, "id", "agentid");
+    }
+
+    // 关联User
+    public function user()
+    {
+        return $this->hasMany(User::class, "brokerid", "id");
+    }
+
 
 }

+ 34 - 0
app/common/model/BrokerIncome.php

@@ -0,0 +1,34 @@
+<?php
+
+namespace app\common\model;
+
+use think\Model;
+
+class BrokerIncome extends Model
+{
+    // 设置字段信息
+    protected $schema = [
+        'id'           => 'int',
+        'brokerid'     => 'int',
+        'title'        => 'string',
+        'origin_value' => 'decimal',
+        'value'        => 'decimal',
+        'remark'       => 'string',
+        'status'       => 'int',
+        'createtime'   => 'int',
+        'yeartime'     => 'int',
+        'monthtime'    => 'int',
+    ];
+
+    // 设置字段自动转换类型
+    protected $type = [
+        'createtime' => 'timestamp:Y-m-d H:i:s',
+    ];
+
+    // 关联User
+    public function broker()
+    {
+        return $this->hasOne(Broker::class, "id", "brokerid");
+    }
+
+}

+ 1 - 0
app/common/model/User.php

@@ -52,6 +52,7 @@ class User extends Model
         'com_cate_other' => 'string',
         'is_perfect'     => 'int',
         'is_auth'        => 'int',
+        'balance'        => 'decimal',
     ];
 
     // 设置字段自动转换类型

+ 23 - 22
app/common/model/UserBalance.php

@@ -1,33 +1,34 @@
 <?php
+
 namespace app\common\model;
 
 use think\Model;
 
 class UserBalance extends Model
 {
-	// 设置字段信息
+    // 设置字段信息
     protected $schema = [
-        'id'			=> 'int',
-		'userid'		=> 'int',
-		'title'			=> 'string',
-		'binout'		=> 'int',
-		'btype'			=> 'string',
-		'bvalue'		=> 'float',
-		'balance'		=> 'float',
-		'ordersn'		=> 'string',
-		'remark'		=> 'string',
-		'createtime'	=> 'int'
+        'id'           => 'int',
+        'userid'       => 'int',
+        'title'        => 'string',
+        'origin_value' => 'decimal',
+        'value'        => 'decimal',
+        'remark'       => 'string',
+        'status'       => 'int',
+        'createtime'   => 'int',
+        'yeartime'     => 'int',
+        'monthtime'    => 'int',
     ];
-	
-	// 设置字段自动转换类型
-	protected $type = [
-		'createtime'  => 'timestamp:Y-m-d H:i:s'
+
+    // 设置字段自动转换类型
+    protected $type = [
+        'createtime' => 'timestamp:Y-m-d H:i:s',
     ];
-	
-	// 关联User
-	public function user()
-	{
-	    return $this->hasOne(User::class, "id", "userid");
-	}
-	
+
+    // 关联User
+    public function user()
+    {
+        return $this->hasOne(User::class, "id", "userid");
+    }
+
 }

+ 3 - 1
app/common/model/UserParam.php

@@ -27,9 +27,11 @@ class UserParam extends Model
         'sharejobnum'   => 'int',
         'taskimage'     => 'string',
         'getmoney'      => 'string',
+        'commission'    => 'string',
     ];
 
     protected $type = [
-        'getmoney'		=> 'json',
+        'getmoney'   => 'json',
+        'commission' => 'json',
     ];
 }

+ 71 - 0
app/common/service/BalanceService.php

@@ -0,0 +1,71 @@
+<?php
+
+namespace app\common\service;
+
+use app\common\model\Config;
+use app\common\model\UserBalance;
+use app\common\model\UserIntegral as UserIntegralModel;
+use app\common\model\UserParam as UserParamModel;
+use app\common\model\User as UserModel;
+
+class BalanceService extends BaseService
+{
+
+    const REGISTER      = 0;
+    const IMPROVERESUME = 1;
+    const CERTIFICATION = 2;
+    const ENTRY         = 3;
+
+    private $_type = [
+        ['title' => '新用户注册奖励', 'remark' => '邀请新用户注册奖励'],
+        ['title' => '首次完善简历奖励', 'remark' => '首次完善简历奖励'],
+        ['title' => '首次实名认证通过奖励', 'remark' => '首次实名认证通过奖励'],
+        ['title' => '对接成功奖励', 'remark' => '对接成功并入职奖励'],
+    ];
+
+    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'],
+    ];
+
+    public function add($user_id, $type_index)
+    {
+        //获取配置
+        $param      = UserParamModel::where(1)->findOrEmpty();
+        $commission = $param['commission'];
+        $type       = $this->_type[$type_index];
+        $field      = $this->_field[$type_index];
+        $user       = UserModel::where('id', $user_id)->find();
+
+        //用户奖励
+        if (!empty($commission[$field['user']])) {
+            $balance = new UserBalance();
+            $balance->save([
+                'userid'       => $user_id,
+                'title'        => $type['title'],
+                'origin_value' => $user['balance'],
+                'value'        => $commission[$field['user']],
+                'remark'       => $type['remark'],
+                'createtime'   => time(),
+                'yeartime'     => date("Y"),
+                'monthtime'    => date("Ym"),
+            ]);
+
+            $user->balance += $commission[$field['user']];
+            $user->save();
+        }
+
+        //经济人收益
+        if (!empty($commission[$field['broker']])) {
+            $broker_id = $user['broker_id'];
+            if (empty($broker_id)) {
+                $broker_id = Config::getConfigValue('default_broker');
+            }
+
+            $incomeService = new IncomeService();
+            $incomeService->add($broker_id, $commission[$field['broker']], $type['title'], $type['remark']);
+        }
+    }
+}

+ 28 - 0
app/common/service/IncomeService.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace app\common\service;
+
+use app\common\model\BrokerIncome as BrokerIncomeModel;
+use app\common\model\Broker as BrokerModel;
+
+class IncomeService extends BaseService
+{
+    public function add($broker_id, $value, $title, $remark = '')
+    {
+        $broker   = BrokerModel::where('id', $broker_id)->find();
+        $integral = new BrokerIncomeModel();
+        $integral->save([
+            'brokerid'     => $broker_id,
+            'title'        => $title,
+            'origin_value' => $broker['income'],
+            'value'        => $value,
+            'remark'       => $remark,
+            'createtime'   => time(),
+            'yeartime'     => date("Y"),
+            'monthtime'    => date("Ym"),
+        ]);
+
+        $broker->income += $value;
+        $broker->save();
+    }
+}

+ 2 - 2
app/mainapp/controller/Comjobs.php

@@ -541,8 +541,8 @@ class Comjobs extends BaseController
             }
         }
 
-        $integralService = new IntegralService();
-        $integralService->add($userid,IntegralService::SHAREJOB,10);
+        /*$integralService = new IntegralService();
+        $integralService->add($userid,IntegralService::SHAREJOB,10);*/
         page_result(0, "分享成功");
     }
 

+ 6 - 2
app/mainapp/controller/Login.php

@@ -10,6 +10,7 @@ use app\common\model\UserParam as UserParamModel;
 use app\common\model\UserPart as UserPartModel;
 
 use alisms\SignatureHelper;
+use app\common\service\BalanceService;
 use app\common\service\IntegralService;
 use chuanglan\Chuanglan;
 use echowx\WxProgram;
@@ -215,8 +216,11 @@ class Login
             ]);
         }
 
-        $integralService = new IntegralService();
-        $integralService->add($user->id, IntegralService::REGISTER);
+        /*$integralService = new IntegralService();
+        $integralService->add($user->id, IntegralService::REGISTER);*/
+        //发放佣金
+        $balanceService = new BalanceService();
+        $balanceService->add($user->id, BalanceService::REGISTER);
 
         return $user;
     }

+ 6 - 2
app/mainapp/controller/My.php

@@ -7,6 +7,7 @@ use app\common\model\ResumeInvite;
 use app\common\model\UserGetmoneyLog as UserGetmoneyLogModel;
 use app\common\model\UserGetmoneyLog;
 use app\common\model\UserWill;
+use app\common\service\BalanceService;
 use app\common\service\IntegralService;
 use app\common\service\SmsService;
 use app\mainapp\BaseController;
@@ -456,9 +457,12 @@ class My extends BaseController
         if ($user['is_perfect'] == 2) {
             $user->is_perfect = 1;
             $user->save();
+            //发放佣金
+            $balanceService = new BalanceService();
+            $balanceService->add($userid,BalanceService::IMPROVERESUME);
         }
-        $integralService = new IntegralService();
-        $integralService->add($userid, IntegralService::IMPROVERESUME);
+        /*$integralService = new IntegralService();
+        $integralService->add($userid, IntegralService::IMPROVERESUME);*/
         page_result();
     }
 

+ 6 - 2
app/mainapp/controller/Wcomjobs.php

@@ -3,6 +3,7 @@
 namespace app\mainapp\controller;
 
 use app\common\model\WorkerThird;
+use app\common\service\BalanceService;
 use app\common\service\IntegralService;
 use app\common\service\SmsService;
 use app\mainapp\BaseController;
@@ -169,8 +170,11 @@ class Wcomjobs extends BaseController
 
         //积分
         if (in_array($status, [3, 6])) {
-            $integralService = new IntegralService();
-            $integralService->add($comjobslog['userid'], IntegralService::ENTRY);
+            /*$integralService = new IntegralService();
+            $integralService->add($comjobslog['userid'], IntegralService::ENTRY);*/
+            //发放佣金
+            $balanceService = new BalanceService();
+            $balanceService->add($comjobslog['userid'], BalanceService::ENTRY);
         }
 
         page_result(0, "", [