From 4046f94a57f0c10e9509a49ad0d37d701aeb8186 Mon Sep 17 00:00:00 2001
From: jack <zengjieli93@163.com>
Date: Tue, 02 Apr 2024 23:47:51 +0800
Subject: [PATCH] 修复自选bug 和 增加流水日志
---
src/main/java/com/nq/service/impl/UserServiceImpl.java | 154 +++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 136 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 9dfc106..4668440 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -1,5 +1,6 @@
package com.nq.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@@ -97,6 +98,9 @@
@Resource
+ MoneyLogMapper mapper;
+
+ @Resource
UserPositionMapper userPositionMapper;
@Resource
SiteAmtTransLogMapper siteAmtTransLogMapper;
@@ -137,7 +141,7 @@
}
- User dbuser = this.userMapper.findByPhone(phone);
+ User dbuser = this.userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getPhone,phone).last( " limit 1"));
if (dbuser != null) {
return ServerResponse.createByErrorMsg("Registration failed, the mobile phone number has been registered");
}
@@ -185,7 +189,8 @@
log.info("用户{}登陆成功, 登陆状态{} ,交易状态{}", new Object[]{user.getId(), user.getIsLogin(), user.getIsLock()});
- userAssetsServices.assetsByTypeAndUserId(EStockType.HG.getCode(),user.getId());
+ userAssetsServices.assetsByTypeAndUserId(EStockType.MAS.getCode(),user.getId());
+ userAssetsServices.assetsByTypeAndUserId(EStockType.US.getCode(),user.getId());
this.iSiteLoginLogService.saveLog(user, request);
return ServerResponse.createBySuccess(user);
}
@@ -452,11 +457,9 @@
@Override
public ServerResponse getMoney(HttpServletRequest request) {
-
BigDecimal exchangeRate = iSiteSettingService.getSiteSetting().getExchangeRate();
List<UserAssets> userAssetsList = userAssetsServices.assetsByUserId(getCurrentUser(request).getId());
List<RUserAssets> rUserAssetsList = new ArrayList<>();
-
/**
* 浮动盈亏
* */
@@ -560,6 +563,112 @@
}
@Override
+ public ServerResponse getMoney(Integer userId) {
+ BigDecimal exchangeRate = iSiteSettingService.getSiteSetting().getExchangeRate();
+ List<UserAssets> userAssetsList = userAssetsServices.assetsByUserId(userId);
+ List<RUserAssets> rUserAssetsList = new ArrayList<>();
+ /**
+ * 浮动盈亏
+ * */
+ BigDecimal AllProfitAndLose = BigDecimal.ZERO;
+ /**
+ * 总资产
+ * */
+ BigDecimal allTotalAssets = BigDecimal.ZERO;
+ /**
+ * 总可用余额
+ * */
+ BigDecimal allAmt = BigDecimal.ZERO;
+ /**
+ * 累计盈亏
+ * */
+ BigDecimal AllHProfitAndLose = BigDecimal.ZERO;
+ /**
+ * 总冻结资产
+ * */
+ BigDecimal allFreeMoney = BigDecimal.ZERO;
+ /**
+ * 总手续费
+ * */
+ BigDecimal allHMoney = BigDecimal.ZERO;
+ for (int i = 0; i <userAssetsList.size() ; i++) {
+ RUserAssets rUserAssets = new RUserAssets();
+ UserAssets userAssets = userAssetsList.get(i);
+ // 浮动盈亏
+ BigDecimal profitAndLose = userAssets.getProfitAndLoss();
+ BigDecimal amt = userAssets.getAvailableBalance();
+ BigDecimal totalAssets = userAssets.getAvailableBalance().add(userAssets.getFreezeMoney());
+ BigDecimal freeMoney = userAssets.getFreezeMoney();
+ BigDecimal hMoney = userAssets.getHandlingCharge();
+ BigDecimal hProfitAndLose = userAssets.getCumulativeProfitAndLoss();
+ rUserAssets.setId(userAssets.getId());
+ rUserAssets.setTotalMoney((totalAssets.setScale(2).toString()));
+ rUserAssets.setAccectType(userAssets.getAccectType());
+ rUserAssets.setAvailableBalance(amt.setScale(2).toString());
+ rUserAssets.setFreezeMoney(freeMoney.setScale(2).toString());
+ rUserAssets.setCumulativeProfitAndLoss(hProfitAndLose.setScale(2).toString());
+ rUserAssets.setHandlingCharge(hMoney.setScale(2).toString());
+ rUserAssets.setProfitAndLoss(profitAndLose.setScale(2).toString());
+ if(userAssets.getAccectType().equals("US")){
+ rUserAssets.setSymbol("$");
+ rUserAssets.setSymbolCode("USD");
+ AllProfitAndLose = AllProfitAndLose.add(profitAndLose);
+ allTotalAssets = allTotalAssets.add(totalAssets);
+ allAmt = allAmt.add(amt);
+ AllHProfitAndLose = AllHProfitAndLose.add(hProfitAndLose);
+ allFreeMoney = allFreeMoney.add(freeMoney);
+ allHMoney = allHMoney.add(hMoney);
+ rUserAssets.setAvailableBalanceUSD(rUserAssets.getAvailableBalance());
+ rUserAssets.setFreezeMoneyUSD(rUserAssets.getFreezeMoney());
+ rUserAssets.setTotalMoneyUSD(rUserAssets.getTotalMoney());
+ rUserAssets.setCumulativeProfitAndLossUSD(hProfitAndLose.setScale(2).toString());
+ rUserAssets.setHandlingChargeUSD(hMoney.setScale(2).toString());
+ rUserAssets.setProfitAndLossUSD(hProfitAndLose.setScale(2).toString());
+
+ }else{
+ rUserAssets.setAvailableBalanceUSD(userAssets.getAvailableBalance().divide(exchangeRate,BigDecimal.ROUND_CEILING).toString());
+ rUserAssets.setFreezeMoneyUSD(userAssets.getFreezeMoney().divide(exchangeRate,BigDecimal.ROUND_CEILING).toString());
+ rUserAssets.setTotalMoneyUSD(userAssets.getTotleAssets().divide(exchangeRate,BigDecimal.ROUND_CEILING).toString());
+ rUserAssets.setSymbol("RM");
+ rUserAssets.setSymbolCode("MYR");
+ rUserAssets.setCumulativeProfitAndLossUSD(hProfitAndLose.divide(exchangeRate,BigDecimal.ROUND_CEILING).toString());
+ rUserAssets.setHandlingChargeUSD(hMoney.divide(exchangeRate,BigDecimal.ROUND_CEILING).toString());
+ rUserAssets.setProfitAndLossUSD(hProfitAndLose.divide(exchangeRate,BigDecimal.ROUND_CEILING).toString());
+
+ AllProfitAndLose = AllProfitAndLose.add(profitAndLose.divide(exchangeRate,BigDecimal.ROUND_CEILING));
+ allTotalAssets = allTotalAssets.add(totalAssets.divide(exchangeRate,BigDecimal.ROUND_CEILING));
+ allAmt = allAmt.add(amt.divide(exchangeRate,BigDecimal.ROUND_CEILING));
+ AllHProfitAndLose = AllHProfitAndLose.add(hProfitAndLose.divide(exchangeRate,BigDecimal.ROUND_CEILING));
+ allFreeMoney = allFreeMoney.add(freeMoney.divide(exchangeRate,BigDecimal.ROUND_CEILING));
+ allHMoney = allHMoney.add(hMoney.divide(exchangeRate,BigDecimal.ROUND_CEILING));
+ }
+ rUserAssetsList.add(rUserAssets);
+ }
+
+
+
+ RUserAssets rUserAssets = new RUserAssets();
+ rUserAssets.setAccectType("ALL");
+ rUserAssets.setProfitAndLoss(AllProfitAndLose.setScale(2).toString());
+ rUserAssets.setProfitAndLossUSD(AllProfitAndLose.setScale(2).toString());
+ rUserAssets.setHandlingCharge(allHMoney.setScale(2).toString());
+ rUserAssets.setHandlingChargeUSD(allHMoney.setScale(2).toString());
+ rUserAssets.setCumulativeProfitAndLoss(AllHProfitAndLose.setScale(2).toString());
+ rUserAssets.setCumulativeProfitAndLossUSD(AllHProfitAndLose.setScale(2).toString());
+ rUserAssets.setTotalMoney(allTotalAssets.setScale(2).toString());
+ rUserAssets.setTotalMoneyUSD(allTotalAssets.setScale(2).toString());
+ rUserAssets.setAvailableBalance(allAmt.setScale(2).toString());
+ rUserAssets.setAvailableBalanceUSD(allAmt.setScale(2).toString());
+ rUserAssets.setFreezeMoney(allFreeMoney.setScale(2).toString());
+ rUserAssets.setFreezeMoneyUSD(allFreeMoney.setScale(2).toString());
+ rUserAssets.setSymbol("$");
+ rUserAssets.setSymbolCode("USD");
+ rUserAssetsList.add(rUserAssets);
+
+ return ServerResponse.createBySuccess(rUserAssetsList);
+ }
+
+ @Override
public ServerResponse transfer(String fromType, String toType, String amt,HttpServletRequest paramHttpServletRequest) {
User user = userService.getCurrentUser(paramHttpServletRequest);
@@ -568,7 +677,14 @@
if(formAssets.getAvailableBalance().compareTo(amtBig)<0){
return ServerResponse.createByErrorMsg("Insufficient amount");
}
+ SiteSetting siteSetting = iSiteSettingService.getSiteSetting();
userAssetsServices.availablebalanceChange(fromType,user.getId(), EUserAssets.TRANSFER,amtBig.negate(),"","");
+
+ if(fromType.equals(EStockType.MAS.getCode())){
+ amtBig = amtBig.divide(siteSetting.getExchangeRate(), BigDecimal.ROUND_CEILING);
+ }else{
+ amtBig = amtBig.multiply(siteSetting.getExchangeRate());
+ }
userAssetsServices.availablebalanceChange(toType,user.getId(),EUserAssets.TRANSFER,amtBig,"","");
return ServerResponse.createBySuccess();
}
@@ -1055,20 +1171,22 @@
userMapper.updateUserAmt(amt, user_id);
}
-// @Override
-// public ServerResponse queryMyOption(String code, HttpServletRequest request) {
-// User user = getCurrentUser(request);
-//
-// if (user == null) {
-// return ServerResponse.createBySuccessMsg("請先登錄");
-// }
-// String stockcode = code;
-// if(code.contains("hf")){
-// stockcode = code.split("_")[1].toString();
-// }
-// stockcode = stockcode.replace("sh","").replace("sz","").replace("bj","");
-// return this.iStockOptionService.isOption(user.getId(), stockcode);
-// }
+
+ @Override
+ public ServerResponse queryMyOption(String code, HttpServletRequest request) {
+ User user = getCurrentUser(request);
+
+ return this.iStockOptionService.isOption(user.getId(), code);
+ }
+
+ @Override
+ public ServerResponse getMoenyLog(String type,HttpServletRequest request) {
+ User user = getCurrentUser(request);
+ QueryWrapper<MoneyLog> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("type",type);
+ queryWrapper.eq("user_id",user.getId());
+ return ServerResponse.createBySuccess(mapper.selectList(queryWrapper));
+ }
}
--
Gitblit v1.9.3