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.

200 lines
8.1 KiB

7 months ago
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
6 months ago
7 months ago
6 months ago
7 months ago
7 months ago
6 months ago
7 months ago
7 months ago
6 months ago
7 months ago
7 months ago
6 months ago
6 months ago
7 months ago
7 months ago
6 months ago
7 months ago
6 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
  1. package com.example.demo.controller.coin;
  2. import com.example.demo.Util.JWTUtil;
  3. import com.example.demo.Util.LanguageTranslationUtil;
  4. import com.example.demo.config.interfac.Log;
  5. import com.example.demo.domain.entity.Admin;
  6. import com.example.demo.domain.vo.coin.*;
  7. import com.example.demo.service.coin.RechargeService;
  8. import com.github.pagehelper.PageInfo;
  9. import jakarta.servlet.http.HttpServletRequest;
  10. import lombok.RequiredArgsConstructor;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.util.ObjectUtils;
  15. import org.springframework.web.bind.annotation.*;
  16. import org.springframework.web.context.request.RequestContextHolder;
  17. import org.springframework.web.context.request.ServletRequestAttributes;
  18. import java.util.Arrays;
  19. import java.util.List;
  20. /**
  21. * @program: gold-java
  22. * @ClassName RechargeController
  23. * @description:
  24. * @author: Double
  25. * @create: 202506-29 13:01
  26. * @Version 1.0
  27. **/
  28. @RestController
  29. @RequestMapping("/recharge")
  30. @RequiredArgsConstructor
  31. @Slf4j
  32. @CrossOrigin
  33. public class RechargeController {
  34. @Autowired
  35. private RechargeService rechargeService;
  36. // 注入多语言转换工具类
  37. @Autowired
  38. private LanguageTranslationUtil languageTranslationUtil;
  39. //充值明细
  40. @Log("获取全部充值明细")
  41. @PostMapping("/selectAll")
  42. public Result selectAll(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
  43. try {
  44. if (ObjectUtils.isEmpty(page.getPageNum())) {
  45. return Result.error("页码数为空!");
  46. }
  47. if (ObjectUtils.isEmpty(page.getPageSize())) {
  48. return Result.error("页大小为空!");
  49. } else {
  50. //解token权限
  51. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  52. String token = request.getHeader("token");
  53. Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
  54. if (admin != null) {
  55. List<String> list = Arrays.asList(admin.getMarkets().split(","));
  56. page.getRechargeUser().setMarkets(list);
  57. }
  58. else{
  59. return Result.error("角色为空");
  60. }
  61. Result result = Result.success(rechargeService.selectAll(page.getPageNum(), page.getPageSize(),page.getRechargeUser()));
  62. // 对返回结果进行多语言转换
  63. if (result.getCode() == 200 && result.getData() instanceof PageInfo) {
  64. PageInfo<RechargeUser> pageInfo = (PageInfo<RechargeUser>) result.getData();
  65. translateRechargeUsers(pageInfo, lang);
  66. }
  67. return result;
  68. }
  69. } catch (Exception e) {
  70. return Result.error(e.getMessage());
  71. }
  72. }
  73. //充值明细筛选
  74. @Log("充值明细筛选")
  75. @PostMapping("/selectBy")
  76. public Result selectBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
  77. try {
  78. if (ObjectUtils.isEmpty(page.getPageNum())) {
  79. return Result.error("页码数为空!");
  80. }
  81. if (ObjectUtils.isEmpty(page.getPageSize())) {
  82. return Result.error("页大小为空!");
  83. } else {
  84. //解token权限
  85. if(page.getRechargeUser().getMarkets()==null||page.getRechargeUser().getMarkets().isEmpty()){
  86. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  87. String token = request.getHeader("token");
  88. Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
  89. if (admin != null) {
  90. List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));;
  91. page.getRechargeUser().setMarkets(markets);
  92. }
  93. }
  94. Result result = Result.success(rechargeService.selectBy(page.getPageNum(), page.getPageSize(), page.getRechargeUser()));
  95. // 对返回结果进行多语言转换
  96. if (result.getCode() == 200 && result.getData() instanceof PageInfo) {
  97. PageInfo<RechargeUser> pageInfo = (PageInfo<RechargeUser>) result.getData();
  98. translateRechargeUsers(pageInfo, lang);
  99. }
  100. return result;
  101. }
  102. } catch (Exception e) {
  103. e.printStackTrace();
  104. return Result.error("请检查筛选数据的格式");
  105. }
  106. }
  107. //充值金币统计
  108. @Log("充值金币合计数统计")
  109. @PostMapping("/statsGold")
  110. public Result statsGold(@RequestBody RechargeUser rechargeUser) {
  111. try {
  112. //解token权限
  113. if(rechargeUser.getMarkets()==null||rechargeUser.getMarkets().isEmpty()){
  114. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  115. String token = request.getHeader("token");
  116. Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
  117. List<String> markets = Arrays.asList(StringUtils.split(admin.getMarkets(), ","));
  118. rechargeUser.setMarkets(markets);
  119. }
  120. Gold gold = rechargeService.statsGold(rechargeUser);
  121. return Result.success(gold);
  122. } catch (Exception e) {
  123. return Result.error("请检查数据的格式");
  124. }
  125. }
  126. //充值金币增加
  127. @Log("新增金币充值")
  128. @PostMapping("/add")
  129. public Result add(@RequestBody RechargeUser rechargeUser) {
  130. try {
  131. return rechargeService.add(rechargeUser);
  132. } catch (Exception e) {
  133. return Result.error("请检查数据的格式");
  134. }
  135. }
  136. public Result select(@RequestBody Page page) {
  137. try {
  138. if (ObjectUtils.isEmpty(page.getPageNum())) {
  139. return Result.error("页码数为空!");
  140. }
  141. if (ObjectUtils.isEmpty(page.getPageSize())) {
  142. return Result.error("页大小为空!");
  143. } else {
  144. //解token权限
  145. return Result.success(rechargeService.selectBy(page.getPageNum(), page.getPageSize(), page.getRechargeUser()));
  146. }
  147. } catch (Exception e) {
  148. return Result.error("请检查筛选数据的格式");
  149. }
  150. }
  151. /**
  152. * 转换充值用户信息的多语言字段
  153. */
  154. private void translateRechargeUsers(PageInfo<RechargeUser> pageInfo, String lang) {
  155. if (pageInfo != null && pageInfo.getList() != null) {
  156. for (RechargeUser user : pageInfo.getList()) {
  157. // 翻译市场名称
  158. if (user.getMarket() != null) {
  159. user.setMarket(languageTranslationUtil.translate(user.getMarket(), lang));
  160. }
  161. // 翻译活动名称
  162. if (user.getActivity() != null) {
  163. user.setActivity(languageTranslationUtil.translate(user.getActivity(), lang));
  164. }
  165. // 翻译汇率名称
  166. if (user.getRateName() != null) {
  167. user.setRateName(languageTranslationUtil.translate(user.getRateName(), lang));
  168. }
  169. // 翻译支付方式
  170. if (user.getPayModel() != null) {
  171. user.setPayModel(languageTranslationUtil.translate(user.getPayModel(), lang));
  172. }
  173. // 翻译支付平台
  174. if (user.getPayPlatform() != null) {
  175. user.setPayPlatform(languageTranslationUtil.translate(user.getPayPlatform(), lang));
  176. }
  177. // 翻译备注
  178. if (user.getRemark() != null) {
  179. user.setRemark(languageTranslationUtil.translate(user.getRemark(), lang));
  180. }
  181. }
  182. }
  183. }
  184. }