huliguo
2025-06-26 5a7486e9893a706ed464e3197c9711286b077896
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java
@@ -29,6 +29,8 @@
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
@@ -36,6 +38,8 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -60,21 +64,26 @@
    private UserPointClient userPointClient;
    @Resource
    private ChargeOrderService chargeOrderService;
    private static final String DEFAULT_AVATAR_URL = "http://qijishenghuiyuan.obs.cn-southwest-2.myhuaweicloud.com/admin/aedfbbb41280471f8d9fa7905298b65f.png";
    private static final String DEFAULT_AVATAR_URL = "http://qijishenghuiyuan.obs.cn-southwest-2.myhuaweicloud.com/admin/58084a0ce8c34dc79f9d8b4c0bc3774a.png";
    @Override
    public void importExpress(String url) {
    public void importExpress(MultipartFile file) {
 /*       System.out.println("导入订单url:"+url);
        URL url1 = null;
        try {
            url1 = new URL(url);
            String encodedUrl = new URI(url).toASCIIString();
            url1 = new URL(encodedUrl);
        } catch (MalformedURLException e) {
            throw new RuntimeException(e);
        }
        } catch (URISyntaxException e) {
            throw new RuntimeException(e);
        }*/
        List<String> orderNumberList=new ArrayList<>();
        try (InputStream fileInputStream = url1.openStream()) {
            Workbook workbook = new XSSFWorkbook(fileInputStream);
        try (InputStream inputStream = file.getInputStream();
             Workbook workbook = new XSSFWorkbook(inputStream)) {
//            Workbook workbook = new XSSFWorkbook(fileInputStream);
            Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet
            int lastRowNum = sheet.getLastRowNum();
            for (int i = 1; i <= lastRowNum; i++) {//第二行开始
@@ -129,7 +138,7 @@
                }
                // 结束时间
                Cell endTimeCell = row.getCell(6);
                Cell endTimeCell = row.getCell(7);
                if (endTimeCell == null) {
                    throw new ServiceException("第" + (i + 1) + "行开始时间为空", 500);
                }
@@ -279,8 +288,8 @@
        pageInfo.setRecords(list);
        return pageInfo;
    }
    private R importData(ChargeOrder chargeOrder) {
    @Transactional
    public R importData(ChargeOrder chargeOrder) {
        //先计算出积分数
        Integer point = getPoint(chargeOrder.getTotalAmount());
        //获取用户,更改积分数
@@ -295,13 +304,14 @@
            appuser.setAvatar( DEFAULT_AVATAR_URL);
            appuser.setCreateTime(LocalDateTime.now());
            appuser.setDelFlag(false);
            appuser.setName(appuser.getPhone().substring(0, 3) + "****" + appuser.getPhone().substring(7));
        }
        Integer chargePoint=appuser.getRechargePoint();//充值积分
        Integer availablePoint=appuser.getAvailablePoint();//可用积分
        Integer totalPoint=appuser.getTotalPoint();//总积分
        appuser.setRechargePoint(chargePoint==null?0:chargePoint +point);//充值积分增加
        appuser.setAvailablePoint(availablePoint==null?0:availablePoint+point);//可用积分增加
        appuser.setTotalPoint(totalPoint==null?0:totalPoint+point);//总积分增加
        Integer chargePoint=appuser.getRechargePoint()==null?0:appuser.getRechargePoint();//充值积分
        Integer availablePoint=appuser.getAvailablePoint()==null?0:appuser.getAvailablePoint();//可用积分
        Integer totalPoint=appuser.getTotalPoint()==null?0:appuser.getTotalPoint();//总积分
        appuser.setRechargePoint(chargePoint +point);//充值积分增加
        appuser.setAvailablePoint(availablePoint+point);//可用积分增加
        appuser.setTotalPoint(totalPoint+point);//总积分增加
        Long userId = appUserClient.saveOrUpdateAppUser(appuser);
        if (userId==null){
@@ -323,6 +333,7 @@
            return R.fail("导入订单-保存用户积分流水失败");
        }
        //保存到数据库
        chargeOrder.setPoint(point);
        chargeOrderService.save(chargeOrder);
        return R.ok();