From f7f24fd4361c4cdccd665f05657e026efe1902ff Mon Sep 17 00:00:00 2001
From: jack <zengjieli93@163.com>
Date: Mon, 22 Apr 2024 22:37:32 +0800
Subject: [PATCH] 增加流水日志

---
 src/main/java/com/nq/service/impl/ApplyLeverServicesimpl.java    |   89 +++++++++++++++++
 src/main/java/com/nq/dao/ApplyLeverMapper.java                   |    7 +
 src/main/java/com/nq/controller/protol/UserController.java       |   14 ++
 src/main/java/com/nq/pojo/User.java                              |    2 
 src/main/java/com/nq/service/impl/UserPositionServiceImpl.java   |    9 +
 src/main/java/com/nq/service/impl/UserServiceImpl.java           |    1 
 src/main/resources/mapper/UserMapper.xml                         |    4 
 target/classes/application.yml                                   |    2 
 src/main/java/com/nq/service/IApplyLeverServices.java            |   17 +++
 src/main/java/com/nq/enums/EConfigKey.java                       |    2 
 src/main/java/com/nq/controller/backend/AdminController.java     |   38 ++++++-
 src/main/java/com/nq/controller/backend/AdminUserController.java |    4 
 src/main/java/com/nq/service/impl/MoneyLogServcesimpl.java       |    2 
 src/main/java/com/nq/service/impl/RateServicesImpl.java          |   48 ++++----
 src/main/resources/application.yml                               |    2 
 src/main/java/com/nq/pojo/ApplyLever.java                        |   37 +++++++
 16 files changed, 241 insertions(+), 37 deletions(-)

diff --git a/src/main/java/com/nq/controller/backend/AdminController.java b/src/main/java/com/nq/controller/backend/AdminController.java
index 2f0c74c..632a2f2 100644
--- a/src/main/java/com/nq/controller/backend/AdminController.java
+++ b/src/main/java/com/nq/controller/backend/AdminController.java
@@ -7,10 +7,7 @@
 
 import com.nq.common.ServerResponse;
 
-import com.nq.pojo.DkJgBean;
-import com.nq.pojo.EChoBean;
-import com.nq.pojo.PayChnnel;
-import com.nq.pojo.SiteAdmin;
+import com.nq.pojo.*;
 
 import com.nq.service.*;
 
@@ -72,12 +69,41 @@
     @Autowired
     IUserAssetsServices iUserAssetsServices;
 
+    @Autowired
+    IApplyLeverServices iApplyLeverServices;
+
     //分页查询管理设置 所有管理列表数据及模糊查询
     @RequestMapping({"list.do"})
     @ResponseBody
-    public ServerResponse<PageInfo> list(@RequestParam(value = "adminName", required = false) String adminName, @RequestParam(value = "adminPhone", required = false) String adminPhone, @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize, HttpServletRequest request) {
+    public ServerResponse<PageInfo> list(@RequestParam(value = "adminName", required = false) String adminName,
+                                         @RequestParam(value = "adminPhone", required = false) String adminPhone,
+                                         @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                         @RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
+                                         HttpServletRequest request) {
         return this.iSiteAdminService.listByAdmin(adminName, adminPhone, request, pageNum, pageSize);
     }
+
+
+    @RequestMapping({"queryApplyLever.do"})
+    @ResponseBody
+    public ServerResponse queryApplyLever(@RequestParam(value = "phone", required = false) String adminName,
+                                          @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                          @RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
+                                          HttpServletRequest request
+                                          ) {
+        return this.iApplyLeverServices.queryApplyLever(adminName,pageNum,pageSize, request);
+    }
+
+
+
+    @RequestMapping({"examineApplyLever.do"})
+    @ResponseBody
+    public ServerResponse examineApplyLever(@RequestParam(value = "id", required = true) String id,
+                                            @RequestParam(value = "state", defaultValue = "1") String state,
+                                            HttpServletRequest request) {
+        return this.iApplyLeverServices.examineApplyLever(id,state,request);
+    }
+
 
     //修改管理员状态 锁定管理员/解锁管理员
     @RequestMapping({"updateLock.do"})
@@ -158,6 +184,8 @@
     }
 
 
+
+
     @RequestMapping("dksp.do")
     @ResponseBody
     public ServerResponse dksp(@RequestParam("dkId") Integer dkid,
diff --git a/src/main/java/com/nq/controller/backend/AdminUserController.java b/src/main/java/com/nq/controller/backend/AdminUserController.java
index 9faa339..9e24ecb 100644
--- a/src/main/java/com/nq/controller/backend/AdminUserController.java
+++ b/src/main/java/com/nq/controller/backend/AdminUserController.java
@@ -4,6 +4,7 @@
 import com.nq.common.ServerResponse;
 import com.nq.pojo.User;
 import com.nq.pojo.UserBank;
+import com.nq.service.IApplyLeverServices;
 import com.nq.service.IUserBankService;
 import com.nq.service.IUserService;
 import javax.servlet.http.HttpServletRequest;
@@ -26,6 +27,7 @@
 
     @Autowired
     IUserBankService iUserBankService;
+
 
     //分页查询所有用户列表信息 及模糊查询用户信息
     @RequestMapping({"list.do"})
@@ -95,4 +97,6 @@
     public ServerResponse delete(Integer userId, HttpServletRequest request) {
         return this.iUserService.delete(userId, request);
     }
+
+
 }
diff --git a/src/main/java/com/nq/controller/protol/UserController.java b/src/main/java/com/nq/controller/protol/UserController.java
index b2ac108..a4ab61e 100644
--- a/src/main/java/com/nq/controller/protol/UserController.java
+++ b/src/main/java/com/nq/controller/protol/UserController.java
@@ -4,6 +4,7 @@
 import com.google.common.collect.Maps;
 import com.nq.common.ServerResponse;
 import com.nq.enums.EStockType;
+import com.nq.pojo.ApplyLever;
 import com.nq.pojo.StockSubscribe;
 import com.nq.pojo.UserStockSubscribe;
 import com.nq.service.*;
@@ -56,6 +57,12 @@
 
     @Autowired
     IUserRechargeService iUserRechargeService;
+
+
+
+    @Autowired
+    IApplyLeverServices iApplyLeverServices;
+
 
     //添加到自选股
     @RequestMapping({"addOption.do"})
@@ -350,4 +357,11 @@
     }
 
 
+    @RequestMapping({"applyLever.do"})
+    @ResponseBody
+    public ServerResponse applyLever(ApplyLever applyLever,HttpServletRequest request) {
+        return iApplyLeverServices.applyLever(applyLever,request);
+    }
+
+
 }
diff --git a/src/main/java/com/nq/dao/ApplyLeverMapper.java b/src/main/java/com/nq/dao/ApplyLeverMapper.java
new file mode 100644
index 0000000..030b0ac
--- /dev/null
+++ b/src/main/java/com/nq/dao/ApplyLeverMapper.java
@@ -0,0 +1,7 @@
+package com.nq.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.nq.pojo.ApplyLever;
+
+public interface ApplyLeverMapper  extends BaseMapper<ApplyLever> {
+}
diff --git a/src/main/java/com/nq/enums/EConfigKey.java b/src/main/java/com/nq/enums/EConfigKey.java
index 8b169b2..376f37a 100644
--- a/src/main/java/com/nq/enums/EConfigKey.java
+++ b/src/main/java/com/nq/enums/EConfigKey.java
@@ -8,7 +8,7 @@
     LIMIT_UP_IS_BUY("limit_up_is_buy","涨停是否可以购买"),
 
     LIMIT_DOWN_POINT("limit_down_point","跌停点位"),
-
+    PERCENTAGE_OF_FUNDS("percentage_of_funds","资金百分比"),
 
     WITHDRAW_TIME_SETTING("WITHDRAW_TIME_SETTING","提现时间设置"),
     MAX_BUY("MAX_BUY","最大买入"),
diff --git a/src/main/java/com/nq/pojo/ApplyLever.java b/src/main/java/com/nq/pojo/ApplyLever.java
new file mode 100644
index 0000000..da1a908
--- /dev/null
+++ b/src/main/java/com/nq/pojo/ApplyLever.java
@@ -0,0 +1,37 @@
+package com.nq.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class ApplyLever {
+
+    @TableId(value = "id",type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     *
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    // 用户id
+    private String userId;
+
+    // 用户手机号码
+    private String phone;
+
+    // 杠杆
+    private String lever;
+
+
+    private String state;
+
+    private String descs;
+
+
+}
diff --git a/src/main/java/com/nq/pojo/User.java b/src/main/java/com/nq/pojo/User.java
index d4eb2b6..aebaf48 100644
--- a/src/main/java/com/nq/pojo/User.java
+++ b/src/main/java/com/nq/pojo/User.java
@@ -34,5 +34,7 @@
     private String authMsg;
     private String withdrawalPwd;
     private String vaildNumber;
+    private String lever;
+    private String fundRatio;
 
 }
diff --git a/src/main/java/com/nq/service/IApplyLeverServices.java b/src/main/java/com/nq/service/IApplyLeverServices.java
new file mode 100644
index 0000000..790ef55
--- /dev/null
+++ b/src/main/java/com/nq/service/IApplyLeverServices.java
@@ -0,0 +1,17 @@
+package com.nq.service;
+
+import com.nq.common.ServerResponse;
+import com.nq.pojo.ApplyLever;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface IApplyLeverServices {
+
+    ServerResponse  applyLever(ApplyLever applyLever, HttpServletRequest request);
+
+
+    ServerResponse  examineApplyLever(String  id,String states, HttpServletRequest request);
+
+
+    ServerResponse  queryApplyLever(String phone, Integer page,Integer pageSize,HttpServletRequest request);
+}
diff --git a/src/main/java/com/nq/service/impl/ApplyLeverServicesimpl.java b/src/main/java/com/nq/service/impl/ApplyLeverServicesimpl.java
new file mode 100644
index 0000000..0cf6399
--- /dev/null
+++ b/src/main/java/com/nq/service/impl/ApplyLeverServicesimpl.java
@@ -0,0 +1,89 @@
+package com.nq.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.nq.common.ServerResponse;
+import com.nq.dao.ApplyLeverMapper;
+import com.nq.dao.UserMapper;
+import com.nq.pojo.ApplyLever;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.nq.pojo.User;
+import com.nq.service.IApplyLeverServices;
+import com.nq.service.IUserService;
+import org.apache.http.util.TextUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+
+@Service
+public class ApplyLeverServicesimpl  implements IApplyLeverServices {
+
+    @Resource
+    ApplyLeverMapper applyLeverMapper;
+
+    @Resource
+    IUserService userService;
+    @Resource
+    UserMapper userMapper;
+
+    @Override
+    public ServerResponse applyLever(ApplyLever applyLever, HttpServletRequest request) {
+
+        QueryWrapper<ApplyLever> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("user_id",userService.getCurrentUser(request).getId());
+        if(applyLeverMapper.selectCount(queryWrapper)>0){
+            return ServerResponse.createByErrorMsg("你已经申请杠杆了",request);
+        }
+        User user = userService.getCurrentUser(request);
+        applyLever.setPhone(user.getPhone());
+        applyLever.setUserId(user.getId()+"");
+        applyLever.setState("0");
+        applyLever.setCreateTime(new Date());
+
+        if(applyLeverMapper.insert(applyLever)>0){
+            return ServerResponse.createBySuccess("申请成功,请联系客服",request);
+        }else{
+            return ServerResponse.createByErrorMsg("申请失败",request);
+        }
+    }
+
+    @Transactional
+    @Override
+    public ServerResponse examineApplyLever(String  id,String states, HttpServletRequest request) {
+        ApplyLever applyLever = applyLeverMapper.selectById(id);
+        applyLever.setState(states);
+        applyLeverMapper.updateById(applyLever);
+       User user =  userMapper.selectById(applyLever.getUserId());
+       user.setLever(applyLever.getLever());
+       userMapper.updateById(user);
+       return ServerResponse.createBySuccess();
+    }
+
+    @Override
+    public ServerResponse queryApplyLever(String phone, Integer page, Integer pageSize, HttpServletRequest request) {
+        Integer userId = null;
+        Page<ApplyLever> page1 = new Page<>(page, pageSize);
+        if(!TextUtils.isEmpty(phone)){
+            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("phone",phone);
+            User user = userMapper.selectOne(queryWrapper);
+            if(user != null ){
+                userId = user.getId();
+            }else{
+                QueryWrapper<ApplyLever> queryWrapper1 = new QueryWrapper<>();
+                queryWrapper1.eq("user_id",phone);
+                return ServerResponse.createBySuccess(applyLeverMapper.selectPage(page1,queryWrapper1));
+            }
+        }
+        QueryWrapper<ApplyLever> queryWrapper1 = new QueryWrapper<>();
+        if(userId != null){
+            queryWrapper1.eq("user_id",userId);
+        }
+        queryWrapper1.orderByDesc("create_time");
+
+       return ServerResponse.createBySuccess(applyLeverMapper.selectPage(page1,queryWrapper1));
+    }
+
+}
diff --git a/src/main/java/com/nq/service/impl/MoneyLogServcesimpl.java b/src/main/java/com/nq/service/impl/MoneyLogServcesimpl.java
index 31e1d65..344ec80 100644
--- a/src/main/java/com/nq/service/impl/MoneyLogServcesimpl.java
+++ b/src/main/java/com/nq/service/impl/MoneyLogServcesimpl.java
@@ -18,7 +18,7 @@
     MoneyLogMapper moneyLogMapper;
     @Override
     public Page<MoneyLog> queryMoneyLog(String user, Integer page, Integer pageSize) {
-        Page<MoneyLog> page1 = new Page<>(1, 10);
+        Page<MoneyLog> page1 = new Page<>(page, pageSize);
         QueryWrapper<MoneyLog> queryWrapper = new QueryWrapper<>();
 
         if(!TextUtils.isEmpty(user)){
diff --git a/src/main/java/com/nq/service/impl/RateServicesImpl.java b/src/main/java/com/nq/service/impl/RateServicesImpl.java
index fb8a304..68009d1 100644
--- a/src/main/java/com/nq/service/impl/RateServicesImpl.java
+++ b/src/main/java/com/nq/service/impl/RateServicesImpl.java
@@ -17,30 +17,30 @@
     ISiteSettingService iSiteSettingService;
     @Override
     public BigDecimal currencyRate(EStockType fromStockType, EStockType tofromStockType) {
-        if(fromStockType == null || tofromStockType == null){
-            return new BigDecimal(1);
-        }
-       BigDecimal rate =  iSiteSettingService.getSiteSetting().getExchangeRate();
-        BigDecimal rate1 =  new BigDecimal(7.35);
-        if(fromStockType==EStockType.US){
-            if(tofromStockType==EStockType.MAS){
-                return rate;
-            }else if(tofromStockType==EStockType.HK){
-                return rate1;
-            }
-        }if(fromStockType==EStockType.HK){
-            if(tofromStockType==EStockType.MAS){
-               return new BigDecimal(1).divide(rate1,18, RoundingMode.HALF_DOWN).multiply(rate);
-            }else if(tofromStockType==EStockType.US){
-                return new BigDecimal(1).divide(rate1,18, RoundingMode.HALF_DOWN);
-            }
-        } else {
-            if(tofromStockType==EStockType.US){
-                return   new BigDecimal(1).divide(rate,18, RoundingMode.HALF_DOWN);
-            }else{
-                return   new BigDecimal(1).divide(rate,18, RoundingMode.HALF_DOWN).multiply(rate1);
-            }
-        }
+//        if(fromStockType == null || tofromStockType == null){
+//            return new BigDecimal(1);
+//        }
+//       BigDecimal rate =  iSiteSettingService.getSiteSetting().getExchangeRate();
+//        BigDecimal rate1 =  new BigDecimal(7.35);
+//        if(fromStockType==EStockType.US){
+//            if(tofromStockType==EStockType.MAS){
+//                return rate;
+//            }else if(tofromStockType==EStockType.HK){
+//                return rate1;
+//            }
+//        }if(fromStockType==EStockType.HK){
+//            if(tofromStockType==EStockType.MAS){
+//               return new BigDecimal(1).divide(rate1,18, RoundingMode.HALF_DOWN).multiply(rate);
+//            }else if(tofromStockType==EStockType.US){
+//                return new BigDecimal(1).divide(rate1,18, RoundingMode.HALF_DOWN);
+//            }
+//        } else {
+//            if(tofromStockType==EStockType.US){
+//                return   new BigDecimal(1).divide(rate,18, RoundingMode.HALF_DOWN);
+//            }else{
+//                return   new BigDecimal(1).divide(rate,18, RoundingMode.HALF_DOWN).multiply(rate1);
+//            }
+//        }
      
         return new BigDecimal(1);
 
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index ea51dfa..67784f6 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -174,7 +174,9 @@
         BigDecimal orderFree = siteSettingBuyFee.multiply(buyAmt);
 
         UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), user.getId());
-        if (userAssets.getAvailableBalance().compareTo(buyAmt.add(orderFree)) < 0) {
+        BigDecimal   fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
+        BigDecimal availableBalance =  fundratio.multiply(userAssets.getAvailableBalance());
+        if (availableBalance.compareTo(buyAmt.add(orderFree)) < 0) {
             return ServerResponse.createByErrorMsg("订单失败,余额不足", request);
         }
         UserPosition userPosition = new UserPosition();
@@ -1545,7 +1547,10 @@
             return ServerResponse.createByErrorMsg("最小购买数据" + stockDz.getStockNum(), request);
         }
         BigDecimal buyAmt = nowPrice.multiply(new BigDecimal(num.intValue()));
-        if (buyAmt.compareTo(userAssetsServices.getAvailableBalance(EStockType.IN.getCode(), user.getId())) > 0) {
+        UserAssets userAssets = iUserAssetsServices.assetsByTypeAndUserId(stock.getStockType(), user.getId());
+        BigDecimal   fundratio = new BigDecimal(user.getFundRatio()).divide(new BigDecimal(100));
+        BigDecimal availableBalance =  fundratio.multiply(userAssets.getAvailableBalance());
+        if (buyAmt.compareTo(availableBalance) > 0) {
             return ServerResponse.createByErrorMsg("订单失败,余额不足", request);
         }
         UserPosition userPosition = new UserPosition();
diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 2c4ab07..afdaf50 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -121,7 +121,6 @@
 
 
 
-
     public ServerResponse reg(String yzmCode, String agentCode, String phone, String userPwd, HttpServletRequest request) {
         if (StringUtils.isBlank(agentCode) || StringUtils.isBlank(phone) ||
                 StringUtils.isBlank(userPwd) || StringUtils.isBlank(yzmCode)) {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index fa94728..9bb9fcf 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -122,7 +122,7 @@
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driverClassName: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://127.0.0.1:3306/zyqsstock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+    url: jdbc:mysql://127.0.0.1:3306/caicai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
 #    url: jdbc:mysql://127.0.0.1:3306/cgstock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
     username: root
     password: 123456
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index 8efe003..5665a62 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -24,13 +24,15 @@
         <result column="auth_msg" property="authMsg"/>
         <result column="withdrawal_Pwd" property="withdrawalPwd"/>
         <result column="vaild_number"  property="vaildNumber"/>
+        <result column="lever" property="lever"/>
+        <result column="fund_ratio"  property="fundRatio"/>
 
     </resultMap>
     <sql id="Base_Column_List">
     id, agent_id, agent_name, phone, user_pwd, with_pwd, nick_name, real_name, id_card, 
     account_type, is_lock, is_login,
     reg_time, reg_ip, reg_address, img1_key, img2_key, img3_key, is_active, auth_msg,
-    withdrawal_Pwd,vaild_number
+    withdrawal_Pwd,vaild_number,lever,fund_ratio
   </sql>
 
 
diff --git a/target/classes/application.yml b/target/classes/application.yml
index fa94728..9bb9fcf 100644
--- a/target/classes/application.yml
+++ b/target/classes/application.yml
@@ -122,7 +122,7 @@
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     driverClassName: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://127.0.0.1:3306/zyqsstock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+    url: jdbc:mysql://127.0.0.1:3306/caicai?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
 #    url: jdbc:mysql://127.0.0.1:3306/cgstock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
     username: root
     password: 123456

--
Gitblit v1.9.3