From f9e40800aa15abd4cfd2799f334b015e6f13629c Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 16 Mar 2026 11:21:38 +0800
Subject: [PATCH] feat(yinhe): 新增智能体系统功能并调整配置
---
src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java | 320 ++++++------
src/main/java/cc/mrbird/febs/yinhe/controller/YHApiAgentController.java | 102 ++++
src/main/java/cc/mrbird/febs/yinhe/req/YHAgentDto.java | 14
src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentCategory.java | 40 +
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java | 221 ++++++++
src/main/java/cc/mrbird/febs/yinhe/res/YHSysAgentVo.java | 19
src/main/java/cc/mrbird/febs/yinhe/req/YHCategoryDto.java | 19
src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java | 142 ++--
src/main/java/cc/mrbird/febs/yinhe/req/YHAgentInitDto.java | 17
src/main/java/cc/mrbird/febs/yinhe/req/YHSysAgentDto.java | 13
src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentStartQuestionMapper.java | 7
src/main/java/cc/mrbird/febs/yinhe/res/YHMemberVo.java | 43 +
src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentMapper.java | 7
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java | 3
src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentCategoryMapper.java | 7
src/main/java/cc/mrbird/febs/yinhe/req/YHSysCategoryDto.java | 18
src/main/java/cc/mrbird/febs/pay/util/WechatConfigure.java | 2
src/main/java/cc/mrbird/febs/yinhe/entity/YHSysAgent.java | 45 +
src/main/java/cc/mrbird/febs/yinhe/res/YHSysCategoryVo.java | 16
src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java | 82 +-
src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentStartQuestion.java | 22
src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java | 27 +
src/main/java/cc/mrbird/febs/yinhe/mapper/YhSysAgentCategoryMapper.java | 7
src/main/resources/application-test.yml | 16
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 1
/dev/null | 12
src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java | 23
src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java | 66 +-
src/main/java/cc/mrbird/febs/yinhe/res/YHAgentInitVo.java | 27 +
src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgent.java | 40 +
src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentMapper.java | 7
src/main/java/cc/mrbird/febs/yinhe/entity/YhSysAgentCategory.java | 46 +
src/main/java/cc/mrbird/febs/yinhe/res/YHCategoryVo.java | 16
src/main/java/cc/mrbird/febs/common/utils/YHLoginUserUtil.java | 20
src/main/java/cc/mrbird/febs/yinhe/res/YHAgentVo.java | 22
35 files changed, 1,139 insertions(+), 350 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
index 59043be..7575ee1 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -68,5 +68,8 @@
registration.excludePathPatterns("/api/ai/company/list");
registration.excludePathPatterns("/api/ai/common/**");
registration.excludePathPatterns("/api/ai/videoPlay/**");
+
+ registration.excludePathPatterns("/api/yh/agent/categorySysList");
+ registration.excludePathPatterns("/api/yh/agent/agentSysList");
}
}
diff --git a/src/main/java/cc/mrbird/febs/common/utils/YHLoginUserUtil.java b/src/main/java/cc/mrbird/febs/common/utils/YHLoginUserUtil.java
new file mode 100644
index 0000000..de498c3
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/utils/YHLoginUserUtil.java
@@ -0,0 +1,20 @@
+package cc.mrbird.febs.common.utils;
+
+import cc.mrbird.febs.mall.entity.MallMember;
+import cc.mrbird.febs.yinhe.entity.YhAiMember;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @author xxx
+ * @date 2020-08-24
+ **/
+public class YHLoginUserUtil {
+
+ public static YhAiMember getLoginUser() {
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
+ return (YhAiMember) request.getSession().getAttribute("member");
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java
index d9c2125..338e405 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/BaiduJob.java
@@ -19,46 +19,46 @@
@ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true")
public class BaiduJob {
- @Autowired
- private RedisUtils redisUtils;
- @Resource
- RestTemplate restTemplate;
-
- @Scheduled(cron = "0 0 1 * * ? ")
- public void getAccessToken(){
- // 官网获取的 API Key 更新为你注册的
- String clientId = "MPHXcBxkGLIDOmoaahS9pIB7";
- // 官网获取的 Secret Key 更新为你注册的
- String clientSecret = "f5ueNY65fE9C6FzFTVKc6Imo8NdZSWMw";
- String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
- String getAccessTokenUrl = authHost
- // 1. grant_type为固定参数
- + "grant_type=client_credentials"
- // 2. 官网获取的 API Key
- + "&client_id=" + clientId
- // 3. 官网获取的 Secret Key
- + "&client_secret=" + clientSecret;
- String jsonStr = restTemplate.getForObject(getAccessTokenUrl, String.class);
-
- /**
- * 返回结果
- * {"access_token":"ACCESS_TOKEN","expires_in":7200}
- */
- if (!jsonStr.contains("access_token")) {
- System.out.println("获取access_token失败");
- }
- JSONObject jsonObject = JSONObject.parseObject(jsonStr);
- String accessToken = jsonObject.getString("access_token");
-
- String accessTokenKey = WechatConfigure.BAIDU_ACCESS_TOKEN_REDIS_KEY;
- if (StrUtil.isEmpty(accessToken)) {
- log.error("获取baidu access_token失败: {}" , jsonObject.getString("errmsg"));
- throw new ApiException("获取access token失败");
- } else {
- log.info("baidu access_token : {}",accessToken);
- System.out.println(accessToken);
- redisUtils.set(accessTokenKey,accessToken);
- }
- }
+// @Autowired
+// private RedisUtils redisUtils;
+// @Resource
+// RestTemplate restTemplate;
+//
+// @Scheduled(cron = "0 0 1 * * ? ")
+// public void getAccessToken(){
+// // 官网获取的 API Key 更新为你注册的
+// String clientId = "MPHXcBxkGLIDOmoaahS9pIB7";
+// // 官网获取的 Secret Key 更新为你注册的
+// String clientSecret = "f5ueNY65fE9C6FzFTVKc6Imo8NdZSWMw";
+// String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
+// String getAccessTokenUrl = authHost
+// // 1. grant_type为固定参数
+// + "grant_type=client_credentials"
+// // 2. 官网获取的 API Key
+// + "&client_id=" + clientId
+// // 3. 官网获取的 Secret Key
+// + "&client_secret=" + clientSecret;
+// String jsonStr = restTemplate.getForObject(getAccessTokenUrl, String.class);
+//
+// /**
+// * 返回结果
+// * {"access_token":"ACCESS_TOKEN","expires_in":7200}
+// */
+// if (!jsonStr.contains("access_token")) {
+// System.out.println("获取access_token失败");
+// }
+// JSONObject jsonObject = JSONObject.parseObject(jsonStr);
+// String accessToken = jsonObject.getString("access_token");
+//
+// String accessTokenKey = WechatConfigure.BAIDU_ACCESS_TOKEN_REDIS_KEY;
+// if (StrUtil.isEmpty(accessToken)) {
+// log.error("获取baidu access_token失败: {}" , jsonObject.getString("errmsg"));
+// throw new ApiException("获取access token失败");
+// } else {
+// log.info("baidu access_token : {}",accessToken);
+// System.out.println(accessToken);
+// redisUtils.set(accessTokenKey,accessToken);
+// }
+// }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java
index bab9b03..52e8a8b 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/OrderOvertimeJob.java
@@ -27,77 +27,77 @@
@ConditionalOnProperty(prefix = "system", name = "job", havingValue = "false")
public class OrderOvertimeJob {
- @Autowired
- private MallOrderInfoMapper orderInfoMapper;
-
- @Autowired
- private MallMemberMapper mallMemberMapper;
-
- @Autowired
- private MallOrderItemMapper mallOrderItemMapper;
-
- @Autowired
- private MallGoodsMapper mallGoodsMapper;
-
- @Autowired
- private MallGoodsSkuMapper mallGoodsSkuMapper;
-
- @Autowired
- private MallMemberCouponMapper mallMemberCouponMapper;
-
- @Scheduled(cron = "0 0/5 * * * ? ")
- public void overtimeJob() {
- log.info("订单超时任务执行");
- List<MallOrderInfo> orderList = orderInfoMapper.selectOrderInfoUpTime(OrderStatusEnum.WAIT_PAY.getValue());
- if (CollUtil.isNotEmpty(orderList)) {
- for (MallOrderInfo orderInfo : orderList) {
- //更新订单状态
- orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
- orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY);
- orderInfoMapper.updateById(orderInfo);
-
- List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId());
- if(CollUtil.isNotEmpty(mallOrderItemList)){
- for(MallOrderItem mallOrderItem : mallOrderItemList){
- MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId());
- if (sku == null) {
- throw new FebsException("购买商品或sku不存在");
- }
-
-// if (sku.getStock() < mallOrderItem.getCnt()) {
+// @Autowired
+// private MallOrderInfoMapper orderInfoMapper;
+//
+// @Autowired
+// private MallMemberMapper mallMemberMapper;
+//
+// @Autowired
+// private MallOrderItemMapper mallOrderItemMapper;
+//
+// @Autowired
+// private MallGoodsMapper mallGoodsMapper;
+//
+// @Autowired
+// private MallGoodsSkuMapper mallGoodsSkuMapper;
+//
+// @Autowired
+// private MallMemberCouponMapper mallMemberCouponMapper;
+//
+// @Scheduled(cron = "0 0/5 * * * ? ")
+// public void overtimeJob() {
+// log.info("订单超时任务执行");
+// List<MallOrderInfo> orderList = orderInfoMapper.selectOrderInfoUpTime(OrderStatusEnum.WAIT_PAY.getValue());
+// if (CollUtil.isNotEmpty(orderList)) {
+// for (MallOrderInfo orderInfo : orderList) {
+// //更新订单状态
+// orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
+// orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY);
+// orderInfoMapper.updateById(orderInfo);
+//
+// List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId());
+// if(CollUtil.isNotEmpty(mallOrderItemList)){
+// for(MallOrderItem mallOrderItem : mallOrderItemList){
+// MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId());
+// if (sku == null) {
+// throw new FebsException("购买商品或sku不存在");
+// }
+//
+//// if (sku.getStock() < mallOrderItem.getCnt()) {
+//// throw new FebsException(sku.getSkuName() + "库存不足");
+//// }
+//
+// MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
+// Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt());
+// if(1 != goodsResult){
+// throw new FebsException(mallGoods.getGoodsName() + "库存不足");
+// }
+//
+// Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt());
+// if(1 != skuResult){
// throw new FebsException(sku.getSkuName() + "库存不足");
// }
-
- MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
- Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt());
- if(1 != goodsResult){
- throw new FebsException(mallGoods.getGoodsName() + "库存不足");
- }
-
- Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt());
- if(1 != skuResult){
- throw new FebsException(sku.getSkuName() + "库存不足");
- }
- Long memberCouponId = mallOrderItem.getMemberCouponId();
- MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId);
- if(ObjectUtil.isNotEmpty(mallMemberCoupon)){
- mallMemberCoupon.setState(1);
- mallMemberCouponMapper.updateById(mallMemberCoupon);
- }
- }
- }
- }
- }
-
- }
-
-
-
- @Autowired
- private RedisUtils redisUtils;
-
- @Scheduled(cron = "0/5 * * * * ? ")
- public void wakeup() {
- redisUtils.set("wakeup", "wakeup");
- }
+// Long memberCouponId = mallOrderItem.getMemberCouponId();
+// MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId);
+// if(ObjectUtil.isNotEmpty(mallMemberCoupon)){
+// mallMemberCoupon.setState(1);
+// mallMemberCouponMapper.updateById(mallMemberCoupon);
+// }
+// }
+// }
+// }
+// }
+//
+// }
+//
+//
+//
+// @Autowired
+// private RedisUtils redisUtils;
+//
+// @Scheduled(cron = "0/5 * * * * ? ")
+// public void wakeup() {
+// redisUtils.set("wakeup", "wakeup");
+// }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java
index 2aebfcf..d9ec3fe 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/OrderSettlementJob.java
@@ -37,170 +37,170 @@
@ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true")
public class OrderSettlementJob {
- @Autowired
- private MallOrderInfoMapper mallOrderInfoMapper;
-
- @Autowired
- private MallOrderItemMapper mallOrderItemMapper;
-
- @Autowired
- private IApiMallMemberWalletService memberWalletService;
-
- @Autowired
- private IMallMoneyFlowService mallMoneyFlowService;
-
- @Autowired
- private MallMemberMapper mallMemberMapper;
-
- @Autowired
- private MallGoodsSkuMapper mallGoodsSkuMapper;
-
- @Autowired
- private MallLeaderAchieveMapper mallLeaderAchieveMapper;
-
- @Autowired
- private MallTeamLeaderMapper mallTeamLeaderMapper;
-
- @Autowired
- private DataDictionaryCustomMapper dataDictionaryCustomMapper;
-
- @Autowired
- private IMemberProfitService memberProfitService;
-
- @Autowired
- private IMallAchieveService mallAchieveService;
-
- @Autowired
- private AgentProducer agentProducer;
-
- /**
- * 普通商品结算
- */
+// @Autowired
+// private MallOrderInfoMapper mallOrderInfoMapper;
+//
+// @Autowired
+// private MallOrderItemMapper mallOrderItemMapper;
+//
+// @Autowired
+// private IApiMallMemberWalletService memberWalletService;
+//
+// @Autowired
+// private IMallMoneyFlowService mallMoneyFlowService;
+//
+// @Autowired
+// private MallMemberMapper mallMemberMapper;
+//
+// @Autowired
+// private MallGoodsSkuMapper mallGoodsSkuMapper;
+//
+// @Autowired
+// private MallLeaderAchieveMapper mallLeaderAchieveMapper;
+//
+// @Autowired
+// private MallTeamLeaderMapper mallTeamLeaderMapper;
+//
+// @Autowired
+// private DataDictionaryCustomMapper dataDictionaryCustomMapper;
+//
+// @Autowired
+// private IMemberProfitService memberProfitService;
+//
+// @Autowired
+// private IMallAchieveService mallAchieveService;
+//
+// @Autowired
+// private AgentProducer agentProducer;
+//
+// /**
+// * 普通商品结算
+// */
+//// @Scheduled(cron = "0 0 0 * * ?")
+//// public void normalGoodsSettlementJob() {
+//// log.info("普通商品结算");
+//// List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderInfoWithNormalGoods(DateUtil.offsetDay(new Date(), -10));
+//// if (CollUtil.isEmpty(orderInfos)) {
+//// return;
+//// }
+////
+//// for (MallOrderInfo orderInfo : orderInfos) {
+//// MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId());
+//// if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) {
+//// continue;
+//// }
+////
+//// for (MallOrderItem item : orderInfo.getItems()) {
+//// MallGoodsSku sku = mallGoodsSkuMapper.selectById(item.getSkuId());
+//// BigDecimal score = sku.getPresentPrice();
+////
+//// memberWalletService.add(score, member.getId(), "score");
+//// mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
+////
+//// mallAchieveService.add(item.getId());
+//// }
+////
+//// // 普通商品动态分红结算
+//// memberProfitService.dynamicProfit(orderInfo.getId(), 1);
+//// }
+//// }
+//
+// /**
+// * 自动确认收货
+// */
// @Scheduled(cron = "0 0 0 * * ?")
-// public void normalGoodsSettlementJob() {
-// log.info("普通商品结算");
-// List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderInfoWithNormalGoods(DateUtil.offsetDay(new Date(), -10));
-// if (CollUtil.isEmpty(orderInfos)) {
-// return;
-// }
//
-// for (MallOrderInfo orderInfo : orderInfos) {
-// MallMember member = mallMemberMapper.selectById(orderInfo.getMemberId());
-// if (AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())) {
-// continue;
-// }
-//
-// for (MallOrderItem item : orderInfo.getItems()) {
-// MallGoodsSku sku = mallGoodsSkuMapper.selectById(item.getSkuId());
-// BigDecimal score = sku.getPresentPrice();
-//
-// memberWalletService.add(score, member.getId(), "score");
-// mallMoneyFlowService.addMoneyFlow(member.getId(), score, MoneyFlowTypeEnum.STATIC_BONUS.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.SCORE.getValue());
-//
-// mallAchieveService.add(item.getId());
-// }
-//
-// // 普通商品动态分红结算
-// memberProfitService.dynamicProfit(orderInfo.getId(), 1);
-// }
-// }
-
- /**
- * 自动确认收货
- */
- @Scheduled(cron = "0 0 0 * * ?")
-
-// @Scheduled(cron = "1 * * * * ?")
- public void orderAutoConfirmJob() {
- log.info("自动确认收货");
- DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.OEDER_AUTO_CONFIRM.getType(), DataDictionaryEnum.OEDER_AUTO_CONFIRM.getCode());
- Integer value = Integer.parseInt(dic.getValue());
- List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderByStatusAndPayTime(3,DateUtil.offsetDay(new Date(), -value));
- if(CollUtil.isNotEmpty(orderInfos)){
-// for(MallOrderInfo orderInfo : orderInfos){
-// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode());
-// Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch();
-// if(1 == profitSwitch){
-// BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent());
-//// DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode());
-//// BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
-// //生成一条团长提成记录
-// Long id = orderInfo.getId();
-// List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
-// if(CollUtil.isNotEmpty(mallOrderItemList)){
-// for(MallOrderItem mallOrderItem : mallOrderItemList){
-// Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState();
-// if(1 == state){
-// MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
-// mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
-// mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
-// mallLeaderAchieve.setOrderItemId(mallOrderItem.getId());
-// BigDecimal itemAmount = mallOrderItem.getAmount();
-// mallLeaderAchieve.setAmount(itemAmount);
-// BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN);
-// mallLeaderAchieve.setProfitAmount(bigDecimal);
-// mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
-// mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
-// mallLeaderAchieveMapper.insert(mallLeaderAchieve);
-// }
-// }
-// }
-// }
-// }
- mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value));
-
- orderInfos.forEach(item -> {
- agentProducer.sendGetScoreMsg(item.getId());
- });
- }
- }
- /**
- * 团长第二天才会结算前一天的所有提成
- * 从团长业绩表中查询出前一天的所有已完成订单金额*提成系数,得到今日提成
- * 修改业绩的状态
- * 并生成一条提成流水
- */
-// @Scheduled(cron = "0 0 1 * * ?")
//// @Scheduled(cron = "1 * * * * ?")
-// public void leaderAchieveAuto() {
-// log.info("团长每日提成");
-// //获取每日提成总数
-// /**
-// * a.unique_code uniqueCode 团长特征码
-// * , IFNULL(sum(a.amount),0) amount 每日提成总金额
-// */
-// DateTime dateTime = DateUtil.offsetDay(new Date(), -1);
-//// DateTime dateTime = DateUtil.offsetDay(new Date(), 0);
-// List<Map<String, String>> allLeaderAchieve = mallLeaderAchieveMapper.selectListByStateAndCreateTimeAndUniqueCode(MallLeaderAchieve.STATE_ONE,dateTime);
-// if (CollUtil.isNotEmpty(allLeaderAchieve)) {
-// for (Map<String, String> map : allLeaderAchieve) {
-// String uniqueCode = map.get("uniqueCode");
-// Object profitAmount = map.get("profitAmount");
+// public void orderAutoConfirmJob() {
+// log.info("自动确认收货");
+// DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.OEDER_AUTO_CONFIRM.getType(), DataDictionaryEnum.OEDER_AUTO_CONFIRM.getCode());
+// Integer value = Integer.parseInt(dic.getValue());
+// List<MallOrderInfo> orderInfos = mallOrderInfoMapper.selectOrderByStatusAndPayTime(3,DateUtil.offsetDay(new Date(), -value));
+// if(CollUtil.isNotEmpty(orderInfos)){
+//// for(MallOrderInfo orderInfo : orderInfos){
+//// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(orderInfo.getTakeUniqueCode());
+//// Integer profitSwitch = mallTeamLeader.getProfitSwitch()==null?2:mallTeamLeader.getProfitSwitch();
+//// if(1 == profitSwitch){
+//// BigDecimal bonusPercent =new BigDecimal(mallTeamLeader.getBonusPercent()==null?"0":mallTeamLeader.getBonusPercent());
+////// DataDictionaryCustom dicBonusPercent = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.BONUS_PERCENT.getType(), DataDictionaryEnum.BONUS_PERCENT.getCode());
+////// BigDecimal bonusPercent = new BigDecimal(dicBonusPercent.getValue()).setScale(2,BigDecimal.ROUND_DOWN);
+//// //生成一条团长提成记录
+//// Long id = orderInfo.getId();
+//// List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id);
+//// if(CollUtil.isNotEmpty(mallOrderItemList)){
+//// for(MallOrderItem mallOrderItem : mallOrderItemList){
+//// Integer state = mallOrderItem.getState() == null ? 1 : mallOrderItem.getState();
+//// if(1 == state){
+//// MallLeaderAchieve mallLeaderAchieve = new MallLeaderAchieve();
+//// mallLeaderAchieve.setMemberId(orderInfo.getMemberId());
+//// mallLeaderAchieve.setOrderNo(orderInfo.getOrderNo());
+//// mallLeaderAchieve.setOrderItemId(mallOrderItem.getId());
+//// BigDecimal itemAmount = mallOrderItem.getAmount();
+//// mallLeaderAchieve.setAmount(itemAmount);
+//// BigDecimal bigDecimal = bonusPercent.multiply(itemAmount).setScale(2, BigDecimal.ROUND_DOWN);
+//// mallLeaderAchieve.setProfitAmount(bigDecimal);
+//// mallLeaderAchieve.setUniqueCode(orderInfo.getTakeUniqueCode());
+//// mallLeaderAchieve.setState(MallLeaderAchieve.STATE_ONE);
+//// mallLeaderAchieveMapper.insert(mallLeaderAchieve);
+//// }
+//// }
+//// }
+//// }
+//// }
+// mallOrderInfoMapper.updateOrderConfirmStatus(DateUtil.date(),DateUtil.offsetDay(new Date(), -value));
//
-// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(uniqueCode);
-// Integer profitSwitch = mallTeamLeader.getProfitSwitch();
-// if(1 == profitSwitch){
-// //直接舍弃小数点的第三位
-// BigDecimal achieveMoney = new BigDecimal(String.valueOf(profitAmount)).setScale(2,BigDecimal.ROUND_DOWN);
-// MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode);
-// memberWalletService.addBalance(achieveMoney,mallMember.getId());
-// String achieveNo = "TC."+ MallUtils.getOrderNum();
-// mallMoneyFlowService.addMoneyFlow(
-// mallMember.getId(),
-// achieveMoney,
-// MoneyFlowTypeEnum.LEADERACHIEVE.getValue(),
-// achieveNo,
-// FlowTypeEnum.BALANCE.getValue());
-//
-// //更新到已提成状态
-// mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime);
-// }
-// }
+// orderInfos.forEach(item -> {
+// agentProducer.sendGetScoreMsg(item.getId());
+// });
// }
// }
-
-// public static void main(String[] args) {
-// BigDecimal bigDecimal = new BigDecimal(0.1256).setScale(2,BigDecimal.ROUND_DOWN);
-// System.out.println(bigDecimal);
-// }
+// /**
+// * 团长第二天才会结算前一天的所有提成
+// * 从团长业绩表中查询出前一天的所有已完成订单金额*提成系数,得到今日提成
+// * 修改业绩的状态
+// * 并生成一条提成流水
+// */
+//// @Scheduled(cron = "0 0 1 * * ?")
+////// @Scheduled(cron = "1 * * * * ?")
+//// public void leaderAchieveAuto() {
+//// log.info("团长每日提成");
+//// //获取每日提成总数
+//// /**
+//// * a.unique_code uniqueCode 团长特征码
+//// * , IFNULL(sum(a.amount),0) amount 每日提成总金额
+//// */
+//// DateTime dateTime = DateUtil.offsetDay(new Date(), -1);
+////// DateTime dateTime = DateUtil.offsetDay(new Date(), 0);
+//// List<Map<String, String>> allLeaderAchieve = mallLeaderAchieveMapper.selectListByStateAndCreateTimeAndUniqueCode(MallLeaderAchieve.STATE_ONE,dateTime);
+//// if (CollUtil.isNotEmpty(allLeaderAchieve)) {
+//// for (Map<String, String> map : allLeaderAchieve) {
+//// String uniqueCode = map.get("uniqueCode");
+//// Object profitAmount = map.get("profitAmount");
+////
+//// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(uniqueCode);
+//// Integer profitSwitch = mallTeamLeader.getProfitSwitch();
+//// if(1 == profitSwitch){
+//// //直接舍弃小数点的第三位
+//// BigDecimal achieveMoney = new BigDecimal(String.valueOf(profitAmount)).setScale(2,BigDecimal.ROUND_DOWN);
+//// MallMember mallMember = mallMemberMapper.selectInfoByInviteId(uniqueCode);
+//// memberWalletService.addBalance(achieveMoney,mallMember.getId());
+//// String achieveNo = "TC."+ MallUtils.getOrderNum();
+//// mallMoneyFlowService.addMoneyFlow(
+//// mallMember.getId(),
+//// achieveMoney,
+//// MoneyFlowTypeEnum.LEADERACHIEVE.getValue(),
+//// achieveNo,
+//// FlowTypeEnum.BALANCE.getValue());
+////
+//// //更新到已提成状态
+//// mallLeaderAchieveMapper.updateByUniqueCodeStateAndTime(DateUtil.date(),uniqueCode,MallLeaderAchieve.STATE_ONE,dateTime);
+//// }
+//// }
+//// }
+//// }
+//
+//// public static void main(String[] args) {
+//// BigDecimal bigDecimal = new BigDecimal(0.1256).setScale(2,BigDecimal.ROUND_DOWN);
+//// System.out.println(bigDecimal);
+//// }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
index 0dbf31c..15d728d 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -37,38 +37,38 @@
@ConditionalOnProperty(prefix = "system", name = "job", havingValue = "true")
public class ProfitJob {
- @Resource
- private HappyActivityService happyActivityService;
-
- /**
- * 活动时间结束更新
- * 一分钟运行一次
- */
- @Scheduled(cron = "0 0/1 * * * ? ")
- public void activityEnd() {
- happyActivityService.activityEnd();
- }
-
- /**
- * 活动时间开始更新
- * 一分钟运行一次
- */
- @Scheduled(cron = "0 0/1 * * * ? ")
- public void activityStart() {
-
- happyActivityService.activityStart();
-
- }
-
-
-
- /**
- * 订单失效
- * 五分钟运行一次
- */
- @Scheduled(cron = "0 0/5 * * * ? ")
- public void overtimeJob() {
- happyActivityService.overtimeJob();
- }
+// @Resource
+// private HappyActivityService happyActivityService;
+//
+// /**
+// * 活动时间结束更新
+// * 一分钟运行一次
+// */
+// @Scheduled(cron = "0 0/1 * * * ? ")
+// public void activityEnd() {
+// happyActivityService.activityEnd();
+// }
+//
+// /**
+// * 活动时间开始更新
+// * 一分钟运行一次
+// */
+// @Scheduled(cron = "0 0/1 * * * ? ")
+// public void activityStart() {
+//
+// happyActivityService.activityStart();
+//
+// }
+//
+//
+//
+// /**
+// * 订单失效
+// * 五分钟运行一次
+// */
+// @Scheduled(cron = "0 0/5 * * * ? ")
+// public void overtimeJob() {
+// happyActivityService.overtimeJob();
+// }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java
index 10dffe2..a9a1962 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/WxxcxJob.java
@@ -77,27 +77,4 @@
}
- @Scheduled(cron = "0 0 0/1 * * ? ")
- public void expireCoupon() {
- List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByExpireTime(DateUtil.date());
- if(CollUtil.isEmpty(mallMemberCoupons)){
- return;
- }
- for(MallMemberCoupon mallMemberCoupon : mallMemberCoupons){
- mallMemberCoupon.setState(3);
- mallMemberCouponMapper.updateById(mallMemberCoupon);
- }
-
- }
-
- /**
- * 更新发票记录表数据
- * 定时,每天凌晨一点
- * 已完成的订单,更新到发票记录中
- */
- @Scheduled(cron = "0 0 1 * * ?")
- public void mallInvoiceJob() {
- mallInvoiceService.mallInvoiceJob();
- }
-
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 6a585ee..1805188 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -758,7 +758,6 @@
);
String inviteId = ShareCodeUtil.toSerialCode(entity.getId());
entity.setInviteId(inviteId);
- entity.setName("XCX"+inviteId);
yhAiMemberMapper.updateById(entity);
} else {
if ("1".equals(entity.getAccountStatus())) {
diff --git a/src/main/java/cc/mrbird/febs/pay/util/WechatConfigure.java b/src/main/java/cc/mrbird/febs/pay/util/WechatConfigure.java
index 4c940c8..ca433c5 100644
--- a/src/main/java/cc/mrbird/febs/pay/util/WechatConfigure.java
+++ b/src/main/java/cc/mrbird/febs/pay/util/WechatConfigure.java
@@ -6,7 +6,7 @@
public static final String SEND_INFO_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=";
- public static final String WX_ACCESS_TOKEN_REDIS_KEY = "access_token";
+ public static final String WX_ACCESS_TOKEN_REDIS_KEY = "yh_access_token";
public static final String BAIDU_ACCESS_TOKEN_REDIS_KEY = "bd_access_token";
public static final String UNIFIEDORDER = "https://api.mch.weixin.qq.com/pay/unifiedorder";
diff --git a/src/main/java/cc/mrbird/febs/yinhe/controller/YHApiAgentController.java b/src/main/java/cc/mrbird/febs/yinhe/controller/YHApiAgentController.java
new file mode 100644
index 0000000..1579475
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/controller/YHApiAgentController.java
@@ -0,0 +1,102 @@
+package cc.mrbird.febs.yinhe.controller;
+
+import cc.mrbird.febs.ai.req.product.ApiProductInfoDto;
+import cc.mrbird.febs.ai.req.product.ApiProductPageDto;
+import cc.mrbird.febs.ai.res.product.ApiProductInfoVo;
+import cc.mrbird.febs.ai.res.product.ApiProductVo;
+import cc.mrbird.febs.ai.res.productPoint.ApiProductPointVo;
+import cc.mrbird.febs.ai.service.AiProductService;
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.mall.vo.MallMemberVo;
+import cc.mrbird.febs.yinhe.req.*;
+import cc.mrbird.febs.yinhe.res.*;
+import cc.mrbird.febs.yinhe.service.YhAiService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author Administrator
+ */
+@Slf4j
+@Validated
+@RestController
+@RequiredArgsConstructor
+@RequestMapping(value = "/api/yh/agent")
+@Api(value = "YHApiAgentController", tags = "AI-银和-智能体相关接口")
+public class YHApiAgentController {
+
+ private final YhAiService service;
+ @ApiOperation(value = "获取用户信息", notes = "获取用户信息")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = YHMemberVo.class)
+ })
+ @GetMapping(value = "/memberInfo")
+ public FebsResponse memberInfo() {
+
+ return service.memberInfo();
+ }
+
+ @ApiOperation(value = "公司-智能体分类", notes = "公司-智能体分类")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = YHCategoryVo.class)
+ })
+ @PostMapping(value = "/categoryList")
+ public FebsResponse categoryList(@RequestBody @Validated YHCategoryDto dto) {
+
+ return service.categoryList(dto);
+ }
+
+ @ApiOperation(value = "公司-智能体", notes = "公司-智能体")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = YHAgentVo.class)
+ })
+ @PostMapping(value = "/agentList")
+ public FebsResponse agentList(@RequestBody @Validated YHAgentDto dto) {
+
+ return service.agentList(dto);
+ }
+
+ @ApiOperation(value = "公司-智能体-查看详情", notes = "公司-智能体-查看详情")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = YHAgentInitVo.class)
+ })
+ @PostMapping(value = "/agentInfo")
+ public FebsResponse agentInfo(@RequestBody @Validated YHAgentInitDto dto) {
+
+ return service.agentInfo(dto);
+ }
+
+ @ApiOperation(value = "首页-智能体分类", notes = "首页-智能体分类")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = YHSysCategoryVo.class)
+ })
+ @PostMapping(value = "/categorySysList")
+ public FebsResponse categoryList(@RequestBody @Validated YHSysCategoryDto dto) {
+
+ return service.categorySysList(dto);
+ }
+
+ @ApiOperation(value = "首页-智能体", notes = "首页-智能体")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = YHSysAgentVo.class)
+ })
+ @PostMapping(value = "/agentSysList")
+ public FebsResponse agentList(@RequestBody @Validated YHSysAgentDto dto) {
+
+ return service.agentSysList(dto);
+ }
+
+ @ApiOperation(value = "退出", notes = "退出")
+ @PostMapping(value = "/logout")
+ public FebsResponse logout() {
+
+ return service.logout();
+ }
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgent.java b/src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgent.java
new file mode 100644
index 0000000..1d38390
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgent.java
@@ -0,0 +1,40 @@
+package cc.mrbird.febs.yinhe.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("ai_agent")
+public class YHAiAgent extends YhBaseEntity {
+
+ /** 主键 */
+ private String id;
+
+ /** 公司ID */
+ private String companyId;
+
+ /** 代理分类ID */
+ private String agentCategoryId;
+
+ /** 名称 */
+ private String name;
+
+ /** 状态 0-禁用 1-启用 2-已删除 */
+ private Integer state;
+
+ /** 描述 */
+ private String description;
+
+ /** 背景图片 */
+ private String backImg;
+
+ /** 小图标 */
+ private String iconImg;
+
+ /** 提示词 */
+ private String prompt;
+
+ /** 开场白 */
+ private String introduct;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentCategory.java b/src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentCategory.java
new file mode 100644
index 0000000..634b86e
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentCategory.java
@@ -0,0 +1,40 @@
+package cc.mrbird.febs.yinhe.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("ai_agent_category")
+public class YHAiAgentCategory extends YhBaseEntity {
+
+ /** 主键 */
+ private String id;
+
+ /** 公司ID */
+ private String companyId;
+
+ /** 名称 */
+ private String name;
+
+ /** 背景图片 */
+ private String backImg;
+
+ /** 小图标 */
+ private String iconImg;
+
+ /** 排序 */
+ private Integer sort;
+
+ /** 状态 0-禁用 1-启用 2-已删除 */
+ private Integer state;
+
+ /** 是否推荐到小程序首页 1-推荐 0-不推荐 */
+ private Integer hotState;
+
+ /** 级别 */
+ private Integer level;
+
+ /** 父级ID */
+ private String parentId;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentStartQuestion.java b/src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentStartQuestion.java
new file mode 100644
index 0000000..39cc04b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentStartQuestion.java
@@ -0,0 +1,22 @@
+package cc.mrbird.febs.yinhe.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("ai_agent_start_question")
+public class YHAiAgentStartQuestion extends YhBaseEntity {
+
+ /** 主键 */
+ private String id;
+
+ /** 公司ID */
+ private String companyId;
+
+ /** 代理ID */
+ private String agentId;
+
+ /** 问题内容 */
+ private String title;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/entity/YHSysAgent.java b/src/main/java/cc/mrbird/febs/yinhe/entity/YHSysAgent.java
new file mode 100644
index 0000000..7af980b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/entity/YHSysAgent.java
@@ -0,0 +1,45 @@
+package cc.mrbird.febs.yinhe.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * 智能体信息表 ai_sys_agent
+ *
+ * @author ruoyi
+ */
+@Data
+@TableName("sys_agent")
+public class YHSysAgent extends YhBaseEntity
+{
+ /** 主键 */
+ private String id;
+
+ /** 公司ID */
+ private String companyId;
+
+ /** 分类ID */
+ private String agentCategoryId;
+
+ /** 名称 */
+ private String name;
+
+ /** 状态 0-禁用 1-启用 2-已删除 */
+ private Integer state;
+
+ /** 描述 */
+ private String description;
+
+ /** 背景图片 */
+ private String backImg;
+
+ /** 小图标 */
+ private String iconImg;
+
+ /** 提示词 */
+ private String prompt;
+
+ /** 开场白 */
+ private String introduct;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/entity/YhSysAgentCategory.java b/src/main/java/cc/mrbird/febs/yinhe/entity/YhSysAgentCategory.java
new file mode 100644
index 0000000..c84b0ce
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/entity/YhSysAgentCategory.java
@@ -0,0 +1,46 @@
+package cc.mrbird.febs.yinhe.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * 智能体分类表 ai_sys_agent_category
+ *
+ * @author ruoyi
+ */
+@Data
+@TableName("sys_agent_category")
+public class YhSysAgentCategory extends YhBaseEntity
+{
+ /** 主键 */
+ private String id;
+
+ /** 公司ID */
+ private String companyId;
+
+
+ /** 名称 */
+ private String name;
+
+ /** 背景图片 */
+ private String backImg;
+
+ /** 小图标 */
+ private String iconImg;
+
+ /** 排序 */
+ private Integer sort;
+
+ /** 状态 0-禁用 1-启用 2-已删除 */
+ private Integer state;
+
+ /** 是否推荐到首页 1-推荐 0-不推荐 */
+ private Integer hotState;
+
+ /** 层级 */
+ private Integer level;
+
+ /** 父级ID */
+ private String parentId;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentCategoryMapper.java b/src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentCategoryMapper.java
new file mode 100644
index 0000000..deb7ca2
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentCategoryMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.yinhe.mapper;
+
+import cc.mrbird.febs.yinhe.entity.YHAiAgentCategory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface YHAiAgentCategoryMapper extends BaseMapper<YHAiAgentCategory> {
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentMapper.java b/src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentMapper.java
new file mode 100644
index 0000000..d3a61d6
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.yinhe.mapper;
+
+import cc.mrbird.febs.yinhe.entity.YHAiAgent;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface YHAiAgentMapper extends BaseMapper<YHAiAgent> {
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentStartQuestionMapper.java b/src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentStartQuestionMapper.java
new file mode 100644
index 0000000..509b3ce
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentStartQuestionMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.yinhe.mapper;
+
+import cc.mrbird.febs.yinhe.entity.YHAiAgentStartQuestion;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface YHAiAgentStartQuestionMapper extends BaseMapper<YHAiAgentStartQuestion> {
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentMapper.java b/src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentMapper.java
new file mode 100644
index 0000000..5e7aa9f
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/mapper/YHSysAgentMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.yinhe.mapper;
+
+import cc.mrbird.febs.yinhe.entity.YHSysAgent;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface YHSysAgentMapper extends BaseMapper<YHSysAgent> {
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/mapper/YhSysAgentCategoryMapper.java b/src/main/java/cc/mrbird/febs/yinhe/mapper/YhSysAgentCategoryMapper.java
new file mode 100644
index 0000000..697832b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/mapper/YhSysAgentCategoryMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.yinhe.mapper;
+
+import cc.mrbird.febs.yinhe.entity.YhSysAgentCategory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface YhSysAgentCategoryMapper extends BaseMapper<YhSysAgentCategory> {
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/req/YHAgentDto.java b/src/main/java/cc/mrbird/febs/yinhe/req/YHAgentDto.java
new file mode 100644
index 0000000..71a6f27
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/req/YHAgentDto.java
@@ -0,0 +1,14 @@
+package cc.mrbird.febs.yinhe.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "YHAgentDto", description = "参数")
+public class YHAgentDto {
+
+ @ApiModelProperty(value = "分类", example = "1")
+ private String agentCategoryId;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/req/YHAgentInitDto.java b/src/main/java/cc/mrbird/febs/yinhe/req/YHAgentInitDto.java
new file mode 100644
index 0000000..a7e88df
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/req/YHAgentInitDto.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.yinhe.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+@ApiModel(value = "YHAgentInitDto", description = "参数")
+public class YHAgentInitDto {
+
+ @NotBlank(message = "智能体不能为空")
+ @ApiModelProperty(value = "智能体ID", example = "you_ke_*****")
+ private String id;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/req/YHCategoryDto.java b/src/main/java/cc/mrbird/febs/yinhe/req/YHCategoryDto.java
new file mode 100644
index 0000000..802f1a0
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/req/YHCategoryDto.java
@@ -0,0 +1,19 @@
+package cc.mrbird.febs.yinhe.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+@ApiModel(value = "YHCategoryDto", description = "参数")
+public class YHCategoryDto {
+
+ @ApiModelProperty(value = "ID", example = "10")
+ private String id;
+
+ @ApiModelProperty(value = "是否推荐到小程序首页 1-推荐 0-不推荐", example = "1")
+ private Integer hotState;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/req/YHSysAgentDto.java b/src/main/java/cc/mrbird/febs/yinhe/req/YHSysAgentDto.java
new file mode 100644
index 0000000..75f204b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/req/YHSysAgentDto.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.yinhe.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "YHSysAgentDto", description = "参数")
+public class YHSysAgentDto {
+
+ @ApiModelProperty(value = "分类", example = "1")
+ private String agentCategoryId;
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/req/YHSysCategoryDto.java b/src/main/java/cc/mrbird/febs/yinhe/req/YHSysCategoryDto.java
new file mode 100644
index 0000000..df46663
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/req/YHSysCategoryDto.java
@@ -0,0 +1,18 @@
+package cc.mrbird.febs.yinhe.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+@ApiModel(value = "YHSysCategoryDto", description = "参数")
+public class YHSysCategoryDto {
+
+ @ApiModelProperty(value = "产品ID", example = "10")
+ private String id;
+
+ @ApiModelProperty(value = "是否推荐到小程序首页 1-推荐 0-不推荐", example = "1")
+ private Integer hotState;
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/res/YHAgentInitVo.java b/src/main/java/cc/mrbird/febs/yinhe/res/YHAgentInitVo.java
new file mode 100644
index 0000000..4b7670e
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/res/YHAgentInitVo.java
@@ -0,0 +1,27 @@
+package cc.mrbird.febs.yinhe.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "YHAgentInitVo", description = "详情响应")
+public class YHAgentInitVo {
+
+ @ApiModelProperty(value = "智能体ID*", example = "1")
+ private String id;
+ @ApiModelProperty(value = "名称*", example = "1")
+ private String name;
+ @ApiModelProperty(value = "描述*", example = "1")
+ private String description;
+ @ApiModelProperty(value = "小图标*", example = "1")
+ private String iconImg;
+ @ApiModelProperty(value = "开场白*", example = "1")
+ private String introduct;
+
+ @ApiModelProperty(value = "开场白预设问题", example = "1")
+ private List<String> items;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/res/YHAgentVo.java b/src/main/java/cc/mrbird/febs/yinhe/res/YHAgentVo.java
new file mode 100644
index 0000000..1ce5c11
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/res/YHAgentVo.java
@@ -0,0 +1,22 @@
+package cc.mrbird.febs.yinhe.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "YHAgentVo", description = "参数")
+public class YHAgentVo {
+
+ @ApiModelProperty(value = "智能体ID*", example = "1")
+ private String id;
+ @ApiModelProperty(value = "名称*", example = "1")
+ private String name;
+ @ApiModelProperty(value = "描述*", example = "1")
+ private String description;
+ @ApiModelProperty(value = "小图标*", example = "1")
+ private String iconImg;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/res/YHCategoryVo.java b/src/main/java/cc/mrbird/febs/yinhe/res/YHCategoryVo.java
new file mode 100644
index 0000000..c2628bd
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/res/YHCategoryVo.java
@@ -0,0 +1,16 @@
+package cc.mrbird.febs.yinhe.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "YHCategoryVo", description = "参数")
+public class YHCategoryVo {
+
+ @ApiModelProperty(value = "名称")
+ private String name;
+
+ @ApiModelProperty(value = "ID")
+ private String id;
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/res/YHMemberVo.java b/src/main/java/cc/mrbird/febs/yinhe/res/YHMemberVo.java
new file mode 100644
index 0000000..023a490
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/res/YHMemberVo.java
@@ -0,0 +1,43 @@
+package cc.mrbird.febs.yinhe.res;
+
+import cc.mrbird.febs.mall.vo.memberLevel.ApiLabelInfoVo;
+import cc.mrbird.febs.vip.entity.MallVipConfig;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@ApiModel(value = "YHMemberVo", description = "参数")
+public class YHMemberVo {
+
+
+ @ApiModelProperty(value = "会员ID")
+ private String memberUuid;
+
+ @ApiModelProperty(value = "头像")
+ private String avatar;
+
+ @ApiModelProperty(value = "昵称")
+ private String name;
+
+ @ApiModelProperty(value = "真实姓名")
+ private String realName;
+
+ @ApiModelProperty(value = "性别")
+ private String sex;
+
+ @ApiModelProperty(value = "公司ID")
+ private String companyId;
+
+ @ApiModelProperty(value = "公司")
+ private String companyName;
+
+ @ApiModelProperty(value = "手机号")
+ private String phone;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/res/YHSysAgentVo.java b/src/main/java/cc/mrbird/febs/yinhe/res/YHSysAgentVo.java
new file mode 100644
index 0000000..bd80b92
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/res/YHSysAgentVo.java
@@ -0,0 +1,19 @@
+package cc.mrbird.febs.yinhe.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "YHSysAgentVo", description = "参数")
+public class YHSysAgentVo {
+
+ @ApiModelProperty(value = "智能体ID*", example = "1")
+ private String id;
+ @ApiModelProperty(value = "名称*", example = "1")
+ private String name;
+ @ApiModelProperty(value = "描述*", example = "1")
+ private String description;
+ @ApiModelProperty(value = "小图标*", example = "1")
+ private String iconImg;
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/res/YHSysCategoryVo.java b/src/main/java/cc/mrbird/febs/yinhe/res/YHSysCategoryVo.java
new file mode 100644
index 0000000..9b8a382
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/res/YHSysCategoryVo.java
@@ -0,0 +1,16 @@
+package cc.mrbird.febs.yinhe.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "YHSysCategoryVo", description = "参数")
+public class YHSysCategoryVo {
+
+ @ApiModelProperty(value = "名称")
+ private String name;
+
+ @ApiModelProperty(value = "ID")
+ private String id;
+}
diff --git a/src/main/java/cc/mrbird/febs/yinhe/service/YhAiMemberService.java b/src/main/java/cc/mrbird/febs/yinhe/service/YhAiMemberService.java
deleted file mode 100644
index 83820d7..0000000
--- a/src/main/java/cc/mrbird/febs/yinhe/service/YhAiMemberService.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package cc.mrbird.febs.yinhe.service;
-
-import cc.mrbird.febs.yinhe.entity.YhAiMember;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * 用户表 Service 接口
- * 对应数据库表:ai_member
- */
-public interface YhAiMemberService extends IService<YhAiMember> {
-
-}
\ No newline at end of file
diff --git a/src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java b/src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java
new file mode 100644
index 0000000..563d98f
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/service/YhAiService.java
@@ -0,0 +1,27 @@
+package cc.mrbird.febs.yinhe.service;
+
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.yinhe.entity.YhAiMember;
+import cc.mrbird.febs.yinhe.req.*;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 用户表 Service 接口
+ * 对应数据库表:ai_member
+ */
+public interface YhAiService extends IService<YhAiMember> {
+
+ FebsResponse memberInfo();
+
+ FebsResponse categoryList(YHCategoryDto dto);
+
+ FebsResponse agentList(YHAgentDto dto);
+
+ FebsResponse agentInfo(YHAgentInitDto dto);
+
+ FebsResponse categorySysList(YHSysCategoryDto dto);
+
+ FebsResponse agentSysList(YHSysAgentDto dto);
+
+ FebsResponse logout();
+}
\ No newline at end of file
diff --git a/src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java b/src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
new file mode 100644
index 0000000..8b8caec
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
@@ -0,0 +1,221 @@
+package cc.mrbird.febs.yinhe.service.impl;
+
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.utils.AppContants;
+import cc.mrbird.febs.common.utils.LoginUserUtil;
+import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.common.utils.YHLoginUserUtil;
+import cc.mrbird.febs.yinhe.entity.*;
+import cc.mrbird.febs.yinhe.mapper.*;
+import cc.mrbird.febs.yinhe.req.*;
+import cc.mrbird.febs.yinhe.res.*;
+import cc.mrbird.febs.yinhe.service.YhAiService;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class YhAiServiceImpl extends ServiceImpl<YhAiMemberMapper, YhAiMember> implements YhAiService {
+
+ private final YhAiMemberMapper yhAiMemberMapper;
+ private final YHAiCompanyMapper yhAiCompanyMapper;
+
+ private final YHAiAgentCategoryMapper yhAiAgentCategoryMapper;
+ private final YHAiAgentMapper yhAiAgentMapper;
+ private final YHAiAgentStartQuestionMapper yhAiAgentStartQuestionMapper;
+
+ private final YhSysAgentCategoryMapper yhSysAgentCategoryMapper;
+ private final YHSysAgentMapper yhSysAgentMapper;
+
+ private final RedisUtils redisUtils;
+
+ @Override
+ public FebsResponse memberInfo() {
+
+ String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid();
+
+ YHMemberVo yhMemberVo = new YHMemberVo();
+ YhAiMember yhAiMember = yhAiMemberMapper.selectOne(
+ Wrappers.lambdaQuery(YhAiMember.class)
+ .eq(YhAiMember::getMemberUuid, memberUuid)
+ );
+ if (ObjectUtil.isNotEmpty(yhAiMember)){
+ String companyId = yhAiMember.getCompanyId();
+ YHAiCompany yhAiCompany = yhAiCompanyMapper.selectById(companyId);
+
+ yhMemberVo.setMemberUuid(yhAiMember.getMemberUuid());
+ yhMemberVo.setAvatar(yhAiMember.getAvatar());
+ yhMemberVo.setName(yhAiMember.getName());
+ yhMemberVo.setRealName(yhAiMember.getRealName());
+ yhMemberVo.setSex(yhAiMember.getSex());
+ yhMemberVo.setCompanyId(yhAiCompany.getId());
+ yhMemberVo.setCompanyName(yhAiCompany.getName());
+ yhMemberVo.setPhone(yhAiMember.getPhone());
+ }
+ return new FebsResponse().success().data(yhMemberVo);
+ }
+
+ @Override
+ public FebsResponse categoryList(YHCategoryDto dto) {
+ String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
+ List<YHCategoryVo> yhCategoryVos = new ArrayList<>();
+
+ LambdaQueryWrapper<YHAiAgentCategory> query = Wrappers.lambdaQuery(YHAiAgentCategory.class);
+ query.eq(YHAiAgentCategory::getCompanyId,companyId);
+ query.eq(YHAiAgentCategory::getState,1);
+ if (ObjectUtil.isNotEmpty(dto.getId())){
+ query.eq(YHAiAgentCategory::getId,dto.getId());
+ }
+ if (ObjectUtil.isNotEmpty(dto.getHotState())){
+ query.eq(YHAiAgentCategory::getHotState,dto.getHotState());
+ }
+ query.orderByAsc(YHAiAgentCategory::getSort);
+ List<YHAiAgentCategory> yhAiAgentCategories = yhAiAgentCategoryMapper.selectList(query);
+
+ if (CollUtil.isNotEmpty(yhAiAgentCategories)){
+ for (YHAiAgentCategory yhAiAgentCategory : yhAiAgentCategories) {
+ YHCategoryVo yhCategoryVo = new YHCategoryVo();
+ yhCategoryVo.setName(yhAiAgentCategory.getName());
+ yhCategoryVo.setId(yhAiAgentCategory.getId());
+ yhCategoryVos.add(yhCategoryVo);
+ }
+ }
+
+ return new FebsResponse().success().data(yhCategoryVos);
+ }
+
+ @Override
+ public FebsResponse agentList(YHAgentDto dto) {
+ String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
+
+ ArrayList<YHAgentVo> yhAgentVos = new ArrayList<>();
+ LambdaQueryWrapper<YHAiAgent> query = Wrappers.lambdaQuery(YHAiAgent.class);
+ query.eq(YHAiAgent::getCompanyId,companyId);
+ query.eq(YHAiAgent::getState,1);
+ if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){
+ query.eq(YHAiAgent::getAgentCategoryId,dto.getAgentCategoryId());
+ }
+ query.orderByDesc(YHAiAgent::getCreateTime);
+
+ List<YHAiAgent> yhAiAgents = yhAiAgentMapper.selectList(query);
+ if (CollUtil.isNotEmpty(yhAiAgents)){
+
+ for (YHAiAgent yhAiAgent : yhAiAgents) {
+ YHAgentVo yhAgentVo = new YHAgentVo();
+ yhAgentVo.setId(yhAiAgent.getId());
+ yhAgentVo.setName(yhAiAgent.getName());
+ yhAgentVo.setDescription(yhAiAgent.getDescription());
+ yhAgentVo.setIconImg(yhAiAgent.getIconImg());
+ yhAgentVos.add(yhAgentVo);
+ }
+ }
+ return new FebsResponse().success().data(yhAgentVos);
+ }
+
+ @Override
+ public FebsResponse agentInfo(YHAgentInitDto dto) {
+
+ String companyId = YHLoginUserUtil.getLoginUser().getCompanyId();
+ YHAgentInitVo yhAgentInitVo = new YHAgentInitVo();
+
+ String id = dto.getId();
+ YHAiAgent yhAiAgent = yhAiAgentMapper.selectById(id);
+ if (ObjectUtil.isNotEmpty(yhAiAgent)){
+ yhAgentInitVo.setId(yhAiAgent.getId());
+ yhAgentInitVo.setName(yhAiAgent.getName());
+ yhAgentInitVo.setDescription(yhAiAgent.getDescription());
+ yhAgentInitVo.setIconImg(yhAiAgent.getIconImg());
+ yhAgentInitVo.setIntroduct(yhAiAgent.getIntroduct());
+ List<YHAiAgentStartQuestion> yhAiAgentStartQuestions = yhAiAgentStartQuestionMapper.selectList(
+ Wrappers.lambdaQuery(YHAiAgentStartQuestion.class).eq(YHAiAgentStartQuestion::getAgentId, id)
+ );
+ if (CollUtil.isNotEmpty(yhAiAgentStartQuestions)){
+ List<String> questions = new ArrayList<>();
+ for (YHAiAgentStartQuestion yhAiAgentStartQuestion : yhAiAgentStartQuestions) {
+ questions.add(yhAiAgentStartQuestion.getTitle());
+ }
+ yhAgentInitVo.setItems(questions);
+ }
+ }
+
+ return new FebsResponse().success().data(yhAgentInitVo);
+ }
+
+ @Override
+ public FebsResponse categorySysList(YHSysCategoryDto dto) {
+ List<YHSysCategoryVo> vos = new ArrayList<>();
+
+ LambdaQueryWrapper<YhSysAgentCategory> query = Wrappers.lambdaQuery(YhSysAgentCategory.class);
+ query.eq(YhSysAgentCategory::getState,1);
+ if (ObjectUtil.isNotEmpty(dto.getId())){
+ query.eq(YhSysAgentCategory::getId,dto.getId());
+ }
+ if (ObjectUtil.isNotEmpty(dto.getHotState())){
+ query.eq(YhSysAgentCategory::getHotState,dto.getHotState());
+ }
+ query.orderByAsc(YhSysAgentCategory::getSort);
+
+ List<YhSysAgentCategory> yhSysAgentCategories = yhSysAgentCategoryMapper.selectList(query);
+ if (CollUtil.isNotEmpty(yhSysAgentCategories)){
+ for (YhSysAgentCategory yhSysAgentCategory : yhSysAgentCategories) {
+ YHSysCategoryVo vo = new YHSysCategoryVo();
+ vo.setId(yhSysAgentCategory.getId());
+ vo.setName(yhSysAgentCategory.getName());
+ vos.add(vo);
+ }
+ }
+ return new FebsResponse().success().data(vos);
+ }
+
+ @Override
+ public FebsResponse agentSysList(YHSysAgentDto dto) {
+ ArrayList<YHSysAgentVo> vos = new ArrayList<>();
+ LambdaQueryWrapper<YHSysAgent> query = Wrappers.lambdaQuery(YHSysAgent.class);
+ query.eq(YHSysAgent::getState,1);
+ if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){
+ query.eq(YHSysAgent::getAgentCategoryId,dto.getAgentCategoryId());
+ }
+ query.orderByDesc(YHSysAgent::getCreateTime);
+
+ List<YHSysAgent> list = yhSysAgentMapper.selectList(query);
+ if (CollUtil.isNotEmpty(list)){
+
+ for (YHSysAgent entity : list) {
+ YHSysAgentVo vo = new YHSysAgentVo();
+ vo.setId(entity.getId());
+ vo.setName(entity.getName());
+ vo.setDescription(entity.getDescription());
+ vo.setIconImg(entity.getIconImg());
+ vos.add(vo);
+ }
+ }
+ return new FebsResponse().success().data(vos);
+ }
+
+ @Override
+ public FebsResponse logout() {
+ String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
+
+ String redisKey = AppContants.XCX_LOGIN_PREFIX + memberUuid;
+ String existToken = redisUtils.getString(redisKey);
+ if (StrUtil.isNotBlank(existToken)) {
+ Object o = redisUtils.get(existToken);
+ if (ObjectUtil.isNotEmpty(o)) {
+ redisUtils.del(existToken);
+ }
+ }
+ redisUtils.del(AppContants.XCX_LOGIN_PREFIX + memberUuid);
+ return new FebsResponse().success().message("退出登录");
+ }
+}
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index affd23d..af63d09 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -15,16 +15,16 @@
datasource:
# 数据源-1,名称为 base
base:
- username: ai_one
- password: ai_one!@#123
+ username: ry_vue_ai
+ password: ry_vue_ai!@#123
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:3306/ai_one?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
+ url: jdbc:mysql://8.166.133.146:3306/ry_vue_ai?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
redis:
# Redis数据库索引(默认为 0)
- database: 1
+ database: 3
# Redis服务器地址
- host: 127.0.0.1
+ host: 8.166.133.146
# Redis服务器连接端口
port: 6379
# Redis 密码
@@ -42,7 +42,7 @@
# 连接超时时间(毫秒)
timeout: 5000000
rabbitmq:
- host: 127.0.0.1
+ host: 8.166.133.146
port: 5672
username: xc_rabbit
password: xuncong123
@@ -70,8 +70,8 @@
# wecharpaySecret: CSxc168888CSxc168888CSxc168888xc
xcx:
wechar_login_url: https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code
- xcx_appid: wxcd0555ebf4448971
- xcx_secret: 0a10fa3b9388ddd5d5ad4c8bd6637be1
+ xcx_appid: wx203cb932dc947a15
+ xcx_secret: 1e61bee704b159577cc2a58f80f19190
debug: true
wecharPaynotifyUrl: http://happy.csxuncong.com/api/xcxPay/wxpayCallback
wecharActivityPaynotifyUrl: http://happy.csxuncong.com/api/xcxPay/activityOrderCallback
--
Gitblit v1.9.1