xiaoyong931011
2021-07-05 cf200a1f92c01ba22c326c49391f748ffb006910
20210617  开售开关
1 files added
6 files modified
231 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/otc/controller/ViewController.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java 45 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/OtcEntrustOrderMapper.xml 3 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/otc/otcEntrustList.html 28 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/otc/otcEntrustListUpdate.html 126 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java
@@ -94,6 +94,16 @@
    }
    /**
     *委托单--更新
     * @return
     */
    @PostMapping("otcEntrustConfirm")
    @ControllerEndpoint(operation = "委托单--更新", exceptionMessage = "失败")
    public FebsResponse otcEntrustConfirm(@Valid OtcEntrustOrderEntity otcEntrustOrderEntity) {
        return otcService.otcEntrustConfirm(otcEntrustOrderEntity);
    }
    /**
     * 订单列表
     */
    @GetMapping("otcOrderList")
src/main/java/com/xcong/excoin/modules/otc/controller/ViewController.java
@@ -3,6 +3,7 @@
import com.xcong.excoin.common.entity.FebsConstant;
import com.xcong.excoin.common.utils.FebsUtil;
import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo;
import com.xcong.excoin.modules.otc.entity.OtcEntrustOrderEntity;
import com.xcong.excoin.modules.otc.entity.OtcMarketBussinessEntity;
import com.xcong.excoin.modules.otc.entity.OtcOrderEntity;
import com.xcong.excoin.modules.otc.entity.OtcSettingEntity;
@@ -41,6 +42,20 @@
        return FebsUtil.view("modules/otc/otcEntrustList");
    }
    /**
     * 获取委托单列表--详情
     */
    @GetMapping("otcEntrustListUpdate/{id}")
    @RequiresPermissions("otcEntrustListUpdate:update")
    public String otcEntrustListUpdate(@PathVariable long id, Model model) {
        OtcEntrustOrderEntity data = otcService.otcEntrustListUpdate(id);
        model.addAttribute("member", data);
        return FebsUtil.view("modules/otc/otcEntrustListUpdate");
    }
    /**
     * 获取订单列表
     */
src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java
@@ -42,4 +42,8 @@
    FebsResponse updateOtcSetting(OtcSettingEntity otcSettingEntity);
    int reduceCoin(Long id);
    OtcEntrustOrderEntity otcEntrustListUpdate(long id);
    FebsResponse otcEntrustConfirm(OtcEntrustOrderEntity otcEntrustOrderEntity);
}
src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java
@@ -312,4 +312,49 @@
        otcOrderMapper.updateOrderStatusByOrderNo(OtcOrderEntity.STATUS_THREE, order.getOrderNo());
        return 1;
    }
    @Override
    public OtcEntrustOrderEntity otcEntrustListUpdate(long id) {
        return otcEntrustOrderMapper.selectById(id);
    }
    @Override
    public FebsResponse otcEntrustConfirm(OtcEntrustOrderEntity otcEntrustOrderEntity) {
        Long id = otcEntrustOrderEntity.getId();
        OtcEntrustOrderEntity otcEntrustOrder = otcEntrustOrderMapper.selectById(id);
        BigDecimal unitPrice = otcEntrustOrderEntity.getUnitPrice();
        if(ObjectUtil.isEmpty(unitPrice) || unitPrice.compareTo(BigDecimal.ZERO) < 0){
            return new FebsResponse().fail().message("请设置正确的单价");
        }
        otcEntrustOrder.setUnitPrice(unitPrice);
        BigDecimal coinAmount = otcEntrustOrderEntity.getCoinAmount();
        if(ObjectUtil.isEmpty(coinAmount) || coinAmount.compareTo(BigDecimal.ZERO) < 0){
            return new FebsResponse().fail().message("请设置正确的数量");
        }
        otcEntrustOrder.setCoinAmount(coinAmount);
        BigDecimal totalAmount = coinAmount.multiply(unitPrice);
        otcEntrustOrder.setTotalAmount(totalAmount);
        BigDecimal remainCoinAmount = otcEntrustOrderEntity.getRemainCoinAmount();
        if(ObjectUtil.isEmpty(remainCoinAmount) || remainCoinAmount.compareTo(BigDecimal.ZERO) < 0
                || totalAmount.compareTo(remainCoinAmount) < 0){
            return new FebsResponse().fail().message("请设置正确的剩余数量");
        }
        otcEntrustOrder.setRemainCoinAmount(remainCoinAmount);
        BigDecimal limitMinAmount = otcEntrustOrderEntity.getLimitMinAmount();
        if(ObjectUtil.isEmpty(limitMinAmount) || limitMinAmount.compareTo(BigDecimal.ZERO) < 0){
            return new FebsResponse().fail().message("请设置正确的最小限额");
        }
        otcEntrustOrder.setLimitMinAmount(limitMinAmount);
        BigDecimal limitMaxAmount = otcEntrustOrderEntity.getLimitMaxAmount();
        if(ObjectUtil.isEmpty(limitMaxAmount) || limitMaxAmount.compareTo(BigDecimal.ZERO) < 0
                || limitMaxAmount.compareTo(limitMinAmount) < 0 || totalAmount.compareTo(limitMaxAmount) < 0){
            return new FebsResponse().fail().message("请设置正确的最大限额");
        }
        otcEntrustOrder.setLimitMaxAmount(limitMaxAmount);
        otcEntrustOrder.setStatus(otcEntrustOrderEntity.getStatus());
        otcEntrustOrderMapper.updateById(otcEntrustOrder);
        return new FebsResponse().success();
    }
}
src/main/resources/mapper/modules/OtcEntrustOrderMapper.xml
@@ -18,6 +18,9 @@
                <if test="record.orderType!=null and record.orderType!=''">
                    and a.order_type= #{record.orderType}
                </if>
                <if test="record.status!=null and record.status!=''">
                    and a.status= #{record.status}
                </if>
            </if>
        </where>
        order by m.create_time desc
src/main/resources/templates/febs/views/modules/otc/otcEntrustList.html
@@ -22,6 +22,17 @@
                                            </select>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label layui-form-label-sm">状态</label>
                                        <div class="layui-input-inline">
                                            <select name="status">
                                                <option value="">请选择</option>
                                                <option value="1">上线</option>
                                                <option value="2">下线</option>
                                                <option value="3">取消</option>
                                            </select>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
@@ -82,6 +93,17 @@
                    dealDone(data.id);
                });
            }
            if (layEvent === 'editOrder') {
                febs.modal.open('详情修改', 'modules/otc/otcEntrustListUpdate/' + data.id, {
                    btn: ['提交', '取消'],
                    yes: function (index, layero) {
                        $('#user-update').find('#submit').trigger('click');
                    },
                    btn2: function () {
                        layer.closeAll();
                    }
                });
            }
        });
        function dealIng(id) {
            febs.get(ctx + 'otc/dealIng/' + id, null, function () {
@@ -137,7 +159,7 @@
                    {field: 'remainCoinAmount', title: '剩余数量',minWidth: 100,align:'center'},
                    {field: 'limitMinAmount', title: '最小限额',minWidth: 100,align:'center'},
                    {field: 'limitMaxAmount', title: '最大限额',minWidth: 100,align:'center'},
                    {field: 'status', title: '类型',
                    {field: 'status', title: '状态',
                        templet: function (d) {
                            if (d.status === 1) {
                                return '<span style="color:blue;">上线</span>'
@@ -160,6 +182,9 @@
                                return ''
                            }
                        }, minWidth: 80,align:'center'},
                    {title: '操作',templet: function (d) {
                            return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="editOrder" shiro:hasPermission="user:update">详情</button>'
                        },minWidth: 200,align:'center'}
                    // {title: '操作',templet: function (d) {
                    //         if(d.status === 1){
                    //             return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="dealIng" shiro:hasPermission="user:update">马上处理</button>'
@@ -178,6 +203,7 @@
            return {
                account: $searchForm.find('input[name="account"]').val().trim(),
                orderType: $searchForm.find("select[name='orderType']").val(),
                status: $searchForm.find("select[name='status']").val(),
            };
        }
src/main/resources/templates/febs/views/modules/otc/otcEntrustListUpdate.html
New file
@@ -0,0 +1,126 @@
<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="number" name="unitPrice" data-th-id="${member.unitPrice}"
                       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="number" name="coinAmount" data-th-id="${member.coinAmount}"
                       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="number" name="remainCoinAmount" data-th-id="${member.remainCoinAmount}"
                       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="number" name="totalAmount" data-th-id="${member.totalAmount}"-->
<!--                       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="number" name="limitMinAmount" data-th-id="${member.limitMinAmount}"
                       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="number" name="limitMaxAmount" data-th-id="${member.limitMaxAmount}"
                       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="radio" name="status" value="1" title="上线" checked="">
                <input type="radio" name="status" value="2" title="下线" >
                <input type="radio" name="status" value="3" title="取消" >
            </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", {
                "id": member.id,
                "unitPrice": member.unitPrice,
                "coinAmount": member.coinAmount,
                "remainCoinAmount": member.remainCoinAmount,
                // "totalAmount": member.totalAmount,
                "limitMinAmount": member.limitMinAmount,
                "status": member.status,
                "limitMaxAmount": member.limitMaxAmount
            });
        }
        form.on('submit(user-update-form-submit)', function (data) {
            febs.post(ctx + 'otc/otcEntrustConfirm', data.field, function () {
                layer.closeAll();
                febs.alert.success('成功');
                $('#febs-user').find('#query').click();
            });
            return false;
        });
    });
</script>