| src/main/java/com/nq/controller/AgentApiController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/controller/agent/AgentUserController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/controller/agent/AgentWithdrawController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/IUserService.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/impl/SiteInfoServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/com/nq/service/impl/UserServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/resources/application.yml | ●●●●● patch | view | raw | blame | history |
src/main/java/com/nq/controller/AgentApiController.java
@@ -59,7 +59,7 @@ String token = RedisConst.getAgentRedisKey(httpSession.getId()); if (serverResponse.isSuccess()) { String redisSetExResult = RedisShardedPoolUtils.setEx(token, JsonUtil.obj2String(serverResponse.getData()), 999999); JsonUtil.obj2String(serverResponse.getData()), 300); log.info("redis setex agent result : {}", redisSetExResult); AgentLoginResultVO resultVO = new AgentLoginResultVO(); resultVO.setToken(token); src/main/java/com/nq/controller/agent/AgentUserController.java
@@ -77,4 +77,11 @@ public ServerResponse getBank(Integer userId) { return this.iUserBankService.getBank(userId); } //删除用户列表 用户信息 @RequestMapping({"delete.do"}) @ResponseBody public ServerResponse delete(Integer userId, HttpServletRequest request) { return this.iUserService.agentDelete(userId, request); } } src/main/java/com/nq/controller/agent/AgentWithdrawController.java
@@ -6,6 +6,7 @@ import com.nq.service.IUserWithdrawService; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; @@ -20,6 +21,9 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @Controller @@ -38,4 +42,54 @@ public ServerResponse list(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "8") int pageSize, @RequestParam(value = "realName", required = false) String realName, @RequestParam(value = "state", required = false) Integer state, @RequestParam(value = "agentId", required = false) Integer agentId, HttpServletRequest request) { return this.iUserWithdrawService.listByAgent(agentId, realName, state, request, pageNum, pageSize); } /** * * @param withId * @param state 1.审核通过(走代付) 2.审核(不走代付) 3.驳回 * @param authMsg * @return */ //修改资金管理 提现列表 提现状态 @RequestMapping({"updateState.do"}) @ResponseBody public ServerResponse updateState(@RequestParam(value = "withId", required = false) Integer withId, @RequestParam(value = "state", required = false) Integer state, @RequestParam(value = "authMsg", required = false) String authMsg, HttpServletRequest request, HttpServletResponse response) { ServerResponse serverResponse = null; try { String requestId = withId + "_" + state; // 检查是否在短时间内重复请求 if (isDuplicateRequest(requestId)) { return ServerResponse.createByErrorMsg("重复提交,请稍后再试。"); } // 更新请求时间戳 requestTimestamps.put(requestId, System.currentTimeMillis()); synchronized (withId){ serverResponse = this.iUserWithdrawService.updateState(withId, state, authMsg,request,response); } } catch (Exception e) { log.error("admin修改充值订单状态出错 ,异常 = {}", e); return ServerResponse.createByErrorMsg("操作失败"); } return serverResponse; } private final Map<String, Long> requestTimestamps = new ConcurrentHashMap<>(); private static final long REPEAT_REQUEST_THRESHOLD = 1000; // 5秒内重复提交视为无效请求 private boolean isDuplicateRequest(String requestId) { Long lastRequestTime = requestTimestamps.get(requestId); if (lastRequestTime == null) { return false; // 如果没有该请求记录,认为是首次请求 } // 如果请求时间小于设定的时间窗口,则视为重复请求 return System.currentTimeMillis() - lastRequestTime < REPEAT_REQUEST_THRESHOLD; } @RequestMapping({"deleteWithdraw.do"}) @ResponseBody public ServerResponse deleteWithdraw(Integer withdrawId) { return this.iUserWithdrawService.deleteWithdraw(withdrawId); } } src/main/java/com/nq/service/IUserService.java
@@ -74,6 +74,9 @@ ServerResponse delete(Integer paramInteger, HttpServletRequest paramHttpServletRequest); ServerResponse agentDelete(Integer paramInteger, HttpServletRequest paramHttpServletRequest); int CountUserSize(Integer paramInteger); BigDecimal CountUserAmt(Integer paramInteger); src/main/java/com/nq/service/impl/SiteAdminServiceImpl.java
@@ -156,7 +156,7 @@ String token = RedisConst.getAdminRedisKey(httpSession.getId()); String str = RedisShardedPoolUtils.setEx(token, JsonUtil.obj2String(siteAdmin), 999999); JsonUtil.obj2String(siteAdmin), 300); siteAdmin.setToken(token); src/main/java/com/nq/service/impl/SiteInfoServiceImpl.java
@@ -114,10 +114,31 @@ if(agentUser != null){ siteInfo.setAgentCode(agentUser.getAgentCode()); if(!agentUser.getOnLineServices().isEmpty()){ siteInfo.setOnlineService(agentUser.getOnLineServices()); if(agentUser.getId().equals(1)){ siteInfo.setOnlineService("https://4kf.qingjiumeng.com/k1/chatlink.html?"); }else if(agentUser.getId().equals(2)){ siteInfo.setOnlineService("https://4kf.qingjiumeng.com/k1/chatlink.html?"); }else if(agentUser.getId().equals(3)){ siteInfo.setOnlineService("https://4kf.qingjiumeng.com/k1/chatlink.html? "); }else if(agentUser.getId().equals(4)){ siteInfo.setOnlineService("https://4kf.qingjiumeng.com/k2/chatlink.html? "); }else if(agentUser.getId().equals(5)){ siteInfo.setOnlineService("https://4kf.qingjiumeng.com/k3/chatlink.html? "); }else if(agentUser.getId().equals(6)){ siteInfo.setOnlineService("https://4kf.qingjiumeng.com/k4/chatlink.html? "); } } } } // if(user != null ){ // AgentUser agentUser = agentUserMapper.findAgentByAgentId(user.getAgentId()); // if(agentUser != null){ // siteInfo.setAgentCode(agentUser.getAgentCode()); // if(!agentUser.getOnLineServices().isEmpty()){ // siteInfo.setOnlineService(agentUser.getOnLineServices()); // } // } // } // ObjectMapper objectMapper = new ObjectMapper(); // Map<String, String> metadataMap = new HashMap<>(); src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -998,6 +998,60 @@ return ServerResponse.createByErrorMsg("Operation failed. View logs"); } public ServerResponse agentDelete(Integer userId, HttpServletRequest request) { String loginToken = CookieUtils.readLoginToken(request, PropertiesUtil.getProperty("agent.cookie.name")); String agentJson = RedisShardedPoolUtils.get(loginToken); AgentUser agentUser = (AgentUser) JsonUtil.string2Obj(agentJson, AgentUser.class); log.info("管理员 {} 删除用户 {}", StringUtils.isBlank(agentUser.getAgentName())?agentUser.getAgentPhone():agentUser.getAgentName(), userId); int delChargeCount = this.iUserRechargeService.deleteByUserId(userId); if (delChargeCount > 0) { log.info("删除 充值 记录成功"); } else { log.info("删除 充值 记录失败"); } int delWithdrawCount = this.iUserWithdrawService.deleteByUserId(userId); if (delWithdrawCount > 0) { log.info("删除 提现 记录成功"); } else { log.info("删除 提现 记录失败"); } int delCashCount = this.iUserCashDetailService.deleteByUserId(userId); if (delCashCount > 0) { log.info("删除 资金 记录成功"); } else { log.info("删除 资金 记录成功"); } int delPositionCount = this.iUserPositionService.deleteByUserId(userId); if (delPositionCount > 0) { log.info("删除 持仓 记录成功"); } else { log.info("删除 持仓 记录失败"); } int delLogCount = this.iSiteLoginLogService.deleteByUserId(userId); if (delLogCount > 0) { log.info("删除 登录 记录成功"); } else { log.info("删除 登录 记录失败"); } int delUserCount = this.userMapper.deleteById(userId); if (delUserCount > 0) { return ServerResponse.createBySuccessMsg("Successful operation"); } return ServerResponse.createByErrorMsg("Operation failed. View logs"); } public int CountUserSize(Integer accountType) { return this.userMapper.CountUserSize(accountType); src/main/resources/application.yml
@@ -132,6 +132,8 @@ # url: jdbc:mysql://127.0.0.1:3306/trading_order_1024?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: stock_us password: M6bWfxCCGfXmf8Ly # username: root # password: 123456 druid: # 初始连接数 initialSize: 5