Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
token
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wallet
token
Commits
019c8f13
Commit
019c8f13
authored
Sep 27, 2018
by
rlgy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
8c125d65
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
343 additions
and
159 deletions
+343
-159
CoinReleaseCheckController.php
backend/controllers/CoinReleaseCheckController.php
+65
-11
ExtractTokenJob.php
backend/jobs/ExtractTokenJob.php
+0
-95
FreezeJob.php
backend/jobs/FreezeJob.php
+43
-10
QueryTransJob.php
backend/jobs/QueryTransJob.php
+110
-0
CoinPublishRule.php
common/models/psources/CoinPublishRule.php
+37
-27
CoinReleaseList.php
common/models/psources/CoinReleaseList.php
+35
-0
DevController.php
console/controllers/DevController.php
+7
-3
BaseResponse.php
h5/base/BaseResponse.php
+13
-7
GuodunController.php
h5/controllers/GuodunController.php
+33
-6
No files found.
backend/controllers/CoinReleaseCheckController.php
View file @
019c8f13
...
@@ -8,9 +8,13 @@
...
@@ -8,9 +8,13 @@
namespace
backend\controllers
;
namespace
backend\controllers
;
use
backend\jobs\QueryTransJob
;
use
common\business\Chain33Business
;
use
common\models\psources\CoinExtract
;
use
common\models\psources\CoinExtract
;
use
common\models\psources\CoinPublish
;
use
common\models\psources\CoinPublish
;
use
common\models\psources\CoinPublishRule
;
use
common\models\psources\CoinReleaseCheck
;
use
common\models\psources\CoinReleaseCheck
;
use
common\models\psources\CoinReleaseList
;
use
common\models\psources\CoinReleaseMember
;
use
common\models\psources\CoinReleaseMember
;
use
Yii
;
use
Yii
;
...
@@ -82,14 +86,12 @@ class CoinReleaseCheckController extends BaseController
...
@@ -82,14 +86,12 @@ class CoinReleaseCheckController extends BaseController
if
(
$model
->
load
(
$get
)
&&
$model
->
validate
())
{
if
(
$model
->
load
(
$get
)
&&
$model
->
validate
())
{
$page
=
$get
[
'page'
]
??
1
;
$page
=
$get
[
'page'
]
??
1
;
$limit
=
$page
[
'limit'
]
??
10
;
$limit
=
$page
[
'limit'
]
??
10
;
$query
=
CoinReleaseCheck
::
find
()
$query
=
CoinReleaseCheck
::
find
()
->
andFilterWhere
([
'!='
,
'status'
,
0
])
->
andFilterWhere
([
->
andFilterWhere
([
'!='
,
'status'
,
0
])
'status'
=>
$model
->
status
,
->
andFilterWhere
([
'coin'
=>
$model
->
coin
,
'status'
=>
$model
->
status
,
'check_first_uid'
=>
$model
->
check_first_uid
,
'coin'
=>
$model
->
coin
,
'check_second_uid'
=>
$model
->
check_second_uid
,
'check_first_uid'
=>
$model
->
check_first_uid
,
]);
'check_second_uid'
=>
$model
->
check_second_uid
,
]);
if
(
$model
->
start_time
)
{
if
(
$model
->
start_time
)
{
$query
=
$query
->
andFilterWhere
([
'>='
,
'create_time'
,
$model
->
start_time
]);
$query
=
$query
->
andFilterWhere
([
'>='
,
'create_time'
,
$model
->
start_time
]);
}
}
...
@@ -114,6 +116,10 @@ class CoinReleaseCheckController extends BaseController
...
@@ -114,6 +116,10 @@ class CoinReleaseCheckController extends BaseController
}
}
}
}
/**
* @return array
* @throws \yii\db\Exception
*/
public
function
actionCheck
()
public
function
actionCheck
()
{
{
Yii
::
$app
->
response
->
format
=
'json'
;
Yii
::
$app
->
response
->
format
=
'json'
;
...
@@ -151,7 +157,55 @@ class CoinReleaseCheckController extends BaseController
...
@@ -151,7 +157,55 @@ class CoinReleaseCheckController extends BaseController
}
}
if
(
$model
->
save
(
false
))
{
if
(
$model
->
save
(
false
))
{
if
(
$step
==
self
::
STEP_CHECK_SECOND
&&
CoinReleaseCheck
::
CHECK_SECOND_STATUS_SUCCEED
==
$model
->
check_second_status
)
{
if
(
$step
==
self
::
STEP_CHECK_SECOND
&&
CoinReleaseCheck
::
CHECK_SECOND_STATUS_SUCCEED
==
$model
->
check_second_status
)
{
//TODO 提币
//TODO 提币 区块链转账接口
$from
=
''
;
$member
=
CoinReleaseMember
::
findOne
(
$model
->
mid
);
if
(
$member
)
{
$coin_publish_rule
=
CoinPublishRule
::
findOne
(
$member
->
rule_id
);
if
(
$coin_publish_rule
)
{
$coin_publish
=
CoinPublish
::
findOne
(
$coin_publish_rule
->
pid
);
if
(
$coin_publish
)
{
$from
=
$coin_publish
->
address
;
}
}
}
if
(
empty
(
$from
))
{
return
[
'code'
=>
-
1
,
'msg'
=>
'提币失败'
];
}
if
(
strtoupper
(
$model
->
coin
)
==
'BTY'
)
{
$isToken
=
false
;
}
else
{
$isToken
=
true
;
}
//开启事务
$trans
=
CoinReleaseMember
::
getDb
()
->
beginTransaction
();
//减少用户资产
$member
->
release
-=
$model
->
amount
;
$member
->
output
+=
$model
->
amount
;
if
(
$model
->
save
())
{
$result
=
Chain33Business
::
extractToken
(
$from
,
$model
->
to_address
,
(
int
)
$model
->
amount
,
"锁仓释放"
,
$isToken
,
$model
->
coin
);
if
(
is_array
(
$result
))
{
$trans
->
rollBack
();
return
$result
;
}
$trans
->
commit
();
//保存提币记录到数据库
$coin_release_list
=
new
CoinReleaseList
();
$coin_release_list
->
mid
=
$member
->
id
;
$coin_release_list
->
mobile
=
$member
->
mobile
;
$coin_release_list
->
amount
=
$model
->
amount
;
$coin_release_list
->
coin
=
$model
->
coin
;
$coin_release_list
->
type
=
1
;
//提币
$coin_release_list
->
from
=
$from
;
$coin_release_list
->
to
=
$model
->
to_address
;
$coin_release_list
->
save
();
//使用任务根据txhash查询提币状态s
Yii
::
$app
->
queue
->
delay
(
15
)
->
push
(
new
QueryTransJob
([
'txhash'
=>
$result
,
'lid'
=>
$coin_release_list
->
id
,
'cid'
=>
$model
->
id
]));
}
}
elseif
(
self
::
STEP_CANCEL
==
$step
)
{
}
elseif
(
self
::
STEP_CANCEL
==
$step
)
{
//返还币
//返还币
$assets
=
CoinReleaseMember
::
findOne
(
$model
->
mid
);
$assets
=
CoinReleaseMember
::
findOne
(
$model
->
mid
);
...
@@ -159,7 +213,7 @@ class CoinReleaseCheckController extends BaseController
...
@@ -159,7 +213,7 @@ class CoinReleaseCheckController extends BaseController
$assets
->
release
+=
$model
->
amount
;
$assets
->
release
+=
$model
->
amount
;
$assets
->
output
-=
$model
->
amount
;
$assets
->
output
-=
$model
->
amount
;
if
(
!
$assets
->
save
())
{
if
(
!
$assets
->
save
())
{
//todo loh
Yii
::
warning
(
"撤提失败! [id]:
{
$assets
->
id
}
, [amount]:
$model->amount
"
,
__CLASS__
);
}
}
}
}
}
}
...
@@ -169,7 +223,7 @@ class CoinReleaseCheckController extends BaseController
...
@@ -169,7 +223,7 @@ class CoinReleaseCheckController extends BaseController
}
}
}
}
}
}
return
[
'code'
=>
0
,
'msg'
=>
'操作失败'
];
return
[
'code'
=>
-
1
,
'msg'
=>
'操作失败'
];
}
}
}
}
backend/jobs/ExtractTokenJob.php
deleted
100644 → 0
View file @
8c125d65
<?php
/**
* Created by PhpStorm.
* User: rlgyzhcn
* Date: 18-9-18
* Time: 下午2:50
*/
namespace
backend\jobs
;
use
Yii
;
use
yii\queue\JobInterface
;
use
yii\queue\Queue
;
use
yii\base\BaseObject
;
use
common\models\psources\CoinReleaseCheck
;
use
common\models\psources\CoinReleaseMember
;
use
common\models\psources\CoinPublishRule
;
use
common\models\psources\CoinPublish
;
use
common\business\Chain33Business
;
/**
* Class ExtractTokenJob
* 提币任务
*
* @package backend\jobs
*/
class
ExtractTokenJob
extends
BaseObject
implements
JobInterface
{
/**
* 提币申请id
*
* @var int $cid
*/
public
$cid
=
0
;
/**
* @param Queue $queue which pushed and is handling the job
* @return integer
*/
public
function
execute
(
$queue
)
{
//获取申请
$apply
=
CoinReleaseCheck
::
findOne
(
$this
->
cid
);
if
(
$apply
)
{
$assets
=
CoinReleaseMember
::
findOne
(
$apply
->
uid
);
if
(
$assets
)
{
$release
=
$assets
->
release
;
if
(
$release
>=
$apply
->
amount
)
{
//提币
$amount
=
$apply
->
amount
/
1e8
;
//获取提币地址
$from
=
''
;
$coin_publish_rule
=
CoinPublishRule
::
findOne
(
$assets
->
rule_id
);
if
(
$coin_publish_rule
)
{
$coin_publish
=
CoinPublish
::
findOne
(
$coin_publish_rule
->
pid
);
if
(
$coin_publish
)
{
$from
=
$coin_publish
->
address
;
}
}
if
(
!
empty
(
$from
))
{
$result
=
Chain33Business
::
extractToken
(
$from
,
$apply
->
to_address
,
$amount
,
''
,
true
,
$apply
->
coin
);
if
(
$result
[
'code'
]
==
0
)
{
$assets
->
release
-=
$amount
;
$assets
->
output
+=
$amount
;
if
(
$assets
->
save
())
{
//提币成功
$apply
->
status
=
CoinReleaseCheck
::
STATUS_PADDING
;
//提币中
if
(
$apply
->
save
())
{
Yii
::
info
(
"提币成功: [申请id]:
$this->cid
"
,
__CLASS__
);
}
Yii
::
warning
(
"提币申请状态修改失败: [申请id]:
$this->cid
"
,
__CLASS__
);
}
else
{
Yii
::
warning
(
"减少用户资产失败: [申请id]:
$this->cid
, [资产]:
$amount
"
,
__CLASS__
);
}
}
else
{
Yii
::
info
(
"提币失败:
{
$result
[
'msg'
]
}
! [申请id]:
$this->cid
"
,
__CLASS__
);
}
}
else
{
Yii
::
info
(
"提币失败: 提币地址不存在! [申请id]:
$this->cid
"
,
__CLASS__
);
}
}
else
{
Yii
::
info
(
"提币失败: 用户资产不足! [申请id]:
$this->cid
"
,
__CLASS__
);
}
}
else
{
Yii
::
info
(
"提币失败: 用户资产信息不存在! [申请id]:
$this->cid
"
,
__CLASS__
);
}
}
else
{
Yii
::
info
(
"提币失败: 提币申请不存在! [申请id]:
$this->cid
"
,
__CLASS__
);
}
return
0
;
}
}
\ No newline at end of file
backend/jobs/FreezeJob.php
View file @
019c8f13
...
@@ -8,19 +8,31 @@
...
@@ -8,19 +8,31 @@
namespace
backend\jobs
;
namespace
backend\jobs
;
use
common\models\psources\CoinPublish
;
use
common\models\psources\CoinPublishRule
;
use
common\models\psources\CoinPublishRule
;
use
common\models\psources\CoinReleaseList
;
use
common\models\psources\CoinReleaseMember
;
use
common\models\psources\CoinReleaseMember
;
use
Yii
;
use
Yii
;
use
yii\base\BaseObject
;
use
yii\base\BaseObject
;
use
yii\queue\JobInterface
;
use
yii\queue\JobInterface
;
use
yii\queue\Queue
;
use
yii\queue\Queue
;
/**
* Class FreezeJob
* 定时释放币任务
*
* @package backend\jobs
*/
class
FreezeJob
extends
BaseObject
implements
JobInterface
class
FreezeJob
extends
BaseObject
implements
JobInterface
{
{
/**
* @var integer $id 锁仓规则id
*/
public
$id
;
public
$id
;
/**
/**
* @param Queue $queue which pushed and is handling the job
* @param Queue $queue which pushed and is handling the job
* @throws \Exception
* @return integer
* @return integer
*/
*/
public
function
execute
(
$queue
)
public
function
execute
(
$queue
)
...
@@ -30,6 +42,9 @@ class FreezeJob extends BaseObject implements JobInterface
...
@@ -30,6 +42,9 @@ class FreezeJob extends BaseObject implements JobInterface
// 计划任务已经被删除
// 计划任务已经被删除
return
0
;
return
0
;
}
}
$coin_publish
=
CoinPublish
::
findOne
(
$coin_publish_rule
->
pid
);
$address
=
$coin_publish
->
address
;
//修改用户的币种冻结信息
//修改用户的币种冻结信息
$members
=
CoinReleaseMember
::
getMemberByRuleIds
(
$this
->
id
);
$members
=
CoinReleaseMember
::
getMemberByRuleIds
(
$this
->
id
);
...
@@ -40,21 +55,32 @@ class FreezeJob extends BaseObject implements JobInterface
...
@@ -40,21 +55,32 @@ class FreezeJob extends BaseObject implements JobInterface
$change
=
$value
[
'freeze'
];
$change
=
$value
[
'freeze'
];
}
}
$value
[
'release'
]
+=
$change
;
$value
[
'release'
]
+=
$change
;
$value
[
'freeze'
]
-=
$change
;
$value
[
'freeze'
]
-=
$change
;
$value
[
'change'
]
=
$change
;
}
}
unset
(
$key
,
$value
);
unset
(
$key
,
$value
);
// 记录解冻操作
Yii
::
info
(
sprintf
(
'Coin Freeze Job Start: sid[%s] lock[%s] release[%s]'
,
$coin_publish_rule
->
sid
,
$coin_publish_rule
->
lock
,
$coin_publish_rule
->
release
),
__CLASS__
);
foreach
(
$members
as
$key
=>
$value
)
{
foreach
(
$members
as
$key
=>
$value
)
{
$trans
=
CoinPublish
::
getDb
()
->
beginTransaction
();
$models
=
CoinReleaseMember
::
findOne
(
$value
[
'id'
]);
$models
=
CoinReleaseMember
::
findOne
(
$value
[
'id'
]);
$models
->
release
=
$value
[
'release'
];
$models
->
release
=
$value
[
'release'
];
$models
->
freeze
=
$value
[
'freeze'
];
$models
->
freeze
=
$value
[
'freeze'
];
$models
->
save
();
//记录保存到数据库
// 记录解冻操作
$list
=
new
CoinReleaseList
();
Yii
::
info
(
sprintf
(
'member[Id=%s] release amount: %s, freeze still: %s'
,
$value
[
'id'
],
$change
,
$value
[
'freeze'
]),
__CLASS__
);
$list
->
amount
=
$value
[
'change'
];
$list
->
mobile
=
$value
[
'mobile'
];
$list
->
coin
=
$value
[
'coin'
];
$list
->
type
=
2
;
$list
->
status
=
1
;
$list
->
from
=
$address
;
$list
->
mid
=
$value
[
'id'
];
if
(
$models
->
save
()
&&
$list
->
save
())
{
$trans
->
commit
();
}
$trans
->
rollBack
();
Yii
::
info
(
'释放币失败, [Coin_release_member_id]: '
.
$value
[
'id'
],
__CLASS__
);
}
}
// 执行下一次任务
// 执行下一次任务
if
(
$coin_publish_rule
->
repeat
)
{
if
(
$coin_publish_rule
->
repeat
)
{
$delay_time
=
CoinPublishRule
::
getDelay
(
''
,
$coin_publish_rule
->
repeat
,
strtotime
(
$coin_publish_rule
->
release_time
));
$delay_time
=
CoinPublishRule
::
getDelay
(
''
,
$coin_publish_rule
->
repeat
,
strtotime
(
$coin_publish_rule
->
release_time
));
...
@@ -63,8 +89,15 @@ class FreezeJob extends BaseObject implements JobInterface
...
@@ -63,8 +89,15 @@ class FreezeJob extends BaseObject implements JobInterface
$coin_publish_rule
->
save
();
$coin_publish_rule
->
save
();
}
}
// 记录解冻操作
// 记录解冻操作
Yii
::
info
(
sprintf
(
'Coin Freeze Job Finished: sid[%s] lock[%s] release[%s]'
,
Yii
::
info
(
$coin_publish_rule
->
sid
,
$coin_publish_rule
->
lock
,
$coin_publish_rule
->
release
),
__CLASS__
);
sprintf
(
'Coin Freeze Job Finished: sid[%s] lock[%s] release[%s]'
,
$coin_publish_rule
->
sid
,
$coin_publish_rule
->
lock
,
$coin_publish_rule
->
release
),
__CLASS__
);
return
0
;
return
0
;
}
}
}
}
backend/jobs/QueryTransJob.php
0 → 100644
View file @
019c8f13
<?php
/**
* Created by PhpStorm.
* User: rlgyzhcn
* Date: 18-9-18
* Time: 下午2:50
*/
namespace
backend\jobs
;
use
common\models\psources\CoinReleaseList
;
use
Yii
;
use
yii\queue\JobInterface
;
use
yii\queue\Queue
;
use
yii\base\BaseObject
;
use
common\models\psources\CoinReleaseCheck
;
use
common\models\psources\CoinReleaseMember
;
use
common\models\psources\CoinPublishRule
;
use
common\models\psources\CoinPublish
;
use
common\business\Chain33Business
;
/**
* Class ExtractTokenJob
* 查询提币状态任务
*
* @package backend\jobs
*/
class
QueryTransJob
extends
BaseObject
implements
JobInterface
{
/**
* 提币交易hash
*
* @var string $cid
*/
public
$txhash
=
''
;
/**
* coin_release_list id
*
* @var int
*/
public
$lid
=
0
;
/**
* coin_release_check id
*
* @var int
*/
public
$cid
=
0
;
/**
* @param Queue $queue which pushed and is handling the job
* @return integer
*/
public
function
execute
(
$queue
)
{
$coin_release_list
=
CoinReleaseList
::
findOne
(
$this
->
lid
);
$coin_release_check
=
CoinReleaseCheck
::
findOne
(
$this
->
cid
);
if
(
$coin_release_list
&&
$coin_release_check
)
{
$result
=
Chain33Business
::
getTxByHashs
([
$this
->
txhash
]);
if
(
$result
[
'code'
]
==
0
)
{
$result
=
$result
[
'result'
][
'txs'
][
0
][
'receipt'
][
'ty'
]
??
0
;
if
(
$result
==
1
)
{
//转账失败
$coin_release_list
->
status
=
2
;
$coin_release_check
->
status
=
3
;
try
{
$trans
=
CoinReleaseCheck
::
getDb
()
->
beginTransaction
();
if
(
$coin_release_check
->
save
()
&&
$coin_release_list
->
save
())
{
//退换资产
$coin_release_member
=
CoinReleaseMember
::
findOne
(
$coin_release_list
->
mid
);
if
(
$coin_release_member
)
{
$coin_release_member
->
release
+=
$coin_release_list
->
amount
;
$coin_release_member
->
output
-=
$coin_release_list
->
amount
;
if
(
$coin_release_member
->
save
())
{
$trans
->
commit
();
return
0
;
}
}
}
$trans
->
rollBack
();
}
catch
(
\Exception
$exception
)
{
Yii
::
$app
->
queue
->
delay
(
15
)
->
push
(
$this
);
}
return
0
;
}
elseif
(
$result
==
2
)
{
//转账成功
$coin_release_list
->
status
=
1
;
$coin_release_check
->
status
=
4
;
try
{
$trans
=
CoinReleaseCheck
::
getDb
()
->
beginTransaction
();
if
(
$coin_release_check
->
save
()
&&
$coin_release_list
->
save
())
{
$trans
->
commit
();
return
0
;
}
$trans
->
rollBack
();
}
catch
(
\Exception
$exception
)
{
Yii
::
$app
->
queue
->
delay
(
15
)
->
push
(
$this
);
}
}
}
else
{
Yii
::
$app
->
queue
->
delay
(
15
)
->
push
(
$this
);
}
}
return
0
;
}
}
\ No newline at end of file
common/models/psources/CoinPublishRule.php
View file @
019c8f13
...
@@ -13,13 +13,14 @@ use Yii;
...
@@ -13,13 +13,14 @@ use Yii;
/**
/**
* CoinPublishRule
* CoinPublishRule
* 锁仓规则表
* 锁仓规则表
*
* @param integer $qid 任务id
* @param integer $qid 任务id
*/
*/
class
CoinPublishRule
extends
BaseActiveRecord
class
CoinPublishRule
extends
BaseActiveRecord
{
{
const
SCENARIOS_ADD
=
'add'
;
const
SCENARIOS_ADD
=
'add'
;
const
SCENARIOS_UPDAET
=
'update'
;
const
SCENARIOS_UPDAET
=
'update'
;
const
DATE_FORMAT
=
[
const
DATE_FORMAT
=
[
0
=>
'Y-m-d H:i:s'
,
0
=>
'Y-m-d H:i:s'
,
1
=>
'm-d H:i:s'
,
1
=>
'm-d H:i:s'
,
2
=>
'd H:i:s'
,
2
=>
'd H:i:s'
,
...
@@ -97,9 +98,9 @@ class CoinPublishRule extends BaseActiveRecord
...
@@ -97,9 +98,9 @@ class CoinPublishRule extends BaseActiveRecord
/**
/**
* 获取距离下一次执行的时间(秒)
* 获取距离下一次执行的时间(秒)
*
*
* @param int
$timestamp 开始时间戳
* @param int $timestamp 开始时间戳
* @param int
$repeat_type 重复类型
* @param int $repeat_type 重复类型
* @param int
$repeat_time 重复时间戳
* @param int $repeat_time 重复时间戳
* @return int|false
* @return int|false
*/
*/
public
static
function
getDelay
(
$timestamp
,
$repeat_type
,
$repeat_time
)
public
static
function
getDelay
(
$timestamp
,
$repeat_type
,
$repeat_time
)
...
@@ -117,9 +118,9 @@ class CoinPublishRule extends BaseActiveRecord
...
@@ -117,9 +118,9 @@ class CoinPublishRule extends BaseActiveRecord
/**
/**
* 返回下一次执行的时间戳
* 返回下一次执行的时间戳
*
*
* @param integer
$timestamp 开始时间戳
* @param integer $timestamp 开始时间戳
* @param integer
$repeat_type 重复类型
* @param integer $repeat_type 重复类型
* @param string
$repeat_time 数据库存储的时间戳
* @param string $repeat_time 数据库存储的时间戳
* @return integer
* @return integer
*/
*/
public
static
function
getNextExecTimestamp
(
$timestamp
,
$repeat_type
,
$repeat_time
)
public
static
function
getNextExecTimestamp
(
$timestamp
,
$repeat_type
,
$repeat_time
)
...
@@ -127,11 +128,19 @@ class CoinPublishRule extends BaseActiveRecord
...
@@ -127,11 +128,19 @@ class CoinPublishRule extends BaseActiveRecord
if
(
empty
(
$timestamp
))
{
if
(
empty
(
$timestamp
))
{
$timestamp
=
time
();
$timestamp
=
time
();
}
}
$format
=
self
::
DATE_FORMAT
[
$repeat_type
];
$format
=
self
::
DATE_FORMAT
[
$repeat_type
];
$repeat
=
date
(
$format
,
$repeat_time
);
$repeat
=
date
(
$format
,
$repeat_time
);
$prefix
=
date
(
self
::
DATE_FORMAT_PREFIX
[
$repeat_type
],
$timestamp
);
$prefix
=
date
(
self
::
DATE_FORMAT_PREFIX
[
$repeat_type
],
$timestamp
);
$next_time
=
$prefix
.
$repeat
;
$next_time
=
$prefix
.
$repeat
;
$next_timestamp
=
strtotime
(
$next_time
);
$next_timestamp
=
strtotime
(
$next_time
);
//如果小于$timestamp, 加上重复的频率
if
(
$next_timestamp
<
$timestamp
)
{
if
(
$repeat_type
==
self
::
REPEAT_YEAR
)
{
$next_timestamp
=
strtotime
(
'+1 year'
,
$next_timestamp
);
}
elseif
(
$repeat_type
==
self
::
REPEAT_MONTH
)
{
$next_timestamp
=
strtotime
(
'+1 month'
,
$next_timestamp
);
}
}
return
$next_timestamp
;
return
$next_timestamp
;
}
}
...
@@ -153,7 +162,8 @@ class CoinPublishRule extends BaseActiveRecord
...
@@ -153,7 +162,8 @@ class CoinPublishRule extends BaseActiveRecord
/**
/**
* 获取当月解冻总量
* 获取当月解冻总量
* @param integer $id
*
* @param integer $id
* @return integer
* @return integer
*/
*/
public
static
function
getReleaseAmountThisMonthById
(
$id
)
public
static
function
getReleaseAmountThisMonthById
(
$id
)
...
@@ -222,12 +232,12 @@ class CoinPublishRule extends BaseActiveRecord
...
@@ -222,12 +232,12 @@ class CoinPublishRule extends BaseActiveRecord
/**
/**
* 计算一次释放币种数量
* 计算一次释放币种数量
*
*
* @param integer
$lock_present 锁仓百分比
* @param integer $lock_present 锁仓百分比
* @param integer
$rel_present 释放百分比
* @param integer $rel_present 释放百分比
* @param integer
$type 释放类型,1按总量,2按余量
* @param integer $type 释放类型,1按总量,2按余量
* @param integer
$amount 用户币的总量
* @param integer $amount 用户币的总量
* @param integer
$freeze 用户释放的币
* @param integer $freeze 用户释放的币
* @param integer
$n 计算上n次释放数量
* @param integer $n 计算上n次释放数量
* @return integer|boolean
* @return integer|boolean
*/
*/
public
static
function
calReleaseAmount
(
$lock_present
,
$rel_present
,
$type
,
$amount
,
$freeze
,
$n
=
0
)
public
static
function
calReleaseAmount
(
$lock_present
,
$rel_present
,
$type
,
$amount
,
$freeze
,
$n
=
0
)
...
@@ -244,20 +254,20 @@ class CoinPublishRule extends BaseActiveRecord
...
@@ -244,20 +254,20 @@ class CoinPublishRule extends BaseActiveRecord
/**
/**
* 计算一个月内释放的币种数量
* 计算一个月内释放的币种数量
*
*
* @param integer
$lock_present 锁仓百分比
* @param integer $lock_present 锁仓百分比
* @param integer
$rel_present 释放百分比
* @param integer $rel_present 释放百分比
* @param integer
$type 释放类型,1按总量,2按余量
* @param integer $type 释放类型,1按总量,2按余量
* @param integer
$amount 用户币的总量
* @param integer $amount 用户币的总量
* @param integer
$freeze 用户已经释放的币
* @param integer $freeze 用户已经释放的币
* @param integer
$timestamp 当前时间戳
* @param integer $timestamp 当前时间戳
* @param integer
$month_end 截止时间戳
* @param integer $month_end 截止时间戳
* @param integer
$repeat 重复类型
* @param integer $repeat 重复类型
* @param integer
$release_timestamp 重复时间戳
* @param integer $release_timestamp 重复时间戳
* @return integer
* @return integer
*/
*/
public
static
function
calReleaseAmountMonth
(
$lock_present
,
$rel_present
,
$type
,
$repeat
,
$amount
,
$freeze
,
$timestamp
,
$month_end
,
$release_timestamp
)
public
static
function
calReleaseAmountMonth
(
$lock_present
,
$rel_present
,
$type
,
$repeat
,
$amount
,
$freeze
,
$timestamp
,
$month_end
,
$release_timestamp
)
{
{
$result
=
0
;
$result
=
0
;
$is_executed
=
self
::
isVariableInRange
(
$timestamp
,
$month_end
,
$repeat
,
$release_timestamp
);
$is_executed
=
self
::
isVariableInRange
(
$timestamp
,
$month_end
,
$repeat
,
$release_timestamp
);
if
(
$is_executed
)
{
if
(
$is_executed
)
{
$result
+=
self
::
calReleaseAmount
(
$lock_present
,
$rel_present
,
$type
,
$amount
,
$freeze
,
0
);
$result
+=
self
::
calReleaseAmount
(
$lock_present
,
$rel_present
,
$type
,
$amount
,
$freeze
,
0
);
...
...
common/models/psources/CoinReleaseList.php
0 → 100644
View file @
019c8f13
<?php
/**
* Created by PhpStorm.
* User: rlgyzhcn
* Date: 18-9-26
* Time: 下午6:07
*/
namespace
common\models\psources
;
/**
* Class CoinReleaseList
* 国顿账单记录表
*
* @property integer $id
* @property integer $uid
* @property integer $mid
* @property string $mobile
* @property integer $amount
* @property string $coin
* @property integer $type
* @property integer $from
* @property integer $to
* @property integer $status
*
* @package common\models\psources
*/
class
CoinReleaseList
extends
BaseActiveRecord
{
public
static
function
tableName
()
{
return
'coin_release_list'
;
}
}
\ No newline at end of file
console/controllers/DevController.php
View file @
019c8f13
...
@@ -17,7 +17,7 @@ use yii\queue\Queue;
...
@@ -17,7 +17,7 @@ use yii\queue\Queue;
use
yii\console\Controller
;
use
yii\console\Controller
;
use
common\models\psources\CoinPublishRule
;
use
common\models\psources\CoinPublishRule
;
use
common\models\psources\CoinReleaseMember
;
use
common\models\psources\CoinReleaseMember
;
use
backend\jobs\
ExtractToken
Job
;
use
backend\jobs\
QueryTrans
Job
;
/**
/**
* Class ExchangeController
* Class ExchangeController
...
@@ -34,13 +34,17 @@ class DevController extends Controller
...
@@ -34,13 +34,17 @@ class DevController extends Controller
*/
*/
public
function
actionFreeze1
()
public
function
actionFreeze1
()
{
{
$qid
=
Yii
::
$app
->
queue
->
push
(
new
FreezeJob
([
'id'
=>
4
3
]));
$qid
=
Yii
::
$app
->
queue
->
push
(
new
FreezeJob
([
'id'
=>
4
5
]));
var_dump
(
$qid
);
var_dump
(
$qid
);
}
}
public
function
actionExtractToken
()
public
function
actionExtractToken
()
{
{
$id
=
Yii
::
$app
->
queue
->
push
(
new
ExtractTokenJob
([
'cid'
=>
1
]));
$id
=
Yii
::
$app
->
queue
->
push
(
new
QueryTransJob
([
'txhash'
=>
'0x4ee0dd8615a70749a2f2bc38490c9483cf8399da523176f8c7b058afa26294ef'
,
'lid'
=>
25
,
'cid'
=>
16
]));
var_dump
(
$id
);
var_dump
(
$id
);
}
}
...
...
h5/base/BaseResponse.php
View file @
019c8f13
...
@@ -15,13 +15,18 @@ class BaseResponse extends Response
...
@@ -15,13 +15,18 @@ class BaseResponse extends Response
{
{
public
function
send
()
public
function
send
()
{
{
/**
$exception
=
Yii
::
$app
->
errorHandler
->
exception
;
* @var ResponseBuild $response
if
(
$exception
)
{
*/
$this
->
format
=
Response
::
FORMAT_JSON
;
$response
=
Yii
::
$app
->
response
->
data
;
$this
->
data
=
[
'code'
=>
$exception
->
getCode
(),
'msg'
=>
$exception
->
getMessage
()];
Yii
::
$app
->
response
->
format
=
$response
->
format
;
}
else
{
Yii
::
$app
->
response
->
data
=
$response
->
format
();
/**
* @var ResponseBuild $response
*/
$response
=
Yii
::
$app
->
response
->
data
;
Yii
::
$app
->
response
->
format
=
$response
->
format
;
Yii
::
$app
->
response
->
data
=
$response
->
format
();
}
parent
::
send
();
parent
::
send
();
}
}
}
}
\ No newline at end of file
h5/controllers/GuodunController.php
View file @
019c8f13
...
@@ -12,6 +12,7 @@ use common\models\psources\Coin;
...
@@ -12,6 +12,7 @@ use common\models\psources\Coin;
use
common\models\psources\CoinExtract
;
use
common\models\psources\CoinExtract
;
use
common\models\psources\CoinPublishRule
;
use
common\models\psources\CoinPublishRule
;
use
common\models\psources\CoinReleaseCheck
;
use
common\models\psources\CoinReleaseCheck
;
use
common\models\psources\CoinReleaseList
;
use
common\models\psources\CoinReleaseMember
;
use
common\models\psources\CoinReleaseMember
;
use
h5\base\ResponseBuild
;
use
h5\base\ResponseBuild
;
use
Yii
;
use
Yii
;
...
@@ -76,12 +77,12 @@ class GuodunController extends BaseController
...
@@ -76,12 +77,12 @@ class GuodunController extends BaseController
return
$response
;
return
$response
;
}
}
}
}
//
$validate
=
ZhaobiBusiness
::
validateCode
(
$uid
,
$codetype
,
$code
,
$type
);
//
$validate = ZhaobiBusiness::validateCode($uid, $codetype, $code, $type);
if
(
$validate
[
'code'
]
!=
200
)
{
//
if ($validate['code'] != 200) {
$response
->
build
(
$validate
[
'code'
],
$validate
[
'message'
]);
//
$response->build($validate['code'], $validate['message']);
return
$response
;
//
return $response;
}
//
}
$user_asset
=
CoinReleaseMember
::
findOne
([
$id
]);
$user_asset
=
CoinReleaseMember
::
findOne
([
$id
]);
//判断余额师傅充足
//判断余额师傅充足
...
@@ -129,4 +130,29 @@ class GuodunController extends BaseController
...
@@ -129,4 +130,29 @@ class GuodunController extends BaseController
$extract
->
save
();
$extract
->
save
();
return
$response
;
return
$response
;
}
}
public
function
actionBillList
()
{
$response
=
new
ResponseBuild
();
$post
=
Yii
::
$app
->
request
->
post
();
$page
=
$post
[
'page'
]
??
1
;
$limit
=
$post
[
'limit'
]
??
10
;
$type
=
$post
[
'type'
]
??
''
;
//类型,1提币,2锁仓释放
$mobile
=
$post
[
'mobile'
]
??
''
;
if
(
empty
(
$mobile
))
{
$response
->
build
(
ResponseBuild
::
STATUS_PARAMS_NOT_VALIDATE
);
return
$response
;
}
$conditions
=
[
'mobile'
=>
$mobile
];
if
(
$type
)
{
$conditions
[
'type'
]
=
$type
;
}
$datas
=
CoinReleaseList
::
getList2
(
$page
,
$limit
,
$conditions
,
[
'create_time'
=>
SORT_ASC
]);
$response
->
build
(
ResponseBuild
::
STATUS_SUCCEED
,
''
,
$datas
);
return
$response
;
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment