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"></i> + </div> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> + <i class="layui-icon"></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"></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