This commit is contained in:
wuchunlei
2025-06-04 17:12:00 +08:00
parent 6852c64984
commit 5cc6f4f255
12 changed files with 212 additions and 57 deletions

View File

@@ -2,13 +2,18 @@ package com.peanut.modules.taihumed.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.peanut.common.utils.R;
import com.peanut.common.utils.ShiroUtils;
import com.peanut.modules.common.entity.AiBuyConfig;
import com.peanut.modules.common.entity.AiVipLog;
import com.peanut.modules.common.service.AiBuyConfigService;
import com.peanut.modules.common.service.AiVipLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Slf4j
@@ -18,12 +23,41 @@ public class AiBuyConfigController {
@Autowired
private AiBuyConfigService aiBuyConfigService;
@Autowired
private AiVipLogService aiVipLogService;
//ai会员配置列表
@RequestMapping("/getAiBuyConfigList")
public R getAiBuyConfigList(){
List<AiBuyConfig> list = aiBuyConfigService.list(new LambdaQueryWrapper<AiBuyConfig>()
.orderByAsc(AiBuyConfig::getFee));
//是否会员
AiVipLog aiVipLog = aiVipLogService.getOne(new LambdaQueryWrapper<AiVipLog>()
.eq(AiVipLog::getUserId,ShiroUtils.getUId())
.eq(AiVipLog::getState,0));
//不是会员全部返回
if (aiVipLog==null){
for (AiBuyConfig aiBuyConfig:list){
aiBuyConfig.setCanUpgrade(true);
}
}else {
AiBuyConfig config = aiBuyConfigService.getOne(new LambdaQueryWrapper<AiBuyConfig>()
.eq(AiBuyConfig::getType,aiVipLog.getType())
.eq(AiBuyConfig::getCount,aiVipLog.getCount()));
//是会员判断能否升级
for (AiBuyConfig aiBuyConfig:list){
List<AiVipLog> aiVipLogs = aiVipLogService.list(new LambdaQueryWrapper<AiVipLog>()
.eq(AiVipLog::getUserId, ShiroUtils.getUId())
.eq(AiVipLog::getState, 0)
.eq(AiVipLog::getType, aiBuyConfig.getType())
.lt(AiVipLog::getCount, aiBuyConfig.getCount()));
if (aiVipLogs.size()>0){
aiBuyConfig.setCanUpgrade(true);
aiBuyConfig.setUpgradeFee(aiBuyConfig.getFee().subtract(config.getFee()));
aiBuyConfig.setUpgradeCount(new BigDecimal(aiBuyConfig.getCount()).subtract(new BigDecimal(config.getCount()))+"");
}
}
}
return R.ok().put("list",list);
}
}

View File

@@ -2,17 +2,14 @@ package com.peanut.modules.taihumed.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.common.utils.R;
import com.peanut.common.utils.ShiroUtils;
import com.peanut.config.Constants;
import com.peanut.config.DelayQueueConfig;
import com.peanut.modules.book.service.TransactionDetailsService;
import com.peanut.modules.common.entity.BuyOrder;
import com.peanut.modules.common.entity.MyUserEntity;
import com.peanut.modules.common.service.AiVipLogService;
import com.peanut.modules.common.service.BuyOrderService;
import com.peanut.modules.common.service.JfTransactionDetailsService;
import com.peanut.modules.common.service.MyUserService;
import com.peanut.modules.common.entity.*;
import com.peanut.modules.common.service.*;
import com.peanut.modules.pay.weChatPay.dto.WechatPaymentInfo;
import com.peanut.modules.pay.weChatPay.service.WxpayService;
import lombok.extern.slf4j.Slf4j;
@@ -25,6 +22,8 @@ import org.springframework.web.bind.annotation.RestController;
import javax.transaction.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Slf4j
@RestController("taihumedAiVip")
@@ -44,7 +43,45 @@ public class AiVipController {
@Autowired
private WxpayService wxpayService;
@Autowired
private AiChatContentService aiChatContentService;
@Autowired
private AiVipLogService aiVipLogService;
@Autowired
private AiBuyConfigService aiBuyConfigService;
//用户开通aivip信息
@RequestMapping("/getUserAiVip")
public R getUserAiVip(){
int freeCount = 0;
int flag = 0;//不是vip
AiVipLog aiVipLog = aiVipLogService.getOne(new LambdaQueryWrapper<AiVipLog>()
.eq(AiVipLog::getUserId,ShiroUtils.getUId())
.eq(AiVipLog::getState,0));
if (aiVipLog!=null){
List<AiBuyConfig> aiBuyConfig = aiBuyConfigService.list(new LambdaQueryWrapper<AiBuyConfig>()
.eq(AiBuyConfig::getType,aiVipLog.getType())
.orderByDesc(AiBuyConfig::getCount));
//能否升级
if (aiBuyConfig.size() > 0){
if (aiVipLog.getCount()<aiBuyConfig.get(0).getCount()){
flag = 1;//是vip可升级
}else if (aiVipLog.getCount()==aiBuyConfig.get(0).getCount()){
flag = 2;//是vip不可升级
}
}
}else {
List<AiChatContent> quankeContentList = aiChatContentService.list(new LambdaQueryWrapper<AiChatContent>()
.eq(AiChatContent::getUserId,ShiroUtils.getUId())
.like(AiChatContent::getChatAssistantName,"全科")
.orderByAsc(AiChatContent::getCreateTime)
.groupBy(AiChatContent::getChatId));
freeCount = 3-quankeContentList.size();
}
return R.ok().put("aiVipLog",aiVipLog)
.put("flag",flag)
.put("freeCount",freeCount);
}
//aivip下单
@RequestMapping("/placeAiVipOrder")
@@ -52,7 +89,6 @@ public class AiVipController {
public R placeVipOrder(@RequestBody BuyOrder buyOrder){
int uid = ShiroUtils.getUId();
buyOrder.setOrderStatus("0");
buyOrder.setOrderType("aiVip");
String timeId = IdWorker.getTimeId().substring(0, 32);
buyOrder.setOrderSn(timeId);
buyOrder.setUserId(uid);
@@ -73,7 +109,7 @@ public class AiVipController {
jfTransactionDetailsService.recordJfTransaction(buyOrder, user, buyOrder.getJfDeduction());
}
//开通用户aiVip
aiVipLogService.openAiVip(buyOrder.getAiBuyConfigId());
aiVipLogService.openAiVip(buyOrder);
} else {
rabbitTemplate.convertAndSend(
DelayQueueConfig.ORDER_TO_BE_PAY_EXCHANGE,