VaultodyController.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package com.crm.manager.controller;
  2. import com.crm.manager.service.VaultodyService;
  3. import com.crm.manager.util.BlockchainUtils;
  4. import com.crm.manager.util.DateUtils;
  5. import com.crm.rely.backend.core.dto.base.BaseResultDto;
  6. import com.crm.rely.backend.model.dto.export.TransactionItemExport;
  7. import com.crm.rely.backend.model.entity.vaultody.vaults.VaultTransactionsSearchEntity;
  8. import com.crm.rely.backend.model.pojo.table.TransactionItemTable;
  9. import com.crm.rely.backend.util.ExportUtil;
  10. import com.crm.rely.backend.util.FileProcessUtil;
  11. import com.google.common.collect.Lists;
  12. import jakarta.servlet.http.HttpServletResponse;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.hibernate.service.spi.ServiceException;
  15. import org.springframework.beans.BeanUtils;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.PostMapping;
  18. import org.springframework.web.bind.annotation.RequestBody;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RestController;
  21. import java.util.List;
  22. @RestController
  23. @RequestMapping("/vaultody")
  24. public class VaultodyController {
  25. @Autowired
  26. private VaultodyService vaultodyService;
  27. /**
  28. * 保险箱列表
  29. *
  30. */
  31. @PostMapping("/vaults/list")
  32. public BaseResultDto vaultsList() throws Exception {
  33. return vaultodyService.vaultsList();
  34. }
  35. /**
  36. * 保险箱交易详情分页查询
  37. * @param entity
  38. * @return
  39. * @throws Exception
  40. */
  41. @PostMapping("/transaction/search/list")
  42. public BaseResultDto searchList(@RequestBody VaultTransactionsSearchEntity entity) throws Exception {
  43. if (StringUtils.isBlank(entity.getVaultId())) {
  44. throw new ServiceException("vault_id_not_null_error");
  45. }
  46. return vaultodyService.searchList(entity);
  47. }
  48. /**
  49. * 导出保险箱交易记录
  50. * @param entity
  51. * @param response
  52. * @throws Exception
  53. */
  54. @PostMapping("/export")
  55. public void export(@RequestBody VaultTransactionsSearchEntity entity, HttpServletResponse response) throws Exception {
  56. List<TransactionItemTable> items = (List<TransactionItemTable>)searchList(entity).getData();
  57. List<TransactionItemExport> exportDtos = Lists.newArrayList();
  58. for (TransactionItemTable item : items) {
  59. TransactionItemExport exportDto = new TransactionItemExport();
  60. BeanUtils.copyProperties(item, exportDto);
  61. if(StringUtils.isNotBlank(item.getBlockchain()) && StringUtils.isNotBlank(item.getTransactionId())){
  62. exportDto.setTransactionId(BlockchainUtils.getTransactionUrl(item.getBlockchain(), item.getTransactionId()));
  63. }
  64. exportDto.setCreatedTimestamp(DateUtils.secondToDateTimeStr(item.getCreatedTimestamp()));
  65. exportDtos.add(exportDto);
  66. }
  67. ExportUtil.transferToResponse(FileProcessUtil.genExportFileName("VAULTODY_VAULT_TRANSACTIONS"), exportDtos,
  68. TransactionItemExport.class, response);
  69. }
  70. }