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 src/main/java/cc/mrbird/febs/mall/dto/MallUpdateMemberInfoDto.java
New file @@ -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; } 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); } 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(); } } 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 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> 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') {