hrjy 2 years ago
parent
commit
bc7b3b4624

+ 28 - 0
app/admin/controller/user/User.php

@@ -120,6 +120,8 @@ class User extends AuthController
         $f[] = Form::number('money', '余额')->min(0);
         $f[] = Form::radio('integration_status', '修改积分', 1)->options([['value' => 1, 'label' => '增加'], ['value' => 2, 'label' => '减少']]);
         $f[] = Form::number('integration', '积分')->min(0);
+        $f[] = Form::radio('consumption_status', '修改消费券', 1)->options([['value' => 1, 'label' => '增加'], ['value' => 2, 'label' => '减少']]);
+        $f[] = Form::number('consumption', '消费券')->min(0);
         $form = Form::make_post_form('修改其他', $f, Url::buildUrl('update_other', array('uid' => $uid)));
         $this->assign(compact('form'));
         return $this->fetch('public/form-builder');
@@ -132,6 +134,8 @@ class User extends AuthController
             ['money', 0],
             ['integration_status', 0],
             ['integration', 0],
+            ['consumption_status', 0],
+            ['consumption', 0],
         ], $this->request);
         if (!$uid) return $this->failed('数据不存在');
         $user = UserModel::get($uid);
@@ -186,6 +190,29 @@ class User extends AuthController
         } else {
             $res2 = true;
         }
+        if ($data['consumption_status'] && $data['consumption']) {//积分增加或者减少
+            if ($data['consumption_status'] == 1) {//增加
+                $edit['consumption'] = bcadd($user['consumption'], $data['consumption'], 2);
+                $res2 = UserBillAdmin::income('系统增加消费券', $user['uid'], 'consumption', 'system_add_consumption', $data['consumption'], $this->adminId, $edit['consumption'], '系统增加了' . floatval($data['consumption']) . '消费券');
+                try {
+                    UserRepository::adminAddIntegral($user, $data['integration']);
+                } catch (\Exception $e) {
+                    BaseModel::rollbackTrans();
+                    return Json::fail($e->getMessage());
+                }
+            } else if ($data['consumption_status'] == 2) {//减少
+                $edit['consumption'] = bcsub($user['consumption'], $data['consumption'], 2);
+                $res2 = UserBillAdmin::expend('系统减少消费券', $user['uid'], 'consumption', 'system_sub_consumption', $data['consumption'], $this->adminId, $edit['consumption'], '系统扣除了' . floatval($data['consumption']) . '消费券');
+                try {
+                    UserRepository::adminSubIntegral($user, $data['integration']);
+                } catch (\Exception $e) {
+                    BaseModel::rollbackTrans();
+                    return Json::fail($e->getMessage());
+                }
+            }
+        } else {
+            $res2 = true;
+        }
         if ($edit) $res3 = UserModel::edit($edit, $uid);
         else $res3 = true;
         if ($res1 && $res2 && $res3) $res = true;
@@ -311,6 +338,7 @@ class User extends AuthController
             ['sex', ''],
             ['level', ''],
             ['group_id', ''],
+            ['excel', ''],
         ]);
         return Json::successlayui(UserModel::getUserList($where));
     }

+ 39 - 0
app/admin/model/user/User.php

@@ -180,10 +180,49 @@ class User extends BaseModel
                     else if (time() > $levelinfo['valid_time']) $item['vip_name'] = SystemUserLevel::where('id', $levelinfo['level_id'])->value('name');
                 }
             });//->toArray();
+        if (isset($where['excel']) && $where['excel'] == 1) {
+            $list = self::setWherePage(self::setWhere($where), $where, ['w.sex', 'w.province', 'w.city', 'u.status', 'u.is_promoter'], ['u.nickname', 'u.uid'])->alias('u')->join('WechatUser w', 'u.uid=w.uid')->select();
+            self::SaveExcel($list);
+        }
         $count = self::setWherePage(self::setWhere($where), $where, ['w.sex', 'w.province', 'w.city', 'u.status', 'u.is_promoter'], ['u.nickname', 'u.uid'])->alias('u')->join('WechatUser w', 'u.uid=w.uid')->count();
         return ['count' => $count, 'data' => $list];
     }
 
+    /**
+     * excel
+     * @param $list
+     * @return void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    public static function SaveExcel($list)
+    {
+        $export = [];
+        $user = User::select();
+        foreach ($list as $index => $item) {
+            $nickname = \app\models\user\User::where('uid', $item['spread_uid'])->value('nickname');
+            $add_time = \app\models\user\User::where('uid', $item['uid'])->value('add_time');
+            $export[] = [
+                $item['uid'],
+                $item['account'],
+                empty($item['nickname']) ? self::where('uid', $item['uid'])->value('nickname') : $item['nickname'],
+                !empty($item['phone'])? $item['phone'] : '未绑定手机号',
+                $item['level'],
+                self::where('uid',$item['uid'])->value('now_money'),
+                $item['integral'],
+                $item['dynamic_integral'],
+                $item['consumption'],
+                !empty($nickname)? $nickname : '没有上级',
+                date('Y-m-d H:i:s', $add_time),
+            ];
+        }
+        PHPExcelService::setExcelHeader(['ID', '账号', '昵称', '手机号','等级', '余额','静态积分','动态积分','消费券', '推广人','首次登录时间'])
+            ->setExcelTile('用户导出' . date('YmdHis', time()), '订单信息' . time(), ' 生成时间:' . date('Y-m-d H:i:s', time()))
+            ->setExcelContent($export)
+            ->ExcelSave();
+    }
+
     /**
      *  修改用户状态
      * @param $uids 用户uid

+ 97 - 1
app/admin/view/user/user/index.php

@@ -65,7 +65,7 @@
                         <div class="layui-inline">
                             <label class="layui-form-label">姓名编号:</label>
                             <div class="layui-input-inline">
-                                <input type="text" name="nickname" lay-verify="nickname" style="width: 100%" autocomplete="off" placeholder="请输入姓名、编号、手机号" class="layui-input">
+                                <input type="text" name="nickname" id="nickname" lay-verify="nickname" style="width: 100%" autocomplete="off" placeholder="请输入姓名、编号、手机号" class="layui-input">
                             </div>
                         </div>
                         <div class="layui-inline">
@@ -186,6 +186,12 @@
                             </div>
                         </div>
                     </div>
+                    <div class="layui-col-lg12" id="app1">
+                        <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>
                     <div class="layui-form-item">
                         <label class="layui-form-label">
                             <button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit="" lay-filter="search" >
@@ -314,6 +320,7 @@
             {field: 'extract_count_price', title: '累计提现',align:'center',width:'6%'},
             {field: 'integral', title: '积分',width:'6%',sort:true,event:'integral',align:'center'},
             {field: 'dynamic_integral', title: '动态积分',width:'6%',sort:true,event:'dynamic_integral',align:'center'},
+            {field: 'consumption', title: '消费券',width:'6%',sort:true,event:'consumption',align:'center'},
             {field: 'spread_uid_nickname', title: '推荐人',align:'center'},
             {field: 'sex', title: '性别',width:'4%',align:'center'},
             {field: 'data_time', title: '访问日期',align:'center',width:'12%',templet:'#data_time'},
@@ -544,5 +551,94 @@
         }
     }
 
+    require(['vue'], function (Vue) {
+        new Vue({
+            el: "#app1",
+            data: {
+                badge: [],
+                where: {
+                    nickname: '',
+                    group: '',
+                    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 nickname = $('#nickname').val();
+                    var group = $('#group').val();
+
+                    this.where['nickname'] = nickname;
+                    this.where['group'] = group;
+                    this.where.excel = 1;
+                    location.href = layList.U({c: 'user.user', a: 'get_user_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}