xiaoyong931011
2022-06-08 a34878cdc73b1fe0590aa661f8d6be9907914b47
20220528
1 files added
6 files modified
165 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/MallUpdateMemberInfoDto.java 31 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java 48 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallMemberMapper.xml 2 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/detail.html 65 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html 8 ●●●● patch | view | raw | blame | history
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') {