StatisticsController.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.ichaoj.ams.controller;
  2. import com.ichaoj.ams.service.IAmsAddressAccountService;
  3. import com.ichaoj.ams.service.IAmsTradeRecordService;
  4. import com.ichaoj.common.annotation.AuthResource;
  5. import com.ichaoj.common.model.PublicResult;
  6. import com.ichaoj.common.model.PublicUserInfo;
  7. import com.ichaoj.web.context.SuperWhaleContext;
  8. import io.swagger.v3.oas.annotations.Operation;
  9. import io.swagger.v3.oas.annotations.tags.Tag;
  10. import org.springframework.web.bind.annotation.GetMapping;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import javax.annotation.Resource;
  14. import java.math.BigDecimal;
  15. import java.util.HashMap;
  16. import java.util.List;
  17. import java.util.Map;
  18. /**
  19. * @author : cjwen
  20. * @date : 2023/05/23 18:37
  21. */
  22. @RestController
  23. @RequestMapping("/statistics")
  24. @Tag(name = "统计模块")
  25. public class StatisticsController {
  26. @Resource
  27. private IAmsTradeRecordService tradeService;
  28. @Resource
  29. private IAmsAddressAccountService accountService;
  30. @GetMapping("daily-cost")
  31. @Operation(summary = "每日消耗gas和本金")
  32. @AuthResource
  33. public PublicResult<Map<String, Object>> dailyCostStatistics() {
  34. Map<String, Object> map = new HashMap<>(5);
  35. String userId = SuperWhaleContext.getContext(PublicUserInfo.class).getUserId();
  36. List<String> batchAddresses = accountService.queryGroupList(1);
  37. // 从链上获取当日gas费用
  38. BigDecimal dailyGasCost = getDailyGasCost(userId);
  39. // 从链上获取当日本金消耗量
  40. // BigDecimal dailyPrincipalCost = getDailyPrincipalCost(userId);
  41. // 总消耗 = gas费用 + 本金消耗
  42. // BigDecimal totalCost = dailyGasCost.add(dailyPrincipalCost);
  43. return PublicResult.success(map);
  44. }
  45. private void getGroupAndWalletNum(Map<String, Object> map) {
  46. List<String> list = accountService.queryGroupList(0);
  47. map.put("premiumCount", list.size());
  48. }
  49. private BigDecimal getDailyGasCost(String userId) {
  50. return BigDecimal.ZERO;
  51. }
  52. }