zoujiajian hace 11 meses
padre
commit
43d6529a51

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/NanoUserQuota.java

@@ -24,6 +24,8 @@ public class NanoUserQuota extends BaseEntity {
      */
     private Long uid;
 
+    private Long relationId;
+
     /**
      * 用户昵称
      */

+ 15 - 0
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -232,6 +232,8 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
 
     private final GptUserRechargeRecordService gptUserRechargeRecordService;
 
+    private final NanoUserQuotaMapper nanoUserQuotaMapper;
+
     private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
 
     @Override
@@ -483,6 +485,19 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
             }
         }
 
+        //扣除nano套餐次数
+        if (upgradePackage.getGoodsId() == Constant.NANO_GOODS_ID) {
+            NanoUserQuota nanoUserQuota = nanoUserQuotaMapper.selectOne(Wrappers.lambdaQuery(NanoUserQuota.class).eq(NanoUserQuota::getRelationId, orderDon.getRelationId()).last("limit 1"));
+            if (nanoUserQuota != null) {
+                int update = nanoUserQuotaMapper.update(null, Wrappers.lambdaUpdate(NanoUserQuota.class)
+                        .set(NanoUserQuota::getRemainingQuota, nanoUserQuota.getRemainingQuota() < upgradePackage.getNum() ? 0 : nanoUserQuota.getRemainingQuota() - upgradePackage.getNum())
+                        .eq(NanoUserQuota::getId, nanoUserQuota.getId()));
+                if (update == 0) {
+                    log.info("nano user 套餐包增值失败 id:{},orderId:{}", nanoUserQuota.getId(), orderDon.getId());
+                }
+            }
+        }
+
         //扣除gpt套餐升级
         if (upgradePackage.getGoodsId() == 18) {
             ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class).eq(ChatgptUser::getRelationId, orderDon.getRelationId()));

+ 15 - 2
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1885,17 +1885,18 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 
 				if (order.getOrderType() == 1 && order.getGoodsId() == Constant.NANO_GOODS_ID) {
 					//创建nano user
-					createNanoUser(order.getUserId(), sku);
+					createNanoUser(order.getUserId(), order.getRelationId(), sku);
 				}
 			}
 		}
 	}
 
-	private void createNanoUser(Long userId, GoodsDonSku sku) {
+	private void createNanoUser(Long userId, Long relationId, GoodsDonSku sku) {
 		try {
 			User user = userMapper.selectById(userId);
 			NanoUserQuota nanoUserQuota = new NanoUserQuota();
 			nanoUserQuota.setUid(userId);
+			nanoUserQuota.setRelationId(relationId);
 			nanoUserQuota.setUserToken(UUID.randomUUID().toString());
 			nanoUserQuota.setNickname(user.getNickname());
 			nanoUserQuota.setAvatar(user.getHeadimgurl());
@@ -4343,6 +4344,18 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			}
 		}
 
+		//nano
+		if (upgradePackage.getGoodsId() == Constant.NANO_GOODS_ID) {
+			NanoUserQuota nanoUserQuota = nanoUserQuotaMapper.selectOne(Wrappers.lambdaQuery(NanoUserQuota.class).eq(NanoUserQuota::getRelationId, orderDon.getRelationId()));
+			if (nanoUserQuota != null) {
+				int update = nanoUserQuotaMapper.update(null, Wrappers.lambdaUpdate(NanoUserQuota.class)
+						.set(NanoUserQuota::getRemainingQuota, nanoUserQuota.getRemainingQuota() + upgradePackage.getNum()).eq(NanoUserQuota::getId, nanoUserQuota.getId()));
+				if (update == 0) {
+					log.info("nano user 套餐包增值失败 id:{},orderId:{}", nanoUserQuota.getId(), orderDon.getId());
+				}
+			}
+		}
+
 		//银河币返回
 		returnUpgradeGalaxyCoin(orderDon);
 		//查看该订单是否有关闭的余额

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationClearServiceImpl.java

@@ -149,7 +149,7 @@ public class GroupRelationClearServiceImpl implements GroupRelationClearService
 				}
 				//nano
 				if (groupsRelation.getGoodsId() != null && groupsRelation.getGoodsId() == Constant.NANO_GOODS_ID) {
-					nanoUserQuotaMapper.delete(Wrappers.lambdaQuery(NanoUserQuota.class).eq(NanoUserQuota::getUid, userId));
+					nanoUserQuotaMapper.delete(Wrappers.lambdaQuery(NanoUserQuota.class).eq(NanoUserQuota::getRelationId, relationId));
 				}
 			}
 		}