From a3f86d22b6b9d5ab4a335488ddaf8edf3aa5f787 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 03 Jun 2021 16:45:08 +0800 Subject: [PATCH] modify --- src/main/resources/mapper/modules/OtcOrderMapper.xml | 5 ++ src/main/java/com/xcong/excoin/modules/otc/entity/OtcOrderEntity.java | 4 ++ src/main/resources/templates/febs/views/modules/otc/otcOrderList.html | 15 ++++++- src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java | 12 ++++++ src/main/resources/mapper/modules/MemberWalletCoinMapper.xml | 15 +++++++ src/main/java/com/xcong/excoin/modules/member/mapper/MemberWalletCoinMapper.java | 5 ++ src/main/resources/application-dev.yml | 10 +++- src/main/java/com/xcong/excoin/modules/otc/mapper/OtcOrderMapper.java | 1 src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java | 14 +++++++ src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java | 2 + 10 files changed, 78 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberWalletCoinMapper.java b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberWalletCoinMapper.java index 1c61502..830e044 100644 --- a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberWalletCoinMapper.java +++ b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberWalletCoinMapper.java @@ -5,8 +5,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; +import java.math.BigDecimal; + public interface MemberWalletCoinMapper extends BaseMapper<MemberWalletCoinEntity> { MemberWalletCoinEntity findWalletCoinByMemberIdAndWalletCode(@Param("memberId")Long memberId, @Param("walletCode")String walletCode); + int updateBlockBalance(@Param("availableBalance") BigDecimal availableBalance, @Param("id") Long id); + + int reduceFrozenBalance(@Param("amount") BigDecimal amount, @Param("id") Long id); } diff --git a/src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java b/src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java index a202774..11c2544 100644 --- a/src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java +++ b/src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java @@ -9,6 +9,7 @@ import com.xcong.excoin.modules.otc.entity.*; import com.xcong.excoin.modules.otc.service.OtcService; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -16,6 +17,7 @@ import javax.validation.constraints.NotNull; import java.util.Map; +@Slf4j @Validated @RestController @RequiredArgsConstructor @@ -138,4 +140,14 @@ return otcService.updateOtcSetting(otcSettingEntity); } + /** + * 放币 + */ + @PostMapping("/reduceCoin/{id}") + @ControllerEndpoint(operation = "放币", exceptionMessage = "失败") + public FebsResponse reduceCoin(@PathVariable("id") Long id) { + otcService.reduceCoin(id); + return new FebsResponse().success(); + } + } diff --git a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcOrderEntity.java b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcOrderEntity.java index d1993bc..fca7632 100644 --- a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcOrderEntity.java +++ b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcOrderEntity.java @@ -73,5 +73,9 @@ @TableField(exist = false) private String nickname; + /** + * 对面的用户ID + */ + private Long oppositeMemberId; } diff --git a/src/main/java/com/xcong/excoin/modules/otc/mapper/OtcOrderMapper.java b/src/main/java/com/xcong/excoin/modules/otc/mapper/OtcOrderMapper.java index d91bbb4..63948b8 100644 --- a/src/main/java/com/xcong/excoin/modules/otc/mapper/OtcOrderMapper.java +++ b/src/main/java/com/xcong/excoin/modules/otc/mapper/OtcOrderMapper.java @@ -11,4 +11,5 @@ IPage<OtcOrderEntity> otcOrderList(Page<OtcOrderEntity> page, @Param("record")OtcOrderEntity otcOrderEntity); + int updateOrderStatusByOrderNo(@Param("status") Integer status, @Param("orderNo") String orderNo); } diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java b/src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java index 23d4ab2..df0ac3b 100644 --- a/src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java +++ b/src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java @@ -40,4 +40,6 @@ OtcSettingEntity otcSettingUpdate(long id); FebsResponse updateOtcSetting(OtcSettingEntity otcSettingEntity); + + int reduceCoin(Long id); } diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java index bf070e3..2259c8d 100644 --- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java @@ -298,4 +298,18 @@ return new FebsResponse().success(); } + @Override + @Transactional(rollbackFor = Exception.class) + public int reduceCoin(Long id) { + OtcOrderEntity order = otcOrderMapper.selectById(id); + + MemberWalletCoinEntity saleWallet = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(order.getMemberId(), "USDT"); + MemberWalletCoinEntity buyWallet = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(order.getOppositeMemberId(), "USDT"); + + memberWalletCoinMapper.updateBlockBalance(order.getCoinAmount(), buyWallet.getId()); + memberWalletCoinMapper.reduceFrozenBalance(order.getCoinAmount(), saleWallet.getId()); + + otcOrderMapper.updateOrderStatusByOrderNo(OtcOrderEntity.STATUS_THREE, order.getOrderNo()); + return 1; + } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index c7f2eb3..e6c1466 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -15,10 +15,14 @@ datasource: # 数据源-1,名称为 base base: - username: db_hibit - password: hibit123!@# +# username: yd_otc +# password: yd_otc123!@# +# driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://154.91.195.170:3306/db_otc?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 + username: ct_test + password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://124.70.222.34:3306/db_hibit?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 + url: jdbc:mysql://120.27.238.55:3306/db_otc?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 redis: diff --git a/src/main/resources/mapper/modules/MemberWalletCoinMapper.xml b/src/main/resources/mapper/modules/MemberWalletCoinMapper.xml index 5980ed9..fabdfd6 100644 --- a/src/main/resources/mapper/modules/MemberWalletCoinMapper.xml +++ b/src/main/resources/mapper/modules/MemberWalletCoinMapper.xml @@ -7,4 +7,19 @@ select * from member_wallet_coin where member_id = #{memberId} and wallet_code = #{walletCode} </select> + + <update id="updateBlockBalance"> + update member_wallet_coin + set + available_balance = IFNULL(available_balance, 0) + #{availableBalance}, + total_balance = IFNULL(total_balance, 0) + #{availableBalance} + where id=#{id} + </update> + + <update id="reduceFrozenBalance"> + update member_wallet_coin + set frozen_balance = frozen_balance - #{amount}, + total_balance = total_balance - #{amount} + where id=#{id} + </update> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/modules/OtcOrderMapper.xml b/src/main/resources/mapper/modules/OtcOrderMapper.xml index 1b16d40..4b9b5b6 100644 --- a/src/main/resources/mapper/modules/OtcOrderMapper.xml +++ b/src/main/resources/mapper/modules/OtcOrderMapper.xml @@ -23,4 +23,9 @@ order by a.create_time desc </select> + <update id="updateOrderStatusByOrderNo"> + update otc_order + set status=#{status} + where order_no=#{orderNo} + </update> </mapper> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/otc/otcOrderList.html b/src/main/resources/templates/febs/views/modules/otc/otcOrderList.html index bd0fda3..395e639 100644 --- a/src/main/resources/templates/febs/views/modules/otc/otcOrderList.html +++ b/src/main/resources/templates/febs/views/modules/otc/otcOrderList.html @@ -85,6 +85,15 @@ } }); } + + if (layEvent === 'reduceCoin') { + febs.modal.confirm('放币', '确定直接放币?', function () { + febs.post(ctx + 'otc/reduceCoin/' + data.id, null, function () { + febs.alert.success('放币成功'); + $query.click(); + }); + }); + } }); // 查询按钮 @@ -144,8 +153,10 @@ // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="dealIng" shiro:hasPermission="user:update">付款</button>' if(d.status === 1){ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="dealIng" shiro:hasPermission="user:update">付款</button>' - }else{ - return '' + }else if (d.status === 2 && d.orderType === 'S'){ + return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reduceCoin">放币</button>' + } else { + return ''; } },minWidth: 100,align:'center'} ]] -- Gitblit v1.9.1