From 21e55bb322b3ad198c37ae1bed77a83b07d2f49f Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Wed, 28 Jan 2026 10:01:20 +0800 Subject: [PATCH 01/11] =?UTF-8?q?20260128DC=E5=85=8D=E8=B4=B9=E9=87=91?= =?UTF-8?q?=E8=B1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/bean/BeanRechargeController.java | 12 +++ .../demo/mapper/coin/BeanRechargeMapper1.java | 1 + .../com/example/demo/security/SecurityConfig.java | 2 +- .../demo/service/bean/BeanRechargeService.java | 3 + .../serviceImpl/bean/BeanRechargeServiceImpl.java | 104 ++++++++++++++++++++- src/main/resources/mapper/BeanRechargeMapper1.xml | 22 +++++ 6 files changed, 140 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/demo/controller/bean/BeanRechargeController.java b/src/main/java/com/example/demo/controller/bean/BeanRechargeController.java index 1d13e04..2906248 100644 --- a/src/main/java/com/example/demo/controller/bean/BeanRechargeController.java +++ b/src/main/java/com/example/demo/controller/bean/BeanRechargeController.java @@ -181,6 +181,18 @@ public class BeanRechargeController { } + + //添加金豆 + @PostMapping("/addBeanDC") + public Result addBeanDC(@RequestBody BeanRecharge recharge) { + try { + return beanRechargeService.addBeanDC(recharge); + } catch (Exception e) { + return Result.error(e.getMessage()); + } + } + + //线上金豆统计 @PostMapping("/statsOnlineBean") public Result statsOnlineBean(@RequestBody BeanOnlineRechargeInfo beanOnlineRechargeInfo, @RequestHeader(defaultValue = "zh_CN") String lang) { diff --git a/src/main/java/com/example/demo/mapper/coin/BeanRechargeMapper1.java b/src/main/java/com/example/demo/mapper/coin/BeanRechargeMapper1.java index 703db58..1d226c1 100644 --- a/src/main/java/com/example/demo/mapper/coin/BeanRechargeMapper1.java +++ b/src/main/java/com/example/demo/mapper/coin/BeanRechargeMapper1.java @@ -23,4 +23,5 @@ public interface BeanRechargeMapper1 { //筛选查询小黄车消费 List selectCartBy(BeanConsumeCartDTO beanConsumeCartDTO); int add(BeanRecharge recharge); + int addBeanDC(BeanRecharge recharge); } \ No newline at end of file diff --git a/src/main/java/com/example/demo/security/SecurityConfig.java b/src/main/java/com/example/demo/security/SecurityConfig.java index a237b44..5511027 100644 --- a/src/main/java/com/example/demo/security/SecurityConfig.java +++ b/src/main/java/com/example/demo/security/SecurityConfig.java @@ -60,7 +60,7 @@ public class SecurityConfig { request .requestMatchers( HttpMethod.POST, // 用户不登录就可以访问的路径 - "/admin/login","/upload/**","/detailY/ERP","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**","/statistics/**","/Mysql/**","/Temporary/**").permitAll() + "/admin/login","/upload/**","/detailY/ERP","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**","/statistics/**","/Mysql/**","/Temporary/**","/beanRecharge/addBeanDC").permitAll() .requestMatchers( "/error","alipay/**","/upload/**","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**" ).permitAll() diff --git a/src/main/java/com/example/demo/service/bean/BeanRechargeService.java b/src/main/java/com/example/demo/service/bean/BeanRechargeService.java index 66f8ad6..0466847 100644 --- a/src/main/java/com/example/demo/service/bean/BeanRechargeService.java +++ b/src/main/java/com/example/demo/service/bean/BeanRechargeService.java @@ -24,6 +24,9 @@ public interface BeanRechargeService { //线上充值 Result add(BeanRecharge recharge); + //添加金豆 + Result addBeanDC(BeanRecharge recharge); + //系统充值 PageInfo selectBySystem(Integer pageNum, Integer pageSize, BeanSystemRechargeInfo beanRechargeInfo); diff --git a/src/main/java/com/example/demo/serviceImpl/bean/BeanRechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/bean/BeanRechargeServiceImpl.java index 3ff285b..cf2ff32 100644 --- a/src/main/java/com/example/demo/serviceImpl/bean/BeanRechargeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/bean/BeanRechargeServiceImpl.java @@ -1,5 +1,6 @@ package com.example.demo.serviceImpl.bean; +import com.example.demo.Util.BaseDES2; import com.example.demo.domain.vo.bean.*; import com.example.demo.domain.vo.coin.Gold; import com.example.demo.domain.vo.coin.GoldUser; @@ -15,16 +16,19 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.List; -import java.util.Objects; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; /** @@ -57,6 +61,9 @@ public class BeanRechargeServiceImpl implements BeanRechargeService { @Autowired private BeanUserMapper beanUserMapper; + @Value("${bean.recharge.url}") + String apiUrl; + //新增金豆 @Override public Result add(BeanRecharge recharge) { @@ -121,6 +128,97 @@ public class BeanRechargeServiceImpl implements BeanRechargeService { } } + + @Override + public Result addBeanDC(BeanRecharge recharge) { + try { + // 验证精网号是否有效 + recharge.setPermanentBean(0); + if (recharge.getJwcode() == null || recharge.getJwcode().toString().isEmpty()) { + return Result.error("精网号不能为空"); + } + if(recharge.getJwcode()<10000000||recharge.getJwcode()>99999999) + { + return Result.error("精网号位数小于8位或大于8位"); + } + // 验证免费豆和永久豆是否为非负数 + if (recharge.getFreeBean() < 0 || recharge.getPermanentBean() < 0) { + return Result.error("免费豆和永久豆不能为负数"); + } + // 验证免费豆和永久豆是否为非负数 + if (recharge.getFreeBean() > 999999 || recharge.getPermanentBean() > 999999) { + return Result.error("免费豆和永久豆不能超过999999"); + } + // 验证免费豆和永久豆是否均为0 + if (recharge.getFreeBean() == 0) { + return Result.error("免费豆为0"); + } + BeanUserCard user = beanUserMapper.userCard(String.valueOf(recharge.getJwcode())); + if(user==null){ + return Result.error("用户查找不到"); + } + // 验证备注是否为空 + if (recharge.getRemark() == null || recharge.getRemark().toString().isEmpty()) { + return Result.error("备注不能为空"); + } + if(recharge.getAdminName() == null || recharge.getAdminName().toString().isEmpty()){ + return Result.error("管理员名称不能为空"); + } + + beanRechargeMapper1.add(recharge); + String jwcode = recharge.getJwcode().toString(); +// String jwcode = "2e35cadd48a15cc4cd834d35e38faa71"; + try { + BaseDES2 d = new BaseDES2(); + jwcode = d.encrypt(jwcode); + } catch (Exception e) { + return Result.error("加密失败"); + } + String content = recharge.getRemark(); // 备注作为content参数 + String orderNo = UUID.randomUUID().toString().replace("-", ""); // 生成唯一订单号(去除横线) + + + // 1. 创建请求参数对象(使用Map或自定义实体类) + Map params = new HashMap<>(); + params.put("jwcode", jwcode); + params.put("gold_buy", recharge.getPermanentBean().toString()); + params.put("gold_free", recharge.getFreeBean().toString()); + params.put("content", content); + params.put("order_no", orderNo); + +// 2. 构建请求头,指定Content-Type为JSON + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); // 关键:设置为JSON格式 + +// 3. 构建请求实体(参数+头信息) + HttpEntity> requestEntity = new HttpEntity<>(params, headers); + + try { + // 4. 发送POST请求 + ResponseEntity response = restTemplate.postForEntity( + apiUrl, + requestEntity, + String.class + ); + + System.out.println("请求参数:" + params); + System.out.println("响应状态码:" + response.getStatusCodeValue()); + System.out.println("响应内容:" + response.getBody()); + + if (!response.getStatusCode().is2xxSuccessful()) { + return Result.error("远程接口接口调用失败,状态码:" + response.getStatusCodeValue() + ",响应:" + response.getBody()); + } + } catch (RestClientException e) { + e.printStackTrace(); + return Result.error("请求发送失败:" + e.getMessage()); + } + return Result.success("添加成功"); + } catch (Exception e) { + return Result.error("系统异常:" + e.getMessage()); + } + } + + //系统充值明细 @Override public PageInfo selectBySystem(Integer pageNum, Integer pageSize, BeanSystemRechargeInfo beanSystemRechargeInfo){ diff --git a/src/main/resources/mapper/BeanRechargeMapper1.xml b/src/main/resources/mapper/BeanRechargeMapper1.xml index 587c7ea..d356a3d 100644 --- a/src/main/resources/mapper/BeanRechargeMapper1.xml +++ b/src/main/resources/mapper/BeanRechargeMapper1.xml @@ -26,6 +26,28 @@ + + INSERT INTO audit + + jwcode, + buy_jd, + free_jd, + type, + admin_name, + remark, + audit_status + + VALUES + + #{jwcode}, + #{permanentBean}, + #{freeBean}, + 0, + #{adminName}, + #{remark}, + 1 + +