src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
@@ -63,7 +63,7 @@ log.info("/ /` / / \\ | |\\/| | |_) | | | |_ | | | |_ "); log.info("\\_\\_, \\_\\_/ |_| | |_| |_|__ |_|__ |_| |_|__ "); log.info(" "); log.info("壹元蔬菜 权限系统启动完毕,地址:{}", url); log.info("钱阿姨 权限系统启动完毕,地址:{}", url); boolean auto = febsProperties.isAutoOpenBrowser(); if (auto && StringUtils.equalsIgnoreCase(active, FebsConstant.DEVELOP)) { src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
@@ -5,10 +5,7 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.AppVersion; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.entity.MallNewsInfo; import cc.mrbird.febs.mall.entity.MallShopApply; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.service.IAdminMallMemberService; import cc.mrbird.febs.mall.service.IApiMallMemberService; import cc.mrbird.febs.mall.vo.AdminAgentLevelOptionTreeVo; @@ -368,4 +365,33 @@ return new FebsResponse().success(); } /** * 代理申请列表 */ @GetMapping("getAgentApplyList") public FebsResponse getAgentApplyList(MallAgentRecord mallAgentRecord, QueryRequest request) { Map<String, Object> data = getDataTable(mallMemberService.getAgentApplyList(mallAgentRecord, request)); return new FebsResponse().success().data(data); } /** * 代理申请列表 * 同意 */ @GetMapping("agreeAgentApply/{id}") @ControllerEndpoint(operation = "审核代理申请", exceptionMessage = "操作失败") public FebsResponse agreeAgentApply(@NotNull(message = "{required}") @PathVariable Long id) { return mallMemberService.agreeAgentApply(id); } /** * 代理申请列表 * 拒绝 */ @GetMapping("disagreeAgentApply/{id}") @ControllerEndpoint(operation = "审核代理申请", exceptionMessage = "操作失败") public FebsResponse disagreeAgentApply(@NotNull(message = "{required}") @PathVariable Long id) { return mallMemberService.disagreeAgentApply(id); } } src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -4,10 +4,7 @@ import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.entity.MallMemberPayment; import cc.mrbird.febs.mall.service.IApiMallMemberService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.ICommonService; import cc.mrbird.febs.mall.service.IMallMemberWithdrawService; import cc.mrbird.febs.mall.service.*; import cc.mrbird.febs.mall.vo.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -34,6 +31,7 @@ private final IApiMallMemberService memberService; private final IMallMemberWithdrawService mallMemberWithdrawService; private final IApiMallMemberWalletService walletService; private final IApiMallAgentService iApiMallAgentService; /** * 小程序接收用户数据,更新用户信息 @@ -192,4 +190,15 @@ return memberService.rechargeWallet(apiRechargeWalletDto); } /** * 申请代理 * @param apiAgentApplyDto * @return */ @ApiOperation(value = "申请代理") @PostMapping(value = "/agentApply") public FebsResponse agentApply(@RequestBody @Validated ApiAgentApplyDto apiAgentApplyDto) { return iApiMallAgentService.agentApply(apiAgentApplyDto); } } src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
@@ -267,6 +267,15 @@ return FebsUtil.view("modules/mallMember/addMember"); } /** * 代理申请列表 */ @GetMapping("mallAgentRecord") @RequiresPermissions("mallAgentRecord:view") public String mallAgentRecord() { return FebsUtil.view("modules/mallMember/mallAgentRecord"); } src/main/java/cc/mrbird/febs/mall/conversion/MallAgentRecordConversion.java
New file @@ -0,0 +1,15 @@ package cc.mrbird.febs.mall.conversion; import cc.mrbird.febs.mall.dto.ApiAgentApplyDto; import cc.mrbird.febs.mall.entity.MallAgentRecord; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @Mapper public abstract class MallAgentRecordConversion { public static final MallAgentRecordConversion INSTANCE = Mappers.getMapper(MallAgentRecordConversion.class); public abstract MallAgentRecord dtoToEntity(ApiAgentApplyDto apiAgentApplyDto); } src/main/java/cc/mrbird/febs/mall/dto/ApiAgentApplyDto.java
New file @@ -0,0 +1,41 @@ package cc.mrbird.febs.mall.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; @Data @ApiModel(value = "ApiAgentApplyDto", description = "申请代理") public class ApiAgentApplyDto { //申请人姓名 @NotBlank(message = "姓名不能为空") @ApiModelProperty(value = "姓名") private String name; //电话 @NotBlank(message = "电话不能为空") @ApiModelProperty(value = "电话") private String phone; //店铺名称(非必填) @ApiModelProperty(value = "店铺名称(非必填)") private String storeName; //省 @NotBlank(message = "省不能为空") @ApiModelProperty(value = "省") private String province; //市 @NotBlank(message = "市不能为空") @ApiModelProperty(value = "市") private String city; //区、县 @NotBlank(message = "区、县不能为空") @ApiModelProperty(value = "区、县") private String area; //详细地址 @NotBlank(message = "详细地址不能为空") @ApiModelProperty(value = "详细地址") private String storeAddress; } src/main/java/cc/mrbird/febs/mall/entity/MallAgentRecord.java
New file @@ -0,0 +1,40 @@ package cc.mrbird.febs.mall.entity; import cc.mrbird.febs.common.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data @TableName("mall_agent_record") public class MallAgentRecord extends BaseEntity { private Long memberId; //申请人姓名 private String name; //电话 private String phone; //店铺名称(非必填) private String storeName; //省 private String province; //市 private String city; //区、县 private String area; //详细地址 private String storeAddress; //状态 1::申请中 2:同意 3:拒绝 private Integer state; public static final Integer APPLY_ING = 1; public static final Integer APPLY_AGREE = 2; public static final Integer APPLY_DISAGREE = 3; @TableField(exist = false) private String memberName; } src/main/java/cc/mrbird/febs/mall/mapper/MallAgentRecordMapper.java
New file @@ -0,0 +1,14 @@ package cc.mrbird.febs.mall.mapper; import cc.mrbird.febs.mall.entity.MallAgentRecord; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; public interface MallAgentRecordMapper extends BaseMapper<MallAgentRecord> { MallAgentRecord selectByMemberIdAndState(@Param("memberId")Long memberId, @Param("state")Integer applyIng); IPage<MallAgentRecord> selectMallAgentRecordListInPage(Page<MallAgentRecord> page, @Param("record")MallAgentRecord mallAgentRecord); } src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
@@ -3,10 +3,7 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.AppVersion; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.entity.MallNewsInfo; import cc.mrbird.febs.mall.entity.MallShopApply; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.vo.*; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -93,4 +90,10 @@ MallMember findByInviteId(String inviteId); void modifyReferer(MallMember member); IPage<MallAgentRecord> getAgentApplyList(MallAgentRecord mallAgentRecord, QueryRequest request); FebsResponse agreeAgentApply(Long id); FebsResponse disagreeAgentApply(Long id); } src/main/java/cc/mrbird/febs/mall/service/IApiMallAgentService.java
New file @@ -0,0 +1,12 @@ package cc.mrbird.febs.mall.service; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.dto.ApiAgentApplyDto; import cc.mrbird.febs.mall.entity.MallAgentRecord; import com.baomidou.mybatisplus.extension.service.IService; public interface IApiMallAgentService extends IService<MallAgentRecord> { FebsResponse agentApply(ApiAgentApplyDto apiAgentApplyDto); } src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -68,6 +68,8 @@ private final IMallMoneyFlowService mallMoneyFlowService; private final MallTeamLeaderMapper mallTeamLeaderMapper; private final MallAgentRecordMapper mallAgentRecordMapper; @Override public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { Page<MallMember> page = new Page<>(request.getPageNum(), request.getPageSize()); @@ -600,6 +602,45 @@ } } @Override public IPage<MallAgentRecord> getAgentApplyList(MallAgentRecord mallAgentRecord, QueryRequest request) { Page<MallAgentRecord> page = new Page<>(request.getPageNum(), request.getPageSize()); IPage<MallAgentRecord> mallAgentRecords = mallAgentRecordMapper.selectMallAgentRecordListInPage(page, mallAgentRecord); return mallAgentRecords; } @Override @Transactional public FebsResponse agreeAgentApply(Long id) { MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(id); if(ObjectUtil.isEmpty(mallAgentRecord)){ return new FebsResponse().fail().message("申请记录不存在"); } mallAgentRecord.setState(MallAgentRecord.APPLY_AGREE); mallAgentRecordMapper.updateById(mallAgentRecord); //更新用户表中的LEVEL MallMember mallMember = this.baseMapper.selectById(mallAgentRecord.getMemberId()); if(ObjectUtil.isEmpty(mallMember)){ return new FebsResponse().fail().message("用户不存在"); } mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name()); this.baseMapper.updateById(mallMember); return new FebsResponse().success(); } @Override @Transactional public FebsResponse disagreeAgentApply(Long id) { MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(id); if(ObjectUtil.isEmpty(mallAgentRecord)){ return new FebsResponse().fail().message("申请记录不存在"); } mallAgentRecord.setState(MallAgentRecord.APPLY_DISAGREE); mallAgentRecordMapper.updateById(mallAgentRecord); return new FebsResponse().success(); } private String refererIds(String parentId) { boolean flag = false; if (StrUtil.isBlank(parentId)) { src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAgentServiceImpl.java
New file @@ -0,0 +1,49 @@ package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.AgentLevelEnum; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.mall.conversion.MallAgentRecordConversion; import cc.mrbird.febs.mall.conversion.MallGoodsConversion; import cc.mrbird.febs.mall.dto.ApiAgentApplyDto; import cc.mrbird.febs.mall.entity.MallAgentRecord; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.mapper.MallAgentRecordMapper; import cc.mrbird.febs.mall.mapper.MallMemberMapper; import cc.mrbird.febs.mall.service.IApiMallAgentService; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @Slf4j @Service @RequiredArgsConstructor public class ApiMallAgentServiceImpl extends ServiceImpl<MallAgentRecordMapper, MallAgentRecord> implements IApiMallAgentService { private final MallAgentRecordMapper mallAgentRecordMapper; private final MallMemberMapper mallMemberMapper; @Override public FebsResponse agentApply(ApiAgentApplyDto apiAgentApplyDto) { Long memberId = LoginUserUtil.getLoginUser().getId(); //判断用户当前的级别 MallMember mallMember = mallMemberMapper.selectById(memberId); if(!AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())){ return new FebsResponse().fail().message("用户已无法申请"); } //判断用户是否正在申请 MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectByMemberIdAndState(memberId,MallAgentRecord.APPLY_ING); if(ObjectUtil.isNotEmpty(mallAgentRecord)){ return new FebsResponse().fail().message("用户已申请"); } MallAgentRecord mallAgentRecordNew = MallAgentRecordConversion.INSTANCE.dtoToEntity(apiAgentApplyDto); mallAgentRecordNew.setMemberId(memberId); mallAgentRecordNew.setState(MallAgentRecord.APPLY_ING); mallAgentRecordMapper.insert(mallAgentRecordNew); return new FebsResponse().success().message("申请成功"); } } src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -88,20 +88,24 @@ public Long createOrder(AddOrderDto addOrderDto) { // synchronized(this){ MallMember member = LoginUserUtil.getLoginUser(); String takeUniqueCode = addOrderDto.getTakeUniqueCode(); if(StrUtil.isEmpty(takeUniqueCode)){ throw new FebsException("请选择自提点"); //验证用户的等级 if(AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())){ throw new FebsException("请先申请成为代理人"); } // String takeUniqueCode = addOrderDto.getTakeUniqueCode(); // if(StrUtil.isEmpty(takeUniqueCode)){ // throw new FebsException("请选择自提点"); // } MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode); if(ObjectUtil.isEmpty(mallTeamLeader)){ throw new FebsException("请重新选择团长"); } // MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode); // if(ObjectUtil.isEmpty(mallTeamLeader)){ // throw new FebsException("请重新选择团长"); // } //订单范围内才允许下单 MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId()); if(ObjectUtil.isEmpty(address)){ throw new FebsException("请重新选择提货人信息"); throw new FebsException("请重新选择收货地址信息"); } // MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(mallTeamLeader.getUniqueCode()); // if(ObjectUtil.isNotEmpty(mallElectronicFence)){ @@ -121,7 +125,7 @@ orderInfo.setRemark(addOrderDto.getRemark()); orderInfo.setOrderType(addOrderDto.getOrderType()); orderInfo.setTakeUniqueCode(addOrderDto.getTakeUniqueCode()); // orderInfo.setTakeUniqueCode(addOrderDto.getTakeUniqueCode()); orderInfo.setDeliveryType(1); if (CollUtil.isEmpty(addOrderDto.getItems())) { src/main/resources/application-dev.yml
@@ -19,10 +19,10 @@ # password: 123456 # driver-class-name: com.mysql.cj.jdbc.Driver # url: jdbc:mysql://120.27.238.55:3306/db_pingtuan?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 username: db_yyg password: yyg123!@# username: db_mall_qianayi password: db_mall_qianayi123!@#123 driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://121.37.162.173:3306/db_yyg?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 url: jdbc:mysql://121.37.162.173:3306/db_mall_qianayi?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 # username: db_mall # password: mall!@#123 # driver-class-name: com.mysql.cj.jdbc.Driver @@ -30,13 +30,13 @@ redis: # Redis数据库索引(默认为 0) database: 3 database: 8 # Redis服务器地址 host: 120.27.238.55 host: 121.37.162.173 # Redis服务器连接端口 port: 6379 # Redis 密码 password: xcong123 password: d32ncxe@i3#!dV lettuce: pool: # 连接池中的最小空闲连接 @@ -50,10 +50,10 @@ # 连接超时时间(毫秒) timeout: 5000 rabbitmq: host: 120.27.238.55 host: 121.37.162.173 port: 5672 username: ct_rabbit password: 123456 username: hibit password: hibit123 publisher-confirm-type: correlated pay: @@ -69,8 +69,8 @@ xcx: wechar_login_url: https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code xcx_appid: wx0b515f652282158e xcx_secret: 8d3d3c14221f7dc37650b861dc0fc570 xcx_appid: wxfb1acf504eb9d058 xcx_secret: 7ee226a964b1be7cfb96f5e0dc739c44 debug: false wecharPaynotifyUrl: http://groupbuy.csxuncong.com/api/xcxPay/wxpayCallback wecharRechargePaynotifyUrl: http://groupbuy.csxuncong.com/api/xcxPay/rechargeCallBack src/main/resources/application.yml
@@ -5,7 +5,7 @@ spring: profiles: active: test active: dev servlet: multipart: src/main/resources/mapper/modules/MallAgentRecordMapper.xml
New file @@ -0,0 +1,34 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cc.mrbird.febs.mall.mapper.MallAgentRecordMapper"> <select id="selectByMemberIdAndState" resultType="cc.mrbird.febs.mall.entity.MallAgentRecord"> select a.* from mall_agent_record a where a.member_id = #{memberId} and a.state = #{state} limit 1 </select> <select id="selectMallAgentRecordListInPage" resultType="cc.mrbird.febs.mall.entity.MallAgentRecord"> SELECT a.*, b.name memberName FROM mall_agent_record a LEFT JOIN mall_member b on a.member_id = b.id <where> <if test="record != null" > <if test="record.name!=null and record.name!=''"> and a.name like concat('%', #{record.name},'%') </if> <if test="record.memberName!=null and record.memberName!=''"> and b.name like concat('%', #{record.memberName},'%') </if> <if test="record.state!=null"> and a.state = #{record.state} </if> </if> </where> GROUP BY a.id order by a.CREATED_TIME desc </select> </mapper> src/main/resources/templates/error/403.html
@@ -2,7 +2,7 @@ <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <title>壹元蔬菜 权限系统</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"> src/main/resources/templates/error/404.html
@@ -2,7 +2,7 @@ <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <title>壹元蔬菜 权限系统</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"> src/main/resources/templates/error/500.html
@@ -2,7 +2,7 @@ <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <title>壹元蔬菜 权限系统</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"> 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>壹元蔬菜 权限系统</span> <span>钱阿姨 权限系统</span> </div> <script type="text/html" 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>壹元蔬菜 权限系统</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>壹元蔬菜</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"> src/main/resources/templates/febs/views/modules/mallMember/mallAgentRecord.html
New file @@ -0,0 +1,194 @@ <div class="layui-fluid layui-anim febs-anim" id="febs-agent-apply-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"> <div class="layui-input-inline"> <input type="text" placeholder="微信昵称" name="memberName" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-inline"> <div class="layui-input-inline"> <input type="text" placeholder="姓名" name="name" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-inline"> <div class="layui-input-inline"> <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> <div class="layui-input-inline"> <select name="state"> <option value="">请选择</option> <option value="1">申请中</option> <option value="2">通过</option> <option value="3">拒绝</option> </select> </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="FIRST_LEVEL">普通会员</option>--> <!-- <option value="SECOND_LEVEL">一星</option>--> <!-- <option value="THIRD_LEVEL">二星</option>--> <!-- <option value="FOUR_LEVEL">三星</option>--> <!-- <option value="FIFTH_LEVEL">四星</option>--> <!-- </select>--> <!-- </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="agentApplyTable" lay-data="{id: 'agentApplyTable'}"></table> </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> <style> .layui-form-onswitch { background-color: #5FB878 !important; } </style> <script data-th-inline="none" type="text/javascript"> // 引入组件并初始化 layui.use([ 'jquery', 'form', 'table', 'febs'], function () { var $ = layui.jquery, febs = layui.febs, form = layui.form, table = layui.table, $view = $('#febs-agent-apply-list'), $query = $view.find('#query'), $reset = $view.find('#reset'), $searchForm = $view.find('form'), sortObject = {field: 'phone', type: null}, tableIns; form.render(); // 表格初始化 initTable(); // 初始化表格操作栏各个按钮功能 table.on('tool(agentApplyTable)', function (obj) { var data = obj.data, layEvent = obj.event; if (layEvent === 'agree') { febs.modal.confirm('通过', '通过用户的代理申请?', function () { agree(data.id); }); } if (layEvent === 'disagree') { febs.modal.confirm('拒绝', '拒绝用户的代理申请?', function () { disagree(data.id); }); } }); function agree(id) { febs.get(ctx + 'admin/mallMember/agreeAgentApply/' + id, null, function () { febs.alert.success('已同意'); $query.click(); }); } function disagree(id) { febs.get(ctx + 'admin/mallMember/disagreeAgentApply/' + 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: 'agentApplyTable', url: ctx + 'admin/mallMember/getAgentApplyList', defaultToolbar:[], cols: [[ {field: 'memberName', title: '微信昵称', minWidth: 150,align:'left'}, {field: 'name', title: '姓名', minWidth: 100,align:'left'}, {field: 'phone', title: '电话', minWidth: 100,align:'left'}, {field: 'province', title: '省', minWidth: 100,align:'left'}, {field: 'city', title: '市', minWidth: 100,align:'left'}, {field: 'area', title: '区、县', minWidth: 100,align:'left'}, {field: 'storeAddress', title: '详细地址', minWidth: 100,align:'left'}, {field: 'storeName', title: '店铺名称', minWidth: 100,align:'left'}, {field: 'state', title: '申请状态', templet: function (d) { if (d.state === 1) { return '<span style="color:green;">申请中</span>' }else if (d.state === 2) { return '<span style="color:blue;">通过</span>' }else if (d.state === 3) { return '<span style="color:red;">拒绝</span>' }else{ return '' } }, minWidth: 100,align:'center'}, {field: 'createdTime', title: '申请时间', minWidth: 180,align:'center'}, {title: '操作', templet: function (d) { if(d.state === 1 ){ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agree" shiro:hasPermission="user:update">同意</button>' +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="disagree" shiro:hasPermission="user:update">拒绝</button>' }else{ return '' } },minWidth: 200,align:'center', fixed:"right" } ]] }); } // 获取查询参数 function getQueryParams() { return { memberName: $searchForm.find('input[name="memberName"]').val().trim(), name: $searchForm.find('input[name="name"]').val().trim(), phone: $searchForm.find('input[name="phone"]').val().trim(), state: $searchForm.find("select[name='state']").val() }; } }) </script> src/main/resources/templates/index.html
@@ -3,7 +3,7 @@ xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> <head> <meta charset="utf-8"> <title>壹元蔬菜 权限系统</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">