From ad8477d3ee82a3fffd5de4cd60a237c9ee6b1fb7 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Wed, 04 Mar 2026 14:27:05 +0800
Subject: [PATCH] 后台添加供需求发布

---
 admin/app/api/model/plus/region/Cash.php |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/admin/app/api/model/plus/region/Cash.php b/admin/app/api/model/plus/region/Cash.php
index 2d9c78b..4d4d8f5 100644
--- a/admin/app/api/model/plus/region/Cash.php
+++ b/admin/app/api/model/plus/region/Cash.php
@@ -1 +1 @@
-<?phpnamespace app\api\model\plus\region;use app\common\exception\BaseException;use app\common\model\plus\region\Cash as CashModel;use app\api\model\user\UserAuth;/** * 队长提现明细模型 */class Cash extends CashModel{    /**     * 隐藏字段     */    protected $hidden = [        'update_time',    ];    /**     * 获取队长提现明细     */    public function getList($user_id, $apply_status = -1,$limit=15)    {        $model = $this;        $apply_status > -1 && $model = $model->where('apply_status', '=', $apply_status);        return $model->where('user_id', '=', $user_id)->order(['create_time' => 'desc'])            ->paginate($limit);    }    /**     * 提交申请     */    public function submit($region, $data)    {        // 数据验证        $this->validation($region, $data);        // 新增申请记录        $this->save(array_merge($data, [            'user_id' => $region['user_id'],            'apply_status' => 10,            'app_id' => self::$app_id,        ]));        // 冻结用户资金        $region->freezeMoney($data['money']);        return true;    }    /**     * 数据验证     */    private function validation($region, &$data)    {        // 结算设置        $settlement = Setting::getItem('settlement');        // 最低提现佣金        if ($data['money'] <= 0) {            throw new BaseException(['msg' => '提现金额不正确']);        }        if ($region['money'] <= 0) {            throw new BaseException(['msg' => '当前用户没有可提现佣金']);        }        if ($data['money'] > $region['money']) {            throw new BaseException(['msg' => '提现金额不能大于可提现佣金']);        }        if ($data['money'] < $settlement['min_money']) {            throw new BaseException(['msg' => '最低提现金额为' . $settlement['min_money']]);        }        if (!in_array($data['pay_type'], $settlement['pay_type'])) {            throw new BaseException(['msg' => '提现方式不正确']);        }        if ($data['pay_type'] == '20') {            if (empty($data['alipay_name']) || empty($data['alipay_account'])) {                throw new BaseException(['msg' => '请补全提现信息']);            }        } elseif ($data['pay_type'] == '30') {            if (empty($data['bank_name']) || empty($data['bank_account']) || empty($data['bank_card'])) {                throw new BaseException(['msg' => '请补全提现信息']);            }        } elseif ($data['pay_type'] == '10') {            //微信支付需要实名认证            $auth = UserAuth::detail($region['user_id']);            if(empty($auth)){                throw new BaseException(['msg' => '请先到个人中心->设置->实名认证']);            }elseif(!empty($auth) && $auth["auth_status"] != 1){                throw new BaseException(['msg' => '您的实名认证还未审核通过']);            }        }        // 处理手续费        $data['fee_rate'] = $settlement['fee_rate'];        if ($settlement['fee_rate']) {            $data['fee_money'] = round($data['money'] * $settlement['fee_rate'] / 100, 2);            $data['real_money'] = $data['money'] - $data['fee_money'];        } else {            $data['real_money'] = $data['money'];        }    }}
\ No newline at end of file
+<?php



namespace app\api\model\plus\region;



use app\common\exception\BaseException;

use app\common\model\plus\region\Cash as CashModel;

use app\api\model\user\UserAuth;



/**

 * 队长提现明细模型

 */

class Cash extends CashModel

{

    /**

     * 隐藏字段

     */

    protected $hidden = [

        'update_time',

    ];



    /**

     * 获取队长提现明细

     */

    public function getList($user_id, $apply_status = -1,$limit=15)

    {

        $model = $this;

        $apply_status > -1 && $model = $model->where('apply_status', '=', $apply_status);

        return $model->where('user_id', '=', $user_id)->order(['create_time' => 'desc'])

            ->paginate($limit);

    }



    /**

     * 提交申请

     */

    public function submit($region, $data)

    {

        // 数据验证

        $this->validation($region, $data);

        // 新增申请记录

        $this->save(array_merge($data, [

            'user_id' => $region['user_id'],

            'apply_status' => 10,

            'app_id' => self::$app_id,

        ]));

        // 冻结用户资金

        $region->freezeMoney($data['money']);

        return true;

    }



    /**

     * 数据验证

     */

    private function validation($region, &$data)

    {

        // 结算设置

        $settlement = Setting::getItem('settlement');

        // 最低提现佣金

        if ($data['money'] <= 0) {

            throw new BaseException(['msg' => '提现金额不正确']);

        }

        if ($region['money'] <= 0) {

            throw new BaseException(['msg' => '当前用户没有可提现佣金']);

        }

        if ($data['money'] > $region['money']) {

            throw new BaseException(['msg' => '提现金额不能大于可提现佣金']);

        }

        if ($data['money'] < $settlement['min_money']) {

            throw new BaseException(['msg' => '最低提现金额为' . $settlement['min_money']]);

        }

        if (!in_array($data['pay_type'], $settlement['pay_type'])) {

            throw new BaseException(['msg' => '提现方式不正确']);

        }

        if ($data['pay_type'] == '20') {

            if (empty($data['alipay_name']) || empty($data['alipay_account'])) {

                throw new BaseException(['msg' => '请补全提现信息']);

            }

        } elseif ($data['pay_type'] == '30') {

            if (empty($data['bank_name']) || empty($data['bank_account']) || empty($data['bank_card'])) {

                throw new BaseException(['msg' => '请补全提现信息']);

            }

        } elseif ($data['pay_type'] == '10') {
            //微信支付需要实名认证
            $auth = UserAuth::detail($region['user_id']);
            if(empty($auth)){
                throw new BaseException(['msg' => '请先到个人中心->设置->实名认证']);
            }elseif(!empty($auth) && $auth["auth_status"] != 1){
                throw new BaseException(['msg' => '您的实名认证还未审核通过']);
            }
        }

        // 处理手续费

        $data['fee_rate'] = $settlement['fee_rate'];

        if ($settlement['fee_rate']) {

            $data['fee_money'] = round($data['money'] * $settlement['fee_rate'] / 100, 2);

            $data['real_money'] = $data['money'] - $data['fee_money'];

        } else {

            $data['real_money'] = $data['money'];

        }

    }



}
\ No newline at end of file

--
Gitblit v1.9.2