1
zj
2024-08-27 037754c844aba92aa1ef86a3e4929ce4b895a03f
1
2 files modified
122 ■■■■ changed files
.idea/misc.xml 1 ●●●● patch | view | raw | blame | history
src/main/java/project/withdraw/internal/AdminWithdrawServiceImpl.java 121 ●●●● patch | view | raw | blame | history
.idea/misc.xml
@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ExternalStorageConfigurationManager" enabled="true" />
  <component name="MavenProjectsManager">
src/main/java/project/withdraw/internal/AdminWithdrawServiceImpl.java
@@ -119,101 +119,44 @@
    @Override
    public void saveSucceeded(String id, String safeword, String userName, String partyId) {
        SecUser sec = this.secUserService.findUserByLoginName(userName);
        String sysSafeword = sec.getSafeword();
        String safeword_md5 = passwordEncoder.encodePassword(safeword, userName);
        if (!safeword_md5.equals(sysSafeword)) {
        SecUser var5 = this.secUserService.findUserByLoginName(userName);
        String var6 = var5.getSafeword();
        String var7 = this.passwordEncoder.encodePassword(safeword, userName);
        if (!var7.equals(var6)) {
            throw new BusinessException("资金密码错误");
        }
        } else {
            Withdraw var8 = this.get(id);
            Date var9 = new Date();
            var8.setReviewTime(var9);
            if (var8 != null && var8.getSucceeded() == 0) {
                String var10 = "";
                if (var8.getMethod().indexOf("BTC") != -1) {
                    var10 = "btc";
                } else if (var8.getMethod().indexOf("ETH") != -1) {
                    var10 = "eth";
                } else {
                    var10 = "usdt";
                }
        Withdraw withdraw = this.get(id);
        Date date = new Date();
        withdraw.setReviewTime(date);
        /**
         *
         */
        if (withdraw != null && withdraw.getSucceeded() == 0) {
            String symbol = "";
            String itemId = "";
            String coin = "";
            if (withdraw.getMethod().indexOf("BTC") != -1) {
                symbol = "btc";
                itemId = "4";
                coin = "btc";
            } else if (withdraw.getMethod().indexOf("ETH") != -1) {
                symbol = "eth";
                itemId = "3";
                coin = "eth";
            }else if(withdraw.getMethod().indexOf("TRC") != -1){
                symbol = "usdt";
                itemId = "1";
                coin = "trc";
            }else{
                symbol = "usdt";
                itemId = "1";
                coin = "erc";
                var8.setSucceeded(1);
                this.updateWithdraw(var8);
                this.walletLogService.updateStatus(var8.getOrder_no(), var8.getSucceeded());
                this.userDataService.saveWithdrawHandle(var8.getPartyId(), var8.getAmount(), var8.getAmount_fee(), var10);
                SecUser var11 = this.secUserService.findUserByPartyId(var8.getPartyId());
                Log var12 = new Log();
                var12.setCategory("operation");
                var12.setExtra(var8.getOrder_no());
                var12.setOperator(userName);
                var12.setUsername(var11.getUsername());
                var12.setPartyId(var11.getPartyId());
                var12.setLog("通过提现申请。订单号[" + var8.getOrder_no() + "]。");
                this.logService.saveSync(var12);
                this.tipService.deleteTip(var8.getId().toString());
            }
            withdraw.setSucceeded(4);
            this.updateWithdraw(withdraw);
            this.walletLogService.updateStatus(withdraw.getOrder_no(), withdraw.getSucceeded());
            //发送提现代付
            String usercode = jdbcTemplate.queryForObject("SELECT USERCODE FROM PAT_PARTY WHERE UUID=?", String.class,withdraw.getPartyId());
            String withdrawHash = walletWithdraw(usercode,coin,itemId,withdraw.getAddress(),withdraw.getAmount());
            jdbcTemplate.update("UPDATE T_WITHDRAW_ORDER SET WITHDRAW_HASH = ? WHERE ORDER_NO = ?",withdrawHash,withdraw.getOrder_no());
            /**
             * 提现订单加入userdate
             */
            this.userDataService.saveWithdrawHandle(withdraw.getPartyId(), withdraw.getAmount(),
                    withdraw.getAmount_fee(), symbol);
            SecUser SecUser = secUserService.findUserByPartyId(withdraw.getPartyId());
            Log log = new Log();
            log.setCategory(Constants.LOG_CATEGORY_OPERATION);
            log.setExtra(withdraw.getOrder_no());
            log.setOperator(userName);
            log.setUsername(SecUser.getUsername());
            log.setPartyId(SecUser.getPartyId());
            log.setLog("通过提现申请。订单号[" + withdraw.getOrder_no() + "]。");
            logService.saveSync(log);
            tipService.deleteTip(withdraw.getId().toString());
        }
    }
    public String walletWithdraw(String userId,String coin,String itemId,String address,double num){
        try{
            //先生成备用地址
            Map<String,Object> generateMap = new HashMap<String, Object>();
            generateMap.put("item_id", itemId);
            generateMap.put("user_id", userId);
            generateMap.put("address", address);
            generateMap.put("num", String.valueOf(num));
            System.out.println(coin+"生成备用地址提交字符串为:"+ JsonUtils.toJson(generateMap));
            HttpsTransport httpsTransport = new HttpsTransport();
            httpsTransport.setSendEncoding("UTF-8");
            httpsTransport.setUrl("http://18.163.120.125:999/"+coin+"/withdraw");
            System.out.println(coin+"提交地址:"+ "http://18.163.120.125:999/"+coin+"/withdraw");
            String response = (String) httpsTransport.submit(generateMap);
            System.out.println(coin+"生成备用地址提响应字符串为:"+ JsonUtils.toJson(response));
            //8,返回参数转map
            Map<String,Object> responseMap = JsonUtils.jsonToMap(response);
            if(responseMap.get("status").toString().trim().equals("1")){
                Map<String,Object> addressMap = (Map)responseMap.get("result");
                return addressMap.get("withdraw_hash").toString();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 修改提现描述
     */