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.

194 lines
7.8 KiB

4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
  1. package com.example.demo.serviceImpl.bean;
  2. import com.example.demo.domain.vo.bean.*;
  3. import com.example.demo.domain.vo.coin.Gold;
  4. import com.example.demo.domain.vo.coin.GoldUser;
  5. import com.example.demo.domain.vo.coin.RechargeUser;
  6. import com.example.demo.domain.vo.coin.Result;
  7. import com.example.demo.mapper.bean.BeanRechargeMapper2;
  8. import com.example.demo.mapper.bean.BeanUserMapper;
  9. import com.example.demo.mapper.coin.BeanRechargeMapper1;
  10. import com.example.demo.mapper.coin.UserMapper;
  11. import com.example.demo.mapper.pay.BeanRechargeMapper3;
  12. import com.example.demo.service.bean.BeanRechargeService;
  13. import com.github.pagehelper.PageHelper;
  14. import com.github.pagehelper.PageInfo;
  15. import lombok.RequiredArgsConstructor;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.http.ResponseEntity;
  18. import org.springframework.stereotype.Service;
  19. import org.springframework.web.client.RestTemplate;
  20. import org.springframework.web.util.UriComponentsBuilder;
  21. import java.math.BigDecimal;
  22. import java.math.RoundingMode;
  23. import java.util.List;
  24. import java.util.Objects;
  25. import java.util.UUID;
  26. import java.util.stream.Collectors;
  27. /**
  28. * @program: gold-java
  29. * @ClassName BeanRechargeServiceImpl
  30. * @description:
  31. * @author: Double
  32. * @create: 202507-29 16:47
  33. * @Version 1.0
  34. **/
  35. @Service
  36. @RequiredArgsConstructor
  37. public class BeanRechargeServiceImpl implements BeanRechargeService {
  38. @Autowired
  39. private RestTemplate restTemplate;
  40. @Autowired
  41. private BeanRechargeMapper2 beanRechargeMapper2;
  42. @Autowired
  43. private BeanRechargeMapper1 beanRechargeMapper1;
  44. @Autowired
  45. private BeanRechargeMapper3 beanRechargeMapper3;
  46. @Autowired
  47. private UserMapper userMapper;
  48. @Autowired
  49. private BeanUserMapper beanUserMapper;
  50. //新增金豆
  51. @Override
  52. public Result add(BeanRecharge recharge) {
  53. try {
  54. // 验证精网号是否有效
  55. if (recharge.getJwcode() == null || recharge.getJwcode().toString().isEmpty()) {
  56. return Result.error("精网号不能为空");
  57. }
  58. if(recharge.getJwcode()<10000000||recharge.getJwcode()>99999999)
  59. {
  60. return Result.error("精网号位数小于8位或大于8位");
  61. }
  62. // 验证免费豆和永久豆是否为非负数
  63. if (recharge.getFreeBean() < 0 || recharge.getPermanentBean() < 0) {
  64. return Result.error("免费豆和永久豆不能为负数");
  65. }
  66. // 验证免费豆和永久豆是否为非负数
  67. if (recharge.getFreeBean() > 999999 || recharge.getPermanentBean() > 999999) {
  68. return Result.error("免费豆和永久豆不能超过999999");
  69. }
  70. // 验证免费豆和永久豆是否均为0
  71. if (recharge.getFreeBean() == 0 && recharge.getPermanentBean() == 0) {
  72. return Result.error("免费豆和永久豆不能同时为0");
  73. }
  74. BeanUserCard user = beanUserMapper.userCard(String.valueOf(recharge.getJwcode()));
  75. if(user==null){
  76. return Result.error("用户查找不到");
  77. }
  78. // 验证备注是否为空
  79. if (recharge.getRemark() == null || recharge.getRemark().toString().isEmpty()) {
  80. return Result.error("备注不能为空");
  81. }
  82. if(recharge.getAdminName() == null || recharge.getAdminName().toString().isEmpty()){
  83. return Result.error("管理员名称不能为空");
  84. }
  85. beanRechargeMapper1.add(recharge);
  86. // String jwcode = recharge.getJwcode().toString();
  87. // String op = "recharge"; // 操作类型(根据实际业务定义,例如"recharge"表示充值)
  88. // String content = recharge.getRemark(); // 备注作为content参数
  89. // String orderNo = UUID.randomUUID().toString().replace("-", ""); // 生成唯一订单号(去除横线)
  90. //
  91. // // 2. 构建接口URL及参数
  92. // String apiUrl = "http://47.92.148.30:3003/mock/61/hljw/api/user/gold";
  93. // UriComponentsBuilder urlBuilder = UriComponentsBuilder.fromHttpUrl(apiUrl)
  94. // .queryParam("jwcode", jwcode)
  95. // .queryParam("op", op)
  96. // .queryParam("gold", recharge.getPermanentBean())
  97. // .queryParam("content", content)
  98. // .queryParam("order_no", orderNo);
  99. //
  100. // // 3. 发送GET请求
  101. // ResponseEntity<String> response = restTemplate.getForEntity(urlBuilder.toUriString(), String.class);
  102. //
  103. // // 4. 处理响应结果
  104. // if (!response.getStatusCode().is2xxSuccessful()) {
  105. // return Result.error("远程接口调用失败,状态码:" + response.getStatusCodeValue());
  106. // }
  107. return Result.success("添加成功");
  108. } catch (Exception e) {
  109. return Result.error("系统异常:" + e.getMessage());
  110. }
  111. }
  112. //系统充值明细
  113. @Override
  114. public PageInfo<BeanSystemRechargeInfo> selectBySystem(Integer pageNum, Integer pageSize, BeanSystemRechargeInfo beanSystemRechargeInfo){
  115. PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper
  116. List<BeanSystemRechargeInfo> beanSystemRechargeInfos = beanRechargeMapper2.selectBySystem(beanSystemRechargeInfo);
  117. return new PageInfo<>(beanSystemRechargeInfos);
  118. }
  119. //统计系统金豆记录
  120. @Override
  121. public GoldBean statsSystemBean(BeanSystemRechargeInfo beanSystemRechargeInfo) {
  122. GoldBean gold = beanRechargeMapper2.selectSystemSum(beanSystemRechargeInfo);
  123. if(gold==null){
  124. gold = new GoldBean();
  125. }
  126. BigDecimal moneySum;
  127. if(gold.getPermanentBean()==null){
  128. gold.setPermanentBean(0);
  129. }
  130. if(gold.getFreeBean()==null){
  131. gold.setFreeBean(0);
  132. }
  133. if(gold.getNum()==null){
  134. gold.setNum(0);
  135. }
  136. moneySum = new BigDecimal(gold.getPermanentBean()).divide(new BigDecimal("50"), 2, RoundingMode.HALF_UP);
  137. gold.setMoney(moneySum.doubleValue());
  138. gold.setBeanNum(gold.getPermanentBean()+gold.getFreeBean());
  139. return gold;
  140. }
  141. @Override
  142. public List<String> systemMarket() {
  143. List<String> list = beanRechargeMapper2.systemMarket();
  144. // 使用 Java 8 的 Stream API 过滤 null 和空字符串
  145. List<String> filteredList = list.stream()
  146. .filter(Objects::nonNull) // 过滤掉 null 值
  147. .filter(str -> !str.trim().isEmpty()) // 过滤掉空字符串和仅包含空白字符的字符串
  148. .collect(Collectors.toList());
  149. return filteredList;
  150. }
  151. //线上充值明细
  152. @Override
  153. public PageInfo<BeanOnlineRechargeInfo> selectByOnline(Integer pageNum, Integer pageSize, BeanOnlineRechargeInfo beanOnlineRechargeInfo){
  154. PageHelper.startPage(pageNum, pageSize); //必须要直接跟mapper
  155. List<BeanOnlineRechargeInfo> beanOnlineRechargeInfos = beanRechargeMapper3.selectByOnline(beanOnlineRechargeInfo);
  156. return new PageInfo<>(beanOnlineRechargeInfos);
  157. }
  158. //统计线上金豆记录
  159. @Override
  160. public GoldBean statsOnlineBean(BeanOnlineRechargeInfo beanOnlineRechargeInfo) {
  161. GoldBean gold = beanRechargeMapper3.selectOnlineSum(beanOnlineRechargeInfo);
  162. return gold;
  163. }
  164. @Override
  165. public List<String> onlineMarket() {
  166. List<String> list = beanRechargeMapper3.onlineMarket();
  167. // 使用 Java 8 的 Stream API 过滤 null 和空字符串
  168. List<String> filteredList = list.stream()
  169. .filter(Objects::nonNull) // 过滤掉 null 值
  170. .filter(str -> !str.trim().isEmpty()) // 过滤掉空字符串和仅包含空白字符的字符串
  171. .collect(Collectors.toList());
  172. return filteredList;
  173. }
  174. }