diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java index 6119852a7..82ac18138 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java @@ -35,7 +35,9 @@ import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.core.factory.SmsFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -1147,15 +1149,28 @@ public class TempController extends BaseController { /** * 批量导入会员余额 */ - @PostMapping("/batchImportMemberBalance") - public RestApiResponse batchImportMemberBalance(@RequestBody List list) { - RestApiResponse response = null; + @PostMapping(value = "/batchImportMemberBalance", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public RestApiResponse batchImportMemberBalance(@RequestParam("file") MultipartFile file) { + RestApiResponse response; try { - tempService.batchImportMemberBalance(list); - response = new RestApiResponse<>(); + if (file == null || file.isEmpty()) { + throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); + } + + ExcelUtil util = new ExcelUtil<>(ImportMemberBalanceDTO.class); + List list = util.importExcel(file.getInputStream()); + if (CollectionUtils.isEmpty(list)) { + throw new BusinessException("00300001", "Excel中未解析到有效数据"); + } + + logger.info("批量导入会员余额, fileName:{}, totalCount:{}", file.getOriginalFilename(), list.size()); + response = new RestApiResponse<>(tempService.batchImportMemberBalance(list)); + } catch (BusinessException e) { + logger.warn("批量导入会员余额 warn", e); + response = new RestApiResponse<>(e.getCode(), e.getMessage()); } catch (Exception e) { logger.error("批量导入会员余额 error", e); - response = new RestApiResponse<>(e); + response = new RestApiResponse<>("00300002", "批量导入会员余额异常"); } return response; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/ImportMemberBalanceDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/ImportMemberBalanceDTO.java index af5361165..27a1c3197 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/ImportMemberBalanceDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/ImportMemberBalanceDTO.java @@ -1,5 +1,6 @@ package com.jsowell.pile.dto; +import com.jsowell.common.annotation.Excel; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -13,8 +14,10 @@ import java.math.BigDecimal; @Builder public class ImportMemberBalanceDTO { // 手机号 + @Excel(name = "phone") private String phone; // 余额 + @Excel(name = "balance/100") private BigDecimal balance; }