xiaoyong931011
2020-07-07 27c794a7d53992efb8ba6ee2be12c58e10766f89
20200707  代码提交
6 files modified
1 files added
193 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java 49 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/addCoin.html 100 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/member.html 19 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
@@ -4,7 +4,6 @@
import com.xcong.excoin.common.controller.BaseController;
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.member.dto.MemberDataInfoDto;
import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto;
import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity;
@@ -41,6 +40,16 @@
    private final IMemberService memberService;
    
    /**
     *会员列表---拨币
     * @return
     */
    @PostMapping("addCoinConfirm")
    @ControllerEndpoint(operation = "交易设置---确认", exceptionMessage = "设置失败")
    public FebsResponse addCoinConfirm(@Valid MemberEntity memberEntity) {
        return memberService.addCoinConfirm(memberEntity);
    }
    /**
     * 代理关系---列表
     * @return
     */
src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java
@@ -27,6 +27,14 @@
    
    private final IMemberService memberService;
    
    @GetMapping("addCoin/{id}")
    @RequiresPermissions("addCoin:update")
    public String addCoin(@PathVariable long id, Model model) {
        MemberEntity data = memberService.selectMemberByid(id);
        model.addAttribute("member", data);
        return FebsUtil.view("modules/member/addCoin");
    }
    /**
     * 代理关系
     * @return
src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java
@@ -6,6 +6,7 @@
import com.xcong.excoin.common.entity.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@@ -147,6 +148,9 @@
    @TableField(exist = false)
    private String account;
    @TableField(exist = false)
    private BigDecimal coinNumber;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(exist = false)
    private Date startTime;
src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java
@@ -63,4 +63,6 @@
    IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity, QueryRequest request);
    FebsResponse addCoinConfirm(@Valid MemberEntity memberEntity);
}
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -586,4 +586,53 @@
        return new FebsResponse().data(selectByMap);
    }
    @Override
    public FebsResponse addCoinConfirm(@Valid MemberEntity memberEntity) {
        Long memberId = memberEntity.getId();
        String walletCode = "USDT";
        BigDecimal amountUsdt = memberEntity.getCoinNumber();
        MemberEntity selectById = this.baseMapper.selectById(memberId);
        if(ObjectUtils.isEmpty(selectById)) {
            return new FebsResponse().message("用户已不存在");
        }
        //获取币币钱包
        MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(memberId,walletCode);
        BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance();
        BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance();
        memberWalletCoinEntity.setAvailableBalance(availableBalance.add(amountUsdt));
        memberWalletCoinEntity.setTotalBalance(totalBalance.add(amountUsdt));
        // 更新
        memberWalletCoinMapper.updateById(memberWalletCoinEntity);
         //添加币币资金划转历史记录
        MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity();
        memberAccountMoneyChangeEntity.setContent("转入币币账户");
        memberAccountMoneyChangeEntity.setMemberId(memberId);
        memberAccountMoneyChangeEntity.setAmount(amountUsdt);
        memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER);
        memberAccountMoneyChangeEntity.setSymbol("USDT");
        memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN);
        memberAccountMoneyChangeEntity.setCreateBy(selectById.getCreateBy());
        memberAccountMoneyChangeEntity.setCreateTime(new Date());
        memberAccountMoneyChangeEntity.setUpdateBy(selectById.getCreateBy());
        memberAccountMoneyChangeEntity.setUpdateTime(new Date());
        memberAccountMoneyChangeMapper.insert(memberAccountMoneyChangeEntity);
        /**
         * todo
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        String chargeTime = format.format(memberQuickBuySaleEntity.getChargeTime()); // 将当前时间袼式化为指定的格式
        String usdt = memberQuickBuySaleEntity.getAmountUsdt()+"USDT";
        //发送短信提醒
        String smsContent = "【Excoin】尊敬的用户您好!您于"+chargeTime+"充值"+usdt+"已成功到账,请您及时查收!订单号为:"+memberChargeUsdt.getOrderCode()+"。";
        SmsUtils.hxSmsSend(member.getPhone(), smsContent);
         */
        return new FebsResponse().success();
    }
}
src/main/resources/templates/febs/views/modules/member/addCoin.html
New file
@@ -0,0 +1,100 @@
<style>
    #user-update {
        padding: 20px 25px 25px 0;
    }
    #user-update .layui-treeSelect .ztree li a, .ztree li span {
        margin: 0 0 2px 3px !important;
    }
    #user-update #data-permission-tree-block {
        border: 1px solid #eee;
        border-radius: 2px;
        padding: 3px 0;
    }
    #user-add .layui-treeSelect .ztree li span.button.switch {
        top: 1px;
        left: 3px;
    }
</style>
<div class="layui-fluid" id="user-update">
    <form class="layui-form" action="" lay-filter="user-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" data-th-value="${member.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="phone" minlength="4" maxlength="10" data-th-id="${member.phone}" lay-verify="range|phone"
                        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">
                <input type="text" name="email" minlength="4" maxlength="10" data-th-id="${member.email}" lay-verify="range|email"
                        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">
                <input type="text" name="inviteId" minlength="4" maxlength="10" data-th-id="${member.inviteId}" lay-verify="range|inviteId"
                        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">
                <input type="text" name="coinNumber" minlength="4" maxlength="10" data-th-id="${member.coinNumber}" lay-verify="range|coinNumber"
                        autocomplete="off" class="layui-input" >
            </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>
<script data-th-inline="javascript">
    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree'], function () {
        var $ = layui.$,
            febs = layui.febs,
            layer = layui.layer,
            formSelects = layui.formSelects,
            treeSelect = layui.treeSelect,
            form = layui.form,
            eleTree = layui.eleTree,
            member = [[${member}]],
            $view = $('#user-update'),
            validate = layui.validate,
            _deptTree;
        form.render();
        initUserValue();
        formSelects.render();
        function initUserValue() {
            form.val("user-update-form", {
                "phone": member.phone,
                "email": member.email,
                "coinNumber": member.coinNumber,
                "inviteId": member.inviteId
            });
        }
        form.on('submit(user-update-form-submit)', function (data) {
            febs.post(ctx + 'member/addCoinConfirm', data.field, function () {
                layer.closeAll();
                febs.alert.success('拨币成功');
                $('#febs-user').find('#reset').click();
            });
            return false;
        });
    });
</script>
src/main/resources/templates/febs/views/modules/member/member.html
@@ -81,6 +81,17 @@
                    maxmin: true,
                });
            }
            if (layEvent === 'addCoin') {
                febs.modal.open( '拨币', 'modules/member/addCoin/' + data.id, {
                   btn: ['提交', '取消'],
                   yes: function (index, layero) {
                       $('#user-update').find('#submit').trigger('click');
                   },
                   btn2: function () {
                       layer.closeAll();
                   }
               });
             }
        });
        
@@ -110,9 +121,9 @@
                    {field: 'accountType', title: '账号类型',
                        templet: function (d) {
                            if (d.accountType === 2) {
                                return '<span style="color:green;">正常账号</span>'
                                return '<span style="color:green;">测试账号</span>'
                            } else if (d.accountType === 1) {
                                return '<span style="color:red;">测试账号</span>'
                                return '<span style="color:red;">正常账号</span>'
                            }else{
                                return ''
                            }
@@ -146,11 +157,13 @@
                        templet: function (d) {
                            if (d.certifyStatus === 1) {
                                return '<a lay-event="edit" shiro:hasPermission="user:update">确认</a>'
                                +'<a lay-event="addCoin" shiro:hasPermission="user:update">拨币</a>'
                            }else if(d.certifyStatus === 2){
                                return '<a lay-event="see" shiro:hasPermission="user:update">'
                                +'<i class="layui-icon febs-edit-area febs-blue">&#xe7a5;</i></a>'
                                +'<a lay-event="addCoin" shiro:hasPermission="user:update">拨币</a>'
                            }else {
                                return ''
                                return +'<a lay-event="addCoin" shiro:hasPermission="user:update">拨币</a>'
                            }
                        },minWidth: 200,align:'center'}
                ]]