From a34878cdc73b1fe0590aa661f8d6be9907914b47 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Wed, 08 Jun 2022 16:37:17 +0800 Subject: [PATCH] 20220528 --- src/main/java/cc/mrbird/febs/mall/dto/MallUpdateMemberInfoDto.java | 31 ++++++++++ src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java | 9 +++ src/main/resources/mapper/modules/MallMemberMapper.xml | 2 src/main/resources/templates/febs/views/modules/mallMember/detail.html | 65 +++++++++++++++++++-- src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java | 2 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 48 ++++++++++++++++ src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html | 8 ++ 7 files changed, 157 insertions(+), 8 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 5d3e98b..25cd8b7 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java @@ -99,6 +99,15 @@ } /** + * 会员列表-详情更新 + */ + @PostMapping("updateMemberInfo") + @ControllerEndpoint(operation = "会员列表-详情更新", exceptionMessage = "操作失败") + public FebsResponse updateMemberInfo(@Valid MallUpdateMemberInfoDto mallUpdateMemberInfoDto) { + return mallMemberService.updateMemberInfo(mallUpdateMemberInfoDto); + } + + /** * 资金流水-列表 * @param moneyFlowListDto * @param request diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallUpdateMemberInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallUpdateMemberInfoDto.java new file mode 100644 index 0000000..cd9eda9 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/dto/MallUpdateMemberInfoDto.java @@ -0,0 +1,31 @@ +package cc.mrbird.febs.mall.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@ApiModel(value = "MallUpdateMemberInfoDto", description = "参数接收类") +public class MallUpdateMemberInfoDto { + + @ApiModelProperty(value = "id") + private Long id; + + @ApiModelProperty(value = "手机号") + private String phone; + + @ApiModelProperty(value = "余额") + private BigDecimal balance; + + private String levelCode; + + @ApiModelProperty(value = "赠送积分") + private BigDecimal score; + + @ApiModelProperty(value = "抽奖积分") + private BigDecimal prizeScore; +} 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 48fd860..6514b34 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java @@ -82,4 +82,6 @@ void applyCheckAgree(Long id); void applyCheckDisAgree(Long id); + + FebsResponse updateMemberInfo(MallUpdateMemberInfoDto mallUpdateMemberInfoDto); } 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 91fb9a4..a8d6598 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 @@ -6,6 +6,7 @@ import cc.mrbird.febs.common.enumerates.FlowTypeEnum; import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; import cc.mrbird.febs.common.exception.FebsException; +import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.common.utils.MallUtils; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.entity.*; @@ -20,11 +21,13 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.xmlbeans.impl.store.Query; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -402,4 +405,49 @@ apply.setStatus(MallShopApply.APPLY_DISAGREE); mallShopApplyMapper.updateById(apply); } + + @Override + @Transactional + public FebsResponse updateMemberInfo(MallUpdateMemberInfoDto mallUpdateMemberInfoDto) { + Long memberId = mallUpdateMemberInfoDto.getId(); + MallMember mallMember = mallMemberMapper.selectById(memberId); + if(ObjectUtil.isEmpty(mallMember)){ + return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); + } + String phone = mallUpdateMemberInfoDto.getPhone(); + if(StrUtil.isEmpty(phone)){ + throw new FebsException("请输入手机号码"); + } + if(!phone.equals(mallMember.getPhone())){ + QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("phone",phone); + List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper); + if(CollUtil.isNotEmpty(mallMembers)){ + throw new FebsException("手机号码已绑定过账号"); + } + } + mallMember.setPhone(phone); + mallMember.setBindPhone(phone); + mallMember.setLevel(mallUpdateMemberInfoDto.getLevelCode()); + mallMemberMapper.updateById(mallMember); + + BigDecimal balance = mallUpdateMemberInfoDto.getBalance(); + if(BigDecimal.ZERO.compareTo(balance) > 0){ + throw new FebsException("请输入正确的余额"); + } + BigDecimal score = mallUpdateMemberInfoDto.getScore(); + if(BigDecimal.ZERO.compareTo(score) > 0){ + throw new FebsException("请输入正确的赠送积分"); + } + BigDecimal prizeScore = mallUpdateMemberInfoDto.getPrizeScore(); + if(BigDecimal.ZERO.compareTo(prizeScore) > 0){ + throw new FebsException("请输入正确的竞猜积分"); + } + MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); + mallMemberWallet.setBalance(balance); + mallMemberWallet.setScore(score); + mallMemberWallet.setPrizeScore(prizeScore); + mallMemberWalletMapper.updateById(mallMemberWallet); + return new FebsResponse().success(); + } } diff --git a/src/main/resources/mapper/modules/MallMemberMapper.xml b/src/main/resources/mapper/modules/MallMemberMapper.xml index f48947a..73f4c11 100644 --- a/src/main/resources/mapper/modules/MallMemberMapper.xml +++ b/src/main/resources/mapper/modules/MallMemberMapper.xml @@ -41,6 +41,8 @@ a.account_status, a.CREATED_TIME, IFNULL(c.balance,0) balance, + IFNULL(c.score,0) score, + IFNULL(c.prize_score,0) prizeScore, d.description levelName, b.name FROM mall_member a diff --git a/src/main/resources/templates/febs/views/modules/mallMember/detail.html b/src/main/resources/templates/febs/views/modules/mallMember/detail.html index 59e88c3..34fb012 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/detail.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/detail.html @@ -36,16 +36,30 @@ <label class="layui-form-label febs-form-item-require">余额:</label> <div class="layui-input-block"> <input type="text" name="balance" data-th-id="${member.balance}" - autocomplete="off" class="layui-input" readonly> + autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> - <label class="layui-form-label febs-form-item-require">代理层级:</label> + <label class="layui-form-label febs-form-item-require">赠送积分:</label> <div class="layui-input-block"> - <input type="text" name="levelName" data-th-id="${member.levelName}" - autocomplete="off" class="layui-input" readonly> + <input type="text" name="score" data-th-id="${member.score}" + 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="prizeScore" data-th-id="${member.prizeScore}" + 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="levelName" data-th-id="${member.levelName}"--> +<!-- autocomplete="off" class="layui-input" readonly>--> +<!-- </div>--> +<!-- </div>--> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">性别:</label> <div class="layui-input-block"> @@ -57,7 +71,7 @@ <label class="layui-form-label febs-form-item-require">手机号:</label> <div class="layui-input-block"> <input type="text" name="phone" data-th-id="${member.phone}" - autocomplete="off" class="layui-input" readonly> + autocomplete="off" class="layui-input"> </div> </div> <!-- <div class="layui-form-item">--> @@ -67,6 +81,16 @@ <!-- autocomplete="off" class="layui-input" readonly>--> <!-- </div>--> <!-- </div>--> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">代理级别:</label> + <div class="layui-input-inline"> + <select lay-verify="required" name="levelCode" class="agent-level-set-level" id="levelSet"> + <option value="">请选择</option> + </select> + </div> + </div> + </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">邀请码:</label> <div class="layui-input-block"> @@ -94,6 +118,9 @@ <input type="radio" name="accountStatus" value="1" title="正常" readonly> <input type="radio" name="accountStatus" value="2" title="禁用" readonly> </div> + </div> + <div class="layui-form-item febs-hide"> + <button class="layui-btn" lay-submit="" lay-filter="user-update-form-submit" id="submit"></button> </div> </form> </div> @@ -124,13 +151,37 @@ // "email": member.email, "sex": member.sex, "balance": member.balance, + "score": member.score, + "prizeScore": member.prizeScore, "inviteId": member.inviteId, "referrerName": member.referrerName, - "level": member.level, - "levelName": member.levelName, + "levelCode": member.level, + // "levelName": member.levelName, "createdTime": member.createdTime, "accountStatus": member.accountStatus }); } + + //(下拉框) + $.get(ctx + 'admin/mallMember/getAgentLevelOption/tree', function (data) { + for (var k in data) + { + $(".agent-level-set-level").append("<option value='" + data[k].id + "'>" + data[k].name + "</option>"); + } + layui.use('form', function () { + var form = layui.form; + $("#levelSet").val(member.level) + form.render(); + }); + }); + + form.on('submit(user-update-form-submit)', function (data) { + febs.post(ctx + 'admin/mallMember/updateMemberInfo', data.field, function () { + layer.closeAll(); + febs.alert.success('操作成功'); + $('#febs-user').find('#reset').click(); + }); + return false; + }); }); </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 582e3f9..71847bb 100644 --- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html +++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html @@ -109,7 +109,13 @@ if (layEvent === 'see') { febs.modal.open( '个人信息', 'modules/mallMember/detail/' + data.id, { - maxmin: true, + btn: ['提交', '取消'], + yes: function (index, layero) { + $('#user-update').find('#submit').trigger('click'); + }, + btn2: function () { + layer.closeAll(); + } }); } if (layEvent === 'moneyFlow') { -- Gitblit v1.9.1