Commit 7779accc authored by 董先生's avatar 董先生

Merge branch 'dev' of http://rungit.jxdsy.cn:10000/sugar/stock_new into dev

parents aaaa608a c16957ce
This diff is collapsed.
<?php
namespace app\apicom\home;
use app\money\model\EsopPlan as EsopPlanModel;
use app\money\model\EsopPlanRecord as EsopPlanRecordModel;
use think\db;
use think\Request;
class Esop extends Common
{
/**
* 期权计划
* @return [type] [description]
*/
public function getEsopPlanList(){
if(!MID) ajaxmsg('登陆后才能进行查询',0);
// 获取查询条件
$map = $this->getMap();
$map['mid']=MID;
$order = 'id desc';
$page = intval($this->request->param("page"));
$page = $page ? $page : 1;
$offset = $page;
// 数据列表
$data_list = EsopPlanModel::getEsopPlanList($map,"*", $order,$offset);
ajaxmsg('数据列表',1,$data_list);
}
}
\ No newline at end of file
......@@ -301,7 +301,7 @@ class Index extends Common
$uid = MID;
$req = request();
$code = intval($req::instance()->param('code'));
$market = intval($req::instance()->param('market'));
$market = $req::instance()->param('market');
if ($code === null) {
return json(['status' => 0, 'message' => '缺少参数code,操作失败']);
} else {
......
......@@ -82,6 +82,8 @@ class Esopplan extends Admin
$data = $this->request->post();
$data['create_time'] = time();
$data['plan_account'] = $data['plan_account'] * 100;
$data['remain_account'] = $data['plan_account'] * 100;
$data['create_ip'] = get_client_ip(1);
//业务逻辑处理
$result_up = Db::name("esop_plan")->insert($data);
if ($result_up === 1) {
......
......@@ -8,6 +8,7 @@ use app\money\model\EsopPlan as EsopPlanModel;
use app\money\model\EsopPlanRecord as EsopPlanRecordModel;
use app\member\model\Member as MemberModel;
use app\stock\model\StockList as StockListModel;
use Exception;
use think\Db;
use think\Hook;
use think\Cache;
......@@ -66,6 +67,7 @@ class EsopplanRecord extends Admin
->setRowList($data_list)
->fetch(); // 渲染模板
}
/**
* 自动任务,根据设定的期权计划执行释放期权
*/
......@@ -76,11 +78,13 @@ class EsopplanRecord extends Admin
$where['status'] = 1;
//开始释放期权日期不大于当前日期
$where['release_time'] = ['<=', date("Y-m-d")];
//已释放天数小于总天数,已释放期权小于期权总值,待行权值大于0
$esop_plan_list = EsopPlanModel::where($where)->where("remain_account>0 and release_account<plan_account and days<duration")->select();
//待行权值大于0
$where['remain_account'] = ['>', 0];
//已释放天数小于总天数,已释放期权小于期权总值
$esop_plan_list = EsopPlanModel::where($where)->where("release_account<plan_account and days<duration")->select();
foreach ($esop_plan_list as $k => $v) {
//更加明细记录判断执行的当天是否已释放过
$esop_plan_record_today = EsopPlanRecordModel::where("FROM_UNIXTIME(createtime,'%Y-%m-%d')=curdate()")
$esop_plan_record_today = EsopPlanRecordModel::where("FROM_UNIXTIME(create_time,'%Y-%m-%d')=curdate()")
->where(['type' => 1, 'esop_plan_id' => $v['id']])->find();
if (!$esop_plan_record_today) {
//计算释放期权金额
......@@ -90,15 +94,15 @@ class EsopplanRecord extends Admin
$affect = $v['plan_account'] % $v['duration'];
}
//释放期权,更新期权表
$updateData[] = [
$updateData = [
'account' => $v['account'] + $affect,
'days' => $v['days'] + 1,
'remain_account' => $v['plan_account'] - $affect,
'release_account' => $v['release_account'] + $affect
];
EsopPlanModel::where(['id' => $v['id']])->update($updateData);
EsopPlanModel::where(['id' => $v['id']])->update($updateData);
//写入明细表
$arr[] = [
$arr = [
'mid' => $v['mid'],
'stock_id' => $v['stock_id'],
'esop_plan_id' => $v['id'],
......
<?php
namespace app\money\model;
use think\helper\Hash;
use app\money\model\Role as RoleModel;
use think\model;
use think\Db;
class EsopPlan extends Model
namespace app\money\model;
use think\helper\Hash;
use app\money\model\Role as RoleModel;
use think\model;
use think\Db;
class EsopPlan extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = '__ESOP_PLAN__';
public static function getAll($map = [], $order = '')
{
// 设置当前模型对应的完整数据表名称
protected $table = '__ESOP__PLAN__';
public static function getAll($map=[], $order='')
{
$data_list = self::view('esop_plan p', true)
->view('member', 'mobile, name, id_card', 'member.id=p.mid', 'left')
->view('stock_list', 'title', 'stock_list.id=p.stock_id', 'left')
->where($map)
->order($order)
->paginate()
->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 $data_list;
}
/*
* 释放时自动更新期权计划信息
*
*/
public static function plan_up($id,$mmoney){
return self::where(["id"=>$id])->update($mmoney);
}
$data_list = self::view('esop_plan p', true)
->view('member', 'mobile, name, id_card', 'member.id=p.mid', 'left')
->view('stock_list', 'title', 'stock_list.id=p.stock_id', 'left')
->where($map)
->order($order)
->paginate()
->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 $data_list;
}
/**
*获取期权计划列表
* @author 2024-06-20
*/
public static function getEsopPlanList($where = [], $field = '*', $order = 'id asc', $offset, $pagesize = 15)
{
$esop_plan_list = self::view('esop_plan ep', true)
->view("stock_list sl", 'title,code', 'stock_list.id=ep.stock_id', 'left')
->field(["CONCAT(ROUND(release_account / plan_account * 100, 2), ' % ')" => 'accuracy'])
->field(["FROM_UNIXTIME(create_time,'%Y-%m-%d %T')" => 'create_time'])
->where($where)
->field($field)
->order($order)
->page($offset, $pagesize)
->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;
}
?>
}
<?php
namespace app\money\model;
use think\helper\Hash;
use app\money\model\Role as RoleModel;
use think\model;
use think\Db;
class EsopPlanRecord extends Model
namespace app\money\model;
use think\helper\Hash;
use app\money\model\Role as RoleModel;
use think\model;
use think\Db;
class EsopPlanRecord extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = '__ESOP_PLAN_RECORD__';
public static function getAll($map = [], $order = '')
{
$data_list = self::view('esop_plan_record pr', true)
->view('member', 'mobile, name, id_card', 'member.id=pr.mid', 'left')
->view('stock_list', 'title', 'stock_list.id=pr.stock_id', 'left')
->where($map)
->order($order)
->paginate()
->each(function ($item, $key) {
$item->affect = money_convert($item->affect);
$item->surplus = money_convert($item->surplus);
});
return $data_list;
}
/**
*获取期权明细记录列表
* @author 2024-06-20
*/
public static function getEsopPlanRecordList($where = [], $field = '*', $order = 'id asc')
{
// 设置当前模型对应的完整数据表名称
protected $table = '__ESOP__PLAN__Record__';
public static function getAll($map=[], $order='')
{
$data_list = self::view('esop_plan_record pr', true)
->view('member', 'mobile, name, id_card', 'member.id=pr.mid', 'left')
->view('stock_list', 'title', 'stock_list.id=pr.stock_id', 'left')
->where($map)
->order($order)
->paginate()
->each( function($item, $key){
$item->affect = money_convert($item->affect);
$item->surplus = money_convert($item->surplus);
});
return $data_list;
}
$esop_plan_list = self::view('esop_plan_record epr', true)
->view("stock_list sl", 'title,code', 'stock_list.id=ep.stock_id', 'left')
->view("esop_plan ep", 'title,code', 'stock_list.id=ep.stock_id', 'left')
->where($where)
->field($field)
->order($order)
->paginate();
return $esop_plan_list;
}
?>
}
......@@ -203,7 +203,7 @@ class Operate extends Admin{
$model=new SubMoneyRecord();
$xlsData=$model->get_record($map,$order,$listRows);
foreach($xlsData as $key=>$value){
$xlsData->items->items[$key]['create_time']=date('Y-m-d h:i',$value['create_time']);
$xlsData->items[$key]['create_time']=date('Y-m-d h:i',$value['create_time']);
};
$title="资金流水";
$arrHeader = array('子账户ID','子账户','影响金额','账户余额','资金类型','详情','变动日期');
......@@ -334,7 +334,7 @@ class Operate extends Admin{
->where($map)
->order($order)->paginate($listRows);
foreach($xlsData as $key=>$value){
$xlsData->items->items[$key]['deal_date']=date('Y-m-d',$value['deal_date']);
$xlsData->items[$key]['deal_date']=date('Y-m-d',$value['deal_date']);
};
$title="历史成交";
$arrHeader = array('子账户ID','手机号','子账户','交易账户名','证券代码','证券名称','成交日期','成交时间','委托编号','委托价格','委托数量','成交编号','成交价格','成交数量','成交金额','买卖标志','状态说明');
......@@ -433,7 +433,7 @@ class Operate extends Admin{
->order($order)
->paginate($listRows);
foreach($xlsData as $key=>$value){
$xlsData->items->items[$key]['trust_date']=date('Y-m-d',$value['trust_date']);
$xlsData->items[$key]['trust_date']=date('Y-m-d',$value['trust_date']);
};
$title="历史委托";
$arrHeader = array('子账户ID','手机号','子账户','交易账户名','证券代码','证券名称','委托日期','委托时间','委托编号','委托价格','委托数量
......@@ -529,7 +529,7 @@ ume','amount','cancel_order_count','status');
->where($map)
->order($order)->paginate($listRows);
foreach($xlsData as $key=>$value){
$xlsData->items->items[$key]['trust_date']=date('Y-m-d',$value['trust_date']);
$xlsData->items[$key]['trust_date']=date('Y-m-d',$value['trust_date']);
};
//$type_arr=['5'=>'免息配资','1'=>'按天配资','2'=>'按周配资','3'=>'按月配资','4'=>'免费体验','6'=>'模拟操盘'];
......@@ -637,7 +637,7 @@ ume','amount','cancel_order_count','status');
->order($order)
->paginate($listRows);
foreach($xlsData as $key=>$value){
$xlsData->items->items[$key]['trust_date']=date('Y-m-d',$value['trust_date']);
$xlsData->items[$key]['trust_date']=date('Y-m-d',$value['trust_date']);
};
$title="当日暂时未成交委托";
$arrHeader = array('子账户ID','手机号','子账户','交易账户名','证券代码','证券名称','委托日期','委托时间','委托编号','委托价格','委托数量','成交数量','成交金额','撤单数量','状态说明');
......@@ -810,7 +810,7 @@ ume','amount','cancel_order_count','status');
->where($map)
->order($order)->paginate($listRows);
foreach($xlsData as $key=>$value){
$xlsData->items->items[$key]['deal_date']=date('Y-m-d',$value['deal_date']);
$xlsData->items[$key]['deal_date']=date('Y-m-d',$value['deal_date']);
};
$title="当日成交";
$arrHeader = array('子账户ID','手机号','子账户','交易账户名','证券代码','证券名称','成交日期','成交时间','委托编号','委托价格','委托数量','成交编号','成交价格','成交数量','成交金额','买卖标志','状态说明');
......@@ -1032,7 +1032,7 @@ ume','amount','cancel_order_count','status');
->where('t.status','=','已撤')
->order($order)->paginate($listRows);
foreach($xlsData as $key=>$value){
$xlsData->items->items[$key]['trust_date']=date('Y-m-d',$value['trust_date']);
$xlsData->items[$key]['trust_date']=date('Y-m-d',$value['trust_date']);
};
$title="撤单查询";
$arrHeader = array('子账户ID','手机号','子账户','交易账户名','证券代码','证券名称','委托日期','委托时间','委托编号','委托价格','委托数量','成交数量','成交金额','撤单数量','状态说明');
......@@ -1135,7 +1135,7 @@ ume','amount','cancel_order_count','status');
->order($order)
->paginate($listRows);
foreach($xlsData as $key=>$value){
$xlsData->items->items[$key]['deal_date']=date('Y-m-d',$value['deal_date']);
$xlsData->items[$key]['deal_date']=date('Y-m-d',$value['deal_date']);
};
$title="交割单";
$arrHeader = array('子账户ID','手机号','子账户','交易账户名','证券代码','证券名称','成交日期','业务名称','成交价格','成交数量','剩余数量','成交金额','清算金额','剩余金额','印花税','过户费','净佣金','委托编号','成交编号');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment