AddressController.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package com.ichaoj.ams.controller;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollectionUtil;
  4. import cn.hutool.core.util.StrUtil;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import com.ichaoj.ams.entity.AmsAddressAccount;
  7. import com.ichaoj.ams.request.address.BatchAddressRequest;
  8. import com.ichaoj.ams.request.address.BatchKeyStoreRequest;
  9. import com.ichaoj.ams.request.address.PageAddressRequest;
  10. import com.ichaoj.ams.request.address.PremiumAddressRequest;
  11. import com.ichaoj.ams.response.address.AddressResponse;
  12. import com.ichaoj.ams.service.IAmsAddressAccountService;
  13. import com.ichaoj.common.annotation.AuthResource;
  14. import com.ichaoj.common.exception.ErrorServiceException;
  15. import com.ichaoj.common.model.PublicPage;
  16. import com.ichaoj.common.model.PublicResult;
  17. import com.ichaoj.common.model.PublicUserInfo;
  18. import com.ichaoj.web.context.SuperWhaleContext;
  19. import io.swagger.v3.oas.annotations.Operation;
  20. import io.swagger.v3.oas.annotations.tags.Tag;
  21. import org.springframework.validation.annotation.Validated;
  22. import org.springframework.web.bind.annotation.*;
  23. import javax.annotation.Resource;
  24. import javax.servlet.http.HttpServletResponse;
  25. import java.util.HashMap;
  26. import java.util.List;
  27. import java.util.Map;
  28. /**
  29. * @author cjwen
  30. */
  31. @RestController
  32. @RequestMapping("/address")
  33. @Tag(name = "地址模块")
  34. public class AddressController {
  35. @Resource
  36. IAmsAddressAccountService addressService;
  37. @Operation(summary = "批量创建钱包")
  38. @PostMapping("/generate/batch-address")
  39. @AuthResource
  40. public PublicResult<List<String>> batchCreateAddress(@RequestBody @Validated BatchAddressRequest batchAddressRequest) {
  41. return PublicResult.success(addressService.batchCreateAddress(batchAddressRequest));
  42. }
  43. @Operation(summary = "批量下载keystore文件")
  44. @PostMapping("/download/batch-keystore")
  45. @AuthResource
  46. @Validated
  47. public void batchKeystore(HttpServletResponse response, @RequestBody @Validated BatchKeyStoreRequest keyStoreRequest) {
  48. addressService.batchKeystore(keyStoreRequest.getGroupName(), response);
  49. }
  50. @Operation(summary = "批量添加精品号")
  51. @PostMapping("/add/premium-address")
  52. @AuthResource
  53. public PublicResult<Object> addPremiumAddress(@RequestBody List<PremiumAddressRequest> requestList) {
  54. if (CollectionUtil.isEmpty(requestList)) {
  55. throw new ErrorServiceException("至少需要一个精品号");
  56. }
  57. addressService.addPremiumAddress(requestList);
  58. return PublicResult.success();
  59. }
  60. @Operation(summary = "分页查询地址")
  61. @PostMapping("/page")
  62. @AuthResource
  63. public PublicResult<PublicPage<AddressResponse>> pageAddress(@RequestBody PageAddressRequest pageAddressRequest) {
  64. PublicPage<AddressResponse> result = addressService.pageAddress(pageAddressRequest);
  65. return PublicResult.success(result);
  66. }
  67. @Operation(summary = "查询地址组列表")
  68. @GetMapping("/group-list")
  69. @AuthResource
  70. public PublicResult<List<String>> queryGroupList() {
  71. List<String> result = addressService.queryGroupList(1);
  72. return PublicResult.success(result);
  73. }
  74. @Operation(summary = "统计当前用户的精品号和批量号数量")
  75. @GetMapping("/count-address")
  76. @AuthResource
  77. public PublicResult<Map<String, Object>> countAddress() {
  78. String userId = SuperWhaleContext.getContext(PublicUserInfo.class).getUserId();
  79. Map<String, Object> map = new HashMap<>(5);
  80. map.put("batchCount", addressService.count(new LambdaQueryWrapper<AmsAddressAccount>()
  81. .eq(AmsAddressAccount::getUserId, userId)
  82. .eq(AmsAddressAccount::getAddressType, 1)));
  83. map.put("premiumCount", addressService.count(new LambdaQueryWrapper<AmsAddressAccount>()
  84. .eq(AmsAddressAccount::getUserId, userId)
  85. .eq(AmsAddressAccount::getAddressType, 0)));
  86. return PublicResult.success(map);
  87. }
  88. }