Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
stock_new
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sugar
stock_new
Commits
62a2f8d0
Commit
62a2f8d0
authored
Jun 20, 2024
by
twj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
期权提现
parent
c16957ce
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
193 additions
and
25 deletions
+193
-25
application/apicom/home/Esop.php
application/apicom/home/Esop.php
+123
-6
application/money/model/EsopPlan.php
application/money/model/EsopPlan.php
+63
-12
application/money/model/EsopPlanRecord.php
application/money/model/EsopPlanRecord.php
+7
-7
No files found.
application/apicom/home/Esop.php
View file @
62a2f8d0
<?php
<?php
namespace
app\apicom\home
;
namespace
app\apicom\home
;
use
app\money\model\EsopPlan
as
EsopPlanModel
;
use
app\money\model\EsopPlan
as
EsopPlanModel
;
use
app\money\model\EsopPlanRecord
as
EsopPlanRecordModel
;
use
app\money\model\EsopPlanRecord
as
EsopPlanRecordModel
;
use
think\db
;
use
think\db
;
use
think\Request
;
use
think\Request
;
use
think\helper\Hash
;
class
Esop
extends
Common
class
Esop
extends
Common
{
{
...
@@ -12,18 +14,133 @@ class Esop extends Common
...
@@ -12,18 +14,133 @@ class Esop extends Common
* 期权计划
* 期权计划
* @return [type] [description]
* @return [type] [description]
*/
*/
public
function
getEsopPlanList
(){
public
function
getEsopPlanList
()
if
(
!
MID
)
ajaxmsg
(
'登陆后才能进行查询'
,
0
);
{
if
(
!
MID
)
ajaxmsg
(
'登陆后才能进行查询'
,
0
);
// 获取查询条件
// 获取查询条件
$map
=
$this
->
getMap
();
$map
=
$this
->
getMap
();
$map
[
'mid'
]
=
MID
;
$map
[
'mid'
]
=
MID
;
$order
=
'id desc'
;
$order
=
'id desc'
;
$page
=
intval
(
$this
->
request
->
param
(
"page"
));
$page
=
intval
(
$this
->
request
->
param
(
"page"
));
$page
=
$page
?
$page
:
1
;
$page
=
$page
?
$page
:
1
;
$offset
=
$page
;
$offset
=
$page
;
// 数据列表
// 数据列表
$data_list
=
EsopPlanModel
::
getEsopPlanList
(
$map
,
"*"
,
$order
,
$offset
);
$data_list
=
EsopPlanModel
::
getEsopPlanList
(
$map
,
$order
,
$offset
);
foreach
(
$data_list
as
$k
=>
$v
)
{
$data_list
[
$k
][
'release_account'
]
=
bcdiv
(
$v
[
'release_account'
],
100
,
2
);
$data_list
[
$k
][
'plan_account'
]
=
bcdiv
(
$v
[
'plan_account'
],
100
,
2
);
$data_list
[
$k
][
'remain_account'
]
=
bcdiv
(
$v
[
'remain_account'
],
100
,
2
);
$data_list
[
$k
][
'account'
]
=
bcdiv
(
$v
[
'account'
],
100
,
2
);
}
ajaxmsg
(
'数据列表'
,
1
,
$data_list
);
}
/**
* 期权计划
* @return [type] [description]
*/
public
function
getEsopPlanRecordList
()
{
if
(
!
MID
)
ajaxmsg
(
'登陆后才能进行查询'
,
0
);
// 获取查询条件
$map
=
$this
->
getMap
();
$map
[
'mid'
]
=
MID
;
$order
=
'id desc'
;
//期权计划ID
$esop_plan_id
=
intval
(
$this
->
request
->
param
(
"esop_plan_id"
));
if
(
$esop_plan_id
)
{
$map
[
'esop_plan_id'
]
=
$esop_plan_id
;
}
$page
=
intval
(
$this
->
request
->
param
(
"page"
));
$page
=
$page
?
$page
:
1
;
$offset
=
$page
;
// 数据列表
$data_list
=
EsopPlanRecordModel
::
getEsopPlanRecordList
(
$map
,
$order
,
$offset
,
15
);
foreach
(
$data_list
as
$k
=>
$v
)
{
$data_list
[
$k
][
'affect'
]
=
bcdiv
(
$v
[
'affect'
],
100
,
2
);
$data_list
[
$k
][
'surplus'
]
=
bcdiv
(
$v
[
'surplus'
],
100
,
2
);
$data_list
[
$k
][
'type'
]
=
getTypeNameForEsop
(
$v
[
'type'
]);
$data_list
[
$k
][
'stock'
]
=
[];
if
(
$v
[
'stock_trust_id'
])
{
}
}
ajaxmsg
(
'数据列表'
,
1
,
$data_list
);
ajaxmsg
(
'数据列表'
,
1
,
$data_list
);
}
/**
* 查询可提现期权
* @return [type] [description]
*/
public
function
getEsopPlanForWithdraw
()
{
if
(
!
MID
)
ajaxmsg
(
'登陆后才能进行查询'
,
0
);
// 获取查询条件
$map
=
$this
->
getMap
();
$map
[
'mid'
]
=
MID
;
$order
=
'id desc'
;
// 数据列表
$data_list
=
EsopPlanModel
::
view
(
'esop_plan ep'
,
'id,account'
)
->
view
(
'stock_list'
,
'title'
,
'stock_list.id=ep.stock_id'
,
'left'
)
->
where
([
'ep.account'
=>
[
'>'
,
0
],
'ep.mid'
=>
MID
,
'ep.status'
=>
1
])
->
select
();
foreach
(
$data_list
as
$k
=>
$v
)
{
$data_list
[
$k
][
'account'
]
=
bcdiv
(
$v
[
'account'
],
100
,
2
);
}
ajaxmsg
(
'数据列表'
,
1
,
$data_list
);
}
/*
* 操作提现操作
*/
public
function
doWithdraw
()
{
$data
=
[];
//银行卡id
$data
[
'bank_id'
]
=
$this
->
request
->
param
(
'bank_id'
);
//用户id
$data
[
'mid'
]
=
MID
;
//提现申请金额
$data
[
'money'
]
=
$this
->
request
->
param
(
"money"
);
//期权计划id
$data
[
'esop_plan_id'
]
=
$this
->
request
->
param
(
"esop_plan_id"
);
if
(
!
$data
[
'esop_plan_id'
])
{
ajaxmsg
(
'请选择要提现的期权!'
,
0
);
}
//提现规则基本校验
$result
=
$this
->
validate
(
$data
,
"Withdraw.create"
);
if
(
true
!==
$result
)
{
ajaxmsg
(
$result
,
0
);
}
if
(
$data
[
'money'
]
<
0
)
{
ajaxmsg
(
'提现金额错误!'
,
0
);
}
//校验当前期权计划余额
$money_res
=
EsopPlanModel
::
where
([
'id'
=>
$data
[
'esop_plan_id'
]])
->
find
();
if
(
empty
(
$money_res
[
'account'
])
||
(
$money_res
[
'account'
]
<=
0
))
{
ajaxmsg
(
'查询账户资金出错!'
,
0
);
}
if
(
isset
(
$money_res
[
'account'
])
&&
$money_res
[
'account'
]
<
$data
[
'money'
])
{
ajaxmsg
(
'提现金额已经大于可用余额!'
,
0
);
}
//查询是否已申请过提现,一次只能有一笔提现
$withdraw_info
=
Db
::
name
(
'money_withdraw'
)
->
where
([
'mid'
=>
MID
])
->
where
([
'status'
=>
0
])
->
find
();
if
(
!
empty
(
$withdraw_info
))
{
ajaxmsg
(
'您已有提现申请,请耐心等待审核。'
,
0
);
}
//校验支付密码
$c
=
Db
::
name
(
'member'
)
->
where
([
"id"
=>
MID
])
->
find
();
if
(
Hash
::
check
((
string
)
$data
[
'paywd'
],
$c
[
'paywd'
]))
{
$res
=
EsopPlanModel
::
esopWithdraw
(
$data
);
}
else
{
ajaxmsg
(
'支付密码错误'
,
0
);
}
if
(
$res
[
'status'
])
{
ajaxmsg
(
'提现申请已提交,请耐心等待审核'
,
1
);
}
else
{
ajaxmsg
(
'提现申请提交失败'
,
0
);
}
}
}
}
}
application/money/model/EsopPlan.php
View file @
62a2f8d0
...
@@ -4,6 +4,10 @@ namespace app\money\model;
...
@@ -4,6 +4,10 @@ namespace app\money\model;
use
think\helper\Hash
;
use
think\helper\Hash
;
use
app\money\model\Role
as
RoleModel
;
use
app\money\model\Role
as
RoleModel
;
use
app\money\model\EsopPlanRecord
as
EsopPlanRecordModel
;
use
app\money\model\Withdraw
as
MoneyWithdrawModel
;
use
app\member\model\Bank
as
BankModel
;
use
app\member\model\MemberMessage
as
MemberMessageModel
;
use
think\model
;
use
think\model
;
use
think\Db
;
use
think\Db
;
...
@@ -36,23 +40,70 @@ class EsopPlan extends Model
...
@@ -36,23 +40,70 @@ class EsopPlan extends Model
*获取期权计划列表
*获取期权计划列表
* @author 2024-06-20
* @author 2024-06-20
*/
*/
public
static
function
getEsopPlanList
(
$where
=
[],
$
field
=
'*'
,
$
order
=
'id asc'
,
$offset
,
$pagesize
=
15
)
public
static
function
getEsopPlanList
(
$where
=
[],
$order
=
'id asc'
,
$offset
,
$pagesize
=
15
)
{
{
$esop_plan_list
=
self
::
view
(
'esop_plan ep'
,
true
)
$esop_plan_list
=
self
::
view
(
'esop_plan ep'
,
'id,mid,account,plan_account,release_account,remain_account,release_time'
)
->
view
(
"stock_list sl"
,
'title,code'
,
's
tock_list
.id=ep.stock_id'
,
'left'
)
->
view
(
"stock_list sl"
,
'title,code'
,
's
l
.id=ep.stock_id'
,
'left'
)
->
field
([
"CONCAT(ROUND(release_account / plan_account * 100, 2), ' % ')"
=>
'accuracy'
])
->
field
([
"CONCAT(ROUND(release_account / plan_account * 100, 2), ' % ')"
=>
'accuracy'
])
->
field
([
"FROM_UNIXTIME(create_time,'%Y-%m-%d %T')"
=>
'create_time'
])
->
field
([
"FROM_UNIXTIME(
ep.
create_time,'%Y-%m-%d %T')"
=>
'create_time'
])
->
where
(
$where
)
->
where
(
$where
)
->
field
(
$field
)
->
order
(
$order
)
->
order
(
$order
)
->
page
(
$offset
,
$pagesize
)
->
page
(
$offset
,
$pagesize
)
->
select
()
->
select
();
->
each
(
function
(
$item
,
$key
)
{
$item
->
account
=
money_convert
(
$item
->
account
);
$item
->
plan_account
=
money_convert
(
$item
->
plan_account
);
$item
->
remain_account
=
money_convert
(
$item
->
remain_account
);
$item
->
release_account
=
money_convert
(
$item
->
release_account
);
});;
return
$esop_plan_list
;
return
$esop_plan_list
;
}
}
/**
* 期权提现
*/
public
static
function
esopWithdraw
(
$parameter
)
{
$bank_id
=
$parameter
[
'bank_id'
];
$bank
=
BankModel
::
bankInfo
(
$bank_id
);
//银行卡信息
$where1
[
'id'
]
=
$parameter
[
'mid'
];
//会员ID
$where1
[
'status'
]
=
1
;
//会员状态
$names
=
Db
::
name
(
'member'
)
->
field
(
'name'
)
->
where
(
$where1
)
->
find
();
//用户基本信息
//组合提现记录
$data
[
'bank'
]
=
$bank
[
'bank'
]
.
"|"
.
$bank
[
'card'
]
.
'|'
.
$bank
[
'province'
]
.
$bank
[
'city'
]
.
$bank
[
'branch'
]
.
"|"
.
$names
[
'name'
];
$data
[
'mid'
]
=
$parameter
[
'mid'
];
$data
[
'money'
]
=
$parameter
[
'money'
]
*
100
;
$data
[
'order_no'
]
=
'tx'
.
generate_rand_str
(
10
,
3
);
$data
[
'create_time'
]
=
time
();
$data
[
'create_ip'
]
=
get_client_ip
(
1
);
Db
::
startTrans
();
//查看当前期权的信息
$money_info
=
self
::
where
([
'id'
=>
$data
[
'esop_plan_id'
]])
->
find
();
//计算余额
$account
=
bcsub
(
$money_info
[
'account'
],
$data
[
'money'
]);
try
{
$res1
=
MoneyWithdrawModel
::
create
(
$data
);
//写入期权变化明细表
$arr
=
[
'mid'
=>
$parameter
[
'mid'
],
'stock_id'
=>
$parameter
[
'stock_id'
],
'esop_plan_id'
=>
$parameter
[
'esop_plan_id'
],
'affect'
=>
$parameter
[
'money'
],
'surplus'
=>
$account
,
'heatos'
=>
-
1
,
'type'
=>
3
,
'info'
=>
"期权申请提现,金额:"
.
$parameter
[
'money'
],
'create_time'
=>
time
(),
'create_ip'
=>
get_client_ip
(
1
)
];
$res2
=
EsopPlanRecordModel
::
create
(
$arr
);
//更新期权信息
$res3
=
self
::
where
(
'id'
,
$parameter
[
'esop_plan_id'
])
->
update
(
'account'
,
$account
);
if
(
$res1
&&
$res2
&&
$res3
)
{
Db
::
commit
();
return
[
'status'
=>
1
,
'message'
=>
'提交成功'
];
}
else
{
Db
::
rollback
();
return
[
'status'
=>
0
,
'message'
=>
'提交失败'
];
}
}
catch
(
\Exception
$e
)
{
Db
::
rollback
();
return
[
'status'
=>
0
,
'message'
=>
'数据异常'
];
}
}
}
}
application/money/model/EsopPlanRecord.php
View file @
62a2f8d0
...
@@ -34,15 +34,15 @@ class EsopPlanRecord extends Model
...
@@ -34,15 +34,15 @@ class EsopPlanRecord extends Model
*获取期权明细记录列表
*获取期权明细记录列表
* @author 2024-06-20
* @author 2024-06-20
*/
*/
public
static
function
getEsopPlanRecordList
(
$where
=
[],
$
field
=
'*'
,
$order
=
'id asc'
)
public
static
function
getEsopPlanRecordList
(
$where
=
[],
$
order
=
'id asc'
,
$offset
,
$pagesize
)
{
{
$esop_plan_
list
=
self
::
view
(
'esop_plan_record epr'
,
true
)
$esop_plan_
record_list
=
self
::
view
(
'esop_plan_record epr'
,
"id,mid,stock_id,stock_trust_id,affect,surplus,heatos,type,info"
)
->
view
(
"stock_list sl"
,
'title,code'
,
's
tock_list.id=ep
.stock_id'
,
'left'
)
->
view
(
"stock_list sl"
,
'title,code'
,
's
l.id=epr
.stock_id'
,
'left'
)
->
view
(
"esop_plan ep"
,
'title,code'
,
'stock_list.id=ep.stock_id'
,
'left'
)
->
field
([
"FROM_UNIXTIME(epr.create_time,'%Y-%m-%d %T')"
=>
'create_time'
]
)
->
where
(
$where
)
->
where
(
$where
)
->
field
(
$field
)
->
order
(
$order
)
->
order
(
$order
)
->
paginate
();
->
page
(
$offset
,
$pagesize
)
return
$esop_plan_list
;
->
select
();
return
$esop_plan_record_list
;
}
}
}
}
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