From 7966b494ddea2c27ecec6ed031521cb889ab19f5 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 25 Apr 2025 15:18:19 +0800
Subject: [PATCH] feat(mall): 增加会员列表核销员设置功能并优化相关页面

---
 src/main/resources/templates/index.html                                                |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java           |   72 ++++
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java            |    9 
 src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java                    |    7 
 src/main/java/cc/mrbird/febs/mall/vo/ApiActivityVo.java                                |    3 
 src/main/resources/application-test.yml                                                |    4 
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java         |   43 +-
 src/main/resources/templates/febs/views/modules/mallMember/mallMemberList-bak.html     |  534 +++++++++++++++++++++++++++++++++++
 src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html         |   94 ++---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java      |    2 
 src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html      |   38 +-
 src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionVo.java                          |    9 
 src/main/java/cc/mrbird/febs/mall/dto/activity/ApiOperateValidRegisterActivityDto.java |   18 +
 src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityController.java  |   10 
 src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java                 |    2 
 src/main/resources/templates/febs/views/layout.html                                    |    2 
 src/main/resources/templates/febs/views/login.html                                     |    4 
 17 files changed, 743 insertions(+), 110 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
index 3149c28..905140c 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
@@ -589,6 +589,15 @@
     }
 
     /**
+     * 会员列表-核销员设置
+     */
+    @GetMapping("checkOrder/{id}")
+    @ControllerEndpoint(operation = " 会员列表-核销员设置", exceptionMessage = "操作失败")
+    public FebsResponse checkOrder(@NotNull(message = "{required}") @PathVariable Long id) {
+        return mallMemberService.checkOrder(id);
+    }
+
+    /**
      * 会员列表-推销员设置
      */
     @GetMapping("downSale/{id}")
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityController.java b/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityController.java
index a33b9e2..9361c27 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityController.java
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.common.annotation.Limit;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.mall.dto.*;
+import cc.mrbird.febs.mall.dto.activity.ApiOperateValidRegisterActivityDto;
 import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto;
 import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionRecordInPageDto;
 import cc.mrbird.febs.mall.service.HappyActivityService;
@@ -49,7 +50,6 @@
 
     @ApiOperation(value = "点赞关注转发", notes = "点赞关注转发")
     @PostMapping(value = "/operateDo")
-    @Limit(key = "operateDo", period = 60, count = 1, name = "点赞关注转发接口", prefix = "limit")
     public FebsResponse operateDo(@RequestBody @Validated ApiOperateDoDto dto) {
 
         return happyActivityService.operateDo(dto);
@@ -97,7 +97,6 @@
 
     @ApiOperation(value = "投票活动-选项投票", notes = "投票活动-选项投票")
     @PostMapping(value = "/operateVote")
-    @Limit(key = "operateVote", period = 60, count = 1, name = "投票接口", prefix = "limit")
     public FebsResponse operateVote(@RequestBody @Validated ApiOperateVoteDto dto) {
 
         return happyActivityService.operateVote(dto);
@@ -113,6 +112,13 @@
         return happyActivityService.voteRecordInPage(dto);
     }
 
+    @ApiOperation(value = "投票活动-报名-验证", notes = "投票活动-报名-验证")
+    @PostMapping(value = "/operateValidRegister")
+    public FebsResponse operateValidRegister(@RequestBody @Validated ApiOperateValidRegisterActivityDto dto) {
+
+        return happyActivityService.operateValidRegister(dto);
+    }
+
     @ApiOperation(value = "投票活动-报名", notes = "投票活动-报名")
     @PostMapping(value = "/operateRegister")
     public FebsResponse operateRegister(@RequestBody @Validated ApiOperateRegisterActivityDto dto) {
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiOperateValidRegisterActivityDto.java b/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiOperateValidRegisterActivityDto.java
new file mode 100644
index 0000000..65a4298
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/activity/ApiOperateValidRegisterActivityDto.java
@@ -0,0 +1,18 @@
+package cc.mrbird.febs.mall.dto.activity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "ApiOperateValidRegisterActivityDto", description = "参数")
+public class ApiOperateValidRegisterActivityDto {
+
+
+    @NotNull(message = "活动ID不可为空")
+    @ApiModelProperty(value = "活动ID", example = "1")
+    private Long activityId;//投票活动ID
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java b/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java
index c4e5e2e..52c4c38 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java
@@ -2,10 +2,7 @@
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.mall.dto.*;
-import cc.mrbird.febs.mall.dto.activity.ApiActivityOrderListDto;
-import cc.mrbird.febs.mall.dto.activity.ApiCheckOrderDto;
-import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto;
-import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionRecordInPageDto;
+import cc.mrbird.febs.mall.dto.activity.*;
 import cc.mrbird.febs.mall.entity.HappyActivity;
 import cc.mrbird.febs.mall.dto.ApiOperateDoDto;
 import cc.mrbird.febs.mall.dto.ApiOperateVoteDto;
@@ -36,6 +33,8 @@
 
     FebsResponse voteRecordInPage(ApiVoteRecordInPageDto dto);
 
+    FebsResponse operateValidRegister(ApiOperateValidRegisterActivityDto dto);
+
     FebsResponse operateRegister(ApiOperateRegisterActivityDto dto);
 
     FebsResponse addConnect(ApiOperateRegisterUserDto dto);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
index 8006c4a..e9171ef 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
@@ -141,4 +141,6 @@
     FebsResponse salemanCoupon(MallMember mallmember);
 
     FebsResponse addMemberCoupon(MallMember member);
+
+    FebsResponse checkOrder(Long id);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java
index af8d1dc..2d30850 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java
@@ -268,7 +268,7 @@
         List<HappyActivity> happyActivities = this.baseMapper.selectList(
                 new LambdaQueryWrapper<HappyActivity>()
                         .select(HappyActivity::getId, HappyActivity::getName)
-                        .eq(HappyActivity::getType, StateUpDownEnum.ACTIVITY_TYPE_CROWDFUNDING.getCode())
+                        .eq(HappyActivity::getPayState, StateUpDownEnum.ACTIVITY_CROWDFUNDING_STATE_OPEN.getCode())
                         .eq(HappyActivity::getDeleteFlag, StateUpDownEnum.DOWN.getCode())
         );
         return happyActivities;
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index 5ad9ccb..5bb762f 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
 import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.StateUpDownEnum;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.AppContants;
 import cc.mrbird.febs.common.utils.RedisUtils;
@@ -23,6 +24,7 @@
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.crypto.SecureUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -78,22 +80,21 @@
     @Override
     public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
         Page<MallMember> page = new Page<>(request.getPageNum(), request.getPageSize());
-        IPage<MallMember> mallMembers = this.baseMapper.selectMallMemberListInPage(page, mallMember);
-//        if(CollUtil.isNotEmpty(mallMembers.getRecords())){
-//            for(MallMember mallMemberTeam : mallMembers.getRecords()){
-//                Long salesmansId = mallMemberTeam.getSalesmansId();
-//                MallSalesman mallSalesman = mallSalesmanMapper.selectById(salesmansId);
-//                if(ObjectUtil.isNotEmpty(mallSalesman)){
-//                    StringBuffer salesmanName = new StringBuffer();
-//                    salesmanName.append(mallSalesman.getName());
-//                    if(2 == mallSalesman.getState()){
-//                        salesmanName.append("(禁用)");
-//                    }
-//                    mallMemberTeam.setSalesmansName(salesmanName.toString());
-//                }
-//            }
-//        }
-        return mallMembers;
+        LambdaQueryWrapper<MallMember> mallMemberLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if(ObjectUtil.isNotEmpty(mallMember.getName())){
+            mallMemberLambdaQueryWrapper.like(MallMember::getName, mallMember.getName());
+        }
+        if(ObjectUtil.isNotEmpty(mallMember.getPhone())){
+            mallMemberLambdaQueryWrapper.eq(MallMember::getPhone, mallMember.getPhone());
+        }
+        if(ObjectUtil.isNotEmpty(mallMember.getCheckOrder())){
+            mallMemberLambdaQueryWrapper.eq(MallMember::getCheckOrder, mallMember.getCheckOrder());
+        }
+        mallMemberLambdaQueryWrapper.orderByDesc(MallMember::getId);
+
+        Page<MallMember> mallMemberPage = this.baseMapper.selectPage(page, mallMemberLambdaQueryWrapper);
+//        IPage<MallMember> mallMembers = this.baseMapper.selectMallMemberListInPage(page, mallMember);
+        return mallMemberPage;
     }
 
     @Override
@@ -955,4 +956,14 @@
 
         return new FebsResponse().success().message("操作成功");
     }
+
+    @Override
+    public FebsResponse checkOrder(Long id) {
+
+        MallMember mallMember = this.baseMapper.selectById(id);
+        mallMember.setCheckOrder(StateUpDownEnum.DOWN.getCode() == mallMember.getCheckOrder() ? StateUpDownEnum.UP.getCode() : StateUpDownEnum.DOWN.getCode());
+        this.baseMapper.updateById(mallMember);
+
+        return new FebsResponse().success().message("操作成功");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
index 13ca39c..531879d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
@@ -7,10 +7,7 @@
 import cc.mrbird.febs.common.utils.MallUtils;
 import cc.mrbird.febs.common.utils.ShareCodeUtil;
 import cc.mrbird.febs.mall.dto.*;
-import cc.mrbird.febs.mall.dto.activity.ApiActivityOrderListDto;
-import cc.mrbird.febs.mall.dto.activity.ApiCheckOrderDto;
-import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto;
-import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionRecordInPageDto;
+import cc.mrbird.febs.mall.dto.activity.*;
 import cc.mrbird.febs.mall.entity.*;
 import cc.mrbird.febs.mall.mapper.*;
 import cc.mrbird.febs.mall.service.HappyActivityService;
@@ -80,7 +77,6 @@
             // 查询关注点赞转发记录,筛选出关注活动类型且未删除的关注记录,并按ID升序排序,限制结果数量为3
             List<HappyFollow> happyFollows = happyFollowMapper.selectList(
                     new LambdaQueryWrapper<HappyFollow>()
-                            .select(HappyFollow::getMemberId)
                             .eq(HappyFollow::getSourceType, StateUpDownEnum.SOURCE_TYPE_ACTIVITY.getCode())
                             .in(HappyFollow::getSourceId, ids)
                             .eq(HappyFollow::getDeleteFlag, StateUpDownEnum.DOWN.getCode())
@@ -169,6 +165,44 @@
         if(happyActivityOption != null){
             BeanUtil.copyProperties(happyActivityOption, apiActivityOptionVo);
         }
+
+        //投票人数
+        List<HappyFollow> happyFollows = happyFollowMapper.selectList(
+                new LambdaQueryWrapper<HappyFollow>()
+                        .select(HappyFollow::getId)
+                        .eq(HappyFollow::getSourceOptionId, id)
+                        .eq(HappyFollow::getType, StateUpDownEnum.VOTE.getCode())
+                        .eq(HappyFollow::getDeleteFlag, StateUpDownEnum.DOWN.getCode())
+                        .groupBy(HappyFollow::getMemberId)
+        );
+        apiActivityOptionVo.setVoteCnt(CollUtil.isNotEmpty(happyFollows) ? happyFollows.size() : 0);
+
+        List<HappyActivityOption> happyActivityOptions = happyActivityOptionMapper.selectList(
+                new LambdaQueryWrapper<HappyActivityOption>()
+                        .select(HappyActivityOption::getId,HappyActivityOption::getLikesCnt)
+                        .eq(HappyActivityOption::getActivityId, happyActivityOption.getActivityId())
+                        .eq(HappyActivityOption::getDeleteFlag, StateUpDownEnum.DOWN.getCode())
+                        .eq(HappyActivityOption::getState, StateUpDownEnum.VOTE_OPTION_STATE_AUDIT_SUCCESS.getCode())
+                .orderByDesc(HappyActivityOption::getLikesCnt)
+        );
+        //获取上一个名次的数据
+        int firstCnt = 1;
+        int distanceCnt = 0;
+        for (HappyActivityOption option : happyActivityOptions){
+            if(option.getId().equals(id)){
+                apiActivityOptionVo.setFirstCnt(firstCnt);
+                if( firstCnt == 1 ){
+                    apiActivityOptionVo.setDistanceCnt(distanceCnt);
+                }else{
+                    apiActivityOptionVo.setDistanceCnt(distanceCnt- option.getLikesCnt());
+                }
+                break;
+            }else{
+                firstCnt = firstCnt + 1;
+                distanceCnt = option.getLikesCnt();
+            }
+        }
+
         return new FebsResponse().success().data(apiActivityOptionVo);
     }
 
@@ -263,7 +297,6 @@
                 new LambdaQueryWrapper<HappyFollow>()
                         .eq(HappyFollow::getMemberId, memberId)
                         .eq(HappyFollow::getSourceId, sourceId)
-                        .eq(HappyFollow::getSourceOptionId, sourceOptionId)
                         .eq(HappyFollow::getType, type)
                         .gt(HappyFollow::getCreatedTime, DateUtil.beginOfDay(new Date()))
         );
@@ -285,7 +318,7 @@
         if(CollUtil.isNotEmpty(records)){
             //stream流操作records,获取全部的memberId(全部投票人)
             Set<Long> memberIds = records.stream().map(ApiVoteRecordInPageVo::getMemberId).collect(Collectors.toSet());
-            if(CollUtil.isEmpty(memberIds)){
+            if(CollUtil.isNotEmpty(memberIds)){
                 List<MallMember> mallMembers = mallMemberMapper.selectList(
                         new LambdaQueryWrapper<MallMember>()
                                 .select(MallMember::getId, MallMember::getName, MallMember::getAvatar)
@@ -307,6 +340,31 @@
     }
 
     @Override
+    public FebsResponse operateValidRegister(ApiOperateValidRegisterActivityDto dto) {
+        Long memberId = LoginUserUtil.getLoginUser().getId();
+        HappyActivity happyActivity = this.baseMapper.selectById(dto.getActivityId());
+
+        if (StateUpDownEnum.ACTIVITY_STATE_END.getCode() == happyActivity.getState()) {
+            throw new FebsException("活动已结束");
+        }
+        if (StateUpDownEnum.DOWN.getCode() == happyActivity.getAddState()) {
+            throw new FebsException("活动尚未开启报名");
+        }
+        //判断用户是否重复报名
+        Integer registerCnt = happyActivityOptionMapper.selectCount(
+                new LambdaQueryWrapper<HappyActivityOption>()
+                        .eq(HappyActivityOption::getMemberId, memberId)
+                        .eq(HappyActivityOption::getActivityId, dto.getActivityId())
+                        .ne(HappyActivityOption::getState, StateUpDownEnum.VOTE_OPTION_STATE_AUDIT_REFUSE.getCode())
+                        .eq(HappyActivityOption::getDeleteFlag, StateUpDownEnum.DOWN.getCode())
+        );
+        if (registerCnt > 0) {
+            throw new FebsException("您已经报名过了");
+        }
+        return new FebsResponse().success();
+    }
+
+    @Override
     public FebsResponse operateRegister(ApiOperateRegisterActivityDto dto) {
         Long memberId = LoginUserUtil.getLoginUser().getId();
 
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionVo.java
index 763d1a5..6fae219 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityOptionVo.java
@@ -17,6 +17,15 @@
     @ApiModelProperty(value = "票数")
     private Integer likesCnt;
 
+    @ApiModelProperty(value = "名次")
+    private Integer firstCnt;
+
+    @ApiModelProperty(value = "距离上一名")
+    private Integer distanceCnt;
+
+    @ApiModelProperty(value = "投票人数")
+    private Integer voteCnt;
+
     @ApiModelProperty(value = "封面头像")
     private String image;
 
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityVo.java b/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityVo.java
index 4fcad94..42ced4b 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/ApiActivityVo.java
@@ -52,6 +52,9 @@
     @ApiModelProperty(value = "门票剩余数量")
     private Integer surplusCnt;
 
+    @ApiModelProperty(value = "每天的限制次数")
+    private Integer voteCnt;
+
     @ApiModelProperty(value = "是否众筹 0-关闭 1-开启(开启代表收取参与费用)")
     private Integer payState;
 
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index 2f0ae1c..093f866 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -77,9 +77,9 @@
   wecharActivityPaynotifyUrl: http://blnka.csxuncong.com/api/xcxPay/wxpayCallback
   wecharRechargePaynotifyUrl: http://blnka.csxuncong.com/api/xcxPay/rechargeCallBack
   certLocalPath: /home/blnkaCert/apiclient_cert.p12
-  wecharpayMchid: 1658958205
+  wecharpayMchid: 1714199495
   wecharpaySecret: daL341aN5orDt13puXadsAf2rpuXdq4r
-  wecharpaySecretV3: daL341aN5orDt13puXadsAf2rpuX12v3
+  wecharpaySecretV3: 1234567hnggcmyxgs731907666310878
   gaodeKey: 95ede7157929f5f6b6c758971be924b1
   serviceName: yiyuanshucai
 
diff --git a/src/main/resources/templates/febs/views/layout.html b/src/main/resources/templates/febs/views/layout.html
index 47dee3f..e24480f 100644
--- a/src/main/resources/templates/febs/views/layout.html
+++ b/src/main/resources/templates/febs/views/layout.html
@@ -64,7 +64,7 @@
         <div class="layui-side-scroll">
             <div class="layui-logo" style="cursor: pointer">
                 <img data-th-src="@{febs/images/logo.png}">
-                <span>blnka 权限系统</span>
+                <span>快乐社区 权限系统</span>
             </div>
             <script
                     type="text/html"
diff --git a/src/main/resources/templates/febs/views/login.html b/src/main/resources/templates/febs/views/login.html
index 386d8ee..56d1e29 100644
--- a/src/main/resources/templates/febs/views/login.html
+++ b/src/main/resources/templates/febs/views/login.html
@@ -2,7 +2,7 @@
 <html xmlns:th="http://www.thymeleaf.org">
 <head>
     <meta charset="utf-8">
-    <title>blnka 权限系统</title>
+    <title>快乐社区 权限系统</title>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <meta name="renderer" content="webkit">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@@ -19,7 +19,7 @@
         <div class="layui-container">
             <div class="layui-row">
                 <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc">
-                    <div class="layui-logo"><span><b>blnka</b> 权限系统</span></div>
+                    <div class="layui-logo"><span><b>快乐社区</b> 权限系统</span></div>
                 </div>
                 <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div">
                     <div class="layui-form" lay-filter="login-form">
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList-bak.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList-bak.html
new file mode 100644
index 0000000..5b28852
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList-bak.html
@@ -0,0 +1,534 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-member-list" lay-title="会员列表">
+    <div class="layui-row febs-container">
+        <div class="layui-col-md12">
+            <div class="layui-card">
+                <div class="layui-card-body febs-table-full">
+                    <form class="layui-form layui-table-form" lay-filter="user-table-form">
+                        <div class="layui-row">
+                            <div class="layui-col-md10">
+                                <div class="layui-form-item">
+                                    <div class="layui-inline">
+                                        <label class="layui-form-label layui-form-label-sm">用户昵称</label>
+                                        <div class="layui-input-inline">
+                                            <input type="text" placeholder="用户昵称" name="name" autocomplete="off" class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-inline">
+                                        <label class="layui-form-label layui-form-label-sm">手机号码</label>
+                                        <div class="layui-input-inline">
+                                            <input type="text" placeholder="手机号码" name="account" autocomplete="off" class="layui-input">
+                                        </div>
+                                    </div>
+                                    <div class="layui-inline">
+                                        <label class="layui-form-label layui-form-label-sm">会员类型</label>
+                                        <div class="layui-input-inline">
+                                            <select name="level">
+                                                <option value="">请选择</option>
+                                                <option value="ZERO_LEVEL">普通用户</option>
+                                                <option value="FIRST_LEVEL">城市合伙人</option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                    <div class="layui-inline">
+                                        <label class="layui-form-label layui-form-label-sm">会员生日</label>
+                                        <div class="layui-input-inline">
+                                            <input type="text" name="birthday" id="febs-member-benefits-list-birthday-start" lay-verify="date"
+                                                   placeholder="MM-dd" autocomplete="off" class="layui-input">
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
+                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
+                                    <i class="layui-icon">&#xe848;</i>
+                                </div>
+                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
+                                    <i class="layui-icon">&#xe79b;</i>
+                                </div>
+                            </div>
+                        </div>
+                    </form>
+                    <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table>
+                    <style type="text/css">
+                        ::-webkit-scrollbar {
+                            height: 20px !important;
+                            background-color: #f4f4f4;
+                        }
+                    </style>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<!-- 表格操作栏 start -->
+<script type="text/html" id="user-option">
+    <span shiro:lacksPermission="user:view,user:update,user:delete">
+        <span class="layui-badge-dot febs-bg-orange"></span> 无权限
+    </span>
+    <a lay-event="edit" shiro:hasPermission="user:update"><i
+            class="layui-icon febs-edit-area febs-blue">&#xe7a5;</i></a>
+</script>
+<script type="text/html" id="switchStatus">
+    {{# if(d.accountStatus === 1) { }}
+    <input type="checkbox" value={{d.id}} lay-text="正常|禁用" checked lay-skin="switch" lay-filter="switchStatus">
+    {{# } else { }}
+    <input type="checkbox" value={{d.id}} lay-text="正常|禁用" lay-skin="switch" lay-filter="switchStatus">
+    {{# } }}
+</script>
+<script type="text/html" id="switchStoreMaster">
+    {{# if(d.storeMaster === 1) { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="switchStoreMaster">
+    {{# } else { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="switchStoreMaster">
+    {{# } }}
+</script>
+<script type="text/html" id="switchDirector">
+    {{# if(d.director === 1) { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="switchDirector">
+    {{# } else { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="switchDirector">
+    {{# } }}
+</script>
+
+<script type="text/html" id="isSalesmanSwitch">
+    {{# if(d.isSale === 1) { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isSalesmanSwitch">
+    {{# } else { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isSalesmanSwitch">
+    {{# } }}
+</script>
+
+<script type="text/html" id="isDoctorSwitch">
+    {{# if(d.doctorState === 1) { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isDoctorSwitch">
+    {{# } else { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="isDoctorSwitch">
+    {{# } }}
+</script>
+<style>
+    .layui-form-onswitch {
+        background-color: #5FB878 !important;
+    }
+</style>
+<script type="text/html" id="toolbar">
+    <div class="layui-btn-container">
+        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateReferer">修改推荐人</button>
+        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateVipLevel">修改会员等级</button>
+        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="addCoupon">优惠券派送</button>
+    </div>
+</script>
+<!-- 表格操作栏 end -->
+<script data-th-inline="none" type="text/javascript">
+    // 引入组件并初始化
+    layui.use([ 'jquery', 'form', 'table', 'febs', 'laydate'], function () {
+        var $ = layui.jquery,
+            febs = layui.febs,
+            form = layui.form,
+            table = layui.table,
+            $view = $('#febs-member-list'),
+            $query = $view.find('#query'),
+            $reset = $view.find('#reset'),
+            $searchForm = $view.find('form'),
+            sortObject = {field: 'phone', type: null},
+            laydate = layui.laydate,
+            tableIns;
+
+        form.render();
+
+        laydate.render({
+            elem: '#febs-member-benefits-list-birthday-start',
+            format:'MM-dd'
+        });
+
+        // 表格初始化
+        initTable();
+
+        // 初始化表格操作栏各个按钮功能
+        table.on('tool(userTable)', function (obj) {
+            var data = obj.data,
+                layEvent = obj.event;
+
+            if (layEvent === 'memberOut') {
+                febs.modal.confirm('注销', '确认注销该账号?', function () {
+                    memberOut(data.id);
+                });
+            }
+
+            if (layEvent === 'close') {
+                febs.modal.confirm('禁用', '确认禁用该账号?', function () {
+                    closeAccount(data.id);
+                });
+            }
+            if (layEvent === 'open') {
+                febs.modal.confirm('开启', '确认开启该账号?', function () {
+                    openAccount(data.id);
+                });
+            }
+
+            if (layEvent === 'see') {
+                febs.modal.open( '个人信息', 'modules/mallMember/detail/' + data.id, {
+                    btn: ['提交', '取消'],
+                    yes: function (index, layero) {
+                        $('#user-update').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+
+            if (layEvent === 'addLeader') {
+                febs.modal.open( '团长新增', 'modules/leader/addLeader/' + data.id, {
+                    btn: ['提交', '取消'],
+                    yes: function (index, layero) {
+                        $('#user-addLeader').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+
+            if (layEvent === 'agentSelect') {
+                febs.modal.open('推销员设置', 'modules/mallMember/agentSelect/' + data.id, {
+                    btn: ['提交', '取消'],
+                    yes: function (index, layero) {
+                        $('#agent-select').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+
+            if (layEvent === 'moneyFlow') {
+                febs.modal.open( '用户资金流水', 'modules/mallMember/moneyFlow/' + data.id, {
+                    maxmin: true,
+                });
+            }
+
+
+
+        });
+        function memberOut(id) {
+            febs.get(ctx + 'admin/mallMember/memberOut/' + id, null, function () {
+                febs.alert.success('操作成功');
+                $query.click();
+            });
+        }
+        function closeAccount(id) {
+            febs.get(ctx + 'admin/mallMember/closeAccount/' + id, null, function () {
+                febs.alert.success('禁用成功');
+                $query.click();
+            });
+        }
+        function openAccount(id) {
+            febs.get(ctx + 'admin/mallMember/openAccount/' + id, null, function () {
+                febs.alert.success('开启成功');
+                $query.click();
+            });
+        }
+
+        function changeIdentityYes(type, id) {
+            febs.get(ctx + 'admin/mallMember/changeIdentityYes/' + type + "/" + id, null, function () {
+                febs.alert.success('设置成功');
+                $query.click();
+            });
+        }
+        function changeIdentityNo(type, id) {
+            febs.get(ctx + 'admin/mallMember/changeIdentityNo/' + type + "/" + id, null, function () {
+                febs.alert.success('设置成功');
+                $query.click();
+            });
+        }
+
+        function resetPwd(id, type) {
+            febs.post(ctx + 'admin/mallMember/resetPwdNew/' + type + "/"+ id, null, function () {
+                febs.alert.success('重置成功');
+                $query.click();
+            });
+        }
+
+        form.on('switch(isSalesmanSwitch)', function (data) {
+            if (data.elem.checked) {
+                upSale(data.value);
+            } else {
+                downSale(data.value);
+            }
+        })
+
+        form.on('switch(isDoctorSwitch)', function (data) {
+            if (data.elem.checked) {
+                doctorStateChange(data.value);
+            } else {
+                doctorStateChange(data.value);
+            }
+        })
+
+        function doctorStateChange(id) {
+            febs.get(ctx + 'admin/mallMember/doctorStateChange/' + id, null, function () {
+                febs.alert.success('操作成功');
+                $query.click();
+            });
+        }
+
+        function upSale(id) {
+            febs.get(ctx + 'admin/mallMember/upSale/' + id, null, function () {
+                febs.alert.success('操作成功');
+                $query.click();
+            });
+        }
+        function downSale(id) {
+            febs.get(ctx + 'admin/mallMember/downSale/' + id, null, function () {
+                febs.alert.success('操作成功');
+                $query.click();
+            });
+        }
+
+        // 查询按钮
+        $query.on('click', function () {
+            var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
+            tableIns.reload({where: params, page: {curr: 1}});
+        });
+
+        // 刷新按钮
+        $reset.on('click', function () {
+            $searchForm[0].reset();
+            sortObject.type = 'null';
+            tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
+        });
+
+        function initTable() {
+            tableIns = febs.table.init({
+                elem: $view.find('table'),
+                id: 'userTable',
+                url: ctx + 'admin/mallMember/getMallMemberList',
+                toolbar:"#toolbar",
+                defaultToolbar:[],
+                cols: [[
+                    {type: 'checkbox'},
+                    {field: 'phone', title: '手机号码', minWidth: 150,align:'left'},
+                    {field: 'name', title: '用户昵称', minWidth: 100,align:'left'},
+                    {field: 'birthday', title: '会员生日', minWidth: 100,align:'left'},
+                    {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'},
+                    {field: 'balance', title: '余额', minWidth: 100,align:'left'},
+                    // {field: 'score', title: '赠送积分', minWidth: 100,align:'left'},
+                    {field: 'prizeScore', title: '积分', minWidth: 100,align:'left'},
+                    // {field: 'commission', title: '佣金', minWidth: 100,align:'left'},
+                    {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'},
+                    {field: 'levelName', title: '会员等级', minWidth: 100,align:'left'},
+                    // {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'},
+                    {field: 'doctorState', title: '医生设置', templet: '#isDoctorSwitch', minWidth: 100,align:'center'},
+                    {field: 'isSalesman', title: '推销员设置', templet: '#isSalesmanSwitch', minWidth: 100,align:'center'},
+                    // {field: 'director', title: '总监', templet:'#switchDirector', minWidth: 100},
+                    // {field: 'accountType', title: '账号类型',
+                    //     templet: function (d) {
+                    //         if (d.accountType === 2) {
+                    //             return '<span style="color:red;">测试账号</span>'
+                    //         } else if (d.accountType === 1) {
+                    //             return '<span style="color:green;">正常账号</span>'
+                    //         }else{
+                    //             return ''
+                    //         }
+                    //     }, minWidth: 100,align:'center'},
+                    // {field: 'leaderState', title: '是否是团长',
+                    //     templet: function (d) {
+                    //         if (d.leaderState === 1) {
+                    //             return '<span style="color:green;">团长</span>'
+                    //         }else if (d.leaderState === 3) {
+                    //             return '<span">申请中</span>'
+                    //         }else if (d.leaderState === 4) {
+                    //             return '<span">普通用户(取消团长资格)</span>'
+                    //         }else{
+                    //             return '<span">普通用户</span>'
+                    //         }
+                    //     }, minWidth: 100,align:'center'},
+                    // {field: 'accountStatus', title: '账号状态', templet: '#switchStatus', minWidth: 100,align:'center'},
+                    {field: 'createdTime', title: '注册时间', minWidth: 180,align:'center'},
+                    {title: '操作',
+                        templet: function (d) {
+                            return  ''
+                                +'<button class="layui-btn layui-btn-normal layui-btn-xs febs-bg-red" lay-event="memberOut" shiro:hasPermission="user:update">注销</button>'
+                                // + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addLeader" shiro:hasPermission="user:update">设置为团长</button>'
+
+                        },minWidth: 200,align:'center'}
+                ]]
+            });
+        }
+
+        table.on('toolbar(userTable)', function(obj){
+            var data = obj.data,
+                layEvent = obj.event;
+
+            if (layEvent === 'registMember') {
+                febs.modal.open( '添加会员', 'modules/mallMember/addMember', {
+                    btn: ['提交', '取消'],
+                    yes: function (index, layero) {
+                        $('#member-add').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+
+                return;
+            }
+
+            var checkData = table.checkStatus('userTable').data;
+            if (checkData.length <= 0) {
+                febs.alert.warn('请选择需要的用户');
+                return;
+            }
+
+            if (layEvent == 'updateReferer') {
+                if (checkData.length > 1) {
+                    febs.alert.warn('每次只能修改一个用户');
+                    return;
+                }
+                febs.modal.open( '修改推荐人', 'modules/mallMember/updateReferer/' + checkData[0].id, {
+                    btn: ['提交', '取消'],
+                    yes: function (index, layero) {
+                        $('#referer-update').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+
+            if (layEvent === 'updateVipLevel') {
+                var checkData = table.checkStatus('userTable').data;
+                if (checkData.length > 1) {
+                    febs.alert.warn('每次只能修改一个用户');
+                    return;
+                }
+                // var idList = [];
+                // for (var i = 0; i < checkData.length; i++) {
+                //     idList.push(checkData[i].id);
+                // }
+                febs.modal.open('设置会员等级', 'modules/mallMember/vipLevelSetting/' + checkData[0].id, {
+                    btn: ['确认', '取消'],
+                    yes: function (index, layero) {
+                        $('#vip-level-set').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+
+            if (layEvent === 'resetPwd') {
+                febs.modal.confirm('重置登录密码', '是否重置选中账号登录密码?', function () {
+                    var ids = [];
+                    layui.each(checkData, function (key, item) {
+                        ids.push(item.id)
+                    });
+                    resetPwd(ids.join(','), 2);
+                });
+            }
+
+            if (layEvent === 'resetPayPwd') {
+                febs.modal.confirm('重置交易密码', '是否重置选中账号交易密码?', function () {
+                    var ids = [];
+                    layui.each(checkData, function (key, item) {
+                        ids.push(item.id)
+                    });
+
+                    resetPwd(ids.join(','), 1);
+                });
+            }
+
+            if (layEvent === 'balance') {
+                if (checkData.length > 1) {
+                    febs.alert.warn('请选择一个用户');
+                }
+                systemPay("修改余额", checkData[0].id, 1);
+            }
+
+            if (layEvent === 'score') {
+                if (checkData.length > 1) {
+                    febs.alert.warn('请选择一个用户');
+                }
+                systemPay("修改赠送积分", checkData[0].id, 2);
+            }
+
+            if (layEvent === 'prizeScore') {
+                if (checkData.length > 1) {
+                    febs.alert.warn('请选择一个用户');
+                }
+                systemPay("修改竞猜积分", checkData[0].id, 3);
+            }
+
+            if (layEvent === 'agentLevel') {
+                febs.modal.open('设置代理级别', 'modules/mallMember/agentLevelSet/' + checkData[0].id, {
+                    btn: ['确认', '取消'],
+                    yes: function (index, layero) {
+                        $('#agent-level-set').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+
+            if (layEvent === 'addCoupon') {
+                febs.modal.open('添加优惠券', 'modules/mallMember/addCoupon/' + checkData[0].id, {
+                    btn: ['确认', '取消'],
+                    yes: function (index, layero) {
+                        $('#member-coupon-select').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+        });
+
+        function systemPay(text, id, type) {
+            febs.modal.open('text', 'modules/mallMember/mallSystemPay/' + type +'/'+ id, {
+                btn: ['提交', '取消'],
+                yes: function (index, layero) {
+                    $('#systemPay-update').find('#submit').trigger('click');
+                },
+                btn2: function () {
+                    layer.closeAll();
+                }
+            });
+        }
+
+        // 获取查询参数
+        function getQueryParams() {
+            return {
+                name: $searchForm.find('input[name="name"]').val().trim(),
+                account: $searchForm.find('input[name="account"]').val().trim(),
+                level: $searchForm.find("select[name='level']").val(),
+                birthdayQuery: $searchForm.find("input[name='birthday']").val(),
+                // level: $searchForm.find("select[name='level']").val(),
+            };
+        }
+
+        form.on('switch(switchStatus)', function (data) {
+            if (data.elem.checked) {
+                openAccount(data.value);
+            } else {
+                closeAccount(data.value);
+            }
+        })
+
+        form.on('switch(switchStoreMaster)', function (data) {
+            if (data.elem.checked) {
+                changeIdentityYes(2, data.value);
+            } else {
+                changeIdentityNo(2, data.value);
+            }
+        })
+
+        form.on('switch(switchDirector)', function (data) {
+            if (data.elem.checked) {
+                changeIdentityYes(1, data.value);
+            } else {
+                changeIdentityNo(1, data.value);
+            }
+        })
+    })
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
index 5b28852..0c1aade 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
@@ -16,24 +16,17 @@
                                     <div class="layui-inline">
                                         <label class="layui-form-label layui-form-label-sm">手机号码</label>
                                         <div class="layui-input-inline">
-                                            <input type="text" placeholder="手机号码" name="account" autocomplete="off" class="layui-input">
+                                            <input type="text" placeholder="手机号码" name="phone" autocomplete="off" class="layui-input">
                                         </div>
                                     </div>
                                     <div class="layui-inline">
-                                        <label class="layui-form-label layui-form-label-sm">会员类型</label>
+                                        <label class="layui-form-label layui-form-label-sm">核销员</label>
                                         <div class="layui-input-inline">
-                                            <select name="level">
+                                            <select name="checkOrder">
                                                 <option value="">请选择</option>
-                                                <option value="ZERO_LEVEL">普通用户</option>
-                                                <option value="FIRST_LEVEL">城市合伙人</option>
+                                                <option value="0">否</option>
+                                                <option value="1">是</option>
                                             </select>
-                                        </div>
-                                    </div>
-                                    <div class="layui-inline">
-                                        <label class="layui-form-label layui-form-label-sm">会员生日</label>
-                                        <div class="layui-input-inline">
-                                            <input type="text" name="birthday" id="febs-member-benefits-list-birthday-start" lay-verify="date"
-                                                   placeholder="MM-dd" autocomplete="off" class="layui-input">
                                         </div>
                                     </div>
                                 </div>
@@ -98,6 +91,14 @@
     {{# } }}
 </script>
 
+<script type="text/html" id="checkOrderSwitch">
+    {{# if(d.checkOrder === 1) { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="checkOrderSwitch">
+    {{# } else { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="checkOrderSwitch">
+    {{# } }}
+</script>
+
 <script type="text/html" id="isDoctorSwitch">
     {{# if(d.doctorState === 1) { }}
     <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="isDoctorSwitch">
@@ -116,6 +117,10 @@
         <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateVipLevel">修改会员等级</button>
         <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="addCoupon">优惠券派送</button>
     </div>
+</script>
+
+<script type="text/html" id="memberOption">
+<!--    <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" shiro:hasPermission="user:update" lay-event="memberOut">注销</button>-->
 </script>
 <!-- 表格操作栏 end -->
 <script data-th-inline="none" type="text/javascript">
@@ -249,6 +254,14 @@
             });
         }
 
+        form.on('switch(checkOrderSwitch)', function (data) {
+            if (data.elem.checked) {
+                checkOrder(data.value);
+            } else {
+                checkOrder(data.value);
+            }
+        })
+
         form.on('switch(isSalesmanSwitch)', function (data) {
             if (data.elem.checked) {
                 upSale(data.value);
@@ -267,6 +280,13 @@
 
         function doctorStateChange(id) {
             febs.get(ctx + 'admin/mallMember/doctorStateChange/' + id, null, function () {
+                febs.alert.success('操作成功');
+                $query.click();
+            });
+        }
+
+        function checkOrder(id) {
+            febs.get(ctx + 'admin/mallMember/checkOrder/' + id, null, function () {
                 febs.alert.success('操作成功');
                 $query.click();
             });
@@ -307,51 +327,13 @@
                 defaultToolbar:[],
                 cols: [[
                     {type: 'checkbox'},
+                    {type: 'numbers', title: '', width: 80},
+                    {title: '操作', toolbar: '#memberOption', minWidth: 200, align: 'center'},
                     {field: 'phone', title: '手机号码', minWidth: 150,align:'left'},
                     {field: 'name', title: '用户昵称', minWidth: 100,align:'left'},
-                    {field: 'birthday', title: '会员生日', minWidth: 100,align:'left'},
                     {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'},
-                    {field: 'balance', title: '余额', minWidth: 100,align:'left'},
-                    // {field: 'score', title: '赠送积分', minWidth: 100,align:'left'},
-                    {field: 'prizeScore', title: '积分', minWidth: 100,align:'left'},
-                    // {field: 'commission', title: '佣金', minWidth: 100,align:'left'},
-                    {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'},
-                    {field: 'levelName', title: '会员等级', minWidth: 100,align:'left'},
-                    // {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'},
-                    {field: 'doctorState', title: '医生设置', templet: '#isDoctorSwitch', minWidth: 100,align:'center'},
-                    {field: 'isSalesman', title: '推销员设置', templet: '#isSalesmanSwitch', minWidth: 100,align:'center'},
-                    // {field: 'director', title: '总监', templet:'#switchDirector', minWidth: 100},
-                    // {field: 'accountType', title: '账号类型',
-                    //     templet: function (d) {
-                    //         if (d.accountType === 2) {
-                    //             return '<span style="color:red;">测试账号</span>'
-                    //         } else if (d.accountType === 1) {
-                    //             return '<span style="color:green;">正常账号</span>'
-                    //         }else{
-                    //             return ''
-                    //         }
-                    //     }, minWidth: 100,align:'center'},
-                    // {field: 'leaderState', title: '是否是团长',
-                    //     templet: function (d) {
-                    //         if (d.leaderState === 1) {
-                    //             return '<span style="color:green;">团长</span>'
-                    //         }else if (d.leaderState === 3) {
-                    //             return '<span">申请中</span>'
-                    //         }else if (d.leaderState === 4) {
-                    //             return '<span">普通用户(取消团长资格)</span>'
-                    //         }else{
-                    //             return '<span">普通用户</span>'
-                    //         }
-                    //     }, minWidth: 100,align:'center'},
-                    // {field: 'accountStatus', title: '账号状态', templet: '#switchStatus', minWidth: 100,align:'center'},
+                    {field: 'checkOrder', title: '核销员', templet: '#checkOrderSwitch', minWidth: 100,align:'center'},
                     {field: 'createdTime', title: '注册时间', minWidth: 180,align:'center'},
-                    {title: '操作',
-                        templet: function (d) {
-                            return  ''
-                                +'<button class="layui-btn layui-btn-normal layui-btn-xs febs-bg-red" lay-event="memberOut" shiro:hasPermission="user:update">注销</button>'
-                                // + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addLeader" shiro:hasPermission="user:update">设置为团长</button>'
-
-                        },minWidth: 200,align:'center'}
                 ]]
             });
         }
@@ -500,10 +482,8 @@
         function getQueryParams() {
             return {
                 name: $searchForm.find('input[name="name"]').val().trim(),
-                account: $searchForm.find('input[name="account"]').val().trim(),
-                level: $searchForm.find("select[name='level']").val(),
-                birthdayQuery: $searchForm.find("input[name='birthday']").val(),
-                // level: $searchForm.find("select[name='level']").val(),
+                phone: $searchForm.find('input[name="phone"]').val().trim(),
+                checkOrder: $searchForm.find("select[name='checkOrder']").val(),
             };
         }
 
diff --git a/src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html b/src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html
index f3617d2..5908c0b 100644
--- a/src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html
+++ b/src/main/resources/templates/febs/views/modules/votesActivity/discountUpdate.html
@@ -46,6 +46,7 @@
                                         <label class="layui-form-label febs-form-item-require">类型:</label>
                                         <div class="layui-input-block">
                                             <select name="type">
+                                                <option value="">请选择</option>
                                                 <option value="1">普通活动</option>
                                                 <option value="2">众筹活动</option>
                                                 <option value="3">投票活动</option>
@@ -56,6 +57,7 @@
                                         <label class="layui-form-label febs-form-item-require">推荐首页:</label>
                                         <div class="layui-input-block">
                                             <select name="hotState">
+                                                <option value="">请选择</option>
                                                 <option value="0">不推荐</option>
                                                 <option value="1">推荐</option>
                                             </select>
@@ -91,6 +93,7 @@
                                         <label class="layui-form-label febs-form-item-require">自主报名:</label>
                                         <div class="layui-input-block">
                                             <select name="addState">
+                                                <option value="">请选择</option>
                                                 <option value="0">不允许</option>
                                                 <option value="1">允许</option>
                                             </select>
@@ -122,6 +125,7 @@
                                         <label class="layui-form-label febs-form-item-require">门票售卖:</label>
                                         <div class="layui-input-block">
                                             <select name="payState">
+                                                <option value="">请选择</option>
                                                 <option value="0">关闭</option>
                                                 <option value="1">开启</option>
                                             </select>
@@ -354,28 +358,28 @@
             }
 
             form.val("activity-discount-update-form", {
-                "id": activity.id || '',
-                "name": activity.name || '',
-                "type": activity.type || '',
-                "joinCnt": activity.joinCnt || '',
-                "startTime": activity.startTime || '',
-                "endTime": activity.endTime || '',
-                "phone": activity.phone || '',
-                "address": activity.address || '',
-                "payState": activity.payState || '',
-                "payAmount": activity.payAmount || '',
-                "orderCnt": activity.orderCnt || '',
-                "hotState": activity.hotState || '',
-                "voteCnt": activity.voteCnt || '',
-                "addState": activity.addState || ''
+                "id": activity.id,
+                "name": activity.name,
+                "type": activity.type,
+                "joinCnt": activity.joinCnt,
+                "startTime": activity.startTime,
+                "endTime": activity.endTime,
+                "phone": activity.phone,
+                "address": activity.address,
+                "payState": activity.payState,
+                "payAmount": activity.payAmount,
+                "orderCnt": activity.orderCnt,
+                "hotState": activity.hotState,
+                "voteCnt": activity.voteCnt,
+                "addState": activity.addState,
             });
-            $('#demoMax').append('<img src="' + activity.backImg + '" alt="" class="layui-upload-img single-image" style="width: 130px">')
+            $('#demoMax').append('<img src="' + activity.backImg + '" alt="" class="layui-upload-img single-image" style="width: 130px">');
             $("#backImg").val(activity.backImg);
-            $('#demo1Max').append('<img src="' + activity.indexImg + '" alt="" class="layui-upload-img single-image" style="width: 130px">')
+            $('#demo1Max').append('<img src="' + activity.indexImg + '" alt="" class="layui-upload-img single-image" style="width: 130px">');
             $("#indexImg").val(activity.indexImg);
 
             var arr = [];
-            arr.push(activity.categoryId)
+            arr.push(activity.categoryId);
             activityGroup.setValue(arr);
 
             editor.txt.html(activity.textRemark);
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index a3cb5f7..bda51a1 100644
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -3,7 +3,7 @@
       xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
 <head>
     <meta charset="utf-8">
-    <title>blnka 权限系统</title>
+    <title>快乐社区 权限系统</title>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <meta name="renderer" content="webkit">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

--
Gitblit v1.9.1