luodangjia
2025-01-24 c90a8ac772937f8f084356ea1f04c5dba1d9e5d5
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -35,12 +35,15 @@
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.LoginUser;
import org.apache.poi.ss.usermodel.*;
import org.springframework.data.redis.core.RedisTemplate;
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;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
@@ -517,20 +520,21 @@
            appUser.setTotalPoint(appUser.getTotalPoint() - shopPoint);
            //构建积分流水明细
            UserPoint userPoint = new UserPoint();
            userPoint.setType(1);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(shopPoint);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(order.getAppUserId());
            userPoint.setObjectId(order.getId());
            userPointClient.saveUserPoint(userPoint);
            if(shopPoint > 0){
                UserPoint userPoint = new UserPoint();
                userPoint.setType(1);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(shopPoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(order.getAppUserId());
                userPoint.setObjectId(order.getId());
                userPointClient.saveUserPoint(userPoint);
            }
            appUserClient.editAppUserById(appUser);
    
            //降级检测
            boolean vipDemotion = vipDemotion(appUser.getShopPoint(), appUser.getVipId());
            if(vipDemotion){
            if(1 < appUser.getVipId() && appUser.getVipId() < 4){
                appUserClient.vipDemotion(appUser.getId());
            }
            //回退优惠券状态
@@ -594,15 +598,17 @@
            appUser.setTransferablePoint(appUser.getTransferablePoint() + transferablePoint);
            //构建积分流水明细
            UserPoint userPoint = new UserPoint();
            userPoint.setType(11);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(order.getPoint());
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(order.getAppUserId());
            userPoint.setObjectId(order.getId());
            userPointClient.saveUserPoint(userPoint);
            if(order.getPoint() > 0){
                UserPoint userPoint = new UserPoint();
                userPoint.setType(11);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(order.getPoint());
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(order.getAppUserId());
                userPoint.setObjectId(order.getId());
                userPointClient.saveUserPoint(userPoint);
            }
            appUserClient.editAppUserById(appUser);
        }
@@ -650,20 +656,21 @@
        appUser.setTotalPoint(appUser.getTotalPoint() - shopPoint);
        //构建积分流水明细
        UserPoint userPoint = new UserPoint();
        userPoint.setType(1);
        userPoint.setHistoricalPoint(lavePoint);
        userPoint.setVariablePoint(shopPoint);
        userPoint.setBalance(appUser.getLavePoint());
        userPoint.setCreateTime(LocalDateTime.now());
        userPoint.setAppUserId(order.getAppUserId());
        userPoint.setObjectId(order.getId());
        userPointClient.saveUserPoint(userPoint);
        if(shopPoint > 0){
            UserPoint userPoint = new UserPoint();
            userPoint.setType(1);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(shopPoint);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(order.getAppUserId());
            userPoint.setObjectId(order.getId());
            userPointClient.saveUserPoint(userPoint);
        }
        appUserClient.editAppUserById(appUser);
    
        //降级检测
        boolean vipDemotion = vipDemotion(appUser.getShopPoint(), appUser.getVipId());
        if(vipDemotion){
        if(1 < appUser.getVipId() && appUser.getVipId() < 4){
            appUserClient.vipDemotion(appUser.getId());
        }
@@ -710,30 +717,21 @@
        appUser.setTransferablePoint(appUser.getTransferablePoint() + transferablePoint);
        //构建积分流水明细
        UserPoint userPoint = new UserPoint();
        userPoint.setType(11);
        userPoint.setHistoricalPoint(lavePoint);
        userPoint.setVariablePoint(order.getPoint());
        userPoint.setBalance(appUser.getLavePoint());
        userPoint.setCreateTime(LocalDateTime.now());
        userPoint.setAppUserId(order.getAppUserId());
        userPoint.setObjectId(order.getId());
        userPointClient.saveUserPoint(userPoint);
        if(order.getPoint() > 0){
            UserPoint userPoint = new UserPoint();
            userPoint.setType(11);
            userPoint.setHistoricalPoint(lavePoint);
            userPoint.setVariablePoint(order.getPoint());
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(order.getAppUserId());
            userPoint.setObjectId(order.getId());
            userPointClient.saveUserPoint(userPoint);
        }
        return R.ok();
    }
    /**
     * 会员降级检测
     */
    public boolean vipDemotion(Integer shopPoint, Integer vipId){
        if(vipId == 1 || vipId > 3){
            return false;
        }
        VipSetting vipSetting = vipSettingClient.getVipSetting(vipId).getData();
        Integer vipLevelUpShopRole = vipSetting.getVipLevelUpShopRole();
        Integer vipLevelUpShop = vipSetting.getVipLevelUpShop();
        return 1 == vipLevelUpShopRole && shopPoint < vipLevelUpShop;
    }
    
    
    /**
@@ -906,4 +904,19 @@
            }
        }
    }
    @Override
    public void importExpress(MultipartFile file) {
        try (InputStream inputStream = file.getInputStream()) {
            Workbook workbook = WorkbookFactory.create(inputStream);
            Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet
            for (Row row : sheet) {
//                cell.getStringCellValue()
                System.out.println();
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}