瀏覽代碼

测试bug修复

yzs 1 月之前
父節點
當前提交
fdd85d65cc

+ 7 - 0
ai-config-base-biz/src/main/java/org/spring/ai/config/biz/crud/entity/LiveRoom.java

@@ -73,6 +73,13 @@ public class LiveRoom {
     @ApiModelProperty(value = "用户id")
     private Integer accountId;
 
+    /**
+     * 设置的在线人数
+     */
+    @TableField(value = "set_online_num")
+    @ApiModelProperty(value = "设置的在线人数")
+    private Integer setOnlineNum;
+
     /**
      * 设备id
      */

+ 2 - 0
ai-config-base-biz/src/main/java/org/spring/ai/config/biz/crud/service/app/GoodsAppService.java

@@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -88,6 +89,7 @@ public class GoodsAppService {
                 KnowledgeGoodsRef knowledgeGoodsRef = new KnowledgeGoodsRef();
                 knowledgeGoodsRef.setGoodsId(goods.getId());
                 knowledgeGoodsRef.setKnowledgeGroupId(knowledgeId);
+                knowledgeGoodsRef.setCreateTime(LocalDateTime.now());
                 insertList.add(knowledgeGoodsRef);
             }
             knowledgeGoodsRefService.batchSave(insertList);

+ 5 - 3
ai-config-base-biz/src/main/java/org/spring/ai/config/biz/crud/service/app/LiveRoomAppService.java

@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.math.NumberUtils;
-import org.spring.ai.config.biz.constants.DictConstants;
 import org.spring.ai.config.biz.crud.entity.*;
 import org.spring.ai.config.biz.crud.entity.dto.LiveKeywordDto;
 import org.spring.ai.config.biz.crud.entity.dto.MainKeyWordDto;
@@ -224,7 +223,7 @@ public class LiveRoomAppService {
      * 批量更新关键词位置
      */
     @Transactional(rollbackFor = Exception.class)
-    public void batchUpdateKeywordPosition(List<KeywordRobotPosition> insertList, List<KeywordRobotPosition> updateList, Integer setOnlineNum) {
+    public void batchUpdateKeywordPosition(List<KeywordRobotPosition> insertList, List<KeywordRobotPosition> updateList, Integer setOnlineNum, int liveId) {
         if (CollUtil.isNotEmpty(insertList)) {
             keywordRobotPositionService.saveUpdateByUk(insertList);
         }
@@ -232,7 +231,10 @@ public class LiveRoomAppService {
             keywordRobotPositionService.updateBatch(updateList);
         }
         if (setOnlineNum != null) {
-            sysDictDataService.updateByLabelAndType(DictConstants.ONLINE_NUM_CONFIG_DATA, DictConstants.SYS_CONFIG_TYPE, setOnlineNum.toString());
+            LambdaUpdateWrapper<LiveRoom> updateWrapper = Wrappers.lambdaUpdate();
+            updateWrapper.eq(LiveRoom::getId, liveId);
+            updateWrapper.set(LiveRoom::getSetOnlineNum, setOnlineNum);
+            liveRoomService.update(updateWrapper);
         }
     }
 

+ 4 - 3
ai-config-base-biz/src/main/resources/mybatis/mapper/KeywordRobotPositionMapper.xml

@@ -16,15 +16,16 @@
         id, keyword, robot_position, live_id, update_time, create_time
     </sql>
     <insert id="saveUpdateBatchByUk">
-        insert into t_keyword_robot_position (keyword, robot_position, live_id)
+        insert into t_keyword_robot_position (keyword, robot_position, live_id, reply_text)
         values
         <foreach collection="list" item="item" separator=",">
-            (#{item.keyword}, #{item.robotPosition}, #{item.liveId})
+            (#{item.keyword}, #{item.robotPosition}, #{item.liveId},#{item.replyText})
         </foreach>
         on duplicate key update
         keyword = values(keyword),
         robot_position = values(robot_position),
-        live_id = values(live_id)
+        live_id = values(live_id),
+        reply_text = values(reply_text)
     </insert>
 
 </mapper>

+ 29 - 0
ai-config-server-live/src/main/java/org/spring/ai/config/server/controller/entity/vo/GoodsDetailVo.java

@@ -0,0 +1,29 @@
+package org.spring.ai.config.server.controller.entity.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import org.spring.ai.config.biz.crud.entity.Goods;
+
+import java.util.List;
+
+/**
+ * 商品详情vo
+ *
+ * @Author: yzs
+ * @Date: 2024/3/4 15:42
+ */
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "GoodsDetailVo", description = "商品详情vo")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GoodsDetailVo extends Goods {
+
+    @ApiModelProperty(value = "知识库id")
+    private List<Integer> knowledgeIds;
+
+}

+ 22 - 16
ai-config-server-live/src/main/java/org/spring/ai/config/server/controller/live/KeywordRobotPositionController.java

@@ -1,17 +1,16 @@
 package org.spring.ai.config.server.controller.live;
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.spring.ai.config.biz.constants.DictConstants;
 import org.spring.ai.config.biz.crud.entity.KeywordRobotPosition;
-import org.spring.ai.config.biz.crud.entity.SysDictData;
+import org.spring.ai.config.biz.crud.entity.LiveRoom;
 import org.spring.ai.config.biz.crud.entity.req.IdReq;
 import org.spring.ai.config.biz.crud.service.KeywordRobotPositionService;
-import org.spring.ai.config.biz.crud.service.SysDictDataService;
+import org.spring.ai.config.biz.crud.service.LiveRoomService;
 import org.spring.ai.config.biz.crud.service.app.LiveRoomAppService;
 import org.spring.ai.config.server.common.annotation.LoginRequired;
 import org.spring.ai.config.server.controller.entity.req.BaseAuthReq;
@@ -44,7 +43,7 @@ public class KeywordRobotPositionController {
     private LiveRoomAppService liveRoomAppService;
 
     @Resource
-    private SysDictDataService sysDictDataService;
+    private LiveRoomService liveRoomService;
 
     @ApiOperation(value = "保存接口(支持批量)")
     @PostMapping(value = "save")
@@ -57,8 +56,10 @@ public class KeywordRobotPositionController {
         List<SaveKeywordRobotPositionReq> keywordRobotPositionReqs = saveRobotPositionReq.getKeywordRobotList();
         List<KeywordRobotPosition> insertList = new LinkedList<>();
         List<KeywordRobotPosition> updateList = new LinkedList<>();
+        int liveId = 0;
         for (SaveKeywordRobotPositionReq saveKeywordRobotPositionReq : keywordRobotPositionReqs) {
             KeywordRobotPosition keywordRobotPosition = BeanUtil.copyProperties(saveKeywordRobotPositionReq, KeywordRobotPosition.class);
+            liveId = keywordRobotPosition.getLiveId();
             if (saveKeywordRobotPositionReq.getId() == null) {
                 keywordRobotPosition.setCreateTime(LocalDateTime.now());
                 insertList.add(keywordRobotPosition);
@@ -67,7 +68,7 @@ public class KeywordRobotPositionController {
                 updateList.add(keywordRobotPosition);
             }
         }
-        liveRoomAppService.batchUpdateKeywordPosition(insertList, updateList, saveRobotPositionReq.getSetOnlineNum());
+        liveRoomAppService.batchUpdateKeywordPosition(insertList, updateList, saveRobotPositionReq.getSetOnlineNum(), liveId);
         return Result.success();
     }
 
@@ -93,17 +94,22 @@ public class KeywordRobotPositionController {
         queryWrapper.eq(KeywordRobotPosition::getLiveId, req.getData().getId());
         queryWrapper.orderByDesc(KeywordRobotPosition::getUpdateTime);
         List<KeywordRobotPosition> keywordRobotPositionList = keywordRobotPositionService.list(queryWrapper);
-        //查询配置信息
-        SysDictData sysDictData = sysDictDataService.findOneByKey(DictConstants.SYS_CONFIG_TYPE, DictConstants.ONLINE_NUM_CONFIG_DATA);
-        int onlineNum = 0;
-        if (NumberUtil.isNumber(sysDictData.getDictValue())) {
-            onlineNum = Integer.parseInt(sysDictData.getDictValue());
+        int liveId = 0;
+        List<KeywordRobotPositionVo> keywordRobotPositionVoList = new LinkedList<>();
+        KeywordRobotVo keywordRobotVo = new KeywordRobotVo();
+        if (CollUtil.isNotEmpty(keywordRobotPositionList)) {
+            for (KeywordRobotPosition keywordRobotPosition : keywordRobotPositionList) {
+                KeywordRobotPositionVo keywordRobotPositionVo = BeanUtil.copyProperties(keywordRobotPosition, KeywordRobotPositionVo.class);
+                keywordRobotPositionVoList.add(keywordRobotPositionVo);
+                liveId = keywordRobotPosition.getLiveId();
+            }
+            //查询直播间信息
+            LiveRoom liveRoom = liveRoomService.getById(liveId);
+            keywordRobotVo = KeywordRobotVo.builder()
+                    .setOnelineNum(liveRoom.getSetOnlineNum())
+                    .keywordRobotList(keywordRobotPositionVoList)
+                    .build();
         }
-        List<KeywordRobotPositionVo> keywordRobotPositionVoList = BeanUtil.copyToList(keywordRobotPositionList, KeywordRobotPositionVo.class);
-        KeywordRobotVo keywordRobotVo = KeywordRobotVo.builder()
-                .setOnelineNum(onlineNum)
-                .keywordRobotList(keywordRobotPositionVoList)
-                .build();
         return Result.success(keywordRobotVo);
     }
 }

+ 12 - 8
ai-config-server-live/src/main/java/org/spring/ai/config/server/controller/live/LiveGoodsController.java

@@ -1,6 +1,7 @@
 package org.spring.ai.config.server.controller.live;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
@@ -12,21 +13,19 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.spring.ai.config.biz.crud.entity.Goods;
 import org.spring.ai.config.biz.crud.entity.GoodsKeywords;
+import org.spring.ai.config.biz.crud.entity.KnowledgeGoodsRef;
 import org.spring.ai.config.biz.crud.entity.LiveSpiderRef;
 import org.spring.ai.config.biz.crud.entity.bo.SaveGoodsBo;
 import org.spring.ai.config.biz.crud.entity.req.IdReq;
 import org.spring.ai.config.biz.crud.service.GoodsKeywordsService;
 import org.spring.ai.config.biz.crud.service.GoodsService;
+import org.spring.ai.config.biz.crud.service.KnowledgeGoodsRefService;
 import org.spring.ai.config.biz.crud.service.LiveSpiderRefService;
 import org.spring.ai.config.biz.crud.service.app.GoodsAppService;
 import org.spring.ai.config.biz.enums.GoodsTypeEnum;
-import org.spring.ai.config.biz.utils.RedisUtils;
 import org.spring.ai.config.server.common.annotation.LoginRequired;
 import org.spring.ai.config.server.controller.entity.req.*;
-import org.spring.ai.config.server.controller.entity.vo.GoodSpiderVo;
-import org.spring.ai.config.server.controller.entity.vo.GoodTypeVo;
-import org.spring.ai.config.server.controller.entity.vo.GoodVo;
-import org.spring.ai.config.server.controller.entity.vo.GoodsKeywordsVo;
+import org.spring.ai.config.server.controller.entity.vo.*;
 import org.spring.ai.config.server.utils.SpiderApiUtils;
 import org.spring.base.common.enums.ErrorCodeEnum;
 import org.spring.base.common.exception.BusinessException;
@@ -58,7 +57,7 @@ public class LiveGoodsController {
     private GoodsAppService goodsAppService;
 
     @Resource
-    private RedisUtils redisUtils;
+    private KnowledgeGoodsRefService knowledgeGoodsRefService;
 
     @ApiOperation(value = "保存商品关键词")
     @PostMapping(value = "/save_goods_keywords")
@@ -292,13 +291,18 @@ public class LiveGoodsController {
     @ApiOperation(value = "查询详情")
     @PostMapping(value = "/get_good_detail")
     @LoginRequired
-    public Result<Goods> getGoodDetail(@RequestBody @Valid BaseAuthReq<IdReq> req) {
+    public Result<GoodsDetailVo> getGoodDetail(@RequestBody @Valid BaseAuthReq<IdReq> req) {
         Integer id = req.getData().getId();
         if (id == null) {
             throw new BusinessException(ErrorCodeEnum.INPUT_PARAMETER_ERROR.getCode(), "参数不能为空");
         }
+        GoodsDetailVo goodsDetailVo = new GoodsDetailVo();
         Goods goods = goodsService.getById(id);
-        return Result.success(goods);
+        BeanUtil.copyProperties(goods, goodsDetailVo);
+        //查询关联知识库
+        List<Integer> knowledgeIds = knowledgeGoodsRefService.listObjs(Wrappers.<KnowledgeGoodsRef>lambdaQuery().eq(KnowledgeGoodsRef::getGoodsId, id).select(KnowledgeGoodsRef::getKnowledgeGroupId), Convert::toInt);
+        goodsDetailVo.setKnowledgeIds(knowledgeIds);
+        return Result.success(goodsDetailVo);
     }
 
     /**

+ 7 - 7
ai-live-user-cms/src/main/resources/application-test.yml

@@ -4,12 +4,12 @@ spring:
     type: com.alibaba.druid.pool.DruidDataSource
     mysql:
       driver-class-name: com.mysql.cj.jdbc.Driver
-      url: jdbc:mysql://127.0.0.1:3306/ai_live?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true
+      url: jdbc:mysql://192.168.101.189:3306/ai_live?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true
       username: ai_live
-      password: ZFNRs6KnTDxrHMWK
+      password: 111111
     postgresql:
       driver-class-name: org.postgresql.Driver
-      url: jdbc:postgresql://127.0.0.1:5432/ai_live
+      url: jdbc:postgresql://192.168.101.188:5432/ai_live
       username: yzs
       password: sMceuDGWSyLd
     #druid 数据源专有配置
@@ -30,9 +30,9 @@ spring:
       connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
   #redis相关配置
   redis:
-    host: 127.0.0.1
+    host: 192.168.101.189
     port: 6379
-    password: 123456
+    password: 9Xw74VcIxAu0PmUl
     database: 5
     timeout: 10000
     lettuce:
@@ -71,8 +71,8 @@ sanling:
     expire: 900
     region-id: oss-cn-fuzhou
   redisson:
-    address: 127.0.0.1:6379
-    password: dikJJDNN12
+    address: 192.168.101.189:6379
+    password: 9Xw74VcIxAu0PmUl
     type: STANDALONE
     database: 5
   delivery:

+ 3 - 6
dbscripts/V3.0.0/3.2.3.sql

@@ -18,14 +18,11 @@ ALTER TABLE `t_activation_code`
 -- 槽位表添加权限字段
 ALTER TABLE `t_account_device_ref`
     ADD COLUMN `permissions` varchar(255) NULL DEFAULT 1 COMMENT '权限id,多条 | 分隔,枚举PermissionTypeEnum' AFTER `expiry_date`;
--- 删除关播字段
+-- 直播表变更
 ALTER TABLE `t_live_room`
     DROP COLUMN `close_hours`,
-    DROP COLUMN `close_minutes`;
--- 字典初始数据
-INSERT INTO `t_sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`,
-                               `list_class`, `is_default`, `dict_status`, `create_by`, `update_by`, `remark`)
-VALUES (0, 'online_num_config_data', '0', 'sys_config_type', NULL, NULL, 0, 0, '1', '', '在线人值设置');
+    DROP COLUMN `close_minutes`,
+    ADD COLUMN `set_online_num` int NULL DEFAULT 0 COMMENT '在线人数' AFTER `subtitles_interval_end`;
 -- 产品知识库关系表
 CREATE TABLE `t_knowledge_goods_ref`
 (