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.

210 lines
8.7 KiB

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.service.coin.AuditService;
  7. import com.github.pagehelper.PageInfo;
  8. import jakarta.servlet.http.HttpServletRequest;
  9. import lombok.RequiredArgsConstructor;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.http.ResponseEntity;
  13. import org.springframework.web.bind.annotation.*;
  14. import org.springframework.web.context.request.RequestContextHolder;
  15. import org.springframework.web.context.request.ServletRequestAttributes;
  16. import com.example.demo.domain.vo.coin.*;
  17. import java.util.Arrays;
  18. import java.util.List;
  19. /**
  20. * @program: gold-java
  21. * @ClassName AuditController
  22. * @description: 审核模块
  23. * @author: Ethan
  24. * @create: 202506-19 17:30
  25. * @Version 1.0
  26. **/
  27. @RestController
  28. @RequestMapping("/audit")
  29. @RequiredArgsConstructor
  30. @Slf4j
  31. @CrossOrigin
  32. public class AuditController {
  33. @Autowired
  34. private AuditService auditService;
  35. // 注入多语言转换工具类
  36. @Autowired
  37. private LanguageTranslationUtil languageTranslationUtil;
  38. //审核订单
  39. @Log("审核订单")
  40. @PostMapping("audit")
  41. public ResponseEntity<Boolean> auditOrder(
  42. @RequestBody AuditRequest request) {
  43. boolean result = auditService.auditOrder(request.getToken(), request.getOrderCode(), request.getAuditId(), request.getAction(), request.getRejectReason());
  44. return ResponseEntity.ok(result);
  45. }
  46. //多条件查询充值审核订单列表
  47. @Log("查询充值审核订单列表")
  48. @PostMapping("selectRecharge")
  49. public PageInfo<RechargeAudit> searchRechargeAudit(
  50. @RequestBody Page page,
  51. @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
  52. Integer pageNum = page.getPageNum();
  53. Integer pageSize = page.getPageSize();
  54. RechargeAudit rechargeAudit = page.getRechargeAudit();
  55. //解token权限
  56. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  57. String token = request.getHeader("token");
  58. Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
  59. if (admin != null) {
  60. List<String> list = Arrays.asList(admin.getMarkets().split(","));
  61. rechargeAudit.setMarkets(list);
  62. }
  63. PageInfo<RechargeAudit> pageInfo = auditService.selectRechargeBy(pageNum, pageSize, rechargeAudit);
  64. // 对结果进行多语言转换
  65. translateRechargeAuditResults(pageInfo, lang);
  66. return pageInfo;
  67. }
  68. //多条件查询退款审核订单列表
  69. @Log("查询退款审核订单列表")
  70. @PostMapping("selectRefund")
  71. public PageInfo<RefundAudit> searchRefundAudit(
  72. @RequestBody Page page,
  73. @RequestHeader(defaultValue = "zh_CN") String lang) throws Exception {
  74. Integer pageNum = page.getPageNum();
  75. Integer pageSize = page.getPageSize();
  76. RefundAudit refundAudit = page.getRefundAudit();
  77. //解token权限
  78. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  79. String token = request.getHeader("token");
  80. Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
  81. if (admin != null) {
  82. List<String> list = Arrays.asList(admin.getMarkets().split(","));
  83. refundAudit.setMarkets(list);
  84. }
  85. PageInfo<RefundAudit> pageInfo = auditService.selectRefundBy(pageNum, pageSize, refundAudit);
  86. // 对结果进行多语言转换
  87. translateRefundAuditResults(pageInfo, lang);
  88. return pageInfo;
  89. }
  90. //充值审核合计数
  91. @Log("充值审核合计数")
  92. @PostMapping("sumRechargeGold")
  93. public Gold sumRechargeGold(@RequestBody Page page)throws Exception {
  94. Integer pageNum = page.getPageNum();
  95. Integer pageSize = page.getPageSize();
  96. RechargeAudit rechargeAudit = page.getRechargeAudit();
  97. //解token权限
  98. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  99. String token = request.getHeader("token");
  100. Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
  101. if (admin != null) {
  102. List<String> list = Arrays.asList(admin.getMarkets().split(","));
  103. rechargeAudit.setMarkets(list);
  104. }
  105. return auditService.sumRechargeGold(pageNum, pageSize, rechargeAudit);
  106. }
  107. //退款审核合计数
  108. @Log("退款审核合计数")
  109. @PostMapping("sumRefundGold")
  110. public Gold sumRefundGold(@RequestBody Page page) throws Exception{
  111. Integer pageNum = page.getPageNum();
  112. Integer pageSize = page.getPageSize();
  113. RefundAudit refundAudit = page.getRefundAudit();
  114. //解token权限
  115. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  116. String token = request.getHeader("token");
  117. Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
  118. if (admin != null) {
  119. List<String> list = Arrays.asList(admin.getMarkets().split(","));
  120. refundAudit.setMarkets(list);
  121. }
  122. return auditService.sumRefundGold(pageNum, pageSize, refundAudit);
  123. }
  124. /**
  125. * 转换充值审核结果的多语言字段
  126. */
  127. private void translateRechargeAuditResults(PageInfo<RechargeAudit> pageInfo, String lang) {
  128. if (pageInfo != null && pageInfo.getList() != null) {
  129. for (RechargeAudit audit : pageInfo.getList()) {
  130. // 翻译市场名称
  131. if (audit.getMarket() != null) {
  132. audit.setMarket(languageTranslationUtil.translate(audit.getMarket(), lang));
  133. }
  134. // 翻译汇率名称
  135. if (audit.getRateName() != null) {
  136. audit.setRateName(languageTranslationUtil.translate(audit.getRateName(), lang));
  137. }
  138. // 翻译支付方式
  139. if (audit.getPayModel() != null) {
  140. audit.setPayModel(languageTranslationUtil.translate(audit.getPayModel(), lang));
  141. }
  142. // 翻译活动名称
  143. if (audit.getActivity() != null) {
  144. audit.setActivity(languageTranslationUtil.translate(audit.getActivity(), lang));
  145. }
  146. // 翻译备注
  147. if (audit.getRemark() != null) {
  148. audit.setRemark(languageTranslationUtil.translate(audit.getRemark(), lang));
  149. }
  150. }
  151. }
  152. }
  153. /**
  154. * 转换退款审核结果的多语言字段
  155. */
  156. private void translateRefundAuditResults(PageInfo<RefundAudit> pageInfo, String lang) {
  157. if (pageInfo != null && pageInfo.getList() != null) {
  158. for (RefundAudit audit : pageInfo.getList()) {
  159. // 翻译市场名称
  160. if (audit.getMarket() != null) {
  161. audit.setMarket(languageTranslationUtil.translate(audit.getMarket(), lang));
  162. }
  163. // 翻译商品名称
  164. if (audit.getGoodsName() != null) {
  165. audit.setGoodsName(languageTranslationUtil.translate(audit.getGoodsName(), lang));
  166. }
  167. // 翻译退款方式
  168. if (audit.getRefundModel() != null) {
  169. // refundModel是数字,需要先转换为对应的中文描述再翻译
  170. String refundModelDesc = convertRefundModelToString(audit.getRefundModel());
  171. audit.setRefundModelDesc(languageTranslationUtil.translate(refundModelDesc, lang));
  172. }
  173. // 翻译退款类型
  174. if (audit.getRefundType() != null) {
  175. audit.setRefundType(languageTranslationUtil.translate(audit.getRefundType(), lang));
  176. }
  177. // 翻译备注
  178. if (audit.getRemark() != null) {
  179. audit.setRemark(languageTranslationUtil.translate(audit.getRemark(), lang));
  180. }
  181. }
  182. }
  183. }
  184. /**
  185. * 将退款方式数字转换为中文描述
  186. */
  187. private String convertRefundModelToString(Integer refundModel) {
  188. if (refundModel == null) return "";
  189. switch (refundModel) {
  190. case 0:
  191. return "全部退款";
  192. case 1:
  193. return "部分退款";
  194. default:
  195. return "未知退款方式";
  196. }
  197. }
  198. }