hrjy пре 3 година
родитељ
комит
4b6c9e66b1

+ 288 - 0
app/admin/controller/order/OrderRelease.php

@@ -0,0 +1,288 @@
+<?php
+/**
+ *
+ * @author: xaboy<365615158@qq.com>
+ * @day: 2017/11/11
+ */
+
+namespace app\admin\controller\order;
+
+use app\admin\controller\AuthController;
+use crmeb\repositories\OrderRepository;
+use crmeb\repositories\ShortLetterRepositories;
+use crmeb\services\{ExpressService,
+    JsonService,
+    JsonService as Json,
+    MiniProgramService,
+    WechatService,
+    FormBuilder as Form,
+    CacheService,
+    UtilService as Util};
+use app\admin\model\ump\StorePink;
+use crmeb\basic\BaseModel;
+use think\facade\Route as Url;
+use crmeb\services\YLYService;
+use think\facade\Log;
+use think\facade\Validate;
+
+/**
+ * 订单管理控制器 同一个订单表放在一个控制器
+ * Class StoreOrder
+ * @package app\admin\controller\store
+ */
+class OrderRelease extends AuthController
+{
+    /**
+     * @return mixed
+     */
+    public function index()
+    {
+
+        return $this->fetch();
+    }
+
+
+    public function list()
+    {
+        $where = Util::getMore([
+            ['status', ''],
+            ['page', 1],
+            ['limit', 20],
+            ['name', '']
+        ]);
+
+        return Json::successlayui(\app\admin\model\order\OrderRelease::list($where));
+    }
+
+    /**
+     * 显示创建资源表单页.
+     *
+     * @return \think\Response
+     */
+    public function create($id = 0)
+    {
+        $f = [];
+        $f[] = Form::input('name', '名称')->col(12);
+//        $f[] = Form::frameImageOne('image', '封面图(305*305px)', Url::buildUrl('admin/widget.images/index', array('fodder' => 'image')))->icon('image')->width('100%')->height('500px');
+        $f[] = Form::input('money', '额度');
+        $f[] = Form::input('increase', '自动增长额度', 0);
+        $f[] = Form::input('second', '自动增长时间(秒)', 0);
+        $f[] = Form::input('upper_limit', '参与上限');
+        $f[] = Form::input('single', '单次上限');
+        $f[] = Form::dateTime('add_time', '开启时间');
+        $f[] = Form::dateTime('end_time', '结束时间');
+        $f[] = Form::input('sort', '排序',0);
+        if ($id) $f[] = Form::hidden('id', $id);
+        $form = Form::make_post_form('添加', $f, Url::buildUrl('save'));
+        $this->assign(compact('form'));
+        return $this->fetch('public/form-builder');
+
+
+    }
+
+    public function save()
+    {
+        $model = new \app\admin\model\order\OrderRelease();
+        $data = Util::postMore([
+            'name',
+//            'image',
+            'money',
+            'upper_limit',
+            'add_time',
+            'end_time',
+            'sort',
+            'increase',
+            'second',
+            'single',
+        ]);
+        $validate = Validate::rule('name', 'require')->rule([
+            'name' => 'require',
+//            'image' => 'require',
+            'money' => 'require',
+            'upper_limit' => 'require',
+            'add_time' => 'require',
+            'end_time' => 'require',
+            'single' => 'require',
+        ]);
+        $validate->message([
+            'name.require' => '名称不能为空',
+//            'image.require' => '图片不能为空',
+            'money.require' => '额度不能为空',
+            'upper_limit.require' => '上限不能为空',
+            'add_time.require' => '请选择进场时间',
+            'end_time.require' => '请选择结束时间',
+            'single.require' => '请填写单次上限',
+        ]);
+        if (!$validate->check($data)) {
+            return Json::fail($validate->getError());
+        }
+        $data['add_time'] = strtotime($data['add_time']);
+        $data['end_time'] = strtotime($data['end_time']);
+        $res = $model->save($data);
+        if ($res) return Json::successful('添加成功');
+        return Json::fail('添加失败');
+    }
+
+
+    /**
+     * 显示创建资源表单页.
+     *
+     * @return \think\Response
+     */
+    public function edit($id = 0)
+    {
+        $data = \app\admin\model\many\Many::find($id);
+        $f = [];
+        $f[] = Form::input('name', '名称',$data->getData('name'))->col(12);
+//        $f[] = Form::frameImageOne('image', '封面图(305*305px)', Url::buildUrl('admin/widget.images/index', array('fodder' => 'image')), $data->getData('image'))->icon('image')->width('100%')->height('500px');
+        $f[] = Form::input('money', '额度', $data->getData('money'));
+        $f[] = Form::input('increase', '自动增长额度', $data->getData('increase'));
+        $f[] = Form::input('second', '自动增长时间(秒)', $data->getData('second'));
+        $f[] = Form::input('upper_limit', '参与上限',  $data->getData('upper_limit'));
+        $f[] = Form::input('single', '单次上限',  $data->getData('single'));
+        $f[] = Form::dateTime('add_time', '开启时间', date('Y-m-d H:i:s', $data->getData('add_time')));
+        $f[] = Form::dateTime('end_time', '结束时间', date('Y-m-d H:i:s', $data->getData('end_time')));
+        $f[] = Form::input('sort', '排序',$data->getData('sort'));
+        $f[] = Form::hidden('id', $id);
+        $form = Form::make_post_form('修改', $f, Url::buildUrl('update'));
+        $this->assign(compact('form'));
+        return $this->fetch('public/form-builder');
+    }
+
+
+    /**
+     * 修改
+     * @return void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    public function update()
+    {
+        $model = new \app\admin\model\order\OrderRelease();
+        $data = Util::postMore([
+            'id',
+            'name',
+//            'image',
+            'money',
+            'upper_limit',
+            'add_time',
+            'end_time',
+            'sort',
+            'increase',
+            'second',
+            'single'
+        ]);
+        $validate = Validate::rule('name', 'require')->rule([
+            'name' => 'require',
+//            'image' => 'require',
+            'money' => 'require',
+            'upper_limit' => 'require',
+            'add_time' => 'require',
+            'end_time' => 'require',
+            'single' => 'require',
+        ]);
+        $validate->message([
+            'name.require' => '名称不能为空',
+//            'image.require' => '图片不能为空',
+            'money.require' => '额度不能为空',
+            'upper_limit.require' => '上限不能为空',
+            'add_time.require' => '请选择进场时间',
+            'end_time.require' => '请选择结束时间',
+            'single.require' => '请填写单次上限',
+        ]);
+        if (!$validate->check($data)) {
+            return Json::fail($validate->getError());
+        }
+        $details = $model->find($data['id']);
+        $details['name'] = $data['name'];
+        $details['single'] = $data['single'];
+//        $details['image'] = $data['image'];
+        $details['money'] = $data['money'];
+        $details['increase'] = $data['increase'];
+        $details['second'] = $data['second'];
+        $details['upper_limit'] = $data['upper_limit'];
+        $details['add_time'] = strtotime($data['add_time']);
+        $details['end_time'] = strtotime($data['end_time']);
+        $details['sort'] = $data['sort'];
+        $res = $details->save();
+        if ($res) return Json::successful('修改成功');
+        return Json::fail('修改失败');
+    }
+
+    /**
+     * 显示创建资源表单页.
+     *
+     * @return \think\Response
+     */
+    public function next($id = 0)
+    {
+        $f = [];
+        $f[] = Form::dateTime('add_time', '开启时间');
+        $f[] = Form::dateTime('end_time', '结束时间');
+        $f[] = Form::hidden('id', $id);
+        $form = Form::make_post_form('添加', $f, Url::buildUrl('next_save'));
+        $this->assign(compact('form'));
+        return $this->fetch('public/form-builder');
+    }
+
+    public function next_save()
+    {
+        $model = new \app\admin\model\many\Many();
+        $data = Util::postMore([
+            'id',
+            'add_time',
+            'end_time',
+        ]);
+        $validate = Validate::rule([
+            'add_time' => 'require',
+            'end_time' => 'require',
+        ]);
+        $validate->message([
+            'add_time.require' => '请选择开启时间',
+            'end_time.require' => '请选择结束时间',
+        ]);
+        if (!$validate->check($data)) {
+            return Json::fail($validate->getError());
+        }
+        $details = $model->find($data['id']);
+        if ($details['status'] == 1) return Json::fail('未结束不能进行下一场');
+        if ($details['suc'] == 2) return Json::fail('已众筹失败无法就行下一场');
+        if (strtotime($data['end_time']) < strtotime($data['add_time'])) return Json::fail('结束时间不能小于开启时间');
+        $details['stage'] += 1;
+        $details['status'] = 1;
+        $details['number'] = 0;//重置额度
+        $details['money'] = intval($details['money'] * 1.3);//提搞额度130%
+        $details['suc'] = 0;
+        $details['add_time'] = strtotime($data['add_time']);
+        $details['end_time'] = strtotime($data['end_time']);
+        $res = $details->save();
+        if ($res) return Json::successful('成功');
+        return Json::fail('失败');
+
+
+    }
+
+
+
+    /**
+     * 删除
+     * @param $id
+     * @return void
+     * @throws \Exception
+     */
+    public function delete($id)
+    {
+        if (!$id) Json::fail('删除失败');
+        $model = new \app\admin\model\many\Many();
+
+        $res = \app\admin\model\many\Many::destroy($id);
+        if ($res){
+            return Json::success('删除成功!');
+        }else{
+            return Json::fail($model->getErrorInfo());
+        }
+
+    }
+
+}

+ 57 - 0
app/admin/model/order/OrderRelease.php

@@ -0,0 +1,57 @@
+<?php
+/**
+ * @author: xaboy<365615158@qq.com>
+ * @day: 2017/11/11
+ */
+
+namespace app\admin\model\order;
+
+use crmeb\traits\ModelTrait;
+use crmeb\basic\BaseModel;
+use think\model\concern\SoftDelete;
+
+/**
+ * Class StoreCategory
+ * @package app\admin\model\store
+ */
+class OrderRelease extends BaseModel
+{
+
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 模型名称
+     * @var string
+     */
+    protected $name = 'store_order_release';
+
+    use ModelTrait;
+    protected $autoWriteTimestamp = true;
+
+
+    public static function list($where)
+    {
+        $model = self::alias('a')
+            ->field('a.*,b.nickname,b.phone')
+            ->leftJoin('user b', 'a.uid = b.uid')
+            ->order('a.id DESC');
+
+        if ($where['name'])$model->where('b.nickname|b.uid' , 'like', '%'.$where['name'],'%');
+        $data['count'] = $model->count();
+        if ($where['page'] && $where['limit']){
+            $model->page($where['page'], $where['limit']);
+        }else{
+            $model->page(20, 1);
+        }
+        $list = $model->select()->toArray();
+        $data['data'] = $list;
+        return $data;
+
+    }
+
+
+}

+ 193 - 0
app/admin/view/order/order_release/index.php

@@ -0,0 +1,193 @@
+{extend name="public/container"}
+{block name="head_top"}
+
+{/block}
+{block name="content"}
+<style>
+    .btn-outline{
+        border:none;
+    }
+    .btn-outline:hover{
+        background-color: #0e9aef;
+        color: #fff;
+    }
+    .layui-form-item .layui-btn {
+        margin-top: 5px;
+        margin-right: 10px;
+    }
+    .layui-btn-primary{
+        margin-right: 10px;
+        margin-left: 0!important;
+    }
+    label{
+        margin-bottom: 0!important;
+        margin-top: 4px;
+    }
+</style>
+<div class="layui-fluid">
+    <div class="layui-row layui-col-space15" id="app">
+        <!--搜索条件-->
+        <div class="layui-col-md12">
+            <div class="layui-card">
+                <div class="layui-card-header">搜索条件</div>
+                <div class="layui-card-body">
+                    <div class="layui-carousel layadmin-carousel layadmin-shortcut" lay-anim="" lay-indicator="inside" lay-arrow="none" style="background:none">
+                        <form class="layui-form layui-form-pane" action="">
+                            <div class="layui-form-item">
+
+                                <div class="layui-col-lg12">
+                                    <label class="layui-form-label" style="top: -5.5px;">搜索条件</label>
+                                    <div class="layui-input-inline">
+                                        <input type="text" id="name" name="name" class="layui-input" placeholder="请输入名称">
+                                    </div>
+                                </div>
+                                <div class="layui-inline">
+                                    <div class="layui-input-inline">
+                                        <button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit="search" lay-filter="search">
+                                            <i class="layui-icon layui-icon-search"></i>搜索</button>
+                                    </div>
+                                </div>
+                            </div>
+                        </form>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <!-- 中间详细信息-->
+        <div :class="item.col!=undefined ? 'layui-col-sm'+item.col+' '+'layui-col-md'+item.col:'layui-col-sm6 layui-col-md3'"
+             v-for="item in badge" v-cloak="" v-if="item.count > 0">
+        </div>
+        <!--enb-->
+    </div>
+    <!--列表-->
+    <div class="layui-row layui-col-space15">
+        <div class="layui-col-md12">
+            <div class="layui-card">
+                <div class="layui-card-header">场次列表</div>
+                <div class="layui-card-body">
+
+<!--                    <div class="layui-btn-container" id="container-action">-->
+<!--                        <a class="layui-btn layui-btn-sm" onclick="$eb.createModalFrame(this.innerText,'{:Url('create')}',{h:700,w:1100})">添加场次</a>-->
+<!--                        <button class="layui-btn layui-btn-sm" data-type="del_auction">批量删除</button>-->
+<!--                    </div>-->
+                    <table class="layui-hide" id="List" lay-filter="List"></table>
+
+
+                    <script type="text/html" id="image">
+                        <img style="cursor: pointer" lay-event="open_image" src="{{d.image}}">
+                    </script>
+                    <script type="text/html" id="status">
+                        {{#  if(d.status == 0){ }}
+                        <button type="button" name="suc" class="layui-btn-disabled layui-btn-xs" id="">
+                            关闭
+                        </button>
+                        {{#  } else if(d.status == 1) { }}
+                        <button type="button" name="suc" class="layui-btn-xs layui-btn" id="">
+                            开启
+                        </button>
+                        {{#  } }}
+                    </script>
+                    <script type="text/html" id="suc">
+                        {{#  if(d.suc == 0){ }}
+                        <button type="button" name="suc" class="layui-btn layui-btn-xs" id="">
+                            正常
+                        </button>
+                        {{#  } else if(d.suc == 1) { }}
+                        <button type="button" name="suc" class="layui-btn-xs layui-btn" id="">
+                            众筹成功
+                        </button>
+                        {{#  } else if(d.suc == 2) { }}
+                        <button type="button" name="suc" class="layui-btn-disabled layui-btn-xs layui-btn-danger" id="">
+                            众筹失败
+                        </button>
+                        {{#  } }}
+                    </script>
+                    <script type="text/html" id="act">
+                        <button type="button" class="layui-btn layui-btn-xs layui-btn-normal" onclick="$eb.createModalFrame('编辑','{:Url('next')}?id={{d.id}}',{h:700,w:1100})">
+                            下一期
+                        </button>
+                        <button type="button" class="layui-btn layui-btn-xs layui-btn-normal" onclick="$eb.createModalFrame('编辑','{:Url('edit')}?id={{d.id}}',{h:700,w:1100})">
+                            编辑
+                        </button>
+                        <button type="button" class="layui-btn layui-btn-xs layui-btn-danger" lay-event='delete' id="">
+                            删除
+                        </button>
+
+                    </script>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--end-->
+</div>
+<script src="{__ADMIN_PATH}js/layuiList.js"></script>
+{/block}
+{block name="script"}
+<script>
+    layList.tableList('List', "{:Url('list')}", function () {
+        return [
+            {type: 'checkbox'},
+            {field: 'id', title: 'ID', sort: true, event: 'id', width: '5%', templet: '#id'},
+            {field: 'nickname', title: '会员昵称', templet: '#name',  align: 'center'},
+            {field: 'phone', title: '手机号', templet: '#phone',  align: 'center'},
+            // {field: 'image', title: '封面', templet: '#image', align: 'center', width: '5%'},
+            {field: 'order_id', title: '订单', align: 'center'},
+            {field: 'to_release', title: '总释放量', align: 'center'},
+            {field: 'release', title: '每天释放', align: 'center'},
+            {field: 'already', title: '已释放', align: 'center'}
+        ];
+    });
+
+    //查询
+    layList.search('search',function(where){
+        layList.reload(where,true);
+    });
+
+    //点击事件绑定
+    layList.tool(function (event,data,obj) {
+        switch (event) {
+            case 'delete':
+                var url=layList.U({c:'many.many',a:'delete',q:{id:data.id}});
+                var code = {title:"操作提示",text:"确定将该商品移入回收站吗?",type:'info',confirm:'是的,移入回收站'};
+                $eb.$swal('delete',function(){
+                    $eb.axios.get(url).then(function(res){
+                        if(res.status == 200 && res.data.code == 200) {
+                            $eb.$swal('success',res.data.msg);
+                            obj.del();
+                            location.reload();
+                        }else
+                            return Promise.reject(res.data.msg || '删除失败')
+                    }).catch(function(err){
+                        $eb.$swal('error',err);
+                    });
+                },code)
+                break;
+            case 'open_image':
+                $eb.openImage(data.image);
+                break;
+            case 'edit':
+                location.href = layList.U({a:'edit',q:{id:data.id}});
+                break;
+        }
+    })
+
+
+    //改状态
+    layList.switch('status',function (odj,value) {
+        if(odj.elem.checked==true){
+            layList.baseGet(layList.Url({c:'auction.auction',a:'set_status',p:{status:1,id:value}}),function (res) {
+                layList.msg(res.msg, function () {
+                    layList.reload();
+                });
+            });
+        }else{
+            layList.baseGet(layList.Url({c:'auction.auction',a:'set_status',p:{status:0,id:value}}),function (res) {
+                layList.msg(res.msg, function () {
+                    layList.reload();
+                });
+            });
+        }
+    });
+</script>
+{/block}