diff --git a/src/main/java/com/example/demo/Util/GoldTistV2.java b/src/main/java/com/example/demo/Util/GoldTistV2.java index 42d3c74..d113b6b 100644 --- a/src/main/java/com/example/demo/Util/GoldTistV2.java +++ b/src/main/java/com/example/demo/Util/GoldTistV2.java @@ -269,7 +269,7 @@ public class GoldTistV2 { public static void main(String[] args) throws Exception { //调用demo - addDCCoinNew("94629784",67,20,"123","测试",0,"黄其振","文章11"); + addDCCoinNew("90039082",65,-20,"123","测试",0,"黄其振","文章11"); } //初始化类型 diff --git a/src/main/java/com/example/demo/controller/coin/AdminController.java b/src/main/java/com/example/demo/controller/coin/AdminController.java index 3c1e41d..733e458 100644 --- a/src/main/java/com/example/demo/controller/coin/AdminController.java +++ b/src/main/java/com/example/demo/controller/coin/AdminController.java @@ -52,26 +52,26 @@ public class AdminController { @PostMapping("/login") public Result login(@RequestBody Admin admin, @RequestHeader(defaultValue = "zh_CN") String lang) { try { -// // ====== 【新增】验证码校验逻辑 ====== -// if (admin.getCaptcha() == null || admin.getUuid() == null) { -// String errorMsg = "验证码或验证码ID缺失"; -// String translatedErrorMsg = languageTranslationUtil.translate(errorMsg, lang); -// return Result.error(translatedErrorMsg); -// } -// -// String cacheCode = redisTemplate.opsForValue().get("CAPTCHA:" + admin.getUuid()); -// if (cacheCode == null) { -// String errorMsg = "验证码已过期,请重新获取"; -// String translatedErrorMsg = languageTranslationUtil.translate(errorMsg, lang); -// return Result.error(translatedErrorMsg); -// } -// -// if (!cacheCode.equalsIgnoreCase(admin.getCaptcha())) { -// String errorMsg = "验证码错误"; -// String translatedErrorMsg = languageTranslationUtil.translate(errorMsg, lang); -// return Result.error(translatedErrorMsg); -// } -// // ====== 验证码校验结束 ====== + // ====== 【新增】验证码校验逻辑 ====== + if (admin.getCaptcha() == null || admin.getUuid() == null) { + String errorMsg = "验证码或验证码ID缺失"; + String translatedErrorMsg = languageTranslationUtil.translate(errorMsg, lang); + return Result.error(translatedErrorMsg); + } + + String cacheCode = redisTemplate.opsForValue().get("CAPTCHA:" + admin.getUuid()); + if (cacheCode == null) { + String errorMsg = "验证码已过期,请重新获取"; + String translatedErrorMsg = languageTranslationUtil.translate(errorMsg, lang); + return Result.error(translatedErrorMsg); + } + + if (!cacheCode.equalsIgnoreCase(admin.getCaptcha())) { + String errorMsg = "验证码错误,请重新输入"; + String translatedErrorMsg = languageTranslationUtil.translate(errorMsg, lang); + return Result.error(translatedErrorMsg); + } + // ====== 验证码校验结束 ====== // 解析语言代码 String languageCode = parseLanguageCode(lang); diff --git a/src/main/java/com/example/demo/controller/coin/ConsumeController.java b/src/main/java/com/example/demo/controller/coin/ConsumeController.java index 8e2cb76..d28b884 100644 --- a/src/main/java/com/example/demo/controller/coin/ConsumeController.java +++ b/src/main/java/com/example/demo/controller/coin/ConsumeController.java @@ -212,6 +212,15 @@ public class ConsumeController { // } // } + @PostMapping("/DCadd") + public Result DCadd(@RequestBody ConsumeUser consumeUser) { + try { + return consumeService.addDC(consumeUser); + } catch (Exception e) { + return Result.error(e.getMessage()); + } + } + public Result select(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) { try { //页码校验 diff --git a/src/main/java/com/example/demo/controller/coin/UserController.java b/src/main/java/com/example/demo/controller/coin/UserController.java index 439cd30..16511b4 100644 --- a/src/main/java/com/example/demo/controller/coin/UserController.java +++ b/src/main/java/com/example/demo/controller/coin/UserController.java @@ -1,6 +1,7 @@ package com.example.demo.controller.coin; import com.example.demo.config.interfac.Log; +import com.example.demo.domain.entity.DCUser; import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.coin.GoldUser; import com.example.demo.domain.vo.coin.Result; @@ -37,6 +38,13 @@ public class UserController { @Autowired private LanguageTranslationUtil languageTranslationUtil; + + // 查找用户 + @PostMapping("/DCSelectUser") + public Result DCSelectUser(@RequestBody DCUser dcUser) { + return userService.DCSelectUser(dcUser); + } + //查找用户 @Log("查找客户") @PostMapping("/selectUser") diff --git a/src/main/java/com/example/demo/domain/entity/DCUser.java b/src/main/java/com/example/demo/domain/entity/DCUser.java new file mode 100644 index 0000000..7a00b23 --- /dev/null +++ b/src/main/java/com/example/demo/domain/entity/DCUser.java @@ -0,0 +1,29 @@ +package com.example.demo.domain.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * @program: GOLD + * @ClassName DCUser + * @description: + * @author: huangqizhen + * @create: 2026−02-03 16:21 + * @Version 1.0 + **/ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DCUser { + private String jwcode; + private String name; + private BigDecimal permanentBean; + private BigDecimal freeBean; + private BigDecimal nowFreeGold; + private BigDecimal nowPermanentGold; + private BigDecimal nowTaskGold; + private BigDecimal nowSumGold; +} diff --git a/src/main/java/com/example/demo/security/SecurityConfig.java b/src/main/java/com/example/demo/security/SecurityConfig.java index b288eb0..49babd7 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/**","/beanRecharge/addBeanDC","/recharge/addDC","/recharge/addFree","/cashCollection/syncToCashRecord").permitAll() + "/admin/login","/upload/**","/detailY/ERP","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**","/statistics/**","/Mysql/**","/Temporary/**","/beanRecharge/addBeanDC","/recharge/addDC","/recharge/addFree","/cashCollection/syncToCashRecord","/user/DCSelectUser","/consume/DCadd").permitAll() .requestMatchers(HttpMethod.GET, "/captcha").permitAll() .requestMatchers( "/error","alipay/**","/upload/**","/home/java/haiwaiyanfa/gold1/**","/home/java/haiwaiyanfa/**" diff --git a/src/main/java/com/example/demo/service/coin/ConsumeService.java b/src/main/java/com/example/demo/service/coin/ConsumeService.java index cf657ea..81372b8 100644 --- a/src/main/java/com/example/demo/service/coin/ConsumeService.java +++ b/src/main/java/com/example/demo/service/coin/ConsumeService.java @@ -29,6 +29,8 @@ public interface ConsumeService { //增加消费订单 Result add(ConsumeUser consumeUser); + Result addDC(ConsumeUser consumeUser); + // //增加退款订单 // Result addRefund(ConsumeUser consumeUser); diff --git a/src/main/java/com/example/demo/service/coin/UserService.java b/src/main/java/com/example/demo/service/coin/UserService.java index 7d0be9c..6d1e802 100644 --- a/src/main/java/com/example/demo/service/coin/UserService.java +++ b/src/main/java/com/example/demo/service/coin/UserService.java @@ -1,5 +1,6 @@ package com.example.demo.service.coin; +import com.example.demo.domain.entity.DCUser; import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.coin.Gold; import com.example.demo.domain.vo.coin.GoldUser; @@ -33,4 +34,6 @@ public interface UserService { //更新用户的首充时间 void updateFirstRecharge(); + + Result DCSelectUser(DCUser dcUser); } diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java index e751410..daa1045 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ConsumeServiceImpl.java @@ -256,6 +256,25 @@ public class ConsumeServiceImpl implements ConsumeService { // } return Result.success("XF_" + orderNumber); } + + @Override + public Result addDC(ConsumeUser consumeUser) { + if (consumeUser.getJwcode()==null||consumeUser.getJwcode()<10000000||consumeUser.getJwcode()>99999999){ + throw new SystemException("精网号位数小于8位或大于8位"); + } + if (consumeUser.getSumGold()==null||consumeUser.getSumGold().compareTo(BigDecimal.ZERO)<0){ + throw new SystemException("消费金币不能小于0"); + } + String result = GoldTistV2.addDCCoinNew(consumeUser.getJwcode().toString(),68,-consumeUser.getSumGold().doubleValue(),"","DC金币消耗",0,"DC","DC金币消耗"); + + String cleanResult = result.replaceAll("\\s+", ""); + if ("2".equals(cleanResult)) { + return Result.success(); + } else { + throw new SystemException(String.format("金币发放失败:类型错误(%S),jwcode=%s", result,consumeUser.getJwcode())); + } + + } // // @Transactional // @Override diff --git a/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java index b88dafd..93ed455 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java @@ -3,10 +3,13 @@ package com.example.demo.serviceImpl.coin; import com.example.demo.Util.JWTUtil; import com.example.demo.Util.LanguageTranslationUtil; import com.example.demo.domain.entity.Admin; +import com.example.demo.domain.entity.DCUser; import com.example.demo.domain.entity.User; +import com.example.demo.domain.vo.bean.BeanUserCard; import com.example.demo.domain.vo.coin.Gold; import com.example.demo.domain.vo.coin.GoldUser; import com.example.demo.domain.vo.coin.Result; +import com.example.demo.mapper.bean.BeanUserMapper; import com.example.demo.mapper.coin.MarketMapper; import com.example.demo.mapper.coin.UserMapper; import com.example.demo.service.Temporary.RedService; @@ -44,6 +47,8 @@ public class UserServiceImpl implements UserService { private RedService redService; @Autowired private LanguageTranslationUtil languageTranslationUtil; + @Autowired + private BeanUserMapper beanUserMapper; //查找用户部分信息 @Override @@ -151,6 +156,28 @@ public class UserServiceImpl implements UserService { } } + @Override + public Result DCSelectUser(DCUser dcUser) { + if(dcUser.getJwcode() == null||dcUser.getJwcode().equals("")){ + return Result.error("精网号有误!请检查"); + } + int userCount = userMapper.checkUserExists(dcUser.getJwcode()); + if (userCount == 0) { + return Result.error("精网号有误!请检查"); + } + GoldUser goldUser = userMapper.selectUser(dcUser.getJwcode()); + BeanUserCard user = beanUserMapper.userCard(dcUser.getJwcode()); + dcUser.setJwcode(String.valueOf(goldUser.getJwcode())); + dcUser.setName(goldUser.getName()); + dcUser.setPermanentBean(BigDecimal.valueOf(user.getPermanentBean())); + dcUser.setFreeBean(BigDecimal.valueOf(user.getFreeBean())); + dcUser.setNowFreeGold(goldUser.getNowFreeGold()); + dcUser.setNowPermanentGold(goldUser.getNowPermanentGold()); + dcUser.setNowTaskGold(goldUser.getNowTaskGold()); + dcUser.setNowSumGold(goldUser.getNowSumGold()); + return Result.success(dcUser); + } + //查找用户金币 @Override public GoldUser selectgold(String jwcode) { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index a7af526..b54d463 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -81,9 +81,9 @@ spring: rabbitmq: host: 54.255.212.181 port: 5672 - username: gold - password: gold - virtual-host: / + username: dong + password: 123 + virtual-host: mq listener: simple: trusted-packages: com.example.demo.domain.DTO