From ec97abaae5a0d93e9b4d5f3f82de7b97f2b586b0 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sat, 11 Jun 2022 20:22:15 +0800 Subject: [PATCH] fix some problem and add update referer and add member --- src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html | 16 + src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java | 2 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 15 src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java | 28 ++ src/main/resources/mapper/modules/MallMemberMapper.xml | 5 src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html | 52 +++- src/main/resources/templates/febs/views/modules/mallMember/agentList.html | 9 src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java | 3 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 102 ++++++++ src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 10 src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html | 155 +++++++++++-- src/main/resources/templates/febs/views/modules/system/profitSetting.html | 3 src/main/resources/templates/febs/views/modules/mallMember/updateRefererId.html | 93 ++++++++ src/main/java/cc/mrbird/febs/mall/entity/MallMember.java | 7 src/main/resources/templates/febs/views/modules/mallMember/agentLevelSet.html | 2 src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java | 18 + src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 14 src/main/resources/templates/febs/views/modules/mallMember/addMember.html | 74 ++++++ src/main/java/cc/mrbird/febs/mall/vo/AdminMallMoneyFlowVo.java | 1 src/main/resources/application.yml | 2 src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java | 7 21 files changed, 539 insertions(+), 79 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 25cd8b7..9c3f041 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java @@ -10,6 +10,7 @@ import cc.mrbird.febs.mall.entity.MallNewsInfo; import cc.mrbird.febs.mall.entity.MallShopApply; import cc.mrbird.febs.mall.service.IAdminMallMemberService; +import cc.mrbird.febs.mall.service.IApiMallMemberService; import cc.mrbird.febs.mall.vo.AdminAgentLevelOptionTreeVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -29,6 +30,7 @@ public class AdminMallMemberController extends BaseController { private final IAdminMallMemberService mallMemberService; + private final IApiMallMemberService apiMallMemberService; /** * 平台账单 @@ -296,6 +298,13 @@ return mallMemberService.resetPwd(id); } + @PostMapping(value = "resetPwdNew/{type}/{ids}") + @ControllerEndpoint(operation = "重置密码", exceptionMessage = "重置密码失败") + public FebsResponse resetPwd(@PathVariable("ids") String ids, @PathVariable("type") Integer type) { + mallMemberService.resetPwd(ids, type); + return new FebsResponse().success().message("重置成功"); + } + @GetMapping("shopApplyList") @ControllerEndpoint(operation = "申请通道列表", exceptionMessage = "获取失败") public FebsResponse shopApplyList(MallShopApply mallShopApply, QueryRequest request) { @@ -314,4 +323,23 @@ return new FebsResponse().success().message("操作成功"); } + @PostMapping("/refererIdUpdate") + @ControllerEndpoint(operation = "修改推荐人", exceptionMessage = "修改失败") + public FebsResponse refererIdUpdate(MallMember member) { + mallMemberService.modifyReferer(member); + return new FebsResponse().success(); + } + + @PostMapping("/memberAdd") + public FebsResponse memberAdd(MallMember member) { + RegisterDto registerDto = new RegisterDto(); + registerDto.setAccount(member.getAccount()); + registerDto.setRegistType("admin"); + registerDto.setPassword("a123456"); + registerDto.setInviteId(member.getInviteId()); + registerDto.setName(member.getName()); + apiMallMemberService.register(registerDto); + return new FebsResponse().success(); + } + } diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java index 057d595..ef7b482 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java @@ -68,11 +68,12 @@ * @param model * @return */ - @GetMapping("mallSystemPay/{id}") + @GetMapping("mallSystemPay/{type}/{id}") @RequiresPermissions("mallSystemPay:update") - public String systemPay(@PathVariable long id, Model model) { + public String systemPay(@PathVariable long id, @PathVariable Integer type, Model model) { MallMemberVo data = mallMemberService.getMallMemberInfoById(id); model.addAttribute("systemPay", data); + model.addAttribute("type", type); return FebsUtil.view("modules/mallMember/mallSystemPay"); } @@ -253,6 +254,19 @@ return FebsUtil.view("modules/mallMember/shopApplyInfo"); } + @GetMapping("updateReferer/{id}") + public String updateReferer(@PathVariable("id") Long id, Model model) { + MallMember member = mallMemberService.getById(id); + model.addAttribute("referer", mallMemberService.findByInviteId(member.getReferrerId())); + model.addAttribute("id", id); + return FebsUtil.view("modules/mallMember/updateRefererId"); + } + + @GetMapping("addMember") + public String addMember() { + return FebsUtil.view("modules/mallMember/addMember"); + } + diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java index c39c806..889e950 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/MallSystemPayDto.java @@ -13,4 +13,6 @@ private BigDecimal balance; private BigDecimal addBalance; + + private Integer type; } diff --git a/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java b/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java index 6ac2eab..c873610 100644 --- a/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java +++ b/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java @@ -37,4 +37,7 @@ @ApiModelProperty(value = "邀请码") private String inviteId; + @ApiModelProperty(hidden = true) + private String registType; + } diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java index 5618bf6..33d1d25 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java @@ -108,6 +108,10 @@ @TableField(exist = false) private BigDecimal balance; + @TableField(exist = false) + private BigDecimal score; + @TableField(exist = false) + private BigDecimal prizeScore; @TableField(exist = false) private BigDecimal amount; @@ -115,4 +119,7 @@ @TableField(exist = false) private String query; + @TableField(exist = false) + private String levelName; + } 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 6514b34..35c6b67 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java @@ -74,6 +74,9 @@ FebsResponse resetPwd(Long id); + + void resetPwd(String ids, Integer type); + IPage<MallDataVo> getMallDataList(MallMember mallMember, QueryRequest request); IPage<MallShopApply> findShopApplyListInPage(MallShopApply mallShopApply, QueryRequest request); @@ -84,4 +87,8 @@ void applyCheckDisAgree(Long id); FebsResponse updateMemberInfo(MallUpdateMemberInfoDto mallUpdateMemberInfoDto); + + MallMember findByInviteId(String inviteId); + + void modifyReferer(MallMember member); } 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 b4b8d81..7dc3136 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 @@ -326,11 +326,20 @@ return new FebsResponse().fail().message("拨付数目需要大于0"); } - MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); - mallMemberWallet.setBalance(mallMemberWallet.getBalance().add(bigDecimal)); - mallMemberWalletMapper.updateBalanceWithId(mallMemberWallet); + Integer type = mallSystemPayDto.getType(); + String filedType = ""; + if (type == 1) { + filedType = "balance"; + } else if (type == 2) { + filedType = "score"; + } else if (type == 3) { + filedType = "prizeScore"; + } else { + throw new FebsException("参数错误"); + } - mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, FlowTypeEnum.BALANCE.getValue()); + iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType); + mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, type); return new FebsResponse().success(); } @@ -363,6 +372,32 @@ mallMember.setPassword(pwd); this.baseMapper.updateById(mallMember); return new FebsResponse().success().message("重置成功"); + } + + @Override + public void resetPwd(String ids, Integer type) { + if (StrUtil.isEmpty(ids)) { + throw new FebsException("参数错误"); + } + List<String> idList = StrUtil.split(ids, ','); + + for (String s : idList) { + Long id = Long.parseLong(s); + MallMember member = new MallMember(); + member.setId(id); + member.setCreatedTime(null); + + // 重置交易密码 + if (type == 1) { + String payPwd = SecureUtil.md5("654321"); + member.setTradePassword(payPwd); + // 重置登录密码 + } else { + String pwd = SecureUtil.md5("a123456"); + member.setPassword(pwd); + } + this.baseMapper.updateById(member); + } } @Override @@ -458,4 +493,63 @@ mallMemberWalletMapper.updateById(mallMemberWallet); return new FebsResponse().success(); } + + @Override + public MallMember findByInviteId(String inviteId) { + + return this.baseMapper.selectInfoByInviteId(inviteId); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void modifyReferer(MallMember member) { + MallMember referer = this.baseMapper.selectInfoByInviteId(member.getReferrerId()); + if (referer == null) { + throw new FebsException("推荐人不存在"); + } + String refererId = member.getReferrerId(); + + member = this.baseMapper.selectById(member.getId()); + + String beforeReferer = member.getReferrerId(); + member.setReferrerId(refererId); + String refererIds = refererIds(refererId); + member.setReferrerIds(refererIds); + this.baseMapper.updateById(member); + + List<MallMember> childs = this.baseMapper.selectByRefererId(member.getInviteId()); + if (CollUtil.isEmpty(childs)) { + return; + } + + for (MallMember child : childs) { + child.setReferrerIds(member.getInviteId() + "," + refererIds); + this.baseMapper.updateById(child); + } + } + + private String refererIds(String parentId) { + boolean flag = false; + if (StrUtil.isBlank(parentId)) { + flag = true; + } + String ids = ""; + while (!flag) { + if (StrUtil.isBlank(ids)) { + ids += parentId; + } else { + ids += ("," + parentId); + } + MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId); + if (parentMember == null) { + break; + } + parentId = parentMember.getReferrerId(); + if (StrUtil.isBlank(parentMember.getReferrerId())) { + flag = true; + } + } + + return ids; + } } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index a736675..2125d43 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -80,10 +80,12 @@ } String account = registerDto.getAccount(); - String code = registerDto.getCode(); - boolean flags = commonService.verifyCode(account, code); - if(!flags) { - throw new FebsException("验证码错误"); + if (!"admin".equals(registerDto.getRegistType())) { + String code = registerDto.getCode(); + boolean flags = commonService.verifyCode(account, code); + if (!flags) { + throw new FebsException("验证码错误"); + } } mallMember = new MallMember(); diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index ce182fe..820a193 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -243,15 +243,20 @@ if (CollUtil.isNotEmpty(orderItems)) { for (MallOrderItem orderItem : orderItems) { MallGoods mallGoods = mallGoodsMapper.selectById(orderItem.getGoodsId()); - + BigDecimal score; + MallGoodsSku sku = mallGoodsSkuMapper.selectById(orderItem.getSkuId()); if (mallGoods.getIsNormal() == 2) { hasTc = true; - MallGoodsSku sku = mallGoodsSkuMapper.selectById(orderItem.getSkuId()); - BigDecimal score = sku.getPresentPrice().multiply(mallGoods.getStaticMulti()); + score = sku.getPresentPrice().multiply(mallGoods.getStaticMulti()); - memberWalletService.add(score, member.getId(), "score"); - mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue()); + // 普通商品1:1 返还积分 + } else { + score = sku.getPresentPrice(); } + + memberWalletService.add(score, member.getId(), "score"); + mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue()); + } } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java index b2e2e65..80e5a8b 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java @@ -308,17 +308,19 @@ continue; } - BigDecimal preProfit = income.multiply(prop).divide(BigDecimal.valueOf(children.size()), 2, RoundingMode.HALF_DOWN); - - - int reduce = walletService.reduce(preProfit.negate(), mallMember.getId(), "commission"); + BigDecimal reduceProfit = income.multiply(prop); + int reduce = walletService.reduce(reduceProfit.negate(), mallMember.getId(), "commission"); if (reduce == 2) { continue; } - moneyFlowService.addMoneyFlow(mallMember.getId(), income.negate(), MoneyFlowTypeEnum.THANKFUL.getValue(), null, FlowTypeEnum.COMMISSION.getValue()); - + moneyFlowService.addMoneyFlow(mallMember.getId(), reduceProfit.negate(), MoneyFlowTypeEnum.THANKFUL.getValue(), null, FlowTypeEnum.COMMISSION.getValue()); for (MallMember child : children) { + BigDecimal preProfit = income.multiply(prop).divide(BigDecimal.valueOf(children.size()), 2, RoundingMode.HALF_DOWN); + if (preProfit.compareTo(BigDecimal.ZERO) < 1) { + continue; + } + int reduce1 = walletService.reduce(preProfit.negate(), child.getId(), "score"); if (reduce1 == 2) { continue; diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallMoneyFlowVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallMoneyFlowVo.java index 56dcbb7..6b8270b 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/AdminMallMoneyFlowVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminMallMoneyFlowVo.java @@ -17,6 +17,7 @@ private BigDecimal amount; private Integer type; + private Integer flowType; private String orderNo; diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 7230ba1..e290bc5 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,5 +1,5 @@ server: - port: 8080 + port: 8083 tomcat: uri-encoding: utf-8 diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml index 73f4c11..104fa59 100644 --- a/src/main/resources/mapper/modules/MallMemberMapper.xml +++ b/src/main/resources/mapper/modules/MallMemberMapper.xml @@ -3,9 +3,12 @@ <mapper namespace="cc.mrbird.febs.mall.mapper.MallMemberMapper"> <select id="selectMallMemberListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember"> - SELECT m.*,a.name referrerName,IFNULL(c.balance,0) balance FROM mall_member m + SELECT m.*,a.name referrerName,IFNULL(c.balance,0) balance,IFNULL(c.score,0) score,IFNULL(c.prize_score,0) prizeScore + ,d.description levelName + FROM mall_member m left join mall_member a on m.referrer_id = a.invite_id LEFT JOIN mall_member_wallet c on c.member_id = m.id + LEFT JOIN data_dictionary_custom d on d.code = m.level and type='AGENT_LEVEL' <where> <if test="record != null" > <if test="record.name!=null and record.name!=''"> diff --git a/src/main/resources/templates/febs/views/modules/mallMember/addMember.html b/src/main/resources/templates/febs/views/modules/mallMember/addMember.html new file mode 100644 index 0000000..55344f8 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/mallMember/addMember.html @@ -0,0 +1,74 @@ +<style> + #member-add { + padding: 20px 25px 25px 0; + } + + #member-add .layui-treeSelect .ztree li a, .ztree li span { + margin: 0 0 2px 3px !important; + } + #member-add #data-permission-tree-block { + border: 1px solid #eee; + border-radius: 2px; + padding: 3px 0; + } + #member-add .layui-treeSelect .ztree li span.button.switch { + top: 1px; + left: 3px; + } + #member-add img{ + max-width:100px + } + +</style> +<div class="layui-fluid" id="member-add"> + <form class="layui-form" action="" lay-filter="member-add-form"> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">账号:</label> + <div class="layui-input-block"> + <input type="text" name="account" lay-verify="required|phone" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">姓名:</label> + <div class="layui-input-block"> + <input type="text" name="name" lay-verify="required" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">推荐人:</label> + <div class="layui-input-block"> + <input type="text" name="inviteId" lay-verify="required" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-form-item febs-hide"> + <button class="layui-btn" lay-submit="" lay-filter="member-add-form-submit" id="submit"></button> + </div> + </form> +</div> + +<script data-th-inline="javascript"> + layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate'], function () { + var $ = layui.$, + febs = layui.febs, + layer = layui.layer, + formSelects = layui.formSelects, + treeSelect = layui.treeSelect, + form = layui.form, + laydate = layui.laydate, + eleTree = layui.eleTree, + $view = $('#member-add'), + validate = layui.validate; + + form.render(); + formSelects.render(); + + form.on('submit(member-add-form-submit)', function (data) { + febs.post(ctx + 'admin/mallMember/memberAdd', data.field, function () { + layer.closeAll(); + febs.alert.success('操作成功'); + $('#febs-member-list').find('#reset').click(); + }); + return false; + }); + }); +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/mallMember/agentLevelSet.html b/src/main/resources/templates/febs/views/modules/mallMember/agentLevelSet.html index d1aa6ed..0f7f3c3 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/agentLevelSet.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/agentLevelSet.html @@ -83,7 +83,7 @@ febs.post(ctx + 'admin/mallMember/agentLevelSetUpdate', data.field, function () { layer.closeAll(); febs.alert.success('操作成功'); - $('#febs-user-agent').find('#reset').click(); + $('#febs-member-list').find('#reset').click(); }); return false; }); diff --git a/src/main/resources/templates/febs/views/modules/mallMember/agentList.html b/src/main/resources/templates/febs/views/modules/mallMember/agentList.html index f704b1f..65b8799 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/agentList.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/agentList.html @@ -139,14 +139,7 @@ {field: 'amount', title: '团队业绩', minWidth: 100,align:'left'}, {title: '操作', templet: function (d) { - if (d.level === 'ZERO_LEVEL'){ - return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="activate" shiro:hasPermission="user:update">激活</button>' - + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agentLevelSet" shiro:hasPermission="user:update">设置代理等级</button>' - + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agentAllMember" shiro:hasPermission="user:update">全部成员</button>' - }else{ - return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agentLevelSet" shiro:hasPermission="user:update">设置代理等级</button>' - + '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agentAllMember" shiro:hasPermission="user:update">全部成员</button>' - } + return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agentAllMember" shiro:hasPermission="user:update">全部成员</button>' },minWidth: 300,align:'center'} ]] }); 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 71847bb..305289e 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html @@ -1,4 +1,4 @@ -<div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="会员列表"> +<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"> @@ -65,6 +65,17 @@ 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="registMember">添加会员</button> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="balance">拨付余额</button> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="score">拨付赠送积分</button> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="prizeScore">拨付竞猜积分</button> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="resetPwd">重置登录密码</button> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="resetPayPwd">重置支付密码</button> + <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="agentLevel">设置代理等级</button> + </div> +</script> <!-- 表格操作栏 end --> <script data-th-inline="none" type="text/javascript"> // 引入组件并初始化 @@ -73,7 +84,7 @@ febs = layui.febs, form = layui.form, table = layui.table, - $view = $('#febs-user'), + $view = $('#febs-member-list'), $query = $view.find('#query'), $reset = $view.find('#reset'), $searchForm = $view.find('form'), @@ -101,12 +112,6 @@ }); } - if (layEvent === 'reset') { - febs.modal.confirm('重置密码', '是否重置该账号密码?', function () { - resetPwd(data.id); - }); - } - if (layEvent === 'see') { febs.modal.open( '个人信息', 'modules/mallMember/detail/' + data.id, { btn: ['提交', '取消'], @@ -123,17 +128,19 @@ maxmin: true, }); } - if (layEvent === 'systemPay') { - febs.modal.open('系统拨付', 'modules/mallMember/mallSystemPay/' + data.id, { + + if (layEvent == 'updateReferer') { + febs.modal.open( '修改推荐人', 'modules/mallMember/updateReferer/' + data.id, { btn: ['提交', '取消'], yes: function (index, layero) { - $('#systemPay-update').find('#submit').trigger('click'); + $('#referer-update').find('#submit').trigger('click'); }, btn2: function () { layer.closeAll(); } }); } + }); function closeAccount(id) { febs.get(ctx + 'admin/mallMember/closeAccount/' + id, null, function () { @@ -148,8 +155,8 @@ }); } - function resetPwd(id) { - febs.post(ctx + 'admin/mallMember/resetPwd/' + id, null, function () { + function resetPwd(id, type) { + febs.post(ctx + 'admin/mallMember/resetPwdNew/' + type + "/"+ id, null, function () { febs.alert.success('重置成功'); $query.click(); }); @@ -174,15 +181,19 @@ 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: 'bindPhone', title: '手机号', minWidth: 150,align:'left'}, - // {field: 'email', title: '邮箱', minWidth: 150,align:'left'}, {field: 'name', 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: 'inviteId', title: '邀请码', minWidth: 100,align:'left'}, - // {field: 'referrerId', title: '推荐人邀请码', minWidth: 100,align:'left'}, {field: 'referrerName', title: '推荐人', minWidth: 100,align:'left'}, + {field: 'levelName', title: '会员类型', minWidth: 100,align:'left'}, {field: 'accountType', title: '账号类型', templet: function (d) { if (d.accountType === 2) { @@ -192,30 +203,110 @@ }else{ return '' } - }, minWidth: 80,align:'center'}, - {field: 'accountStatus', title: '账号状态', templet: '#switchStatus', minWidth: 80,align:'center'}, + }, minWidth: 100,align:'center'}, + {field: 'accountStatus', title: '账号状态', templet: '#switchStatus', minWidth: 100,align:'center'}, {field: 'createdTime', title: '注册时间', minWidth: 180,align:'center'}, {title: '操作', templet: function (d) { - if (d.accountStatus === 1) { - return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="see" shiro:hasPermission="user:update">详情</button>' - // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="close" shiro:hasPermission="user:update">禁用</button>' - +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reset" shiro:hasPermission="user:update">重置密码</button>' - +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="systemPay" shiro:hasPermission="user:update">余额拨付</button>' - +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="moneyFlow" shiro:hasPermission="user:update">资金流水</button>' - - }else{ - return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="see" shiro:hasPermission="user:update">详情</button>' - // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="open" shiro:hasPermission="user:update">启用</button>' - +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reset" shiro:hasPermission="user:update">重置密码</button>' - +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="moneyFlow" shiro:hasPermission="user:update">资金流水</button>' - - } - },minWidth: 300,align:'center'} + // '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="see" shiro:hasPermission="user:update">详情</button>' + return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="moneyFlow" shiro:hasPermission="user:update">资金流水</button>' + + '<button class="layui-btn layui-btn-normal layui-btn-xs" type="button" lay-event="updateReferer">修改推荐人</button>' + },minWidth: 200,align:'center', fixed:"right"} ]] }); } + 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 === '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(); + } + }); + } + }); + + 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 { diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html b/src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html index 5f4e47b..4ace921 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/mallSystemPay.html @@ -57,6 +57,7 @@ laydate = layui.laydate, eleTree = layui.eleTree, systemPay = [[${systemPay}]], + type = [[${type}]], $view = $('#systemPay-update'), validate = layui.validate; @@ -71,17 +72,28 @@ initUserValue(); function initUserValue() { + var balance; + if (type == 1) { + balance = systemPay.balance + } else if (type == 2) { + balance = systemPay.score + } else if (type ==3) { + balance = systemPay.prizeScore + } else { + + } form.val("systemPay-update-form", { "id": systemPay.id, - "balance": systemPay.balance, + "balance": balance, }); } form.on('submit(systemPay-update-form-submit)', function (data) { + data.field.type = type; febs.post(ctx + 'admin/mallMember/updateSystemPay', data.field, function () { layer.closeAll(); febs.alert.success('操作成功'); - $('#febs-newInfo').find('#reset').click(); + $('#febs-member-list').find('#reset').click(); }); return false; }); diff --git a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html index 1c59020..0a9664f 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html @@ -43,35 +43,61 @@ id: 'moneyFlowChild', url: ctx + 'admin/mallMember/moneyFlow?parentId=1', cols: [[ - {field: 'orderNo', title: '订单编号', minWidth: 150,align:'center'}, + {field: 'amount', title: '金额', minWidth: 80,align:'center'}, {field: 'type', title: '流水类型', templet: function (d) { if (d.type === 1) { - return '<span>直推奖励</span>' + return '<span>静态收益</span>' } else if (d.type === 2) { - return '<span>团队奖励</span>' + return '<span>动态收益</span>' } else if (d.type === 3) { - return '<span>订单支付</span>' + return '<span>代理收益</span>' } else if (d.type === 4) { - return '<span>退款</span>' + return '<span>排名收益</span>' }else if (d.type === 5) { - return '<span>转账</span>' + return '<span>董事收益</span>' }else if (d.type === 6) { - return '<span>提现</span>' + return '<span>社区店补</span>' }else if (d.type === 7) { - return '<span>排名奖励</span>' + return '<span>推荐人收益</span>' }else if (d.type === 8) { - return '<span>利润分红</span>' + return '<span>提现</span>' }else if (d.type === 9) { + return '<span>转账</span>' + }else if (d.type === 10) { + return '<span>支付</span>' + }else if (d.type === 11) { + return '<span>退款</span>' + }else if (d.type === 12) { + return '<span>佣金转竞猜积分</span>' + }else if (d.type === 13) { + return '<span>佣金转余额</span>' + }else if (d.type === 14) { + return '<span>竞猜积分签到</span>' + }else if (d.type === 15) { + return '<span>感恩奖</span>' + }else if (d.type === 16) { return '<span>系统拨付</span>' }else{ return '' } }, minWidth: 80,align:'center'}, - {field: 'amount', title: '金额', minWidth: 80,align:'center'}, - {field: 'createdTime', title: '时间', minWidth: 150,align:'left'}, - {field: 'description', title: '描述', minWidth: 150,align:'left'}, - {field: 'remark', title: '备注', minWidth: 150,align:'left'}, + {field: 'flowType', title: '资金类型', + templet: function (d) { + if (d.flowType === 1) { + return '余额'; + } else if(d.flowType === 2) { + return '赠送积分' + } else if(d.flowType === 3) { + return '竞猜积分' + } else if(d.flowType === 4) { + return '佣金' + } else { + return '-'; + } + }, minWidth: 80,align:'center'}, + {field: 'orderNo', title: '订单编号', minWidth: 150,align:'center'}, + {field: 'createdTime', title: '时间', minWidth: 150,align:'left'} ]] }); } diff --git a/src/main/resources/templates/febs/views/modules/mallMember/updateRefererId.html b/src/main/resources/templates/febs/views/modules/mallMember/updateRefererId.html new file mode 100644 index 0000000..b656380 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/mallMember/updateRefererId.html @@ -0,0 +1,93 @@ +<style> + #referer-update { + padding: 20px 25px 25px 0; + } + + #referer-update .layui-treeSelect .ztree li a, .ztree li span { + margin: 0 0 2px 3px !important; + } + #referer-update #data-permission-tree-block { + border: 1px solid #eee; + border-radius: 2px; + padding: 3px 0; + } + #referer-update .layui-treeSelect .ztree li span.button.switch { + top: 1px; + left: 3px; + } + #referer-update img{ + max-width:100px + } + +</style> +<div class="layui-fluid" id="referer-update"> + <form class="layui-form" action="" lay-filter="referer-update-form"> + <div class="layui-form-item febs-hide"> + <label class="layui-form-label febs-form-item-require">id:</label> + <div class="layui-input-block"> + <input type="text" name="id"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">推荐人姓名:</label> + <div class="layui-input-block"> + <input type="text" name="name" lay-verify="required" autocomplete="off" class="layui-input" readonly> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">推荐人ID:</label> + <div class="layui-input-block"> + <input type="text" name="inviteId" lay-verify="required" autocomplete="off" class="layui-input" readonly> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label febs-form-item-require">修改推荐人ID:</label> + <div class="layui-input-block"> + <input type="text" name="referrerId" lay-verify="required" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-form-item febs-hide"> + <button class="layui-btn" lay-submit="" lay-filter="referer-update-form-submit" id="submit"></button> + </div> + </form> +</div> + +<script data-th-inline="javascript"> + layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate'], function () { + var $ = layui.$, + febs = layui.febs, + layer = layui.layer, + formSelects = layui.formSelects, + treeSelect = layui.treeSelect, + form = layui.form, + laydate = layui.laydate, + eleTree = layui.eleTree, + referer = [[${referer}]], + id = [[${id}]], + $view = $('#referer-update'), + validate = layui.validate; + + form.render(); + formSelects.render(); + + + initUserValue(); + + function initUserValue() { + form.val("referer-update-form", { + "id": id, + "name": referer.name, + "inviteId": referer.inviteId, + }); + } + + form.on('submit(referer-update-form-submit)', function (data) { + febs.post(ctx + 'admin/mallMember/refererIdUpdate', data.field, function () { + layer.closeAll(); + febs.alert.success('操作成功'); + $('#febs-member-list').find('#reset').click(); + }); + return false; + }); + }); +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/system/profitSetting.html b/src/main/resources/templates/febs/views/modules/system/profitSetting.html index efae5f9..f6b28f1 100644 --- a/src/main/resources/templates/febs/views/modules/system/profitSetting.html +++ b/src/main/resources/templates/febs/views/modules/system/profitSetting.html @@ -99,6 +99,7 @@ ,{field: 'prop', title: '返利比例(%)', edit:'text'} ,{field: 'achieve', title: '团队业绩(万元)', edit:'text'} ,{field: 'direct', title: '直推(个)', edit:'text'} + ,{field: 'lastAgentCnt', title: '上一级代理(个)', edit:'text'} ,{field: 'type', title: '比例', edit:'text', hide:'true'} ,{field: 'code', title: '比例', edit:'text', hide:'true'} ]] @@ -115,6 +116,7 @@ valueData.teamIncome = data.achieve; valueData.profitProp = data.prop; valueData.directCnt = data.direct; + valueData.lastAgentCnt = data.lastAgentCnt; agentBonusArr[i].value = JSON.stringify(valueData); } } @@ -189,6 +191,7 @@ data[i].prop = JSON.parse(data[i].value).profitProp; data[i].achieve = JSON.parse(data[i].value).teamIncome; data[i].direct = JSON.parse(data[i].value).directCnt; + data[i].lastAgentCnt = JSON.parse(data[i].value).lastAgentCnt; } agentBonusArr = data; table.reload('agentBonus', { -- Gitblit v1.9.1