zoujiajian 2 ani în urmă
părinte
comite
c4c43f9206

+ 9 - 3
netflix-dao/src/main/java/com/cyksj/model/views/MidjourneyUserView.java

@@ -1,9 +1,11 @@
 package com.cyksj.model.views;
 
 import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -47,8 +49,12 @@ public class MidjourneyUserView {
     @DbField("mu.expire_time")
     private Date expireTime;
 
+    @DbField("gt.sku_id")
+    private Long skuId;
 
-
-
-
+    /**
+     * mj 套餐包最低单价
+     */
+    @DbIgnore
+    private BigDecimal mjPackagePrice;
 }

+ 13 - 0
netflix-web/src/main/java/com/cyksj/web/controller/mirror/MidjourneyController.java

@@ -1,9 +1,13 @@
 package com.cyksj.web.controller.mirror;
 
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.UpgradePackageMapper;
 import com.cyksj.model.entity.MidjourneyUser;
+import com.cyksj.model.entity.UpgradePackage;
 import com.cyksj.model.views.MidjouneyCarInfoView;
 import com.cyksj.model.views.MidjourneyUserView;
 import com.cyksj.service.midjourney.MidjourneyService;
@@ -16,6 +20,9 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.List;
 
 /** server/镜像服务/mj绘画
  * @author zwhui
@@ -34,6 +41,8 @@ public class MidjourneyController {
 
     private final BeanSearcher beanSearcher;
 
+    private final UpgradePackageMapper upgradePackageMapper;
+
 
     //-------------------------alpha -----------------------
 
@@ -68,6 +77,10 @@ public class MidjourneyController {
         if (search == null) {
             throw BusinessRuntimeException.getInstance("您还未购买车票");
         }
+        List<UpgradePackage> upgradePackages = upgradePackageMapper.selectList(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\"" + search.getSkuId() + "\"')").eq(UpgradePackage::getStatus, Boolean.TRUE).eq(UpgradePackage::getDeleted, Boolean.TRUE));
+        if (CollectionUtil.isNotEmpty(upgradePackages)){
+            upgradePackages.stream().map(e -> e.getPrice().divide(BigDecimal.valueOf(e.getNum()), 2, RoundingMode.HALF_UP)).min(BigDecimal::compareTo).ifPresent(search::setMjPackagePrice);
+        }
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
     }