From 2987ec0f865eb816cdcb3fd10e2d556f9b7d95d4 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期三, 03 九月 2025 16:18:10 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java | 58 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 40 insertions(+), 18 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java index 0449fba..762566e 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java @@ -36,6 +36,7 @@ import com.ruoyi.system.api.feignClient.SysUserClient; import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; @@ -58,10 +59,7 @@ import java.time.LocalTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; +import java.util.*; @Slf4j @Service @@ -101,9 +99,17 @@ }*/ List<String> orderNumberList=new ArrayList<>(); JSONObject result = new JSONObject(); - try (InputStream inputStream = file.getInputStream(); - Workbook workbook = new XSSFWorkbook(inputStream)) { -// Workbook workbook = new XSSFWorkbook(fileInputStream); + try (InputStream inputStream = file.getInputStream()) { + Workbook workbook; + + // 判断文件类型并创建相应的Workbook对象 + if (file.getOriginalFilename() != null && file.getOriginalFilename().toLowerCase().endsWith(".xlsx")) { + workbook = new XSSFWorkbook(inputStream); // 处理 .xlsx 文件 + } else if (file.getOriginalFilename() != null && file.getOriginalFilename().toLowerCase().endsWith(".xls")) { + workbook = new HSSFWorkbook(inputStream); // 处理 .xls 文件 + } else { + throw new ServiceException("不支持的文件格式,请上传 .xls 或 .xlsx 格式的文件", 500); + } Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet int lastRowNum = sheet.getLastRowNum(); for (int i = 1; i <= lastRowNum; i++) {//第二行开始 @@ -352,6 +358,26 @@ appuser.setDelFlag(false); appuser.setName(appuser.getPhone().substring(0, 3) + "****" + appuser.getPhone().substring(7)); } + if (site==null){ + //先计算出积分数 + point = getPoint(chargeOrder.getTotalAmount()); + }else{ + point = getPointSite(chargeOrder.getTotalAmount(),site.getId()); + } + // 扣除站点系统用户的积分数 + SysUser sysUser=null; + if(Objects.nonNull(site)){ + List<SysUser> data = sysUserClient.getSysUserAll().getData(); + sysUser = data.stream().filter(e -> site.getId().equals(e.getSiteId())).findFirst().orElse(null); + if (sysUser != null) { + if (sysUser.getIntegral()< point){ + return R.fail("站点积分不足"); + } + }else { + return R.fail("站点用户不存在"); + } + } + Integer chargePoint=appuser.getRechargePoint()==null?0:appuser.getRechargePoint();//充值积分 Integer availablePoint=appuser.getAvailablePoint()==null?0:appuser.getAvailablePoint();//可用积分 Integer totalPoint=appuser.getTotalPoint()==null?0:appuser.getTotalPoint();//总积分 @@ -363,10 +389,7 @@ if (userId==null){ return R.fail("导入订单-保存用户失败"); } - if (site==null){ - //先计算出积分数 - point = getPoint(chargeOrder.getTotalAmount()); - }else{ + if (site!=null){ point = getPointSite(chargeOrder.getTotalAmount(),site.getId()); // 增加站点端积分明细 IntegralRecord integralRecord = new IntegralRecord(); @@ -378,12 +401,11 @@ integralRecord.setCreateTime(LocalDateTime.now()); otherClient.saveIntegralRecord(integralRecord); // 扣除站点系统用户的积分数 - List<SysUser> data = sysUserClient.getSysUserAll().getData(); - SysUser sysUser = data.stream().filter(e -> e.getSiteId().equals(site.getId())).findFirst().orElse(null); - if (sysUser != null) { - sysUser.setIntegral(sysUser.getIntegral()==null?0:sysUser.getIntegral()-point); - sysUserClient.updateSysUser(sysUser); + if (sysUser.getIntegral()==null){ + sysUser.setIntegral(0); } + sysUser.setIntegral(sysUser.getIntegral()==null?0:sysUser.getIntegral()-point); + sysUserClient.updateSysUser(sysUser); } //保存到数据库 chargeOrder.setPoint(point); @@ -458,7 +480,7 @@ throw new RuntimeException("获取积分兑换比例配置失败"); } - if (org.springframework.util.StringUtils.hasLength(data.getChargeCredit())) { + if (!org.springframework.util.StringUtils.hasLength(data.getChargeCredit())) { throw new RuntimeException("获取积分兑换比例配置失败"); } String chargeCredit = data.getChargeCredit(); @@ -474,7 +496,7 @@ } // 计算积分并向下取整(Floor) int cashInt = cash.intValue(); - return cashInt*=num1; + return cashInt * num1; } catch (NumberFormatException e) { throw new RuntimeException("积分兑换比例配置值格式错误", e); -- Gitblit v1.7.1