Files
notes/calendar/diary/2026-02-06.md
T
2026-03-01 01:43:46 +08:00

6.4 KiB

任务

  • 开发:IBS 7.18.0 版本需求开发,域名配置需求工单重构,提升用户操作便捷性。(张鹏豪 8)

日志

DomainCreateOrderService

getDetailByWorkOrderId

DomainCreateOrderInfoDomainsPO 中新增了

@Column(name = "icp_number")
private String icpNumber;

@Column(name = "icp_status")
private String icpStatus;

需要在 domains 中返回。帮我改下 DomainCreateOrderVO 中的 domains 结构,返回:

private String domain;

private String icpNumber;

private String icpStatus;

代码位置:

        List<DomainCreateOrderInfoDomainsPO> domains = dcOrderInfoPO.getDomains();
        List<String> domainList =
                domains.stream().map(DomainCreateOrderInfoDomainsPO::getDomain).collect(Collectors.toList());
        DomainCreateOrderVO domainCreateOrderVO = DomainCreateOrderVO.builder()
                .domains(domainList)
                .serviceProvider(serviceProvider)
                .productId(dcOrderInfoPO.getProductId())
                .enterprise(workOrder.getCorpName())
                .cpid(enterpriseInfo.getEnterpriseId())
                .type(WorkOrderEnums.Type.DOMAIN_CREATE.name())
                .product(dcOrderInfoPO.getProduct().name())
                .description(dcOrderInfoPO.getDescription())
                .provinceIdList(dcOrderInfoPO.getProvinces())
                .build();

DomainCreateOrderService 是我新写的一个工单的全流程,请帮我为这个类的方法补充标准的中文日志。尽可能的在关键点输出日志。尤其是一些 ifelse 分支。或者特殊代码。方便后续排查问题。

ws://127.0.0.1:9595/logs?token=30X6zX8MDsQAMEuEANbE&level=info
我知道内核启动的时候有一个 log 的配置文件字段,这个字段可以指定 debug 或者 info 级别。

但我看我的 GUI 面板里面有一个调用内核的 -logs 接口,这会产生以下几个疑问:
1. 这个接口是实时改变了内核输出日志的等级吗?
2. 这个操作是动态的还是静态的?
3. 它会覆盖配置文件的日志等级吗?

DomainCreateOrderService 的 submitTicket 这么多持久化是不是该该加个事务。

        /* 持久化 */
        // work_order
        WorkOrder workOrderSaved = saveOrUpdateWorkOrder(isUpdate, req, enterpriseInfo, currentUser, approvingUser);
        log.info("域名配置需求工单提交->work_order持久化完成, workOrderId={}, code={}",
                 workOrderSaved.getId(),
                 workOrderSaved.getCode());

        // domain_creater_orde_info domain_creater_orde_domains
        DomainCreateOrderInfoPO orderInfoSaved =
                saveOrUpdateDomainCreateOrderInfo(isUpdate, req, workOrderSaved, currentUser);
        log.info("域名配置需求工单提交->domain_create_order_info持久化完成, orderInfoId={}, domainSize={} ",
                 orderInfoSaved.getId(),
                 speedList.size());

        // log_file_resource
        replaceOrderFiles(isUpdate, req, orderInfoSaved.getId());
        log.info("域名配置需求工单提交->附件关联资源处理完成, isUpdate={}, orderInfoId={}, otherFileSize={}, secInfoFileSize={}",
                 isUpdate,
                 orderInfoSaved.getId(),
                 CollectionUtils.isEmpty(req.getMd5List()) ? 0 : req.getMd5List().size(),
                 CollectionUtils.isEmpty(req.getSecInfoFileId()) ? 0 : req.getSecInfoFileId().size());

        // worker_order_enterprise
        saveOrUpdateWorkOrderEnterprise(workOrderSaved, enterpriseInfo);
        log.info("域名配置需求工单提交->工单企业关系处理完成, workOrderId={}, enterpriseId={}",
                 workOrderSaved.getId(),
                 enterpriseInfo.getEnterpriseId());

        // self_service_domain_config
        List<SelfServiceDomainConfigPO> domainConfigSaved =
                saveOrUpdateDomainConfigs(req, enterpriseInfo, domainsIcpMap);
        log.info("域名配置需求工单提交->域名配置初始化完成, savedSize={}, productId={}",
                 domainConfigSaved.size(),
                 req.getProductId());

        // live_stream_domain_config
        if (ProductsEnums.isLiveProductByEnum(ProductsEnums.findByDesc(req.getProduct()))) {
            log.info("域名配置需求工单提交->检测到直播产品, 初始化直播域名配置, domainSize={}",
                     domainConfigSaved.size());
            liveConfigService.initLiveDomains(domainConfigSaved, CreationSourceEnum.BSS);
        }

        // enterprise_subuser_domains
        userService.bindDomainWithCpSubUser(req.getEnterprise(), domains);
        log.info("域名配置需求工单提交->子账号域名绑定完成, enterpriseId={}, domainSize={}",
                 req.getEnterprise(),
                 domains.size());

这是我的一个 Spring Boot 4.0 加 JDK 25 的初始化项目,我想在这个项目下完成我 Telegram 机器人的相关功能开发。我将使用 TelegramBots 的第三方依赖来简化开发。我已经下载的源码到我本地的 D:\MyCode\Study\TelegramBots 目录。如果需要相关功能可以去搜索。

我的整体布局是后端 Spring Boot 工程,领域驱动设计。同时根目录包括一个 front-end 前端工程。随在同git 但是我是前后端分离的。

前端技术栈选择的是最新的 React 19.2,但目前我对前端不是很精通,你需要帮我设计一个比较标准、符合工程规范的 React 前端文件夹结构。

数据库选择最新的 mysql。技术选择 jpa。

以上是我对这个初始化项目的一些想法。

总的来说,目标是先将目录结构创建清晰,具体要求如下:

  1. 搭建 Spring Boot 所需的模块。
  2. 创建 React 前端标准的文件夹结构。
  3. 整体结构要达到可以立即开始开发需求的状态。

在创建目录结构的过程中,请实现一个最简化的端到端功能:

(a) 从前端调用后端接口。

(b) 贯穿各个领域层。

(c) 完成数据入库。

注意:这个功能不需要做得太复杂,只需确保能进入正常逻辑即可。

请帮我优化一下整体的描述,让我的智能体生成的代码和结构更符合我的要求。想要一个最先进的 Spring Boot 和 React 项目结构。

因为所使用的技术栈都比较新(例如最新的 Spring Boot 4、JDK 25 和 React 19.2),所以希望生成的项目结构能够更加标准、更加现代化一些。

给我优化后的智能体提示词。

总结

react

给家里打电话。