xxxrrrdddd il y a 3 ans
Parent
commit
341b1c5e4b

+ 8 - 2
application/sub/controller/Index.php

@@ -29,7 +29,7 @@ class Index extends SubCommon
 	            "spread"=>false,
             ],
             [
-                "title"=>"订单管理",
+                "title"=>"靓号管理",
                 "icon"=>"icon-loginout",
                 "href"=>'',
                 "spread"=>false,
@@ -39,7 +39,13 @@ class Index extends SubCommon
                         "icon"=>"icon-dengji3",
                         "href"=>url('order/mobile'),
                         "spread"=>false,
-                    ]
+                    ],
+                    [
+                        "title"=>"订单管理",
+                        "icon"=>"icon-star",
+                        "href"=>url('order/index'),
+                        "spread"=>false,
+                    ],
                 ]
             ],
         ];

+ 46 - 1
application/sub/controller/Order.php

@@ -6,7 +6,11 @@ namespace app\sub\controller;
 use app\common\library\MobileConstant;
 use app\common\model\Attachment;
 use app\common\model\Mobile;
+use app\common\model\MobileOrder;
+use app\common\service\Refund;
+use app\common\service\SmsSend;
 use think\Cookie;
+use think\Db;
 use think\Hook;
 use think\Validate;
 
@@ -16,7 +20,7 @@ use think\Validate;
 class Order extends SubCommon
 {
     protected $noNeedLogin=[];
-    protected $noNeedRight="*";
+    protected $noNeedRight=['mobile','index'];
 
     public function mobile(){
         $data=input();
@@ -41,4 +45,45 @@ class Order extends SubCommon
         $this->assign('network',MobileConstant::getNetwork());
         return view();
     }
+    public function index(){
+        $data=input();
+        $model=new MobileOrder();
+
+        $list=$model
+            ->with(['info'])
+            ->where('s_id',$this->auth->id)
+            ->order('id','desc')
+            ->paginate();
+        $this->assign('list',$list);
+        $this->assign('pay_type',$model::$payTypes);
+        $this->assign('status',$model::$status);
+        return view();
+    }
+    #退款
+    public function refund(){
+        if($this->request->isGet()){
+            $id=input('id',0);
+            $model=MobileOrder::where('s_id',$this->auth->id)->find($id);
+            $this->assign('row',$model);
+            return view();
+        }else{
+            $data=input('row/a');
+            $this->validate($data,[
+                'amount|金额'=>'require|number|egt:0',
+            ]);
+            Db::startTrans();
+            $model=$this->model->where('id',$ids)->lock(true)->findOrFail();
+            if($data['amount']>$model['amount']){
+                $this->error('退款金额不能大于付款金额');
+            }
+            $model['amount_refund']=$data['amount'];
+            $model['refund_no']=session_create_id();
+            Refund::setType($model)->refund();
+            $model['status']=\app\common\model\MobileOrder::STATUS_REFUNDED;
+            $model->save();
+            SmsSend::orderRefund($model['phone']);
+            Db::commit();
+            $this->success();
+        }
+    }
 }

+ 3 - 1
application/sub/controller/SubCommon.php

@@ -51,7 +51,9 @@ class SubCommon extends Frontend
             if (!$this->auth->match($this->noNeedRight)) {
                 // 判断控制器和方法判断是否有对应权限
                 if (!$this->auth->check($path)) {
-                    $this->error(__('You have no permission'));
+                    //$this->error(__('You have no permission'));
+                    echo __('You have no permission');
+                    exit;
                 }
             }
         } else {

+ 1 - 1
application/sub/controller/User.php

@@ -59,7 +59,7 @@ class User extends SubCommon
     {
         $url = $this->request->request('url', '', 'trim');
         if ($this->auth->id) {
-            $this->success(__('You\'ve logged in, do not login again'), $url ? $url : url('user/index'));
+            $this->success(__('You\'ve logged in, do not login again'), $url ? $url : url('index/index'));
         }
         if ($this->request->isPost()) {
             $account = $this->request->post('account');

+ 220 - 0
application/sub/view/order/index.html

@@ -0,0 +1,220 @@
+{extend name="layout/sub"/}
+{block name='css'}
+<link rel="stylesheet" href="__SUB__/css/news.css" media="all" />
+{/block}
+{block name='body'}
+<blockquote class="layui-elem-quote news_search">
+    <form method="get" action="">
+        <div class="layui-inline">
+            <button class="layui-btn search_btn">查询</button>
+            <button class="layui-btn reset-btn" type="button">重置</button>
+        </div>
+    </form>
+</blockquote>
+<div class="layui-form news_list">
+    <table class="layui-table">
+        <thead>
+        <tr>
+            <th width="20">ID</th>
+            <th width="250">订单信息</th>
+            <th width="250">收货人</th>
+            <th>状态</th>
+            <th>备注</th>
+            <th>创建时间</th>
+            <th>更新时间</th>
+            <th>操作</th>
+        </tr>
+        </thead>
+        <tbody class="news_content">
+        {foreach name="list" item="a"}
+        <tr>
+            <td>{$a.id}</td>
+            <td style="text-align: left">
+                <div>订单号:{$a.order_no}</div>
+                <div>商品信息:{$a.no}</div>
+                <div>卡品牌:{$a.brand}</div>
+                <div>底价:{$a.amount_di}</div>
+                <div>预存:{$a.amount_charge}</div>
+                <div>订单价格:{$a.amount}</div>
+                <div>套餐:{$a.info.info.describe|default=''}</div>
+                <div>备注:{$a.remark}</div>
+            </td>
+            <td style="text-align: left;">
+                <div>收货人:{$a.name}</div>
+                <div>手机号:{$a.phone}</div>
+                <div>地址:{$a.address}</div>
+                <div>支付方式:{$pay_type[$a.pay_type]|default=''}</div>
+                <div>备注:{$a.remark}</div>
+                <div>快递名称:{$a.trans_name}</div>
+                <div>快递单号:{$a.trans_no}</div>
+            </td>
+            <td>
+                {$status[$a['status']]}
+            </td>
+            <td>{$a.remark_sub}</td>
+            <td>{$a.create_time|date='Y-m-d H:i:s',###}</td>
+            <td>{$a.update_time|date='Y-m-d H:i:s',###}</td>
+            <td>
+                <a class="layui-btn layui-btn-mini news_edit" data-id="{$a.id}"><i class="iconfont icon-caozuo"></i> 退款</a>
+            </td>
+        </tr>
+        {/foreach}
+        </tbody>
+    </table>
+</div>
+<div id="page">
+    <span style="float: left">共 {$list->total()} 条记录</span>
+    {$list->render()}
+</div>
+{/block}
+{block name='js'}
+
+<script>
+    layui.config({
+        base : "__SUB__/js/"
+    }).use(['form','layer','jquery','laypage'],function(){
+        var form = layui.form(),
+            layer = parent.layer === undefined ? layui.layer : parent.layer,
+            laypage = layui.laypage,
+            $ = layui.jquery;
+
+
+        //查询
+        $(".search_btn").click(function(){
+            var newArray = [];
+        })
+
+        //添加文章
+        //改变窗口大小时,重置弹窗的高度,防止超出可视区域(如F12调出debug的操作)
+        $(window).one("resize",function(){
+            $(".newsAdd_btn").click(function(){
+                var index = layui.layer.open({
+                    title : "添加文章",
+                    type : 2,
+                    content : "newsAdd.html",
+                    success : function(layero, index){
+                        setTimeout(function(){
+                            layui.layer.tips('点击此处返回文章列表', '.layui-layer-setwin .layui-layer-close', {
+                                tips: 3
+                            });
+                        },500)
+                    }
+                })
+                layui.layer.full(index);
+            })
+        }).resize()
+
+
+        //批量删除
+        $(".batchDel").click(function(){
+            var $checkbox = $('.news_list tbody .choose');
+            var $checked = $('.news_list tbody .choose:checked');
+            if($checkbox.is(":checked")){
+                layer.confirm('确定删除选中的信息?',{icon:3, title:'提示信息'},function(index){
+                    var index = layer.msg('删除中,请稍候',{icon: 16,time:false,shade:0.8});
+                    setTimeout(function(){
+                        //删除数据
+                        for(var j=0;j<$checked.length;j++){
+                            for(var i=0;i<newsData.length;i++){
+                                if(newsData[i].newsId == $checked.eq(j).parents("tr").find(".news_del").attr("data-id")){
+                                    newsData.splice(i,1);
+                                    newsList(newsData);
+                                }
+                            }
+                        }
+                        $('.news_list thead input[type="checkbox"]').prop("checked",false);
+                        form.render();
+                        layer.close(index);
+                        layer.msg("删除成功");
+                    },2000);
+                })
+            }else{
+                layer.msg("请选择需要删除的文章");
+            }
+        })
+
+        //全选
+        form.on('checkbox(allChoose)', function(data){
+            var child = $(data.elem).parents('table').find('tbody .choose');
+            child.each(function(index, item){
+                item.checked = data.elem.checked;
+            });
+            form.render('checkbox');
+        });
+
+        //通过判断文章是否全部选中来确定全选按钮是否选中
+        form.on("checkbox(choose)",function(data){
+            var child = $(data.elem).parents('table').find('tbody input.choose');
+            var childChecked = $(data.elem).parents('table').find('tbody input.choose:checked')
+            if(childChecked.length == child.length){
+                $(data.elem).parents('table').find('thead input#allChoose').get(0).checked = true;
+            }else{
+                $(data.elem).parents('table').find('thead input#allChoose').get(0).checked = false;
+            }
+            form.render('checkbox');
+        })
+
+        //预占
+        form.on('switch(holdChange)', function(data){
+            let open=data.elem.checked,
+                _this=this
+            var index = layer.msg('修改中,请稍候',{icon: 16,time:5000,shade:0.1});
+            $.post('{:url("mobile/hold")}',{is_hold:open?1:0,id:_this.value},function (res) {
+                if(res.code===0){
+                    layer.alert(res.msg)
+                    _this.checked=!open
+                    form.render('checkbox')
+                }else{
+                    layer.close(index)
+                    layer.msg('修改成功')
+                    //location.reload()
+                }
+            })
+        })
+
+        //操作
+        $("body").on("click",".news_edit",function(){  //编辑
+            let id=$(this).data('id')
+            let index = layui.layer.open({
+                title : "退款",
+                type : 2,
+                area:['800px','500px'],
+                content : '{:url("order/refund")}?id='+id,
+                success : function(layero, index){
+                }
+            })
+        })
+
+        $('.hold_log').click(function () {
+            let id=$(this).data('id')
+            let index = layui.layer.open({
+                title : "预占记录",
+                type : 2,
+                area:['1000px','100%'],
+                content : '{:url("mobile/hold_log")}?id='+id,
+                success : function(layero, index){
+                }
+            })
+        })
+        $('.reset-btn').click(function (){
+            location.replace(location.pathname)
+        })
+
+
+        $("body").on("click",".news_del",function(){  //删除
+            var _this = $(this);
+            layer.confirm('确定删除此信息?',{icon:3, title:'提示信息'},function(index){
+                $.post("{:url('mobile/delete')}",{id:[_this.data('id')]},function (res){
+                    if(res.code===1){
+                        layer.msg('删除成功')
+                    }else{
+                        layer.msg(res.msg)
+                    }
+                    layer.close(index);
+               })
+            });
+        })
+    })
+
+</script>
+{/block}

+ 1 - 0
application/sub/view/order/mobile.html

@@ -79,6 +79,7 @@
     </table>
 </div>
 <div id="page">
+    <span style="float: left">共 {$list->total()} 条记录</span>
     {$list->render()}
 </div>
 {/block}

+ 54 - 0
application/sub/view/order/refund.html

@@ -0,0 +1,54 @@
+{extend name="layout/sub"/}
+{block name='css'}
+{/block}
+{block name='body'}
+<form class="layui-form">
+	<div class="layui-form-item">
+		<label class="layui-form-label">退款金额</label>
+		<div class="layui-input-block">
+			<input type="number" name="amount_base" class="layui-input" lay-verify="required" placeholder="退款金额" value="{$row.amount}">
+		</div>
+	</div>
+	<div class="layui-form-item">
+		<div class="layui-input-block">
+			<button class="layui-btn" lay-submit lay-filter="add">立即提交</button>
+			<button type="reset" class="layui-btn layui-btn-primary">重置</button>
+		</div>
+	</div>
+</form>
+{/block}
+{block name='js'}
+<script>
+	layui.config({
+		base : "__SUB__/js/"
+	}).use(['form','layer','jquery','layedit','laydate'],function(){
+		var form = layui.form(),
+				layer = parent.layer === undefined ? layui.layer : parent.layer,
+				laypage = layui.laypage,
+				layedit = layui.layedit,
+				laydate = layui.laydate,
+				$ = layui.jquery;
+
+		//创建一个编辑器
+		var editIndex = layedit.build('news_content');
+		var addNewsArray = [],addNews;
+		form.on("submit(add)",function(data){
+			//弹出loading
+			var index = top.layer.msg('数据提交中,请稍候',{icon: 16,time:false,shade:0.1});
+			$.post('',data.field,function (res){
+				top.layer.close(index);
+				if(res.code){
+					top.layer.msg("编辑成功!");
+					layer.closeAll("iframe");
+					//刷新父页面
+					parent.location.reload();
+				}else{
+					layer.alert(res.msg)
+				}
+			})
+			return false;
+		})
+
+	})
+</script>
+{/block}

+ 1 - 1
public/assets/sub/js/index.js

@@ -8,7 +8,7 @@ layui.config({
 		$ = layui.jquery;
 		tab = layui.bodyTab({
 			openTabNum : "50",  //最大可打开窗口数量
-			url : "menu" //获取菜单json地址
+			url : "/sub/index/menu" //获取菜单json地址
 		});
 
 	//更换皮肤