aiVip
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user