| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- <?php
- /**
- * 厦门云联储网络科技有限公司
- * https://www.baokuaiyun.com
- * Copyright (c) 2023 爆块云 All rights reserved.
- */
- namespace app\models;
- use app\constants\OptionSetting;
- use app\plugins\scanCodePay\models\Order as ScanCodePayOrder;
- use app\plugins\scanCodePay\models\Order as ScanOrder;
- use yii\db\ActiveRecord;
- use yii\behaviors\TimestampBehavior;
- use Yii;
- use yii\db\Exception;
- use yii\helpers\Json;
- /**
- * This is the model class for table "{{%currency_coin}}".
- *
- * @property integer $id ID
- * @property integer $store_id 店铺ID
- * @property string $unit 币种单位
- * @property string $name 币种名称
- * @property integer $scale 精度
- * @property string $guid_price 指导价
- * @property string $exchange_price USDT价
- * @property string $code 币种代码
- * @property string $symbol 图标
- * @property string $plugin_code 插件代码
- * @property string $logo 图标
- * @property string $exchange_rate 兑换比例
- * @property integer $enable 是否启用 【1是 0否】
- * @property integer $enable_bussiness_mode 是否支持商业模式【1是 0否】
- * @property integer $enable_goods_deduct 是否支持商品抵扣【1是 0否】
- * @property string $remark 备注
- * @property integer $is_transfer 是否支持转账
- * @property integer $transfer_fee_rate 转账手续费
- * @property string $type 币种类型
- * @property integer $enable_balance 币种转余额开关
- * @property integer $enable_draw
- * @property string $balance_rate 币种转余额比例
- * @property string $draw_fee_ratio
- * @property integer $draw_comfirm
- * @property string $balance_fee_ratio 币种转余额手续费
- * @property integer $enable_transmit 币种转送开关
- * @property string $transmit_rate 币种转送手续费比例
- * @property integer $transmit_user_type 转送权限:0-不限,1-团队上下级
- * @property integer $enable_exchange
- * @property integer $ts_cardinal_number 转送基数
- * @property integer $ex_cardinal_number 兑换基数
- * @property string $remainder 无质押需要剩余
- * @property integer $created_at
- * @property integer $updated_at
- * @property string $cny_price
- * @property string $contract_address
- * @property integer $is_auto_pay 自动打款
- * @property string $private_key
- * @property string $auto_pay_address 打币地址
- * @property string $allinfo
- * @property string $issue_quantity
- * @property integer $is_open_one 是否开放兑换
- * @property integer $dividend_switch 币种进入分红池开关
- * @property string $rights_amplify_ratio 确权放大比例基数
- * @property string $scan_dividend_json 确权放大比例基数
- * @property string $shop_dividend_json 确权放大比例基数
- * @property integer $dividend_deduct_switch 分红是否扣除确权开关
- * @property integer $dividend_deduct_ratio 分红是否扣除确权开关
- */
- class CurrencyCoin extends \yii\db\ActiveRecord
- {
- public $errorMessage;
- /**
- * @inheritdoc
- */
- public static function tableName()
- {
- return '{{%currency_coin}}';
- }
- public function behaviors()
- {
- return [
- [
- 'class' => TimestampBehavior::class,
- 'attributes' => [
- ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
- ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at']
- ]
- ]
- ];
- }
- /**
- * @inheritdoc
- */
- public function rules()
- {
- return [
- [['store_id', 'scale', 'is_transfer', 'transfer_fee_rate', 'enable', 'enable_bussiness_mode', 'enable_goods_deduct', 'enable_balance', 'enable_draw', 'draw_comfirm', 'enable_transmit', 'transmit_user_type', 'enable_exchange', 'ts_cardinal_number', 'ex_cardinal_number', 'is_auto_pay', 'is_open_one', 'dividend_switch', 'dividend_deduct_switch','dividend_deduct_ratio'], 'integer'],
- [['guid_price', 'exchange_price', 'exchange_rate', 'balance_rate', 'draw_fee_ratio', 'balance_fee_ratio', 'transmit_rate', 'remainder', 'cny_price', 'rights_amplify_ratio','issue_quantity'], 'number'],
- [['unit', 'name', 'code', 'type'], 'string', 'max' => 32],
- [['symbol', 'plugin_code'], 'string', 'max' => 32],
- [['remark'], 'string', 'max' => 255],
- [['contract_address', 'auto_pay_address'], 'string', 'max' => 255],
- [['logo', 'private_key', 'allinfo','shop_dividend_json','scan_dividend_json'], 'string'],
- [['created_at', 'updated_at'], 'safe']
- ];
- }
- public static function addSaasMoney($currency_id,$saas_id,$type,$money,$remark,$store_id=0)
- {
- try {
- $coininfo = CurrencyCoin::findOne($currency_id);
- $wallet = UserWalletCoin::findOne(['currency_id' => $currency_id, 'saas_id' => $saas_id]);
- if (!$wallet) {
- $wallet = new UserWalletCoin();
- $wallet->currency_id = $currency_id;
- $wallet->saas_id = $saas_id;
- $wallet->store_id = 0;
- $wallet->user_id = 0;
- $wallet->money = 0;
- $wallet->store_id = 0;
- $wallet->user_id = 0;
- }
- $before_money = $wallet->money;
- if ($type == 1) {
- $wallet->money += floatval($money);
- } else {
- $wallet->money -= floatval($money);
- }
- if ($wallet->money < 0) throw new \Exception("钱包余额不足");
- $table = "cyy_wallet_log_" . $coininfo->code;
- \Yii::$app->db->createCommand()->insert("{$table}", [
- 'cloud_user_id' => 0,
- 'user_id' => 0,
- 'saas_id' => $saas_id,
- 'store_id' => 0,
- 'currency_id' => $currency_id,
- 'currency_yewu_id' => 1,
- 'currency_code' => $coininfo->code,
- 'created_at' => time(),
- 'money' => $money,
- 'before_money' => $before_money,
- 'after_money' => $wallet->money,
- 'desc' => $remark,
- 'type' => $type
- ])->execute();
- $wallet->save();
- if($store_id>0){
- //扣除店铺商确权
- $wallet_store = UserWalletCoin::findOne(['currency_id' => $currency_id, 'store_id' => $store_id]);
- $cloud_before_money = $wallet_store->money;
- $cloud_after_money = $wallet_store->money - $money;
- Yii::$app->db->createCommand("
- UPDATE cyy_user_wallet_coin
- SET money = money - :money
- WHERE store_id = :store_id
- AND currency_id = :currency_id
- AND currency_yewu_id = :currency_yewu_id
- ")->bindValues([
- ':money' => $money,
- ':store_id' => $store_id,
- ':currency_id' => $currency_id,
- ':currency_yewu_id' => 1
- ])->execute();
- $type = "ORDER_CUT";
- \Yii::$app->db->createCommand()->insert("{$table}", [
- 'cloud_user_id'=>0,
- 'user_id'=>0,
- 'saas_id'=>0,
- 'store_id'=>$store_id,
- 'currency_id'=>$currency_id,
- 'currency_yewu_id'=>1,
- 'currency_code'=>$coininfo->code,
- 'created_at'=>time(),
- 'money'=> (-1)*$money,
- 'before_money'=>$cloud_before_money,
- 'after_money'=>$cloud_after_money,
- 'desc'=>$remark,
- 'type'=>$type
- ])->execute();
- }
- return true;
- } catch (\Exception $e) {
- $self = new self();
- $self->errorMessage = $e->getMessage();
- ActionLog::addLog(1, 'CurrencyCoin::addSaasMoney/currencyAward', $e->getMessage());
- return false;
- }catch (\Throwable $e) {
- $self = new self();
- $self->errorMessage = $e->getMessage();
- ActionLog::addLog(1, 'CurrencyCoin::addSaasMoney/currencyAward', $e->getMessage());
- return false;
- }
- }
- }
|