Browse Source

分红排队模块

moonsflyer 5 months ago
parent
commit
169fa4fdc8

+ 229 - 0
app/admin/controller/finance/Dividend.php

@@ -0,0 +1,229 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeshop开源商城系统
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | gitee下载:https://gitee.com/likeshop_gitee
+// | github下载:https://github.com/likeshop-github
+// | 访问官网:https://www.likeshop.cn
+// | 访问社区:https://home.likeshop.cn
+// | 访问手册:http://doc.likeshop.cn
+// | 微信公众号:likeshop技术社区
+// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
+// |  likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
+// | 禁止对系统程序代码以任何目的,任何形式的再发布
+// | likeshop团队版权所有并拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeshop.cn.team
+// +----------------------------------------------------------------------
+
+namespace app\admin\controller\finance;
+
+use app\common\basics\AdminBase;
+
+use app\common\server\ConfigServer;
+use app\common\server\JsonServer;
+use app\admin\logic\finance\WithdrawLogic;
+use app\admin\logic\finance\DividendCashLogic;
+
+
+/**
+ * 财务-分红池相关
+ * Class User
+ * @package app\admin\controller\finance
+ */
+class Dividend extends AdminBase
+{
+
+    /**
+     * @notes 分红池资金明细列表
+     * @return \think\response\Json|\think\response\View
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author suny
+     * @date 2021/7/13 7:02 下午
+     */
+    public function dividend_cash()
+    {
+
+        if ($this->request->isAjax()) {
+            $get = $this->request->get();
+            $data = DividendCashLogic::cash($get);
+            return JsonServer::success('', $data, 1);
+        }
+        $today = [
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", time()))),
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", time())) + 86399)
+        ];
+
+        $yesterday = [
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-1 day")))),
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-1 day"))) + 86399)
+        ];
+
+
+        $days_ago7 = [
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-7 day")))),
+            date('Y-m-d 23:59:59', time())
+        ];
+
+        $days_ago30 = [
+            date('Y-m-d 00:00:00', strtotime("-30 day")),
+            date('Y-m-d 23:59:59', time())
+        ];
+        $dividend_cash = ConfigServer::get('platform_setting', 'dividend_cash', 0);
+        return view('', [
+            'today' => $today,
+            'yesterday' => $yesterday,
+            'days_ago7' => $days_ago7,
+            'days_ago30' => $days_ago30,
+            'dividend_cash'=>$dividend_cash,
+        ]);
+    }
+
+    /**
+     * @notes 分红排队列表
+     * @return \think\response\Json|\think\response\View
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author suny
+     * @date 2021/7/13 7:02 下午
+     */
+    public function dividend_order()
+    {
+
+        if ($this->request->isAjax()) {
+            $get = $this->request->get();
+            $data = DividendCashLogic::order($get);
+            return JsonServer::success('', $data, 1);
+        }
+        $today = [
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", time()))),
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", time())) + 86399)
+        ];
+
+        $yesterday = [
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-1 day")))),
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-1 day"))) + 86399)
+        ];
+
+        $days_ago7 = [
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-7 day")))),
+            date('Y-m-d 23:59:59', time())
+        ];
+
+        $days_ago30 = [
+            date('Y-m-d 00:00:00', strtotime("-30 day")),
+            date('Y-m-d 23:59:59', time())
+        ];
+        return view('', [
+            'today' => $today,
+            'yesterday' => $yesterday,
+            'days_ago7' => $days_ago7,
+            'days_ago30' => $days_ago30,
+        ]);
+    }
+
+    /**
+     * @notes 排队订单详情
+     * @return \think\response\View
+     * @author suny
+     * @date 2021/7/13 7:02 下午
+     */
+    public function detail()
+    {
+
+        $id = $this->request->get('id', '', 'intval');
+        if ($this->request->isAjax()) {
+            $get = $this->request->get();
+            $data = DividendCashLogic::detail($get);
+            return JsonServer::success('', $data, 1);
+        }
+        $today = [
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", time()))),
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", time())) + 86399)
+        ];
+
+        $yesterday = [
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-1 day")))),
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-1 day"))) + 86399)
+        ];
+
+        $days_ago7 = [
+            date('Y-m-d H:i:s', strtotime(date("Y-m-d", strtotime("-7 day")))),
+            date('Y-m-d 23:59:59', time())
+        ];
+
+        $days_ago30 = [
+            date('Y-m-d 00:00:00', strtotime("-30 day")),
+            date('Y-m-d 23:59:59', time())
+        ];
+
+        return view('detail', [
+            'id' => $id,
+            'today' => $today,
+            'yesterday' => $yesterday,
+            'days_ago7' => $days_ago7,
+            'days_ago30' => $days_ago30,
+        ]);
+    }
+    /**
+     * @notes 导出账户明细Excel
+     * @return \think\response\Json
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author 段誉
+     * @date 2022/4/24 10:20
+     */
+    public function cashExport()
+    {
+        $params = $this->request->get();
+        $result = DividendCashLogic::cash($params, true);
+        if(false === $result) {
+            return JsonServer::error(DividendCashLogic::getError() ?: '导出失败');
+        }
+        return JsonServer::success('', $result);
+    }
+
+
+    /**
+     * @notes 导出佣金提现Excel
+     * @return \think\response\Json
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author 段誉
+     * @date 2022/4/24 10:20
+     */
+    public function orderExport()
+    {
+        $params = $this->request->get();
+        $result = DividendCashLogic::order($params, true);
+        if(false === $result) {
+            return JsonServer::error(DividendCashLogic::getError() ?: '导出失败');
+        }
+        return JsonServer::success('', $result);
+    }
+
+    /**
+     * @notes 导出佣金提现Excel
+     * @return \think\response\Json
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author 段誉
+     * @date 2022/4/24 10:20
+     */
+    public function detailExport()
+    {
+        $params = $this->request->get();
+        $result = DividendCashLogic::detail($params, true);
+        if(false === $result) {
+            return JsonServer::error(DividendCashLogic::getError() ?: '导出失败');
+        }
+        return JsonServer::success('', $result);
+    }
+}

+ 40 - 0
app/admin/controller/setting/Dividend.php

@@ -0,0 +1,40 @@
+<?php
+namespace app\admin\controller\setting;
+
+use app\common\basics\AdminBase;
+use app\common\server\ConfigServer;
+use app\common\server\JsonServer;
+
+/**
+ * 排队设置
+ */
+class Dividend extends AdminBase
+{
+    public function index()
+    {
+        $config = [
+            'dividend_set_money' =>  ConfigServer::get('platform_setting', 'dividend_set_money', 100),
+            'dividend_rate' =>  ConfigServer::get('platform_setting', 'dividend_rate', 0.05),
+            'rebate_rate' =>  ConfigServer::get('platform_setting', 'rebate_rate', 0.2),
+            'rated_money' =>  ConfigServer::get('platform_setting', 'rated_money', 3000),
+            'rated_money_rate' =>  ConfigServer::get('platform_setting', 'rated_money_rate', 0.04),
+
+        ];
+        return view('', [
+            'config' => $config
+        ]);
+    }
+
+
+    public function set()
+    {
+        $post = $this->request->post();
+        ConfigServer::set('platform_setting', 'dividend_set_money', $post['dividend_set_money']); //正常分红额定金额
+        ConfigServer::set('platform_setting', 'dividend_rate', $post['dividend_rate']); //分红池金额进入比例
+        ConfigServer::set('platform_setting', 'rebate_rate', $post['rebate_rate']); //购买积分分红比例
+        ConfigServer::set('platform_setting', 'rated_money', $post['rated_money']); //大额限定金额
+        ConfigServer::set('platform_setting', 'rated_money_rate', $post['rated_money_rate']); //大额分红额定比例
+
+        return JsonServer::success('设置成功');
+    }
+}

+ 314 - 0
app/admin/logic/finance/DividendCashLogic.php

@@ -0,0 +1,314 @@
+<?php
+
+namespace app\admin\logic\finance;
+
+use app\common\basics\Logic;
+use app\common\model\DividendOrder;
+use app\common\model\WithdrawApply;
+use app\common\enum\WithdrawEnum;
+use app\common\server\ExportExcelServer;
+use app\common\model\AccountLog;
+use app\common\model\DividendCashLog;
+use app\common\model\DividendOrderLog;
+use think\facade\Db;
+use think\Exception;
+
+/**
+ * Class
+ * @package app\admin\logic\finance
+ */
+class DividendCashLogic extends Logic
+{
+
+    /**
+     * @notes 分红池明细
+     * @param $get
+     * @return array
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author suny
+     * @date 2021/7/14 10:01 上午
+     */
+    public static function cash($get, $is_export = false)
+    {
+
+        $where = [];
+
+
+        if (isset($get['change_type']) && !empty($get['change_type'])) {
+            $where[] = ['a.change_type', '=', $get['change_type']];
+        }
+
+        if (empty($get['start_time']) && empty($get['end_time'])) {
+            $where[] = ['a.create_time', '>=', strtotime(date("Y-m-d", time()))];
+            $where[] = ['a.create_time', '<=', strtotime(date("Y-m-d", time())) + 86399];
+        }
+
+        //明细时间
+        if (isset($get['start_time']) && $get['start_time'] != '') {
+            $where[] = ['a.create_time', '>=', strtotime($get['start_time'])];
+        }
+
+        if (isset($get['end_time']) && $get['end_time'] != '') {
+            $where[] = ['a.create_time', '<=', strtotime($get['end_time'])];
+        }
+
+        // 导出
+        if (true === $is_export) {
+            return self::cashExport($where);
+        }
+
+        $lists = DividendCashLog::alias('a')
+            ->field('a.*,o.order_sn')
+            ->join('order o', 'o.id = a.order_id')
+            ->append(['change_type_desc'])
+            ->where($where)
+            ->page($get['page'], $get['limit'])
+            ->order('a.id desc')
+            ->select();
+
+        foreach ($lists as &$v){
+            if($v['change_type'] == 2){
+                $v['order_sn'] = DividendOrder::where(['id'=>$v['order_id']])->value('sn');
+            }
+        }
+        $count = DividendCashLog::alias('a')
+            ->field('a.*')
+            ->join('order o', 'o.id = a.order_id')
+            ->where($where)
+            ->order('a.id desc')
+            ->count();
+
+        return ['count' => $count, 'lists' => $lists];
+    }
+
+    /**
+     * @notes 分红订单明细
+     * @param $get
+     * @return array
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author suny
+     * @date 2021/7/14 10:01 上午
+     */
+    public static function order($get, $is_export = false)
+    {
+        $where = [];
+
+        if (empty($get['start_time']) && empty($get['end_time'])) {
+            $where[] = ['do.create_time', '>=', strtotime(date("Y-m-d", time()))];
+            $where[] = ['do.create_time', '<=', strtotime(date("Y-m-d", time())) + 86399];
+        }
+
+        //明细时间
+        if (isset($get['start_time']) && $get['start_time'] != '') {
+            $where[] = ['do.create_time', '>=', strtotime($get['start_time'])];
+        }
+
+        if (isset($get['end_time']) && $get['end_time'] != '') {
+            $where[] = ['do.create_time', '<=', strtotime($get['end_time'])];
+        }
+
+        // 导出
+        if (true === $is_export) {
+            return self::orderExport($where);
+        }
+
+        $lists = DividendOrder::alias('do')
+            ->field('do.*,o.order_sn')
+            ->join('order o', 'o.id = do.order_id')
+            ->append(['status_desc','is_exchange_desc'])
+            ->where($where)
+            ->page($get['page'], $get['limit'])
+            ->order('do.id desc')
+            ->select();
+
+        $count = DividendOrder::alias('do')
+            ->field('do.*,o.order_sn')
+            ->join('order o', 'o.id = do.order_id')
+            ->where($where)
+            ->order('do.id desc')
+            ->count();
+
+        return ['count' => $count, 'lists' => $lists];
+    }
+    /**
+     * @notes 会员佣金提现详情
+     * @param $id
+     * @return array|\think\Model|null
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author suny
+     * @date 2021/7/14 10:01 上午
+     */
+    public static function detail($get, $is_export = false)
+    {
+
+        $where = [];
+        if (isset($get['id']) && $get['id'] != '') {
+            $where[] = ['dol.do_id', '=', $get['id']];
+        }
+        if (empty($get['start_time']) && empty($get['end_time'])) {
+            $where[] = ['dol.create_time', '>=', strtotime(date("Y-m-d", time()))];
+            $where[] = ['dol.create_time', '<=', strtotime(date("Y-m-d", time())) + 86399];
+        }
+
+        //明细时间
+        if (isset($get['start_time']) && $get['start_time'] != '') {
+            $where[] = ['dol.create_time', '>=', strtotime($get['start_time'])];
+        }
+
+        if (isset($get['end_time']) && $get['end_time'] != '') {
+            $where[] = ['dol.create_time', '<=', strtotime($get['end_time'])];
+        }
+
+        // 导出
+        if (true === $is_export) {
+            return self::detailExport($where);
+        }
+
+        $lists = DividendOrderLog::alias('dol')
+            ->field('dol.*,o.order_sn')
+            ->join('order o', 'o.id = dol.order_id')
+            ->where($where)
+            ->page($get['page'], $get['limit'])
+            ->order('dol.id desc')
+            ->select();
+
+        $count = DividendOrderLog::alias('dol')
+            ->field('dol.*,o.order_sn')
+            ->join('order o', 'o.id = dol.order_id')
+            ->where($where)
+            ->order('dol.id desc')
+            ->count();
+
+        return ['count' => $count, 'lists' => $lists];
+    }
+
+
+    /**
+     * @notes 导出Excel
+     * @param array $where
+     * @return array|false
+     * @author 段誉
+     * @date 2022/4/24 10:10
+     */
+    public static function orderExport($where)
+    {
+        try {
+            $lists = DividendOrder::alias('do')
+                ->field('do.*,o.order_sn')
+                ->join('order o', 'o.id = do.order_id')
+                ->append(['status_desc','is_exchange_desc'])
+                ->where($where)
+                ->order('do.id desc')
+                ->select();
+
+            $excelFields = [
+                'id' => 'ID',
+                'sn' => '排队单号',
+                'rated_money' => '目标金额',
+                'money' => '已得金额',
+                'status_desc' => '排队状态',
+                'is_exchange_desc' => '兑换状态',
+                'order_sn' => '来源单号',
+                'update_time' => '更新时间',
+                'create_time' => '记录时间',
+            ];
+
+            $export = new ExportExcelServer();
+            $export->setFileName('排队订单信息');
+            $result = $export->createExcel($excelFields, $lists);
+
+            return ['url' => $result];
+
+        } catch (\Exception $e) {
+            self::$error = $e->getMessage();
+            return false;
+        }
+    }
+
+    /**
+     * @notes 导出Excel
+     * @param array $where
+     * @return array|false
+     * @author 段誉
+     * @date 2022/4/24 10:10
+     */
+    public static function cashExport($where)
+    {
+        try {
+            $lists = DividendCashLog::alias('a')
+                ->field('a.*,o.order_sn')
+                ->join('order o', 'o.id = a.order_id')
+                ->append(['change_type_desc'])
+                ->where($where)
+                ->order('a.id desc')
+                ->select();
+
+            foreach ($lists as &$v){
+                if($v['change_type'] == 2){
+                    $v['order_sn'] = DividendOrder::where(['id'=>$v['order_id']])->value('sn');
+                }
+            }
+
+            $excelFields = [
+                'id' => 'ID',
+                'change_type_desc' => '变动类型',
+                'change_money' => '变动金额',
+                'total_money' => '剩余金额',
+                'order_sn' => '来源单号',
+                'create_time' => '记录时间',
+            ];
+
+            $export = new ExportExcelServer();
+            $export->setFileName('分红订单列表信息');
+            $result = $export->createExcel($excelFields, $lists);
+
+            return ['url' => $result];
+
+        } catch (\Exception $e) {
+            self::$error = $e->getMessage();
+            return false;
+        }
+    }
+
+    /**
+     * @notes 导出Excel
+     * @param array $condition
+     * @return array|false
+     * @author 段誉
+     * @date 2022/4/24 10:10
+     */
+    public static function detailExport($where)
+    {
+        try {
+            $lists = DividendOrderLog::alias('dol')
+                ->field('dol.*,o.order_sn')
+                ->join('order o', 'o.id = dol.order_id')
+                ->where($where)
+                ->order('dol.id desc')
+                ->select();
+
+            $excelFields = [
+
+                'order_sn' => '来源单号',
+                'money' => '金额',
+                'create_time' => '发生时间',
+            ];
+
+            $export = new ExportExcelServer();
+            $export->setFileName('分红订单明细记录');
+            $result = $export->createExcel($excelFields, $lists);
+
+            return ['url' => $result];
+
+        } catch (\Exception $e) {
+            self::$error = $e->getMessage();
+            return false;
+        }
+    }
+}

+ 228 - 0
app/admin/view/finance/dividend/detail.html

@@ -0,0 +1,228 @@
+
+{layout name="layout1" /}
+<style>
+    .layui-table-cell {
+        height:auto;
+    }
+    .goods-content>div:not(:last-of-type) {
+        bwithdrawal-bottom:1px solid #DCDCDC;
+    }
+
+</style>
+
+<div class="wrapper">
+    <div class="layui-card">
+        <div class="layui-card-body">
+        <div class="layui-collapse like-layui-collapse" lay-accordion="" style="bwithdrawal:1px dashed #c4c4c4">
+            <div class="layui-colla-item">
+                <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
+                <div class="layui-colla-content layui-show">
+                    <p>*分红订单详细记录。</p>
+                </div>
+            </div>
+        </div>
+        </div>
+        <div class="layui-tab layui-tab-card" lay-filter="tab-all">
+
+            <div class="layui-card-body layui-form">
+                <div class="layui-form-item">
+                    <div class="layui-row">
+
+                        <div class="layui-inline">
+                            <label class="layui-form-label">记录时间:</label>
+                            <div class="layui-input-inline">
+                                <div class="layui-input-inline">
+                                    <input type="text" name="start_time" class="layui-input" id="start_time"
+                                           placeholder="" autocomplete="off">
+                                </div>
+                            </div>
+                            <div class="layui-input-inline" style="margin-right: 5px;width: 20px;">
+                                <label class="layui-form-mid">至</label>
+                            </div>
+                            <div class="layui-input-inline">
+                                <input type="text" name="end_time" class="layui-input" id="end_time"
+                                       placeholder="" autocomplete="off">
+                            </div>
+                        </div>
+                        <div class="layui-inline">
+                            <div class="layui-btn-group">
+                                <button type="button" id="today" day="1" class="layui-btn layui-btn-sm layui-btn-normal day">今天</button>
+                                <button type="button"  day="-1" class="layui-btn layui-btn-sm layui-btn-primary day">昨天</button>
+                                <button type="button"  day="7" class="layui-btn layui-btn-sm layui-btn-primary day">近7天</button>
+                                <button type="button"  day="30" class="layui-btn layui-btn-sm layui-btn-primary day">近30天</button>
+                            </div>
+                        </div>
+
+                        <div class="layui-inline">
+                            <button class="layui-btn layui-btn-sm layuiadmin-btn-ad {$view_theme_color}" lay-submit
+                                    lay-filter="withdrawal-search">查询
+                            </button>
+                            <button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
+                                    lay-filter="withdrawal-clear-search">重置
+                            </button>
+                            <button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
+                                    lay-filter="data-export">导出
+                            </button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-tab-item layui-show">
+                <div class="layui-card">
+                    <div class="layui-card-body">
+                        <table id="withdrawal-lists" lay-filter="withdrawal-lists"></table>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script>
+      layui.config({
+        version:"{$front_version}",
+        base: '/static/lib/' //静态资源所在路径
+    }).use(['form'], function(){
+        var $ = layui.$
+            , form = layui.form
+            , table = layui.table
+            , element = layui.element
+            , laydate = layui.laydate;
+
+        //图片放大
+        $(document).on('click', '.image-show', function () {
+            var src = $(this).attr('src');
+            like.showImg(src,600);
+        });
+
+        //监听搜索
+        form.on('submit(withdrawal-search)', function (data) {
+            var field = data.field;
+            //执行重载
+            table.reload('withdrawal-lists', {
+                where: field,
+                page: {
+                    curr: 1
+                }
+            });
+        });
+        //清空查询
+        form.on('submit(withdrawal-clear-search)', function () {
+            $('#start_time').val('{$today[0]}');
+            $('#end_time').val('{$today[1]}');
+            $('#today').trigger("click");
+            form.render('select');
+            //刷新列表
+            table.reload('withdrawal-lists', {
+                where: [],
+                page: {
+                    curr: 1
+                }
+            });
+        });
+
+          // 导出
+          form.on('submit(data-export)', function (data) {
+              var field = data.field;
+              like.ajax({
+                  url: '{:url("finance.dividend/detailExport")}'
+                  , data: field
+                  , type: 'get'
+                  , success: function (res) {
+                      if (res.code == 1) {
+                          window.location.href = res.data.url;
+                      }
+                  }
+              });
+          });
+
+        //日期时间范围
+        laydate.render({
+            elem: '#start_time'
+            , type: 'datetime'
+            ,theme: '#1E9FFF'
+            , value: "{$today[0]}"
+        });
+
+        laydate.render({
+            elem: '#end_time'
+            , type: 'datetime'
+            ,theme: '#1E9FFF'
+            ,value: "{$today[1]}"
+        });
+
+
+        //获取列表
+        getList('');
+        //切换列表
+        element.on('tab(tab-all)', function (data) {
+            $('#start_time').val('{$today[0]}');
+            $('#end_time').val('{$today[1]}');
+            $('#today').trigger("click");
+            form.render('select');
+            var type = $(this).attr('data-type');
+            getList(type);
+
+        });
+ 
+        function getList(type) {
+            table.render({
+                elem: '#withdrawal-lists'
+                , url: '{:url("finance.dividend/detail")}?id={$id}'
+                , cols: [[
+                      {field: 'id', title: 'ID', align: 'center',width:80}
+                    , {field: 'order_sn', title: '来源单号', align: 'center',width:220}
+                    , {field: 'money', title: '已得金额', align: 'center',width:120}
+                    , {field: 'create_time', title: '发生时间', align: 'center',width:205}
+                ]]
+                , page: true
+                , text: {none: '暂无数据!'}
+                ,response: {
+                    statusCode: 1 
+                  } 
+                , parseData: function (res) {
+                    return {
+                        "code": res.code,
+                        "msg": res.msg,
+                        "count": res.data.count,
+                        "data": res.data.lists,
+                    };
+                }
+                ,done: function(res, curr, count){
+                    // 解决操作栏因为内容过多换行问题
+                    $(".layui-table-main tr").each(function (index, val) {
+                        $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
+                        $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
+                    });
+                }
+            });
+        }
+
+        $('.day').click(function(){
+            $('.day').removeClass('layui-btn-normal');
+            $('.day').removeClass('layui-btn-primary');
+            $('.day').addClass('layui-btn-primary');
+            $(this).removeClass('layui-btn-primary');
+            $(this).addClass('layui-btn-normal');
+            var day = $(this).attr('day');
+            switch (day) {
+                case '-1':
+                    $('#start_time').val('{$yesterday[0]}');
+                    $('#end_time').val('{$yesterday[1]}');
+                    break;
+                case '1':
+                    $('#start_time').val('{$today[0]}');
+                    $('#end_time').val('{$today[1]}');
+                    break;
+                case '7':
+                    $('#start_time').val('{$days_ago7[0]}');
+                    $('#end_time').val('{$days_ago7[1]}');
+                    break;
+                case '30':
+                    $('#start_time').val('{$days_ago30[0]}');
+                    $('#end_time').val('{$days_ago30[1]}');
+                    break;
+            }
+        });
+    });
+</script>

+ 430 - 0
app/admin/view/finance/dividend/dividend_cash.html

@@ -0,0 +1,430 @@
+
+{layout name="layout1" /}
+<style>
+    .layui-table-cell {
+        height:auto;
+    }
+    .goods-content>div:not(:last-of-type) {
+        bwithdrawal-bottom:1px solid #DCDCDC;
+    }
+
+</style>
+
+<div class="wrapper">
+    <div class="layui-card">
+        <div class="layui-card-body">
+        <div class="layui-collapse like-layui-collapse" lay-accordion="" style="bwithdrawal:1px dashed #c4c4c4">
+            <div class="layui-colla-item">
+                <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
+                <div class="layui-colla-content layui-show">
+                    <p>*分红池资金流水记录。</p>
+                </div>
+            </div>
+        </div>
+        </div>
+        <div class="layui-tab layui-tab-card" lay-filter="tab-all">
+
+            <div class="layui-card-body layui-form">
+                <div class="layui-form-item">
+                    <div class="layui-row">
+                        <div class="layui-inline">
+                            <label class="layui-form-label">分红池余额:</label>
+                        </div>
+                        <div class="layui-inline">
+                            <label class="layui-form-label" style="color:orangered;text-align: left;">{$dividend_cash}</label>
+                        </div>
+
+
+                        <div class="layui-inline">
+                            <label class="layui-form-label">变动类型:</label>
+                            <div class="layui-input-block">
+                                <select name="change_type" id="change_type">
+                                    <option value="">全部</option>
+                                    <option value="1">增加</option>
+                                    <option value="2">减少</option>
+                                </select>
+                            </div>
+                        </div>
+
+                        <div class="layui-inline">
+                            <label class="layui-form-label">记录时间:</label>
+                            <div class="layui-input-inline">
+                                <div class="layui-input-inline">
+                                    <input type="text" name="start_time" class="layui-input" id="start_time"
+                                           placeholder="" autocomplete="off">
+                                </div>
+                            </div>
+                            <div class="layui-input-inline" style="margin-right: 5px;width: 20px;">
+                                <label class="layui-form-mid">至</label>
+                            </div>
+                            <div class="layui-input-inline">
+                                <input type="text" name="end_time" class="layui-input" id="end_time"
+                                       placeholder="" autocomplete="off">
+                            </div>
+                        </div>
+                        <div class="layui-inline">
+                            <div class="layui-btn-group">
+                                <button type="button" id="today" day="1" class="layui-btn layui-btn-sm layui-btn-normal day">今天</button>
+                                <button type="button"  day="-1" class="layui-btn layui-btn-sm layui-btn-primary day">昨天</button>
+                                <button type="button"  day="7" class="layui-btn layui-btn-sm layui-btn-primary day">近7天</button>
+                                <button type="button"  day="30" class="layui-btn layui-btn-sm layui-btn-primary day">近30天</button>
+                            </div>
+                        </div>
+
+                        <div class="layui-inline">
+                            <button class="layui-btn layui-btn-sm layuiadmin-btn-ad {$view_theme_color}" lay-submit
+                                    lay-filter="withdrawal-search">查询
+                            </button>
+                            <button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
+                                    lay-filter="withdrawal-clear-search">重置
+                            </button>
+                            <button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
+                                    lay-filter="data-export">导出
+                            </button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-tab-item layui-show">
+                <div class="layui-card">
+                    <div class="layui-card-body">
+                        <table id="withdrawal-lists" lay-filter="withdrawal-lists"></table>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script>
+      layui.config({
+        version:"{$front_version}",
+        base: '/static/lib/' //静态资源所在路径
+    }).use(['form'], function(){
+        var $ = layui.$
+            , form = layui.form
+            , table = layui.table
+            , element = layui.element
+            , laydate = layui.laydate;
+
+        //图片放大
+        $(document).on('click', '.image-show', function () {
+            var src = $(this).attr('src');
+            like.showImg(src,600);
+        });
+
+        //监听搜索
+        form.on('submit(withdrawal-search)', function (data) {
+            var field = data.field;
+            //执行重载
+            table.reload('withdrawal-lists', {
+                where: field,
+                page: {
+                    curr: 1
+                }
+            });
+        });
+        //清空查询
+        form.on('submit(withdrawal-clear-search)', function () {
+            $('#change_type').val('');
+            $('#start_time').val('{$today[0]}');
+            $('#end_time').val('{$today[1]}');
+            $('#today').trigger("click");
+            form.render('select');
+            //刷新列表
+            table.reload('withdrawal-lists', {
+                where: [],
+                page: {
+                    curr: 1
+                }
+            });
+        });
+
+          // 导出
+          form.on('submit(data-export)', function (data) {
+              var field = data.field;
+              like.ajax({
+                  url: '{:url("finance.dividend/cashExport")}'
+                  , data: field
+                  , type: 'get'
+                  , success: function (res) {
+                      if (res.code == 1) {
+                          window.location.href = res.data.url;
+                      }
+                  }
+              });
+          });
+
+        //日期时间范围
+        laydate.render({
+            elem: '#start_time'
+            , type: 'datetime'
+            ,theme: '#1E9FFF'
+            , value: "{$today[0]}"
+        });
+
+        laydate.render({
+            elem: '#end_time'
+            , type: 'datetime'
+            ,theme: '#1E9FFF'
+            ,value: "{$today[1]}"
+        });
+
+
+        //获取列表
+        getList('');
+        //切换列表
+        element.on('tab(tab-all)', function (data) {
+            $('#change_type').val('');
+            $('#start_time').val('{$today[0]}');
+            $('#end_time').val('{$today[1]}');
+            $('#today').trigger("click");
+            form.render('select');
+            var type = $(this).attr('data-type');
+            getList(type);
+            if (type !== ''){
+                $('.withdrawal_status').hide();
+            }else {
+                $('.withdrawal_status').show();
+            }
+        });
+ 
+        function getList(type) {
+            table.render({
+                elem: '#withdrawal-lists'
+                , url: '{:url("finance.dividend/dividend_cash")}'
+                , cols: [[
+                      {field: 'id', title: 'ID', align: 'center',width:80}
+                    , {field: 'change_type_desc', title: '变动类型', align: 'center',width:180}
+                    , {field: 'change_money', title: '变动金额', align: 'center',width:180}
+                    , {field: 'total_money', title: '剩余金额', align: 'center',width:180}
+                    , {field: 'order_sn', title: '来源单号', align: 'center',width:210}
+                    , {field: 'remark', title: '备注', align: 'center'}
+                    , {field: 'create_time', title: '记录时间', align: 'center',width:205}
+                ]]
+                , page: true
+                , text: {none: '暂无数据!'}
+                ,response: {
+                    statusCode: 1 
+                  } 
+                , parseData: function (res) {
+                    return {
+                        "code": res.code,
+                        "msg": res.msg,
+                        "count": res.data.count,
+                        "data": res.data.lists,
+                    };
+                }
+                ,done: function(res, curr, count){
+                    // 解决操作栏因为内容过多换行问题
+                    $(".layui-table-main tr").each(function (index, val) {
+                        $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
+                        $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
+                    });
+                }
+            });
+        }
+
+        //监听工具条
+        table.on('tool(withdrawal-lists)', function (obj) {
+            var id = obj.data.id;
+            if(obj.event === 'detail'){
+                layer.open({
+                    type: 2
+                    ,title: '订单详情'
+                    ,content: '{:url("withdrawal.withdrawal/detail")}?id='+id
+                    ,area: ['90%', '90%']
+                    ,yes: function(index, layero){
+                        table.reload('withdrawal-lists');
+                    }
+                })
+            }
+
+            //删除订单
+            if(obj.event === 'del'){
+                layer.confirm('删除后订单将消失,确认删除订单吗?', {
+                    btn: ['确认','取消'] //按钮
+                }, function(){
+                    like.ajax({
+                        url: '{:url("withdrawal.withdrawal/del")}'
+                        , data: {'withdrawal_id': id}
+                        , type: 'post'
+                        , success: function (res) {
+                            if (res.code == 1) {
+                                layui.layer.msg(res.msg, {
+                                    offset: '15px'
+                                    , icon: 1
+                                    , time: 1100
+                                },function () {
+                                    table.reload('withdrawal-lists');
+                                });
+                            }
+                        },
+                    });
+                });
+            }
+
+            //取消订单
+            if(obj.event === 'cancel'){
+                layer.confirm('确认取消订单吗?', {
+                    btn: ['确认','取消'] //按钮
+                }, function(){
+                    like.ajax({
+                        url: '{:url("withdrawal.withdrawal/cancel")}'
+                        , data: {'withdrawal_id': id}
+                        , type: 'post'
+                        , success: function (res) {
+                            if (res.code == 1) {
+                                layui.layer.msg(res.msg, {
+                                    offset: '15px'
+                                    , icon: 1
+                                    , time: 1100
+                                },function () {
+                                    table.reload('withdrawal-lists');
+                                });
+                            }
+                        },
+                    });
+                });
+            }
+
+            //发货
+            if(obj.event === 'delivery'){
+                layer.open({
+                    type: 2
+                    ,title: '订单发货'
+                    ,content: '{:url("withdrawal.withdrawal/delivery")}?id='+id
+                    ,area: ['90%', '90%']
+                    ,yes: function(index, layero){
+
+                    }
+                })
+            }
+
+            //物流信息
+            if(obj.event === 'express'){
+                layer.open({
+                    type: 2
+                    ,title: '订单发货'
+                    ,content: '{:url("withdrawal.withdrawal/express")}?id='+id
+                    ,area: ['90%', '90%']
+                    ,yes: function(index, layero){
+
+                    }
+                })
+            }
+
+
+            //确认收货
+            if(obj.event === 'confirm'){
+                layer.confirm('确认订单商家已收货吗?', {
+                    btn: ['确认','取消'] //按钮
+                }, function(){
+                    like.ajax({
+                        url: '{:url("withdrawal.withdrawal/confirm")}'
+                        , data: {'withdrawal_id': id}
+                        , type: 'post'
+                        , success: function (res) {
+                            if (res.code == 1) {
+                                layui.layer.msg(res.msg, {
+                                    offset: '15px'
+                                    , icon: 1
+                                    , time: 1100
+                                },function () {
+                                    table.reload('withdrawal-lists');
+                                });
+                            }
+                        },
+                    });
+                });
+            }
+
+            //商家备注
+            if(obj.event === 'remarks') {
+
+                like.ajax({
+                    url: '{:url("withdrawal.withdrawal/remarks")}'
+                    , data: {'id': id}
+                    , type: 'get'
+                    , success: function (res) {
+                        if (res.code === 1) {
+                            layer.prompt({title: '备注信息', formType: 2, value: res.data.withdrawal_remarks}, function(value, index){
+                                layer.close(index);
+                                like.ajax({
+                                    url: '{:url("withdrawal.withdrawal/remarks")}'
+                                    , data: {'id': id, "withdrawal_remarks": value }
+                                    , type: 'post'
+                                    , success: function (res) {
+                                        if (res.code === 1) {
+                                            layui.layer.msg(res.msg, {
+                                                offset: '15px'
+                                                , icon: 1
+                                                , time: 1100
+                                            });
+                                        }
+                                    }
+                                });
+
+                            });
+                        }
+                    }
+                });
+
+            }
+
+
+            if(obj.event ==='print'){
+                layer.confirm('确定要打印订单吗?', function(index){
+                    like.ajax({
+                        url:'{:url("withdrawal.withdrawal/withdrawalPrint")}',
+                        data:{id:id},
+                        type:"post",
+                        success:function(res)
+                        {
+                            if(res.code == 1)
+                            {
+                                layui.layer.msg(res.msg, {
+                                    offset: '15px'
+                                    , icon: 1
+                                    , time: 1100
+                                });
+                                layer.close(index); //关闭弹层
+                                table.reload('printer-lists'); //数据刷新
+                            }
+                        }
+                    });
+                    layer.close(index);
+
+
+                })
+
+            }
+        });
+        $('.day').click(function(){
+            $('.day').removeClass('layui-btn-normal');
+            $('.day').removeClass('layui-btn-primary');
+            $('.day').addClass('layui-btn-primary');
+            $(this).removeClass('layui-btn-primary');
+            $(this).addClass('layui-btn-normal');
+            var day = $(this).attr('day');
+            switch (day) {
+                case '-1':
+                    $('#start_time').val('{$yesterday[0]}');
+                    $('#end_time').val('{$yesterday[1]}');
+                    break;
+                case '1':
+                    $('#start_time').val('{$today[0]}');
+                    $('#end_time').val('{$today[1]}');
+                    break;
+                case '7':
+                    $('#start_time').val('{$days_ago7[0]}');
+                    $('#end_time').val('{$days_ago7[1]}');
+                    break;
+                case '30':
+                    $('#start_time').val('{$days_ago30[0]}');
+                    $('#end_time').val('{$days_ago30[1]}');
+                    break;
+            }
+        });
+    });
+</script>

+ 413 - 0
app/admin/view/finance/dividend/dividend_order.html

@@ -0,0 +1,413 @@
+
+{layout name="layout1" /}
+<style>
+    .layui-table-cell {
+        height:auto;
+    }
+    .goods-content>div:not(:last-of-type) {
+        bwithdrawal-bottom:1px solid #DCDCDC;
+    }
+
+</style>
+
+<div class="wrapper">
+    <div class="layui-card">
+        <div class="layui-card-body">
+        <div class="layui-collapse like-layui-collapse" lay-accordion="" style="bwithdrawal:1px dashed #c4c4c4">
+            <div class="layui-colla-item">
+                <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
+                <div class="layui-colla-content layui-show">
+                    <p>*分红订单排队记录。</p>
+                </div>
+            </div>
+        </div>
+        </div>
+        <div class="layui-tab layui-tab-card" lay-filter="tab-all">
+
+            <div class="layui-card-body layui-form">
+                <div class="layui-form-item">
+                    <div class="layui-row">
+
+                        <div class="layui-inline">
+                            <label class="layui-form-label">记录时间:</label>
+                            <div class="layui-input-inline">
+                                <div class="layui-input-inline">
+                                    <input type="text" name="start_time" class="layui-input" id="start_time"
+                                           placeholder="" autocomplete="off">
+                                </div>
+                            </div>
+                            <div class="layui-input-inline" style="margin-right: 5px;width: 20px;">
+                                <label class="layui-form-mid">至</label>
+                            </div>
+                            <div class="layui-input-inline">
+                                <input type="text" name="end_time" class="layui-input" id="end_time"
+                                       placeholder="" autocomplete="off">
+                            </div>
+                        </div>
+                        <div class="layui-inline">
+                            <div class="layui-btn-group">
+                                <button type="button" id="today" day="1" class="layui-btn layui-btn-sm layui-btn-normal day">今天</button>
+                                <button type="button"  day="-1" class="layui-btn layui-btn-sm layui-btn-primary day">昨天</button>
+                                <button type="button"  day="7" class="layui-btn layui-btn-sm layui-btn-primary day">近7天</button>
+                                <button type="button"  day="30" class="layui-btn layui-btn-sm layui-btn-primary day">近30天</button>
+                            </div>
+                        </div>
+
+                        <div class="layui-inline">
+                            <button class="layui-btn layui-btn-sm layuiadmin-btn-ad {$view_theme_color}" lay-submit
+                                    lay-filter="withdrawal-search">查询
+                            </button>
+                            <button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
+                                    lay-filter="withdrawal-clear-search">重置
+                            </button>
+                            <button class="layui-btn layui-btn-sm layuiadmin-btn-ad layui-btn-primary " lay-submit
+                                    lay-filter="data-export">导出
+                            </button>
+                        </div>
+                        <!--操作-->
+                        <script type="text/html" id="withdraw-operation">
+                            <a class="layui-btn layui-btn-primary layui-btn-sm" lay-event="detail">详情</a>
+                        </script>
+                    </div>
+                </div>
+            </div>
+            <div class="layui-tab-item layui-show">
+                <div class="layui-card">
+                    <div class="layui-card-body">
+                        <table id="withdrawal-lists" lay-filter="withdrawal-lists"></table>
+
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script>
+      layui.config({
+        version:"{$front_version}",
+        base: '/static/lib/' //静态资源所在路径
+    }).use(['form'], function(){
+        var $ = layui.$
+            , form = layui.form
+            , table = layui.table
+            , element = layui.element
+            , laydate = layui.laydate;
+
+        //图片放大
+        $(document).on('click', '.image-show', function () {
+            var src = $(this).attr('src');
+            like.showImg(src,600);
+        });
+
+        //监听搜索
+        form.on('submit(withdrawal-search)', function (data) {
+            var field = data.field;
+            //执行重载
+            table.reload('withdrawal-lists', {
+                where: field,
+                page: {
+                    curr: 1
+                }
+            });
+        });
+        //清空查询
+        form.on('submit(withdrawal-clear-search)', function () {
+            $('#start_time').val('{$today[0]}');
+            $('#end_time').val('{$today[1]}');
+            $('#today').trigger("click");
+            form.render('select');
+            //刷新列表
+            table.reload('withdrawal-lists', {
+                where: [],
+                page: {
+                    curr: 1
+                }
+            });
+        });
+
+          // 导出
+          form.on('submit(data-export)', function (data) {
+              var field = data.field;
+              like.ajax({
+                  url: '{:url("finance.dividend/orderExport")}'
+                  , data: field
+                  , type: 'get'
+                  , success: function (res) {
+                      if (res.code == 1) {
+                          window.location.href = res.data.url;
+                      }
+                  }
+              });
+          });
+
+        //日期时间范围
+        laydate.render({
+            elem: '#start_time'
+            , type: 'datetime'
+            ,theme: '#1E9FFF'
+            , value: "{$today[0]}"
+        });
+
+        laydate.render({
+            elem: '#end_time'
+            , type: 'datetime'
+            ,theme: '#1E9FFF'
+            ,value: "{$today[1]}"
+        });
+
+
+        //获取列表
+        getList('');
+        //切换列表
+        element.on('tab(tab-all)', function (data) {
+            $('#start_time').val('{$today[0]}');
+            $('#end_time').val('{$today[1]}');
+            $('#today').trigger("click");
+            form.render('select');
+            var type = $(this).attr('data-type');
+            getList(type);
+
+        });
+ 
+        function getList(type) {
+            table.render({
+                elem: '#withdrawal-lists'
+                , url: '{:url("finance.dividend/dividend_order")}'
+                , cols: [[
+                      {field: 'id', title: 'ID', align: 'center',width:80}
+                    , {field: 'sn', title: '排队单号', align: 'center',width:220}
+                    , {field: 'rated_money', title: '目标金额', align: 'center',width:120}
+                    , {field: 'money', title: '已得金额', align: 'center',width:120}
+                    , {field: 'status_desc', title: '排队状态', align: 'center',width:120}
+                    , {field: 'is_exchange_desc', title: '兑换状态', align: 'center',width:120}
+                    , {field: 'order_sn', title: '来源单号', align: 'center',width:220}
+                    , {field: 'update_time', title: '最后更新时间', align: 'center',width:205}
+                    , {field: 'create_time', title: '记录时间', align: 'center',width:205}
+                     ,{fixed: 'right' ,title: '操作', align: 'center',width:150, toolbar: '#withdraw-operation'}
+                ]]
+                , page: true
+                , text: {none: '暂无数据!'}
+                ,response: {
+                    statusCode: 1 
+                  } 
+                , parseData: function (res) {
+                    return {
+                        "code": res.code,
+                        "msg": res.msg,
+                        "count": res.data.count,
+                        "data": res.data.lists,
+                    };
+                }
+                ,done: function(res, curr, count){
+                    // 解决操作栏因为内容过多换行问题
+                    $(".layui-table-main tr").each(function (index, val) {
+                        $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
+                        $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
+                    });
+                }
+            });
+        }
+
+        //监听工具条
+        table.on('tool(withdrawal-lists)', function (obj) {
+            var id = obj.data.id;
+            if(obj.event === 'detail'){
+                layer.open({
+                    type: 2
+                    ,title: '排队订单详情'
+                    ,content: '{:url("finance.dividend/detail")}?id='+id
+                    ,area: ['45%', '90%']
+                    ,yes: function(index, layero){
+                        table.reload('withdrawal-lists');
+                    }
+                })
+            }
+
+            //删除订单
+            if(obj.event === 'del'){
+                layer.confirm('删除后订单将消失,确认删除订单吗?', {
+                    btn: ['确认','取消'] //按钮
+                }, function(){
+                    like.ajax({
+                        url: '{:url("withdrawal.withdrawal/del")}'
+                        , data: {'withdrawal_id': id}
+                        , type: 'post'
+                        , success: function (res) {
+                            if (res.code == 1) {
+                                layui.layer.msg(res.msg, {
+                                    offset: '15px'
+                                    , icon: 1
+                                    , time: 1100
+                                },function () {
+                                    table.reload('withdrawal-lists');
+                                });
+                            }
+                        },
+                    });
+                });
+            }
+
+            //取消订单
+            if(obj.event === 'cancel'){
+                layer.confirm('确认取消订单吗?', {
+                    btn: ['确认','取消'] //按钮
+                }, function(){
+                    like.ajax({
+                        url: '{:url("withdrawal.withdrawal/cancel")}'
+                        , data: {'withdrawal_id': id}
+                        , type: 'post'
+                        , success: function (res) {
+                            if (res.code == 1) {
+                                layui.layer.msg(res.msg, {
+                                    offset: '15px'
+                                    , icon: 1
+                                    , time: 1100
+                                },function () {
+                                    table.reload('withdrawal-lists');
+                                });
+                            }
+                        },
+                    });
+                });
+            }
+
+            //发货
+            if(obj.event === 'delivery'){
+                layer.open({
+                    type: 2
+                    ,title: '订单发货'
+                    ,content: '{:url("withdrawal.withdrawal/delivery")}?id='+id
+                    ,area: ['90%', '90%']
+                    ,yes: function(index, layero){
+
+                    }
+                })
+            }
+
+            //物流信息
+            if(obj.event === 'express'){
+                layer.open({
+                    type: 2
+                    ,title: '订单发货'
+                    ,content: '{:url("withdrawal.withdrawal/express")}?id='+id
+                    ,area: ['90%', '90%']
+                    ,yes: function(index, layero){
+
+                    }
+                })
+            }
+
+
+            //确认收货
+            if(obj.event === 'confirm'){
+                layer.confirm('确认订单商家已收货吗?', {
+                    btn: ['确认','取消'] //按钮
+                }, function(){
+                    like.ajax({
+                        url: '{:url("withdrawal.withdrawal/confirm")}'
+                        , data: {'withdrawal_id': id}
+                        , type: 'post'
+                        , success: function (res) {
+                            if (res.code == 1) {
+                                layui.layer.msg(res.msg, {
+                                    offset: '15px'
+                                    , icon: 1
+                                    , time: 1100
+                                },function () {
+                                    table.reload('withdrawal-lists');
+                                });
+                            }
+                        },
+                    });
+                });
+            }
+
+            //商家备注
+            if(obj.event === 'remarks') {
+
+                like.ajax({
+                    url: '{:url("withdrawal.withdrawal/remarks")}'
+                    , data: {'id': id}
+                    , type: 'get'
+                    , success: function (res) {
+                        if (res.code === 1) {
+                            layer.prompt({title: '备注信息', formType: 2, value: res.data.withdrawal_remarks}, function(value, index){
+                                layer.close(index);
+                                like.ajax({
+                                    url: '{:url("withdrawal.withdrawal/remarks")}'
+                                    , data: {'id': id, "withdrawal_remarks": value }
+                                    , type: 'post'
+                                    , success: function (res) {
+                                        if (res.code === 1) {
+                                            layui.layer.msg(res.msg, {
+                                                offset: '15px'
+                                                , icon: 1
+                                                , time: 1100
+                                            });
+                                        }
+                                    }
+                                });
+
+                            });
+                        }
+                    }
+                });
+
+            }
+
+
+            if(obj.event ==='print'){
+                layer.confirm('确定要打印订单吗?', function(index){
+                    like.ajax({
+                        url:'{:url("withdrawal.withdrawal/withdrawalPrint")}',
+                        data:{id:id},
+                        type:"post",
+                        success:function(res)
+                        {
+                            if(res.code == 1)
+                            {
+                                layui.layer.msg(res.msg, {
+                                    offset: '15px'
+                                    , icon: 1
+                                    , time: 1100
+                                });
+                                layer.close(index); //关闭弹层
+                                table.reload('printer-lists'); //数据刷新
+                            }
+                        }
+                    });
+                    layer.close(index);
+
+
+                })
+
+            }
+        });
+        $('.day').click(function(){
+            $('.day').removeClass('layui-btn-normal');
+            $('.day').removeClass('layui-btn-primary');
+            $('.day').addClass('layui-btn-primary');
+            $(this).removeClass('layui-btn-primary');
+            $(this).addClass('layui-btn-normal');
+            var day = $(this).attr('day');
+            switch (day) {
+                case '-1':
+                    $('#start_time').val('{$yesterday[0]}');
+                    $('#end_time').val('{$yesterday[1]}');
+                    break;
+                case '1':
+                    $('#start_time').val('{$today[0]}');
+                    $('#end_time').val('{$today[1]}');
+                    break;
+                case '7':
+                    $('#start_time').val('{$days_ago7[0]}');
+                    $('#end_time').val('{$days_ago7[1]}');
+                    break;
+                case '30':
+                    $('#start_time').val('{$days_ago30[0]}');
+                    $('#end_time').val('{$days_ago30[1]}');
+                    break;
+            }
+        });
+    });
+</script>

+ 145 - 0
app/admin/view/setting/dividend/index.html

@@ -0,0 +1,145 @@
+{layout name="layout1" /}
+<style>
+    .layui-form-label {
+        width: 220px;
+    }
+</style>
+<div class="wrapper">
+    <div class="layui-card">
+        <div class="layui-card-body">
+            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
+                <div class="layui-colla-item">
+                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
+                    <div class="layui-colla-content layui-show">
+                        <p>*设置排队订单分红额度,比例等信息</p>
+                    </div>
+                </div>
+            </div>
+<!--            表单区域-->
+            <div class="layui-form" style="margin-top: 15px;">
+
+                <div class="layui-form-item">
+                    <lable class="layui-form-label">正常分红额定金额:</lable>
+                    <div class="layui-inline">
+                        <input type="number" min="0" name="dividend_set_money" value="{$config.dividend_set_money}" class="layui-input" step="1"  min="0" >
+                    </div>
+<!--                    <div class="layui-inline">-->
+<!--                        元可赠送1成长值-->
+<!--                    </div>-->
+                </div>
+                <div class="layui-form-item">
+                    <lable class="layui-form-label"></lable>
+                    <div class="layui-input-block">
+                        <span class="layui-word-aux">计算小额正常订单达到设置的金额后,排队订单结束,结算分红</span>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <lable class="layui-form-label">分红池划入金额比例:</lable>
+                    <div class="layui-inline">
+                        <input type="number" min="0" name="dividend_rate" value="{$config.dividend_rate}" class="layui-input" step="0.01"  min="0" >
+                    </div>
+<!--                    <div class="layui-inline">-->
+<!--                        分钟-->
+<!--                    </div>-->
+                </div>
+                <div class="layui-form-item">
+                    <lable class="layui-form-label"></lable>
+                    <div class="layui-input-block">
+                        <span class="layui-word-aux">每笔订单结算后,按下单金额比例划入分红池当作分红奖金</span>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <lable class="layui-form-label">排队订单获得金额比例:</lable>
+                    <div class="layui-inline">
+                        <input type="number" min="0" lay-verify="number|max" name="rebate_rate" value="{$config.rebate_rate}" class="layui-input" step="0.1"  min="0" >
+                    </div>
+<!--                    <div class="layui-inline">-->
+<!--                        分钟-->
+<!--                    </div>-->
+                </div>
+                <div class="layui-form-item">
+                    <lable class="layui-form-label"></lable>
+                    <div class="layui-input-block">
+                        <span class="layui-word-aux">当订单结算时,给排队订单按比例划入金额。</span>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <lable class="layui-form-label">分红大额限定金额:</lable>
+                    <div class="layui-inline">
+                        <input type="number" min="0" name="rated_money" value="{$config.rated_money}" class="layui-input" step="1"  min="0" onkeyup="this.value= this.value.match(/\d+(\.\d{0,2})?/) ? this.value.match(/\d+(\.\d{0,2})?/)[0] : ''">
+                    </div>
+<!--                    <div class="layui-inline">-->
+<!--                        天-->
+<!--                    </div>-->
+                </div>
+                <div class="layui-form-item">
+                    <lable class="layui-form-label"></lable>
+                    <div class="layui-input-block">
+                        <span class="layui-word-aux">特定金额订单限定额度,当达到设定金额后按照特殊逻辑生成分红订单,加速订单释放</span>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <lable class="layui-form-label">大额度分红释放比例:</lable>
+                    <div class="layui-inline">
+                        <input type="number" min="0" name="rated_money_rate" value="{$config.rated_money_rate}" class="layui-input" step="0.01"  min="0" >
+                    </div>
+<!--                    <div class="layui-inline">-->
+<!--                        天-->
+<!--                    </div>-->
+                </div>
+                <div class="layui-form-item">
+                    <lable class="layui-form-label"></lable>
+                    <div class="layui-input-block">
+                        <span class="layui-word-aux">当订单为大额订单时,按照此比例生成排队订单</span>
+                    </div>
+                </div>
+                <div class="layui-form-item">
+                    <lable class="layui-form-label"></lable>
+                    <div class="layui-input-block">
+                        <button class="layui-btn layui-btn-normal" lay-submit lay-filter="set">确定</button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<script>
+    layui.config({
+        version:"{$front_version}",
+        base: '/static/lib/' //静态资源所在路径
+    }).use(['form','element'], function(){
+        var $ = layui.$,form = layui.form,element = layui.element;
+        
+        form.verify({
+            Ndouble:[
+                /^[0-9]+([.]{1}[0-9]+){0,1}$/
+                ,'只能输入正数哦'
+            ],
+            max: function (value) {
+                if (value > 60) {
+                    return '最大值不能超过60';
+                }
+            }
+        });
+        form.on('submit(set)', function(data) {
+            like.ajax({
+                url:'{:url("setting.dividend/set")}',
+                data: data.field,
+                type:"post",
+                success:function(res)
+                {
+                    if(res.code == 1)
+                    {
+                        layui.layer.msg(res.msg, {
+                            offset: '15px'
+                            , icon: 1
+                            , time: 1000
+                        });
+                    }
+                }
+            });
+        });
+
+    });
+</script>

+ 6 - 0
app/common.php

@@ -43,6 +43,12 @@ function generatePassword($plaintext, $salt)
     return md5($plaintext . $salt);
 }
 
+/*
+ * 导出数据到日志文件
+ * */
+function outFileLog($data,$filename='log',$title='data'){
+    file_put_contents(runtime_path() . 'log/'.$filename.'.txt', PHP_EOL .date('Y-m-d h:i:s', time()).'~'.$title.':' . json_encode($data,JSON_UNESCAPED_UNICODE), FILE_APPEND);
+}
 
 /**
  * Notes: 大写字母

+ 215 - 1
app/common/command/AwardIntegral.php

@@ -23,6 +23,9 @@ namespace app\common\command;
 use app\common\enum\OrderEnum;
 use app\common\logic\AccountLogLogic;
 use app\common\model\AccountLog;
+use app\common\model\DividendCashLog;
+use app\common\model\DividendOrder;
+use app\common\model\DividendOrderLog;
 use app\common\model\order\Order;
 use app\common\model\user\User;
 use app\common\server\ConfigServer;
@@ -51,7 +54,7 @@ class AwardIntegral extends Command
                 ['award_integral_status', '>', 0],
                 ['is_award_integral', '=', 0],
                 ['pay_status', '=', 1]
-            ])->select()->toArray();
+            ])->order('id asc')->select()->toArray();
 
             foreach ($orders as $order) {
                 if ($order['award_integral'] <= 0) {
@@ -69,12 +72,223 @@ class AwardIntegral extends Command
                 User::where('id',$order['user_id'])->inc('user_integral', $order['award_integral'])->update();
                 Order::update(['is_award_integral'=>1,'update_time'=>$time],['id'=>$order['id']]);
                 AccountLogLogic::AccountRecord($order['user_id'], $order['award_integral'], 1, AccountLog::consume_award_integral, '', $order['id'], $order['order_sn']);
+
+                $this->update_dividend_info($order);
             }
 
+
             return true;
         } catch (\Exception $e) {
             Log::write('结算消费赠送积分异常:'.$e->getMessage());
             return false;
         }
     }
+    //更新分红信息
+    protected function update_dividend_info($orders){
+//        outFileLog($orders,'award_integral','orders');
+        if(empty($orders)) return false;
+
+        $dividend_cash = ConfigServer::get('platform_setting', 'dividend_cash', 0);
+        $dividend_set_money = ConfigServer::get('platform_setting', 'dividend_set_money', 100);
+        $dividend_rate = ConfigServer::get('platform_setting', 'dividend_rate', 0.04);
+        $rebate_rate = ConfigServer::get('platform_setting', 'rebate_rate', 0.2);
+
+        $change_money = $orders['order_amount']*$dividend_rate;
+
+        $total_cash = $dividend_cash+$change_money;
+
+        //更新分红池金额
+        ConfigServer::set('platform_setting', 'dividend_cash', $total_cash);
+
+        //添加分红池记录
+        $this->addDividendCashLog($change_money,$orders['id'],1,$total_cash,'订单【'.$orders['order_sn'].'】增加分红池金额');
+
+        //检查方法分红奖励
+
+        $this->sendDividendCash();
+
+
+        //增加排队列表
+        $linret = $this->lineUp($orders,$dividend_set_money,$rebate_rate);
+
+        return true;
+    }
+    //增加分红池资金变化记录
+    public function addDividendCashLog($change_money,$order_id,$change_type,$dividend_cash,$remark,$shop_id=0){
+        $saveData['change_type'] = $change_type;
+        $saveData['order_id'] = $order_id;
+        $saveData['change_money'] = $change_money;
+        $saveData['total_money'] = $dividend_cash;
+        $saveData['remark'] = $remark;
+        $saveData['shop_id'] = $shop_id;
+        $ret = DividendCashLog::create($saveData);
+        return $ret;
+    }
+
+    //开始进入排队
+    protected function lineUp($order,$dividend_set_money=100,$rebate_rate=0.2){
+        $rated_money = ConfigServer::get('platform_setting', 'rated_money', 3000);//大额额定金额
+        $rated_money_rate = ConfigServer::get('platform_setting', 'rated_money_rate', 0.04);//大额分红额定比例
+        $order_money = $order['order_amount'];
+        if($order_money >= $rated_money){
+            $dividend_set_money = round($order_money*$rated_money_rate,2);  //分红额定金额
+        }
+        $count = ceil($order_money/$dividend_set_money);
+//        outFileLog($count,'award_integral','$count');
+        if($count>1){
+            $dividend_money = 0;  //当前计入分红额度
+            for($i = 0 ;$i<$count ;$i++){
+                $j = $i+1;
+
+                $flag_money = $dividend_set_money*$j;
+
+                if($flag_money<$order_money){
+                    $dividend_money = $dividend_set_money;
+                }else{
+                    $dividend_money = $order_money-$dividend_set_money*$i;
+
+                }
+
+                if($j<10){
+                    $sn = $order['order_sn'].'0'.$j;
+                }else{
+                    $sn = $order['order_sn'].$j;
+                }
+                $this->createDividendOrder($order,$dividend_money,$rebate_rate,$dividend_set_money,$sn);
+            }
+        }else{
+            $sn=$order['order_sn'].'01';
+            $this->createDividendOrder($order,$order_money,$rebate_rate,$dividend_set_money,$sn);
+        }
+    }
+    //创建排队信息
+    /*
+     * $money  计算进入分红的金额
+     * $dividend_set_money  分红额定金额 满了结束排队
+     * */
+    public function createDividendOrder($order,$money,$rebate_rate,$dividend_set_money=100,$sn){
+
+        //给排队第一个人加佣金
+
+        $dowhere['status'] = 0;
+        $doOrder = DividendOrder::where($dowhere)->order('id asc')->select()->toArray();
+        if($doOrder){
+
+            //插入排队表信息
+            $this->createData($order,0,$dividend_set_money,$sn);
+
+            $change_money = round($money*$rebate_rate,2);
+            foreach($doOrder as &$dov){
+                if($change_money<=0) break;
+                $diff_money = $dov['rated_money'] - $dov['money'];
+                if($diff_money>=$change_money){
+                    //变动金额达不到排队订单完结状态
+                    $this->updateUserDividendOrder($dov,$change_money,$order,$dividend_set_money,0);
+                    $change_money = 0;
+                }else{
+                    //当前排队订单完结
+                    $change_money = $change_money-$diff_money;
+                    $this->updateUserDividendOrder($dov,$diff_money,$order,$dividend_set_money,1);
+                }
+            }
+        }else {
+            $data_money = round($money * $rebate_rate, 2);
+            $this->createData($order,$data_money,$dividend_set_money,$sn);
+        }
+
+        return true ;
+    }
+    //插入排队信息以及记录
+    protected function createData($order,$money,$dividend_set_money,$sn=''){
+        //插入排队表信息
+        $saveDividendOrderData['sn'] = $sn;
+        $saveDividendOrderData['user_id'] = $order['user_id'];
+        $saveDividendOrderData['order_id'] = $order['id'];
+        $saveDividendOrderData['rated_money'] = $dividend_set_money;
+        $saveDividendOrderData['money'] = $money;
+        $saveDividendOrderData['status'] = 0;
+
+        $addret = DividendOrder::create($saveDividendOrderData);
+
+        $do_id = $addret['id'];
+
+        $saveLogData['do_id'] = $do_id;
+        $saveLogData['order_id'] = $order['id'];
+        $saveLogData['money'] = $money;
+        DividendOrderLog::create($saveLogData);
+
+        return true ;
+    }
+    //更新排队订单信息
+    public function updateUserDividendOrder($order,$change_money,$from_order,$dividend_set_money,$flag){
+        $order_id = $from_order['id'];
+        $id = $order['id'];
+        $total_money = $order['money'] + $change_money;
+
+        if($flag){
+            //达到分红金额,排队结束,并扣减积分,钱转入可提现余额
+            $updateDividendOrderData['status'] = 1;
+            $dividend_cash = ConfigServer::get('platform_setting', 'dividend_cash', 0);
+            if($dividend_cash>=$dividend_set_money){
+                $updateDividendOrderData['is_exchange'] = 1;
+                $this->changeIntegral($order,$order['user_id'],$order['rated_money']);
+            }
+
+        }
+        $updateDividendOrderData['money'] = $total_money;
+        $updateDividendOrderData['update_time'] = time();
+        DividendOrder::where(['id'=>$id])->update($updateDividendOrderData);
+
+        $saveLogData['do_id'] = $id;
+        $saveLogData['order_id'] = $order_id;
+        $saveLogData['money'] = $change_money;
+        DividendOrderLog::create($saveLogData);
+
+        return true;
+    }
+
+    public function sendDividendCash(){
+        $dividend_cash = ConfigServer::get('platform_setting', 'dividend_cash', 0);
+        $dowhere['status'] = 1;
+        $dowhere['is_exchange'] = 0;
+        $doOrder = DividendOrder::where($dowhere)->order('id asc')->select()->toArray();
+        foreach ($doOrder as &$dov){
+            if($dividend_cash >= $dov['rated_money']){
+                $this->changeIntegral($dov,$dov['user_id'],$dov['rated_money']);
+            }
+        }
+    }
+    /*
+     *
+     * $change_integral 变动积分 额定金额
+     * */
+    public function changeIntegral($order,$user_id,$change_integral){
+        //减少分红池金额
+        $dividend_cash = ConfigServer::get('platform_setting', 'dividend_cash', 0);
+        $new_dividend_cash = $dividend_cash - $change_integral;
+        if($new_dividend_cash < 0 ) return true;
+//        outFileLog($new_dividend_cash,'award_integral','$total_cash2');
+        ConfigServer::set('platform_setting', 'dividend_cash', $new_dividend_cash);
+        //扣减积分
+        $user_info = User::find($user_id);
+        $user_info->user_integral = $user_info->user_integral - $change_integral;
+        $user_info->earnings = $user_info->earnings + $change_integral;
+        $user_info->save();
+        //扣减积分记录
+        AccountLogLogic::AccountRecord($order['user_id'], $change_integral, 2, AccountLog::integral_dividend, '分红池分红奖金提现消耗积分', $order['id'], '');
+
+        //增加佣金
+        AccountLogLogic::AccountRecord($user_id,$change_integral,1,AccountLog::dividend_inc_earnings, '分红池分红增加佣金', $order['id']);
+
+        //添加分红池记录
+        $this->addDividendCashLog($change_integral,$order['id'],2,$new_dividend_cash,'分红订单【'.$order['sn'].'】分红后减少分红池金额');
+
+        //更新排队订单的支付状态
+        $updateDividendOrderData['is_exchange'] = 1;
+        $updateDividendOrderData['update_time'] = time();
+        DividendOrder::where(['id'=>$order['id']])->update($updateDividendOrderData);
+
+        return true ;
+    }
+
 }

+ 6 - 2
app/common/model/AccountLog.php

@@ -39,7 +39,7 @@ class AccountLog extends Models
     const consume_award_integral       = 212;
     const pay_integral_order           = 213;
     const cancel_integral_order        = 214;
-
+    const integral_dividend       = 215;
     const admin_add_growth      = 300;
     const admin_reduce_growth   = 301;
     const sign_give_growth      = 302;
@@ -52,6 +52,7 @@ class AccountLog extends Models
     const distribution_inc_earnings = 402;//分销订单结算增加佣金
     const admin_inc_earnings        = 403; //后台增加佣金
     const admin_reduce_earnings     = 404; //后台减少佣金
+    const dividend_inc_earnings     = 405; //分红池增加佣金
 
     const money_change = [      //余额变动类型
         self::admin_add_money,self::admin_reduce_money,self::recharge_money,self::balance_pay_order,self::cancel_order_refund,self::after_sale_refund
@@ -60,7 +61,7 @@ class AccountLog extends Models
     const integral_change = [   //积分变动类型
         self::admin_add_integral,self::admin_reduce_integral,self::sign_in_integral,self::recharge_give_integral,self::order_award_integral,self::invite_add_integral
         , self::order_deduction_integral,self::register_add_integral,self::cancel_order_refund_integral,self::luck_draw_integral,self::deduct_order_first_integral
-        , self::order_goods_give_integral,self::consume_award_integral, self::pay_integral_order,self::cancel_integral_order
+        , self::order_goods_give_integral,self::consume_award_integral, self::pay_integral_order,self::cancel_integral_order,self::integral_dividend
     ];
     const growth_change = [     //成长值变动类型
         self::admin_add_growth,self::admin_reduce_growth,self::recharge_give_growth,self::sign_give_growth, self::order_give_growth,self::register_give_growth
@@ -75,6 +76,7 @@ class AccountLog extends Models
         self::distribution_inc_earnings,  //订单结算增加
         self::admin_inc_earnings,  //后台增加佣金
         self::admin_reduce_earnings,  //后台减少佣金
+        self::dividend_inc_earnings,//分红池增加佣金
     ];
 
     public static function getAcccountDesc($from = true){
@@ -114,8 +116,10 @@ class AccountLog extends Models
             self::integral_order_inc_balance    => '积分商城订单',
             self::integral_order_dec_balance    => '余额支付积分订单',
             self::cancel_integral_order         => '取消积分订单返回积分',
+            self::integral_dividend             => '积分转化分红',
             self::admin_inc_earnings            => '后台增加佣金',
             self::admin_reduce_earnings         => '后台减少佣金',
+            self::dividend_inc_earnings         => '分红池增加佣金',
         ];
         if($from === true){
             return $desc;

+ 28 - 0
app/common/model/DividendCashLog.php

@@ -0,0 +1,28 @@
+<?php
+namespace app\common\model;
+
+use app\common\basics\Models;
+
+class DividendCashLog extends Models
+{
+    public function getCreateTimeFormatAttr($value, $data)
+    {
+        return date('Y-m-d H:i:s', $value);
+    }
+    /**
+     * @notes 获取器
+     * @param $value
+     * @param $data
+     * @return string
+     * @author ljj
+     * @date 2021/7/31 3:26 下午
+     */
+    public function getChangeTypeDescAttr($value, $data)
+    {
+        $datas = [
+            1 => '增加',
+            2 => '减少',
+        ];
+        return $datas[$data['change_type']];
+    }
+}

+ 45 - 0
app/common/model/DividendOrder.php

@@ -0,0 +1,45 @@
+<?php
+namespace app\common\model;
+
+use app\common\basics\Models;
+
+class DividendOrder extends Models
+{
+    public function getCreateTimeFormatAttr($value, $data)
+    {
+        return date('Y-m-d H:i:s', $value);
+    }
+    /**
+     * @notes 获取器
+     * @param $value
+     * @param $data
+     * @return string
+     * @author ljj
+     * @date 2021/7/31 3:26 下午
+     */
+    public function getStatusDescAttr($value, $data)
+    {
+        $datas = [
+            0 => '排队中',
+            1 => '排队结束',
+        ];
+        return $datas[$data['status']];
+    }
+
+    /**
+     * @notes 获取器
+     * @param $value
+     * @param $data
+     * @return string
+     * @author ljj
+     * @date 2021/7/31 3:26 下午
+     */
+    public function getIsExchangeDescAttr($value, $data)
+    {
+        $datas = [
+            0 => '未兑换',
+            1 => '已兑换',
+        ];
+        return $datas[$data['is_exchange']];
+    }
+}

+ 13 - 0
app/common/model/DividendOrderLog.php

@@ -0,0 +1,13 @@
+<?php
+namespace app\common\model;
+
+use app\common\basics\Models;
+
+class DividendOrderLog extends Models
+{
+    public function getCreateTimeFormatAttr($value, $data)
+    {
+        return date('Y-m-d H:i:s', $value);
+    }
+
+}