You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
4.1 KiB

3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
3 weeks ago
  1. package com.example.demo.serviceImpl.bean;
  2. import com.example.demo.domain.vo.bean.BeanRecharge;
  3. import com.example.demo.domain.vo.bean.BeanRechargeInfo;
  4. import com.example.demo.domain.vo.coin.RechargeUser;
  5. import com.example.demo.domain.vo.coin.Result;
  6. import com.example.demo.mapper.bean.BeanRechargeMapper;
  7. import com.example.demo.service.bean.BeanRechargeService;
  8. import com.github.pagehelper.PageHelper;
  9. import com.github.pagehelper.PageInfo;
  10. import lombok.RequiredArgsConstructor;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.http.ResponseEntity;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.web.client.RestTemplate;
  15. import org.springframework.web.util.UriComponentsBuilder;
  16. import java.util.List;
  17. import java.util.UUID;
  18. /**
  19. * @program: gold-java
  20. * @ClassName BeanRechargeServiceImpl
  21. * @description:
  22. * @author: Double
  23. * @create: 202507-29 16:47
  24. * @Version 1.0
  25. **/
  26. @Service
  27. @RequiredArgsConstructor
  28. public class BeanRechargeServiceImpl implements BeanRechargeService {
  29. @Autowired
  30. private RestTemplate restTemplate;
  31. @Autowired
  32. private BeanRechargeMapper beanRechargeMapper;
  33. //新增金豆
  34. @Override
  35. public Result add(BeanRecharge recharge) {
  36. try {
  37. // 验证精网号是否有效
  38. if (recharge.getJwcode() == null || recharge.getJwcode().toString().isEmpty()) {
  39. return Result.error("精网号不能为空");
  40. }
  41. // 验证免费豆和永久豆是否为非负数
  42. if (recharge.getFreeBean() < 0 || recharge.getPermanentBean() < 0) {
  43. return Result.error("免费豆和永久豆不能为负数");
  44. }
  45. // 验证免费豆和永久豆是否为非负数
  46. if (recharge.getFreeBean() > 999999 || recharge.getPermanentBean() > 999999) {
  47. return Result.error("免费豆和永久豆不能超过999999");
  48. }
  49. // 验证免费豆和永久豆是否均为0
  50. if (recharge.getFreeBean() == 0 && recharge.getPermanentBean() == 0) {
  51. return Result.error("免费豆和永久豆不能同时为0");
  52. }
  53. // 验证备注是否为空
  54. if (recharge.getRemark() == null || recharge.getRemark().toString().isEmpty()) {
  55. return Result.error("备注不能为空");
  56. }
  57. String jwcode = recharge.getJwcode().toString();
  58. String op = "recharge"; // 操作类型(根据实际业务定义,例如"recharge"表示充值)
  59. String content = recharge.getRemark(); // 备注作为content参数
  60. String orderNo = UUID.randomUUID().toString().replace("-", ""); // 生成唯一订单号(去除横线)
  61. // 2. 构建接口URL及参数
  62. String apiUrl = "http://47.92.148.30:3003/mock/61/hljw/api/user/gold";
  63. UriComponentsBuilder urlBuilder = UriComponentsBuilder.fromHttpUrl(apiUrl)
  64. .queryParam("jwcode", jwcode)
  65. .queryParam("op", op)
  66. .queryParam("gold", recharge.getPermanentBean())
  67. .queryParam("content", content)
  68. .queryParam("order_no", orderNo);
  69. // 3. 发送GET请求
  70. ResponseEntity<String> response = restTemplate.getForEntity(urlBuilder.toUriString(), String.class);
  71. // 4. 处理响应结果
  72. if (!response.getStatusCode().is2xxSuccessful()) {
  73. return Result.error("远程接口调用失败,状态码:" + response.getStatusCodeValue());
  74. }
  75. return Result.success("添加成功");
  76. } catch (Exception e) {
  77. return Result.error("系统异常:" + e.getMessage());
  78. }
  79. }
  80. //系统充值明细
  81. @Override
  82. public PageInfo<BeanRechargeInfo> selectBySystem(Integer pageNum, Integer pageSize, BeanRechargeInfo beanRechargeInfo){
  83. PageHelper.startPage(pageNum, pageSize);
  84. List<BeanRechargeInfo> beanRechargeInfos = beanRechargeMapper.selectBySystem(beanRechargeInfo);
  85. return new PageInfo<>(beanRechargeInfos);
  86. }
  87. }