Commit a3b91047 authored by twj's avatar twj

EsopPlan

parent 11dfa27c
<?php <?php
namespace app\member\model;
use think\helper\Hash;
use app\member\model\Role as RoleModel;
use think\model;
use think\Db;
class Member extends Model namespace app\member\model;
{
use think\helper\Hash;
use app\member\model\Role as RoleModel;
use think\model;
use think\Db;
class Member extends Model
{
// 设置当前模型对应的完整数据表名称 // 设置当前模型对应的完整数据表名称
protected $table = '__MEMBER__'; protected $table = '__MEMBER__';
...@@ -105,10 +107,10 @@ ...@@ -105,10 +107,10 @@
* @author 路人甲乙 * @author 路人甲乙
* @return mixed * @return mixed
*/ */
public static function getMemberInfoByID($id=null) public static function getMemberInfoByID($id = null)
{ {
$where['m.id'] = $id;//会员ID $where['m.id'] = $id; //会员ID
$where['m.status'] = 1;//会员状态 $where['m.status'] = 1; //会员状态
$data = self::view('member m', true) $data = self::view('member m', true)
->view("money", 'account,freeze,operate_account,bond_account', 'money.mid=m.id', 'left') ->view("money", 'account,freeze,operate_account,bond_account', 'money.mid=m.id', 'left')
->where($where) ->where($where)
...@@ -121,10 +123,10 @@ ...@@ -121,10 +123,10 @@
* @author 路人甲乙 * @author 路人甲乙
* @return mixed * @return mixed
*/ */
public static function getMemberInfoByMobile($mobile=null) public static function getMemberInfoByMobile($mobile = null)
{ {
$where['m.mobile'] = $mobile;//会员手机号 $where['m.mobile'] = $mobile; //会员手机号
$where['m.status'] = 1;//会员状态 $where['m.status'] = 1; //会员状态
$data = self::view('member m', true) $data = self::view('member m', true)
->view("money", 'account,freeze,operate_account,bond_account', 'money.mid=m.id', 'left') ->view("money", 'account,freeze,operate_account,bond_account', 'money.mid=m.id', 'left')
->where($where) ->where($where)
...@@ -141,20 +143,40 @@ ...@@ -141,20 +143,40 @@
{ {
$sdata['mobile'] = $data['mobile']; $sdata['mobile'] = $data['mobile'];
$sdata['passwd'] = $data['password']; $sdata['passwd'] = $data['password'];
$sdata['paywd'] = substr($data['mobile'],-6,6); $sdata['paywd'] = substr($data['mobile'], -6, 6);
$sdata['pid'] = 0; $sdata['pid'] = 0;
$sdata['agent_far'] = intval($data['agent_far']); $sdata['agent_far'] = intval($data['agent_far']);
$sdata['create_ip'] = get_client_ip(1); $sdata['create_ip'] = get_client_ip(1);
$sdata['create_time'] = time(); $sdata['create_time'] = time();
$result = self::create($sdata); $result = self::create($sdata);
if($result->id){ if ($result->id) {
Db('money')->insert(['mid'=>$result->id]); Db('money')->insert(['mid' => $result->id]);
$sdata['id']=$result->id; $sdata['id'] = $result->id;
return ['status'=>1, 'message'=>'注册成功','data'=>$sdata]; return ['status' => 1, 'message' => '注册成功', 'data' => $sdata];
}else{ } else {
return ['status'=>0, 'message'=>'注册失败']; return ['status' => 0, 'message' => '注册失败'];
} }
} }
/**
* 获取用户列表(下拉选择时使用)
* @param
* @author 路人甲乙
* @return mixed
*/
public static function getMemberList()
{
$list = [];
$where['status'] = 1;
$data_list = Db::name('member')->where($where)->column(true, 'id');
if (!is_null($data_list)) {
foreach ($data_list as $v) {
$list[$v['id']] = $v['mobile'];
}
} else {
$list = [];
}
return $list;
} }
?> }
...@@ -5,6 +5,8 @@ namespace app\money\admin; ...@@ -5,6 +5,8 @@ namespace app\money\admin;
use app\admin\controller\Admin; use app\admin\controller\Admin;
use app\common\builder\ZBuilder; use app\common\builder\ZBuilder;
use app\money\model\EsopPlan as EsopPlanModel; use app\money\model\EsopPlan as EsopPlanModel;
use app\member\model\Member as MemberModel;
use app\stock\model\StockList as StockListModel;
use think\Db; use think\Db;
use think\Hook; use think\Hook;
use think\Cache; use think\Cache;
...@@ -31,98 +33,114 @@ class Esopplan extends Admin ...@@ -31,98 +33,114 @@ class Esopplan extends Admin
// 分页数据 // 分页数据
$page = $data_list->render(); $page = $data_list->render();
if(empty($_SERVER["QUERY_STRING"])){ if (empty($_SERVER["QUERY_STRING"])) {
$excel_url=substr(http().$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"],0,- $excel_url = substr(http() . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"], 0, -5) . "_export";
5)."_export"; } else {
}else{ $excel_url = substr(http() . $_SERVER["SERVER_NAME"] . $_SERVER["PHP_SELF"], 0, -5) . "_export?" . $_SERVER["QUERY_STRING"];
$excel_url=substr(http().$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"],0,-
5)."_export?".$_SERVER["QUERY_STRING"];
} }
$btn_excel = [ $btn_excel = [
'title' => '导出EXCEL表', 'title' => '导出EXCEL表',
'icon' => 'fa fa-fw fa-download', 'icon' => 'fa fa-fw fa-download',
'href' => url($excel_url,'','') 'href' => url($excel_url, '', '')
]; ];
return ZBuilder::make('table') return ZBuilder::make('table')
->setSearch(['mid'=>'用户ID','member.name' => '姓名', 'member.mobile' => '手机号']) // 设置搜索框 ->setSearch(['mid' => '用户ID', 'member.name' => '姓名', 'member.mobile' => '手机号']) // 设置搜索框
->addColumns([ // 批量添加数据列 ->addColumns([ // 批量添加数据列
['id', 'ID'], ['id', 'ID'],
['mobile', '手机号'], ['mobile', '手机号'],
['name', '姓名'], ['name', '姓名'],
['title','股票'], ['title', '股票'],
['account', '可用期权'], ['account', '可用期权'],
['plan_account', '期权总值'], ['plan_account', '期权总值'],
['remain_account', '待释放'], ['remain_account', '待释放'],
['release_account', '已释放'], ['release_account', '已释放'],
['duration','总释放天数'], ['duration', '总释放天数'],
['days', '已释放天数'], ['days', '已释放天数'],
['release_time','开始释放时间'], ['release_time', '开始释放时间'],
['create_time', '创建时间'], ['create_time', '创建时间'],
['status', '状态', 'switch'], ['status', '状态', 'switch'],
]) ])
->hideCheckbox() ->hideCheckbox()
->setTableName('plan') ->setTableName('esop_plan')
->addTopButton('custem',$btn_excel) ->addTopButton('custem', $btn_excel)
->addRightButtons(['edit']) // 批量添加右侧按钮 ->addTopButtons('add')
->addRightButton('edit')
->addRightButton('delete')
->addOrder('id,create_time,release_time') ->addOrder('id,create_time,release_time')
->setRowList($data_list) ->setRowList($data_list)
->fetch(); // 渲染模板 ->fetch(); // 渲染模板
} }
/**
public function index_export(){ * 新增
// 获取查询条件 * @return mixed
$map = $this->getMap(); */
$order = $this->getOrder(); public function add()
empty($order) && $order = 'id desc';
// 数据列表
$xlsData = EsopPlanModel::getAll($map, $order);
$title="期权计划列表";
$arrHeader = array('ID','手机号','姓名','股票','可用期权','期权总值','待释放', '已释放','总释放天数', '已释放天数','开始释放时间', '创建时间', '状态');
$fields = array('id','mobile','name','title','account','plan_account','remain_account','release_account','duration','days','release_time','create_time','status');
export($arrHeader,$fields,$xlsData,$title);
}
public function quickEdit($record = [])
{ {
$id = input('post.pk', ''); // 保存数据
$field = input('post.name', ''); if ($this->request->isPost()) {
$value = input('post.value', ''); $data = $this->request->post();
$table = input('post.table', ''); $data['create_time'] = time();
$type = input('post.type', ''); $data['plan_account'] = $data['plan_account'] * 100;
if(in_array($field, array('account', 'plan_account','remain_account','release_account')) ){ //业务逻辑处理
$value *= 100; $result_up = Db::name("esop_plan")->insert($data);
if ($result_up === 1) {
$this->success('添加成功', 'index');
} else {
$this->error($result_up);
} }
}
$mid = EsopPlanModel::where('id', $id)->value('mid'); // 使用ZBuilder快速创建表单
$old_value = EsopPlanModel::where('id', $id)->value($field); return ZBuilder::make('form')
$mobile = Db('member')->where('id',$mid)->value('mobile'); ->setPageTitle('新增') // 设置页面标题
$details = $mobile.' 字段(' . $field . '),原值:('.$old_value.')新值:(' . $value . ')'; ->addFormItems([ // 批量添加表单项
['select:5', 'mid', '请选择用户', '', MemberModel::getMemberList(), '', url('get_mid'), 'mid'],
switch ($type) { ['select:5', 'stock_id', '请选择股票', '', StockListModel::getStockList(), '', url('get_stock_id'), 'stock_id'],
// 日期时间需要转为时间戳 ['number', 'plan_account', '期权总值', '期权总的价值(港元)', '0'],
case 'release_time': ['number', 'duration', '总释放天数', '总释放天数', '1000'],
$value = strtotime($value); ['datetime', 'release_time', '开始时间', '从哪天开始释放期权', '', 'YYYY-MM-DD HH:mm:ss'],
break; ])
// 开关 ->fetch();
case 'switch':
$value = $value == 'true' ? 1 : 0;
break;
} }
$pk = Db('esop_plan')->getPk(); // 根据所有用户ID
$result = Db('esop_plan')->where($pk, $id)->setField($field, $value); public function get_mid($mid)
{
$arr = [];
$where['status'] = 1;
$where['id'] = $mid;
$data_list = Db::name('member')->where($where)->find();
if (!is_null($data_list)) {
$arr['code'] = '1'; //判断状态
$arr['msg'] = '请求成功'; //回传信息
$result[$data_list['id']] = $data_list['id'];
$arr['list'] = format_linkage($result); //将一维数组转成联动需要的数据格式
} else {
$arr['code'] = '0'; //判断状态
$arr['msg'] = '数据请求失败'; //回传信息
$arr['list'] = []; //将一维数组转成联动需要的数据格式
}
if (false !== $result) { return json($arr);
Cache::clear();
// 记录行为日志
if (!empty($member_mobile)) {
call_user_func_array('action_log', ['esop_plan_edit', 'esop_plan', $id, UID, $details]);
} }
$this->success('操作成功'); // 根据所有股票ID
public function get_stock_id($stock_id)
{
$arr = [];
$where['status'] = 1;
$where['id'] = $stock_id;
$data_list = Db::name('stock_list')->where($where)->find();
if (!is_null($data_list)) {
$arr['code'] = '1'; //判断状态
$arr['msg'] = '请求成功'; //回传信息
$result[$data_list['id']] = $data_list['id'];
$arr['list'] = format_linkage($result); //将一维数组转成联动需要的数据格式
} else { } else {
$this->error('操作失败'); $arr['code'] = '0'; //判断状态
$arr['msg'] = '数据请求失败'; //回传信息
$arr['list'] = []; //将一维数组转成联动需要的数据格式
} }
return json($arr);
} }
} }
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
{ {
$data_list = self::view('esop_plan p', true) $data_list = self::view('esop_plan p', true)
->view('member', 'mobile, name, id_card', 'member.id=p.mid', 'left') ->view('member', 'mobile, name, id_card', 'member.id=p.mid', 'left')
->view('stock', 'title', 'stock.id=p.stock_id', 'left') ->view('stock_list', 'title', 'stock_list.id=p.stock_id', 'left')
->where($map) ->where($map)
->order($order) ->order($order)
->paginate() ->paginate()
......
...@@ -8,11 +8,35 @@ ...@@ -8,11 +8,35 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | @author menghui // | @author menghui
namespace app\stock\model; namespace app\stock\model;
use think\model; use think\model;
use think\Db; use think\Db;
class StockList extends Model{
class StockList extends Model
{
// 设置当前模型对应的完整数据表名称 // 设置当前模型对应的完整数据表名称
protected $table = '__STOCK_LIST__'; protected $table = '__STOCK_LIST__';
// 自动写入时间戳 // 自动写入时间戳
protected $autoWriteTimestamp = true; protected $autoWriteTimestamp = true;
/**
* 获取股票列表(下拉选择时使用)
* @param
* @author 路人甲乙
* @return mixed
*/
public static function getStockList()
{
$list = [];
$where['status'] = 1;
$data_list = Db::name('stock_list')->where($where)->column(true, 'id');
if (!is_null($data_list)) {
foreach ($data_list as $v) {
$list[$v['id']] = $v['title'];
}
} else {
$list = [];
}
return $list;
}
} }
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