zoujiajian 2 vuotta sitten
vanhempi
sitoutus
5b07f33eca

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ChatGptUserView.java

@@ -37,4 +37,9 @@ public class ChatGptUserView {
      * 使用次数
      */
     private Long use;
+
+    /**
+     * 是否可升级套餐
+     */
+    private Boolean upgrade;
 }

+ 9 - 1
netflix-service/src/main/java/com/cyksj/service/chatgpt/impl/ChatGptAccountServiceImpl.java

@@ -99,6 +99,8 @@ public class ChatGptAccountServiceImpl implements ChatGptAccountService {
 
     private final CollegeStudentStationUseTicketRecordMapper collegeStudentStationUseTicketRecordMapper;
 
+    private final UpgradePackageMapper upgradePackageMapper;
+
     @Override
     public String addAccount(Account account) {
         if (isAccountExists(account)) {
@@ -814,12 +816,18 @@ public class ChatGptAccountServiceImpl implements ChatGptAccountService {
             GroupsTrips groupsTrips = getGroupsTrips(groupsRelation);
             GoodsDonSku goodsDonSku = skuMapper.selectById(groupsTrips.getSkuId());
             ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class).eq(ChatgptUser::getRelationId, relationId));
+
+            Integer count = upgradePackageMapper.selectCount(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\"" + groupsTrips.getSkuId() + "\"')")
+                    .gt(UpgradePackage::getNum, chatgptUser.getLimitNum())
+                    .eq(UpgradePackage::getStatus, Boolean.TRUE));
+            Boolean upgrade = count > 0 ? true : false;
             return ChatGptUserView.builder()
                     .skuName(goodsDonSku.getSubTitle())
                     .expireTime(chatgptUser.getExpireTime())
                     .limitNum(chatgptUser.getLimitNum())
                     .limitTime(chatgptUser.getLimitTime())
-                    .use(Math.min(chatgptUser.getLimitNum(),getConversationCount(chatgptUser.getUserToken(), chatgptUser.getLimitTime())))
+                    .upgrade(upgrade)
+                    .use(Math.min(chatgptUser.getLimitNum(), getConversationCount(chatgptUser.getUserToken(), chatgptUser.getLimitTime())))
                     .build();
         } else {
             throw BusinessRuntimeException.getInstance("您还未购买该车票");