hrjy 2 years ago
parent
commit
0bf9277f20

+ 63 - 0
app/admin/controller/order/StoreOrderIncrement.php

@@ -0,0 +1,63 @@
+<?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 StoreOrderIncrement extends AuthController
+{
+    /**
+     * @return mixed
+     */
+    public function index()
+    {
+
+        $this->assign([
+            'year' => get_month(),
+
+        ]);
+        return $this->fetch();
+    }
+
+
+    public function list()
+    {
+        $where = Util::getMore([
+            ['status', ''],
+            ['page', 1],
+            ['limit', 20],
+            ['name', ''],
+            ['data', ''],
+            ['order', ''],
+        ]);
+
+        return Json::successlayui(\app\models\store\StoreOrderIncrement::list($where));
+    }
+
+}

+ 321 - 0
app/admin/view/order/store_order_increment/index.php

@@ -0,0 +1,321 @@
+{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-inline">
+                                    <div class="layui-col-lg12">
+                                        <label class="layui-form-label" style="top: -5.5px;">订单号</label>
+                                        <div class="layui-input-inline">
+                                            <input type="text" id="order_id" name="order_id" class="layui-input" placeholder="订单号">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-inline">
+                                    <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="请输入名称,id,账号">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-col-lg12" id="app1">
+<!--                                    <div class="layui-col-lg12">-->
+<!--                                        <label class="layui-form-label">创建状态:</label>-->
+<!--                                        <div class="layui-input-block" v-cloak="">-->
+<!--                                            <button class="layui-btn layui-btn-sm" type="button" v-for="item in statusList"-->
+<!--                                                    @click="where.status = item.value"-->
+<!--                                                    :class="{'layui-btn-primary':where.status!==item.value}">{{item.name}}-->
+<!--                                            </button>-->
+<!--                                        </div>-->
+<!--                                    </div>-->
+
+                                    <div class="layui-col-lg12">
+                                        <label class="layui-form-label">创建时间:</label>
+                                        <div class="layui-input-block" data-type="data" v-cloak="">
+                                            <button class="layui-btn layui-btn-sm" type="button" v-for="item in dataList"
+                                                    @click="setData(item)"
+                                                    :class="{'layui-btn-primary':where.data!=item.value}">{{item.name}}
+                                            </button>
+                                            <button class="layui-btn layui-btn-sm" type="button" ref="time"
+                                                    @click="setData({value:'zd',is_zd:true})"
+                                                    :class="{'layui-btn-primary':where.data!='zd'}">自定义
+                                            </button>
+                                            <button type="button" class="layui-btn layui-btn-sm layui-btn-primary"
+                                                    v-show="showtime==true" ref="date_time">{$year.0} - {$year.1}
+                                            </button>
+                                        </div>
+                                    </div>
+                                    <button @click="excel" type="button"
+                                            class="layui-btn layui-btn-warm layui-btn-sm export" type="button">
+                                        <i class="fa fa-floppy-o" style="margin-right: 3px;"></i>导出
+                                    </button>
+                                    <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>
+                            </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">
+                    <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 layui-btn-xs" id="">
+                            正常
+                        </button>
+                        {{#  } else if(d.status == 1) { }}
+                        <button type="button" name="suc" class="layui-btn-xs layui-btn" id="">
+                            成功返还
+                        </button>
+                        {{#  } else if(d.status == 2) { }}
+                        <button type="button" name="suc" class="layui-btn-xs layui-btn" id="">
+                            失败返还
+                        </button>
+                        {{#  } }}
+                    </script>
+                    <script type="text/html" id="act">
+<!--                        <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.form.render();
+    layList.tableList('List', "{:Url('list')}", function () {
+        return [
+            {type: 'checkbox'},
+            {field: 'id', title: 'ID', sort: true, event: 'id', width: '5%', templet: '#id'},
+            {field: 'order_id', title: '转增订单',  align: 'center'},
+            {field: 'nickname', title: '转增用户',  align: 'center'},
+            {field: 'c_nickname', title: '接收用户',  align: 'center'},
+            {field: 'add_time', title: '转增时间', align: 'center'},
+            // {field: 'right', title: '操作', align: 'center', toolbar: '#act',width: '15%'},
+        ];
+
+    });
+    layList.baseGet(layList.U({a:'list',q:{type:1}}), function (res) {
+        console.log(res);
+    }, function (res) {
+        $('.no-margins').text(res.count);
+    });
+    //查询
+    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_order',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();
+                });
+            });
+        }
+    });
+
+    require(['vue'], function (Vue) {
+        new Vue({
+            el: "#app1",
+            data: {
+                badge: [],
+                dataList: [
+                    {name: '全部', value: ''},
+                    {name: '今天', value: 'today'},
+                    {name: '昨天', value: 'yesterday'},
+                    {name: '最近7天', value: 'lately7'},
+                    {name: '最近30天', value: 'lately30'},
+                    {name: '本月', value: 'month'},
+                    {name: '本年', value: 'year'},
+                ],
+                statusList:[
+                    {name: '全部', value: ''},
+                    {name: '正常', value: '1'},
+                    {name: '成功返还', value: '2'},
+                    {name: '失败返还', value: '3'}
+                ],
+                where: {
+                    data: '',
+                    status: status,
+                    type: '',
+                    pay_type: '',
+                    excel: 0,
+                },
+                showtime: false,
+            },
+            watch: {
+                'where.status': function () {
+                    this.where.excel = 0;
+                    this.getBadge();
+                    layList.reload(this.where, true);
+                },
+                'where.data': function () {
+                    this.where.excel = 0;
+                    this.getBadge();
+                    layList.reload(this.where, true);
+                },
+                'where.type': function () {
+                    this.where.excel = 0;
+                    this.getBadge();
+                    layList.reload(this.where, true);
+                },
+                'where.pay_type': function () {
+                    this.where.excel = 0;
+                    this.getBadge();
+                    layList.reload(this.where, true);
+                }
+            },
+            methods: {
+                setData: function (item) {
+                    var that = this;
+                    if (item.is_zd == true) {
+                        that.showtime = true;
+                        this.where.data = this.$refs.date_time.innerText;
+                    } else {
+                        this.showtime = false;
+                        this.where.data = item.value;
+                    }
+                },
+                getBadge: function () {
+                    var that = this;
+                    layList.basePost(layList.Url({c: 'order.store_order', a: 'getBadge'}), this.where, function (rem) {
+                        that.badge = rem.data;
+                    });
+                },
+                search: function () {
+                    this.where.excel = 0;
+                    this.getBadge();
+                    layList.reload(this.where, true);
+                },
+                refresh: function () {
+                    layList.reload();
+                    this.getBadge();
+                },
+                excel: function () {
+                    var name = $('#name').val();
+                    var many_id = $('#many_id').val();
+                    var order_id = $('#order_id').val();
+                    var stage = $('#stage').val();
+                    this.where['name'] = name;
+                    this.where['many_id'] = many_id;
+                    this.where['order_id'] = order_id;
+                    this.where['stage'] = stage;
+                    this.where.excel = 1;
+                    location.href = layList.U({c: 'many.many_order', a: 'list', q: this.where});
+                    this.where.excel = 0;
+                }
+            },
+            mounted: function () {
+                var that = this;
+                that.getBadge();
+                window.formReload = this.search;
+                layList.laydate.render({
+                    elem: this.$refs.date_time,
+                    trigger: 'click',
+                    eventElem: this.$refs.time,
+                    range: true,
+                    change: function (value) {
+                        that.where.data = value;
+                    }
+                });
+            }
+        })
+    });
+</script>
+{/block}

+ 7 - 0
app/api/controller/order/StoreOrderController.php

@@ -15,6 +15,7 @@ use app\models\store\{StoreBargainUser,
     StoreCouponUser,
     StoreOrder,
     StoreOrderCartInfo,
+    StoreOrderIncrement,
     StoreOrderStatus,
     StorePink,
     StoreProduct,
@@ -714,6 +715,12 @@ class StoreOrderController
             Db::startTrans();
             $order->save();
             StoreCouponUser::where('order_id', $order['order_id'])->where('uid', $request->uid())->update(['uid' => $data['uid']]);
+            StoreOrderIncrement::create([
+                'order_id' => $order['order_id'],
+                'increment_uid' => $request->uid(),
+                'uid' => $data['uid'],
+                'add_time' => time()
+            ]);
             Db::commit();
             return app('json')->success('转赠成功');
         } catch (\Exception $e) {

+ 8 - 0
app/api/controller/user/UserController.php

@@ -789,6 +789,14 @@ class UserController
         }
     }
 
+    /**
+     * 添加优惠券
+     * @param Request $request
+     * @return void
+     * @throws DataNotFoundException
+     * @throws DbException
+     * @throws ModelNotFoundException
+     */
     public function store_coupon(Request $request)
     {
         $user = SystemStoreStaff::where('uid', $request->uid())->find();

+ 60 - 0
app/models/store/StoreOrderIncrement.php

@@ -0,0 +1,60 @@
+<?php
+/**
+ *
+ * @author: xaboy<365615158@qq.com>
+ * @day: 2018/01/22
+ */
+
+namespace app\models\store;
+
+
+use crmeb\basic\BaseModel;
+use crmeb\traits\ModelTrait;
+
+/**
+ * TODO 优惠券Model
+ * Class StoreCoupon
+ * @package app\models\store
+ */
+class StoreOrderIncrement extends BaseModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 模型名称
+     * @var string
+     */
+    protected $name = 'store_order_increment';
+
+    use ModelTrait;
+
+    public static function list($where)
+    {
+        $model = self::alias('a')
+            ->leftJoin('user b', 'a.increment_uid = b.uid')
+            ->leftJoin('user c', 'a.uid = c.uid')
+            ->field('a.*,b.nickname,c.nickname as c_nickname')
+            ->order('a.id DESC');
+
+        if ($where['name'])$model->where('b.nickname|b.uid' , 'like', '%'.$where['name'],'%');
+        if ($where['order'])$model->where('order' , '=', $where['name']);
+        if (trim($where['data']) != '') $model = self::getModelTime($where, $model,  'a.add_time');
+        $data['count'] = $model->count();
+        if ($where['page'] && $where['limit']){
+            $model->page($where['page'], $where['limit']);
+        }else{
+            $model->page(20, 1);
+        }
+        $list = $model->select()->toArray();
+        foreach ($list as &$item){
+            $item['add_time'] = date('Y-m-d H:i:s',$item['add_time']);
+        }
+        $data['data'] = $list;
+        return $data;
+
+    }
+}