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.

238 lines
9.1 KiB

6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
7 months ago
6 months ago
7 months ago
6 months ago
7 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
6 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
6 months ago
7 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.ConsumeUser;
  7. import com.example.demo.domain.vo.coin.Gold;
  8. import com.example.demo.domain.vo.coin.Page;
  9. import com.example.demo.domain.vo.coin.Result;
  10. import com.example.demo.service.coin.ConsumeService;
  11. import com.github.pagehelper.PageInfo;
  12. import jakarta.servlet.http.HttpServletRequest;
  13. import lombok.RequiredArgsConstructor;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.util.ObjectUtils;
  18. import org.springframework.web.bind.annotation.*;
  19. import org.springframework.web.context.request.RequestContextHolder;
  20. import org.springframework.web.context.request.ServletRequestAttributes;
  21. import java.util.Arrays;
  22. import java.util.List;
  23. /**
  24. * @program: gold-java
  25. * @ClassName ConsumeController
  26. * @description:消费模块
  27. * @author: Double
  28. * @create: 202506-23 13:06
  29. * @Version 1.0
  30. **/
  31. @RestController
  32. @RequestMapping("/consume")
  33. @RequiredArgsConstructor
  34. @Slf4j
  35. @CrossOrigin
  36. public class ConsumeController {
  37. @Autowired
  38. private ConsumeService consumeService;
  39. // 注入多语言转换工具类
  40. @Autowired
  41. private LanguageTranslationUtil languageTranslationUtil;
  42. //消耗明细
  43. @Log("查看所有消耗明细")
  44. @PostMapping("/selectAll")
  45. public Result selectAll(@RequestBody Page page) {
  46. try {
  47. //页码校验
  48. if (ObjectUtils.isEmpty(page.getPageNum())) {
  49. return Result.error("页码数为空!");
  50. }
  51. //页面大小校验
  52. if (ObjectUtils.isEmpty(page.getPageSize())) {
  53. return Result.error("页大小为空!");
  54. } else {
  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. page.getConsumeUser().setMarkets(list);
  62. }
  63. else{
  64. return Result.error("角色为空");
  65. }
  66. return Result.success(consumeService.selectAll(page.getPageNum(), page.getPageSize(),page.getConsumeUser()));
  67. }
  68. } catch (Exception e) {
  69. e.printStackTrace();
  70. return Result.error("请检查筛选数据的格式");
  71. }
  72. }
  73. //消耗明细筛选
  74. @Log("筛选查询消耗明细")
  75. @PostMapping("/selectBy")
  76. public Result selectBy(@RequestBody Page page, @RequestHeader(defaultValue = "zh_CN") String lang) {
  77. try {
  78. //页码校验
  79. if (ObjectUtils.isEmpty(page.getPageNum())) {
  80. return Result.error("页码数为空!");
  81. }
  82. //页面大小校验
  83. if (ObjectUtils.isEmpty(page.getPageSize())) {
  84. return Result.error("页大小为空!");
  85. } else {
  86. //解token权限
  87. if(page.getConsumeUser().getMarkets()==null||page.getConsumeUser().getMarkets().isEmpty()) {
  88. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  89. String token = request.getHeader("token");
  90. Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
  91. if (admin != null) {
  92. List<String> list = Arrays.asList(admin.getMarkets().split(","));
  93. page.getConsumeUser().setMarkets(list);
  94. }
  95. else{
  96. return Result.error("角色为空");
  97. }
  98. }
  99. Result result = Result.success(consumeService.selectBy(page.getPageNum(), page.getPageSize(), page.getConsumeUser()));
  100. // 对返回结果进行多语言转换
  101. if (result.getCode() == 200 && result.getData() instanceof PageInfo) {
  102. PageInfo<ConsumeUser> pageInfo = (PageInfo<ConsumeUser>) result.getData();
  103. translateConsumeUsers(pageInfo, lang);
  104. }
  105. return result;
  106. }
  107. } catch (Exception e) {
  108. e.printStackTrace();
  109. return Result.error("请检查筛选数据的格式");
  110. }
  111. }
  112. //消耗金币统计
  113. @Log("消耗金币合计数统计")
  114. @PostMapping("/statsGold")
  115. public Result statsGold(@RequestBody ConsumeUser consumeUser) {
  116. try {
  117. if(consumeUser.getMarkets()==null||consumeUser.getMarkets().isEmpty()) {
  118. HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  119. String token = request.getHeader("token");
  120. Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class);
  121. if (admin != null) {
  122. List<String> list = Arrays.asList(admin.getMarkets().split(","));
  123. consumeUser.setMarkets(list);
  124. }
  125. else{
  126. return Result.error("角色为空");
  127. }
  128. }
  129. Gold gold = consumeService.statsGold(consumeUser);
  130. return Result.success(gold);
  131. } catch (Exception e) {
  132. e.printStackTrace();
  133. return Result.error("请检查数据的格式");
  134. }
  135. }
  136. //消耗金币增加
  137. @Log("新增金币消耗")
  138. @PostMapping("/add")
  139. public Result add(@RequestBody ConsumeUser consumeUser) {
  140. try {
  141. return consumeService.add(consumeUser);
  142. // if(consumeUser.getJwcode().equals(94226013))
  143. // {
  144. // return consumeService.add(consumeUser);
  145. // }else {
  146. // return Result.error("不是测试的精网号,无法添加消费");
  147. // }
  148. //
  149. } catch (Exception e) {
  150. e.printStackTrace();
  151. return Result.error("请查看后端报错信息");
  152. }
  153. }
  154. // //消耗金币增加
  155. // @Log("充值退款(消耗版)")
  156. // @PostMapping("/addRefund")
  157. // public Result addRefund(@RequestBody ConsumeUser consumeUser) {
  158. // try {
  159. // return consumeService.addRefund(consumeUser);
  160. //// if(consumeUser.getJwcode().equals(94226013))
  161. //// {
  162. //// return consumeService.add(consumeUser);
  163. //// }else {
  164. //// return Result.error("不是测试的精网号,无法添加消费");
  165. //// }
  166. ////
  167. // } catch (Exception e) {
  168. // e.printStackTrace();
  169. // return Result.error("请检查数据的格式");
  170. // }
  171. // }
  172. public Result select(@RequestBody Page page) {
  173. try {
  174. //页码校验
  175. if (ObjectUtils.isEmpty(page.getPageNum())) {
  176. return Result.error("页码数为空!");
  177. }
  178. //页面大小校验
  179. if (ObjectUtils.isEmpty(page.getPageSize())) {
  180. return Result.error("页大小为空!");
  181. } else {
  182. return Result.success(consumeService.selectBy(page.getPageNum(), page.getPageSize(), page.getConsumeUser()));
  183. }
  184. } catch (Exception e) {
  185. e.printStackTrace();
  186. return Result.error("请检查筛选数据的格式");
  187. }
  188. }
  189. /**
  190. * 转换消费用户信息的多语言字段
  191. */
  192. private void translateConsumeUsers(PageInfo<ConsumeUser> pageInfo, String lang) {
  193. if (pageInfo != null && pageInfo.getList() != null) {
  194. for (ConsumeUser user : pageInfo.getList()) {
  195. // 翻译市场名称
  196. if (user.getMarket() != null) {
  197. user.setMarket(languageTranslationUtil.translate(user.getMarket(), lang));
  198. }
  199. // 翻译商品名称
  200. if (user.getGoodsName() != null) {
  201. user.setGoodsName(languageTranslationUtil.translate(user.getGoodsName(), lang));
  202. }
  203. // 翻译支付平台
  204. if (user.getPayPlatform() != null) {
  205. user.setPayPlatform(languageTranslationUtil.translate(user.getPayPlatform(), lang));
  206. }
  207. // 翻译退款状态
  208. if (user.getIsRefund() != null) {
  209. if (user.getIsRefund() == 1) {
  210. user.setIsRefundDesc(languageTranslationUtil.translate("已退款", lang));
  211. } else if (user.getIsRefund() == 0) {
  212. user.setIsRefundDesc(languageTranslationUtil.translate("正常", lang));
  213. }
  214. }
  215. }
  216. }
  217. }
  218. }