From 7fd053651ac11db87fe4f6c57e65eed3b9a59452 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 23 七月 2025 10:47:24 +0800
Subject: [PATCH] yml活动管理代码

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java |   57 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 38 insertions(+), 19 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 f836ffc..5027c93 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
@@ -1,7 +1,7 @@
 package com.ruoyi.order.service.impl;
 
 import cn.hutool.core.util.IdUtil;
-import com.alibaba.fastjson2.JSONObject;
+import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.api.feignClient.AppUserClient;
@@ -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 R<JSONObject> 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);
+        JSONObject result = new JSONObject();
+        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);
                 }
@@ -229,14 +238,18 @@
 
                 //检查订单号是否重复
                 if (orderNumberList.contains(orderNum)) {
-                    throw new ServiceException("订单号重复:" + orderNum, 500);
+//                    throw new ServiceException("订单号重复:" + orderNum, 500);
+                    result.append("订单号:[", orderNum+"]重复");
+                    continue;
                 }
                 //数据库中是否存在
                 ChargeOrder order = chargeOrderService.getOne(new LambdaQueryWrapper<ChargeOrder>()
                         .eq(ChargeOrder::getOrderNumber, orderNum)
                 );
                 if (order != null) {
-                    throw new ServiceException("数据库中订单已存在:" + orderNum, 500);
+//                    throw new ServiceException("数据库中订单已存在:" + orderNum, 500);
+                    result.append("订单号:[", orderNum+"]数据库中订单已存在");
+                    continue;
                 }
                 orderNumberList.add(orderNum);//添加到订单集合中
 
@@ -270,6 +283,10 @@
             e.printStackTrace();
             throw new ServiceException(e.getMessage());
         }
+        if(!result.isEmpty()){
+            return R.ok(result);
+        }
+        return R.ok();
     }
 
     @Override
@@ -279,8 +296,8 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
-
-    private R importData(ChargeOrder chargeOrder) {
+    @Transactional
+    public R importData(ChargeOrder chargeOrder) {
         //先计算出积分数
         Integer point = getPoint(chargeOrder.getTotalAmount());
         //获取用户,更改积分数
@@ -295,13 +312,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 +341,7 @@
             return R.fail("导入订单-保存用户积分流水失败");
         }
         //保存到数据库
+        chargeOrder.setPoint(point);
         chargeOrderService.save(chargeOrder);
 
         return R.ok();

--
Gitblit v1.7.1