linwu 1 år sedan
förälder
incheckning
c7b9a663c8

+ 137 - 1
app/love/controller/AdminLotteryController.php

@@ -11,7 +11,9 @@
 
 namespace app\love\controller;
 
+use app\love\model\LotteryLogModel;
 use app\love\model\LotteryPrizeModel;
+use app\love\model\UserModel;
 use cmf\controller\AdminBaseController;
 
 class AdminLotteryController extends AdminBaseController
@@ -21,7 +23,12 @@ class AdminLotteryController extends AdminBaseController
      */
     public function prize()
     {
-        $list = LotteryPrizeModel::order('id asc')->paginate(10);
+        $status = $this->request->param('status',1);
+        $where = [];
+        if (!empty($status)) {
+            $where[] = ['status', '=', $status];
+        }
+        $list = LotteryPrizeModel::where($where)->order('id asc')->paginate(10);
 
         // 获取分页显示
         $page = $list->render();
@@ -29,7 +36,136 @@ class AdminLotteryController extends AdminBaseController
         $this->assign('page', $page);
 
         // 渲染模板输出
+        $this->assign('status', $status);
         return $this->fetch();
     }
 
+    /**
+     * 添加
+     */
+    public function add()
+    {
+        return $this->fetch();
+    }
+
+    /**
+     * 添加提交
+     */
+    public function addPost()
+    {
+        if ($this->request->isPost()) {
+            $data = $this->request->param();
+            $post = $data['post'];
+
+            if ($post['odds'] < 0 || $post['odds'] > 100) {
+                $this->error('中奖概率需要0到100之间');
+            }
+            if ($post['number'] < 0) {
+                $this->error('奖品数量不能小于0');
+            }
+
+            LotteryPrizeModel::create($post);
+
+            $this->success('添加成功!', url('prize'));
+        }
+    }
+
+    /**
+     * 编辑
+     */
+    public function edit()
+    {
+        $id   = $this->request->param('id', 0, 'intval');
+        $post = LotteryPrizeModel::get($id);
+
+        $this->assign('post', $post);
+        return $this->fetch();
+    }
+
+    /**
+     * 编辑提交
+     */
+    public function editPost()
+    {
+        if ($this->request->isPost()) {
+            $data = $this->request->param();
+            $post = $data['post'];
+
+            if ($post['odds'] < 0 || $post['odds'] > 100) {
+                $this->error('中奖概率需要0到100之间');
+            }
+            if ($post['number'] < 0) {
+                $this->error('奖品数量不能小于0');
+            }
+
+            LotteryPrizeModel::update($post, ['id' => $post['id']]);
+
+            $this->success('编辑成功!', url('prize'));
+        }
+    }
+
+    /**
+     * 调整状态
+     */
+    public function setStatus()
+    {
+        $id     = input('param.id', 0, 'intval');
+        $status = input('param.status', 0, 'intval');
+        if (empty($id) || empty($status)) {
+            $this->error('数据有误');
+        }
+
+        LotteryPrizeModel::update(['status' => $status], ['id' => $id]);
+
+        $this->success('操作成功!');
+
+    }
+
+    /**
+     * 记录列表
+     */
+    public function log()
+    {
+        //搜索条件
+        $param  = $this->request->param();
+        $where = [];
+        if (!empty($param['mobile'])) {
+            $user = UserModel::where('mobile', $param['mobile'])->find();
+            if (empty($user)) {
+                $where[] = ['id', '=', 0];
+            } else {
+                $where[] = ['user_id', '=', $user['id']];
+            }
+        }
+        if (!empty($param['status'])) {
+            $where[] = ['status', '=', $param['status']];
+        }
+
+        //列表
+        $list = LotteryLogModel::with('user')->where($where)->order('id asc')->paginate(10, false, [
+            'query' => $param,//不丢失已存在的url参数
+        ]);
+
+        // 获取分页显示
+        $page = $list->render();
+        $this->assign('list', $list);
+        $this->assign('page', $page);
+
+        // 渲染模板输出
+        $this->assign('mobile', isset($param['mobile']) ? $param['mobile'] : '');
+        $this->assign('status', isset($param['status']) ? $param['status'] : '');
+        return $this->fetch();
+    }
+
+    /**
+     * 领奖
+     */
+    public function receive()
+    {
+        $id = input('param.id', 0, 'intval');
+        LotteryLogModel::update(['status' => 1,'out_at'=>time()], ['id' => $id]);
+
+        $this->success('操作成功!');
+
+    }
 }

+ 2 - 4
app/love/controller/LoveBaseController.php

@@ -11,9 +11,7 @@
 namespace app\love\controller;
 
 use app\common\Wechat;
-use app\love\model\ActiveApplyModel;
-use app\love\model\UserLotteryModel;
-use app\love\model\UserMatingModel;
+use app\love\model\LotteryLogModel;
 use app\love\model\UserModel;
 use cmf\controller\HomeBaseController;
 use think\facade\Request;
@@ -49,7 +47,7 @@ class LoveBaseController extends HomeBaseController
         //已婚
         if ($this->user['is_marry'] == 1) {
             if ($this->user['sex'] == 2) {
-                $lottery = UserLotteryModel::where('user_id1|user_id2',$userId)->find();
+                $lottery = LotteryLogModel::where('user_id',$userId)->find();
                 if (empty($lottery)) {
                     $this->redirect(cmf_url('love/lottery/index'));
                 }

+ 4 - 0
app/love/model/LotteryLogModel.php

@@ -20,4 +20,8 @@ class LotteryLogModel extends Model
         return $this->hasOne(UserModel::class,'id','user_id');
     }
 
+    public function lottery()
+    {
+        return $this->hasOne(LotteryModel::class,'id','lottery_id');
+    }
 }

+ 0 - 27
app/love/model/UserLotteryModel.php

@@ -1,27 +0,0 @@
-<?php
-// +----------------------------------------------------------------------
-// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
-// +----------------------------------------------------------------------
-// | Copyright (c) 2013-2019 http://www.thinkcmf.com All rights reserved.
-// +----------------------------------------------------------------------
-// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
-// +----------------------------------------------------------------------
-// | Author: 老猫 <thinkcmf@126.com>
-// +----------------------------------------------------------------------
-namespace app\love\model;
-
-use think\Model;
-
-class UserLotteryModel extends Model
-{
-
-    public function user()
-    {
-        return $this->hasOne(UserModel::class,'id','user_id');
-    }
-
-    public function lottery()
-    {
-        return $this->hasOne(LotteryModel::class,'id','lottery_id');
-    }
-}

+ 1 - 1
app/user/controller/AdminIndexController.php

@@ -133,7 +133,7 @@ class AdminIndexController extends AdminBaseController
                 }
             })
             ->order("check_status asc,create_time DESC")
-            ->paginate(10, $count, [
+            ->paginate(10, false, [
                 'query' => Request::param(),//不丢失已存在的url参数
             ]);
 

+ 88 - 0
public/themes/admin_simpleboot3/love/admin_lottery/add.html

@@ -0,0 +1,88 @@
+<include file="public@header"/>
+<style type="text/css">
+    .pic-list li{
+        margin-bottom:5px;
+    }
+</style>
+</head>
+<body>
+<div class="wrap js-check-wrap">
+    <ul class="nav nav-tabs">
+        <li><a href="{:url('AdminLottery/prize')}">所有奖品</a></li>
+        <li class="active"><a href="javascript:;">添加奖品</a></li>
+    </ul>
+    <form action="{:url('AdminLottery/addPost')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
+        <div class="row">
+            <div class="col-md-9">
+                <table class="table table-bordered">
+                    <tr>
+                        <th>奖品名称<span class="form-required">*</span></th>
+                        <td>
+                            <input class="form-control" type="text" name="post[name]"
+                                   id="name" required value="" placeholder="请输入奖品名称"/>
+                        </td>
+                    </tr>
+                    <tr>
+                        <th>中奖概率(%)<span class="form-required">*</span></th>
+                        <td>
+                            <input class="form-control" type="number" name="post[odds]"
+                                   id="odds" required value="" placeholder="请输入中奖概率"/>
+                        </td>
+                    </tr>
+                    <tr>
+                        <th>奖品数量<span class="form-required">*</span></th>
+                        <td>
+                            <input class="form-control" type="number" name="post[number]"
+                                   id="number" required value="" placeholder="请输入奖品数量"/>
+                        </td>
+                    </tr>
+                    <tr>
+                        <th>奖品背景色<span class="form-required">*</span></th>
+                        <td>
+                            <input type="color" name="post[bg]"
+                                   id="bg" required value="" placeholder="请选择奖品背景色"/>
+                        </td>
+                    </tr>
+                </table>
+                <div class="form-group">
+                    <div class="col-sm-offset-2 col-sm-10">
+                        <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
+                        <a class="btn btn-default" href="{:url('AdminLottery/prize')}">{:lang('BACK')}</a>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-3">
+                <table class="table table-bordered">
+                    <tr>
+                        <th><b>奖品图片(建议90*90)</b></th>
+                    </tr>
+                    <tr>
+                        <td>
+                            <div style="text-align: center;">
+                                <input required type="hidden" name="post[image]" id="thumbnail" value="">
+                                <a href="javascript:uploadOneImage('图片上传','#thumbnail');">
+                                    <img src="__TMPL__/public/assets/images/default-thumbnail.png"
+                                         id="thumbnail-preview"
+                                         width="135" style="cursor: pointer"/>
+                                </a>
+                                <input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">
+                            </div>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+        </div>
+    </form>
+</div>
+<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
+<script type="text/javascript">
+    $(function () {
+        $('.btn-cancel-thumbnail').click(function () {
+            $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
+            $('#thumbnail').val('');
+        });
+
+    });
+</script>
+</body>
+</html>

+ 97 - 0
public/themes/admin_simpleboot3/love/admin_lottery/edit.html

@@ -0,0 +1,97 @@
+<include file="public@header"/>
+<style type="text/css">
+    .pic-list li{
+        margin-bottom:5px;
+    }
+</style>
+</head>
+<body>
+<div class="wrap js-check-wrap">
+    <ul class="nav nav-tabs">
+        <li><a href="{:url('AdminLottery/prize')}">所有奖品</a></li>
+        <li><a href="{:url('AdminLottery/add')}">添加奖品</a></li>
+        <li class="active"><a href="javascript:void(0)">编辑奖品</a></li>
+    </ul>
+    <form action="{:url('AdminLottery/editPost')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
+        <input type="hidden" name="post[id]" value="{$post.id}">
+        <div class="row">
+            <div class="col-md-9">
+                <table class="table table-bordered">
+                    <tr>
+                        <th>奖品名称<span class="form-required">*</span></th>
+                        <td>
+                            <input class="form-control" type="text" name="post[name]"
+                                   id="name" required value="{$post.name}" placeholder="请输入奖品名称"/>
+                        </td>
+                    </tr>
+                    <tr>
+                        <th>中奖概率(%)<span class="form-required">*</span></th>
+                        <td>
+                            <input class="form-control" type="number" name="post[odds]"
+                                   id="odds" required value="{$post.odds}" placeholder="请输入中奖概率"/>
+                        </td>
+                    </tr>
+                    <tr>
+                        <th>奖品数量<span class="form-required">*</span></th>
+                        <td>
+                            <input class="form-control" type="number" name="post[number]"
+                                   id="number" required value="{$post.number}" placeholder="请输入奖品数量"/>
+                        </td>
+                    </tr>
+                    <tr>
+                        <th>奖品背景色<span class="form-required">*</span></th>
+                        <td>
+                            <input type="color" name="post[bg]"
+                                   id="bg" required value="{$post.bg}" placeholder="请选择奖品背景色"/>
+                        </td>
+                    </tr>
+                </table>
+                <div class="form-group">
+                    <div class="col-sm-offset-2 col-sm-10">
+                        <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('EDIT')}</button>
+                        <a class="btn btn-default" href="{:url('AdminLottery/prize')}">{:lang('BACK')}</a>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-3">
+                <table class="table table-bordered">
+                    <tr>
+                        <th><b>奖品图片(建议90*90)</b></th>
+                    </tr>
+                    <tr>
+                        <td>
+                            <div style="text-align: center;">
+                                <input type="hidden" name="post[image]" id="thumbnail"
+                                       value="{$post.image|default=''}">
+                                <a href="javascript:uploadOneImage('图片上传','#thumbnail');">
+                                    <if condition="empty($post.image)">
+                                        <img src="__TMPL__/public/assets/images/default-thumbnail.png"
+                                             id="thumbnail-preview"
+                                             width="135" style="cursor: pointer"/>
+                                        <else/>
+                                        <img src="{:cmf_get_image_preview_url($post.image)}"
+                                             id="thumbnail-preview"
+                                             width="135" style="cursor: pointer"/>
+                                    </if>
+                                </a>
+                                <input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">
+                            </div>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+        </div>
+    </form>
+</div>
+<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
+<script type="text/javascript">
+    $(function () {
+        $('.btn-cancel-thumbnail').click(function () {
+            $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
+            $('#thumbnail').val('');
+        });
+
+    });
+</script>
+</body>
+</html>

+ 76 - 0
public/themes/admin_simpleboot3/love/admin_lottery/log.html

@@ -0,0 +1,76 @@
+<include file="public@header"/>
+</head>
+<body>
+<div class="wrap js-check-wrap">
+    <ul class="nav nav-tabs">
+        <li class="active"><a href="javascript:;">中奖记录</a></li>
+    </ul>
+    <form class="well form-inline margin-top-20" method="post" action="{:url('AdminLottery/log')}">
+        电话号码:
+        <input type="text" class="form-control" name="mobile" style="width: 200px;"
+               value="{$mobile|default=''}" placeholder="请输入电话号码字...">
+        状态:
+        <select class="form-control" name="status" style="width: 140px;">
+            <option value='0'>全部</option>
+            <option value='1' <eq name="status" value="1">selected</eq>>已核销</option>
+            <option value='2' <eq name="status" value="2">selected</eq>>未核销</option>
+        </select> &nbsp;&nbsp;
+        <input type="submit" class="btn btn-primary" value="搜索"/>
+        <a class="btn btn-danger" href="{:url('AdminLottery/log')}">清空</a>
+    </form>
+    <form class="js-ajax-form" action="" method="post">
+        <table class="table table-hover table-bordered table-list">
+            <thead>
+            <tr>
+                <th width="50">ID</th>
+                <th width="120">用户</th>
+                <th width="160">电话</th>
+                <th>奖品名称</th>
+                <th width="60">状态</th>
+                <th width="160">中奖时间</th>
+                <th width="160">核销时间</th>
+                <th width="80">操作</th>
+            </tr>
+            </thead>
+            <foreach name="list" item="vo">
+                <tr>
+                    <td><b>{$vo.id}</b></td>
+                    <td>
+                        <img width="25" height="25" src="{:url('user/public/avatar',array('id'=>$vo['user_id']))}"/>
+                        <br/>
+                        {$vo.user.realname}
+                    </td>
+                    <td>{$vo.user.mobile}</td>
+                    <td>{$vo.prize_name}</td>
+                    <td>
+                        <eq name="vo.status" value="1">
+                            <a data-toggle="tooltip" title="已核销"><i class="fa fa-check"></i></a>
+                            <else/>
+                            <a data-toggle="tooltip" title="未核销"><i class="fa fa-close"></i></a>
+                        </eq>
+                    </td>
+                    <td>{:date('Y-m-d',$vo['create_time'])}</td>
+                    <td><notempty name="$vo.out_at">{:date('Y-m-d',$vo['out_at'])}</notempty></td>
+                    <td>
+                        <eq name="vo.status" value="2">
+                            <a class="btn btn-xs btn-success js-ajax-dialog-btn"
+                               href="{:url('AdminLottery/receive',array('id'=>$vo['id']))}"
+                               data-msg="您确定核销吗?">核销</a>
+                        </eq>
+                    </td>
+                </tr>
+            </foreach>
+        </table>
+        <ul class="pagination">{$page|default=''}</ul>
+    </form>
+</div>
+<script src="__STATIC__/js/admin.js"></script>
+<script>
+
+    function reloadPage(win) {
+        win.location.reload();
+    }
+
+</script>
+</body>
+</html>

+ 28 - 2
public/themes/admin_simpleboot3/love/admin_lottery/prize.html

@@ -13,6 +13,16 @@
         <li class="active"><a href="javascript:;">所有奖品</a></li>
         <li><a href="{:url('AdminLottery/add')}">添加奖品</a></li>
     </ul>
+    <form class="well form-inline margin-top-20" method="post" action="{:url('AdminLottery/prize')}">
+        状态:
+        <select class="form-control" name="status" style="width: 140px;">
+            <option value='0'>全部</option>
+            <option value='1' <eq name="status" value="1">selected</eq>>正常</option>
+            <option value='2' <eq name="status" value="2">selected</eq>>禁用</option>
+        </select> &nbsp;&nbsp;
+        <input type="submit" class="btn btn-primary" value="搜索"/>
+        <a class="btn btn-danger" href="{:url('AdminLottery/prize')}">清空</a>
+    </form>
     <form class="js-ajax-form" action="" method="post">
         <table class="table table-hover table-bordered table-list">
             <thead>
@@ -23,6 +33,7 @@
                 <th width="160">中奖概率</th>
                 <th width="160">主图</th>
                 <th width="160">奖品背景色</th>
+                <th width="60">状态</th>
                 <th width="160">操作</th>
             </tr>
             </thead>
@@ -42,10 +53,25 @@
                         </notempty>
                     </td>
                     <td><div class="lw-block" style="background:{$vo.bg};"></div></td>
+                    <td>
+                        <eq name="vo.status" value="1">
+                            <a data-toggle="tooltip" title="正常"><i class="fa fa-check"></i></a>
+                            <else/>
+                            <a style="color:red;" data-toggle="tooltip" title="禁用"><i class="fa fa-close"></i></a>
+                        </eq>
+                    </td>
                     <td>
                         <a class="btn btn-xs btn-primary" href="{:url('AdminLottery/edit',array('id'=>$vo['id']))}">{:lang('EDIT')}</a>
-                        <a class="btn btn-xs btn-danger js-ajax-delete"
-                           href="{:url('AdminLottery/delete',array('id'=>$vo['id']))}">删除</a>
+                        <eq name="$vo.status" value="1">
+                            <a class="btn btn-xs btn-danger js-ajax-dialog-btn"
+                               href="{:url('AdminLottery/setStatus',array('status'=>2,'id'=>$vo['id']))}"
+                               data-msg="您确定禁用吗?">禁用</a>
+                        </eq>
+                        <eq name="$vo.status" value="2">
+                            <a class="btn btn-xs btn-danger js-ajax-dialog-btn"
+                               href="{:url('AdminLottery/setStatus',array('status'=>1,'id'=>$vo['id']))}"
+                               data-msg="您确定启用吗?">启用</a>
+                        </eq>
                     </td>
                 </tr>
             </foreach>