获取专项练习

news2024/11/13 6:45:03

文章目录

    • 1.sun-club-practice-api
        • 1.vo构建
          • 1.SpecialPracticeVO.java
          • 2.SpecialPracticeCategoryVO.java
          • 3.SpecialPracticeLabelVO.java
        • 2.SubjectInfoTypeEnum.java
    • 2.sun-club-practice-server
        • 1.PracticeSetController.java
        • 2.service
          • 1.PracticeSetService.java
          • 2.PracticeSetServiceImpl.java
        • 3.dao
          • 1.SubjectCategoryDao.java
          • 2.SubjectLabelDao.java
          • 3.SubjectMappingDao.java
        • 4.mapper.xml
          • 1.SubjectCategoryDao.xml
          • 2.SubjectLabelDao.xml
          • 3.SubjectMappingDao.xml
        • 5.entity
          • 1.dto
            • CategoryDTO.java
          • 2.po
            • 1.CategoryPO.java
            • 2.LabelCountPO.java
            • 3.PrimaryCategoryPO.java
            • 4.SecondCategoryPO.java
            • 5.SubjectLabelPO.java
    • 3.测试
        • 1.接口设计
        • 2.测试请求

1.sun-club-practice-api

1.vo构建
1.SpecialPracticeVO.java
package com.sunxiansheng.practice.api.vo;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * Description:
 * @Author sun
 * @Create 2024/6/25 16:36
 * @Version 1.0
 */
@Data
public class SpecialPracticeVO implements Serializable {

    /**
     * 一级分类的名字
     */
    private String primaryCategoryName;

    /**
     * 一级分类的id
     */
    private Long primaryCategoryId;

    /**
     * 一级分类下二级分类的列表
     */
    private List<SpecialPracticeCategoryVO> categoryList;

}
2.SpecialPracticeCategoryVO.java
package com.sunxiansheng.practice.api.vo;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * Description:
 * @Author sun
 * @Create 2024/6/25 16:36
 * @Version 1.0
 */
@Data
public class SpecialPracticeCategoryVO implements Serializable {

    /**
     * 二级分类的名字
     */
    private String categoryName;

    /**
     * 二级分类的id
     */
    private Long categoryId;

    /**
     * 二级分类关联的标签列表
     */
    private List<SpecialPracticeLabelVO> labelList;

}
3.SpecialPracticeLabelVO.java
package com.sunxiansheng.practice.api.vo;

import lombok.Data;

import java.io.Serializable;

/**
 * Description:
 * @Author sun
 * @Create 2024/6/25 16:36
 * @Version 1.0
 */
@Data
public class SpecialPracticeLabelVO implements Serializable {

    /**
     * 标签id
     */
    private Long id;

    /**
     * 分类id-标签id,作为这个标签的唯一标识
     */
    private String assembleId;

    /**
     * 标签名字
     */
    private String labelName;

}
2.SubjectInfoTypeEnum.java
package com.sunxiansheng.practice.api.enums;

import lombok.Getter;

/**
 * Description: 题目类型枚举
 * @Author sun
 * @Create 2024/5/24 9:53
 * @Version 1.0
 */
@Getter
public enum SubjectInfoTypeEnum {
    RADIO(1,"单选"),
    MULTIPLE(2,"多选"),
    JUDGE(3,"判断"),
    BRIEF(4,"简答");

    public int code;
    public String desc;

    SubjectInfoTypeEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 根据code获取枚举
     * @param code
     * @return
     */
    public static SubjectInfoTypeEnum getByCode(int code) {
        for (SubjectInfoTypeEnum value : values()) {
            if (value.code == code) {
                return value;
            }
        }
        return null;
    }
}

2.sun-club-practice-server

1.PracticeSetController.java
package com.sunxiansheng.practice.server.controller;

import com.alibaba.fastjson.JSON;
import com.sunxiansheng.practice.api.common.Result;
import com.sunxiansheng.practice.api.vo.SpecialPracticeVO;
import com.sunxiansheng.practice.server.service.PracticeSetService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;

/**
 * Description: 练习套卷controller
 * @Author sun
 * @Create 2024/6/25 15:38
 * @Version 1.0
 */
@RestController
@RequestMapping("/practice/set")
@Slf4j
public class PracticeSetController {

    @Resource
    private PracticeSetService practiceSetService;

    @RequestMapping("getSpecialPracticeContent")
    public Result<List<SpecialPracticeVO>> getSpecialPracticeContent() {
        try {
            List<SpecialPracticeVO> res = practiceSetService.getSpecialPracticeContent();
            if (log.isInfoEnabled()) {
                // 打日志
                log.info("getSpecialPracticeContent res:{}", JSON.toJSONString(res));
            }
            return Result.ok(res);
        } catch (Exception e) {
            log.error("getSpecialPracticeContent error", e.getMessage(), e);
            return Result.fail("获取练习套卷内容失败");
        }
    }

}
2.service
1.PracticeSetService.java
package com.sunxiansheng.practice.server.service;

import com.sunxiansheng.practice.api.vo.SpecialPracticeVO;

import java.util.List;

/**
 * Description:
 * @Author sun
 * @Create 2024/6/25 16:57
 * @Version 1.0
 */
public interface PracticeSetService {

    /**
     * 获取练习套卷内容
     * @return
     */
    List<SpecialPracticeVO> getSpecialPracticeContent();

}
2.PracticeSetServiceImpl.java
package com.sunxiansheng.practice.server.service.impl;

import com.sunxiansheng.practice.api.enums.SubjectInfoTypeEnum;
import com.sunxiansheng.practice.api.vo.SpecialPracticeCategoryVO;
import com.sunxiansheng.practice.api.vo.SpecialPracticeLabelVO;
import com.sunxiansheng.practice.api.vo.SpecialPracticeVO;
import com.sunxiansheng.practice.server.dao.SubjectCategoryDao;
import com.sunxiansheng.practice.server.dao.SubjectLabelDao;
import com.sunxiansheng.practice.server.dao.SubjectMappingDao;
import com.sunxiansheng.practice.server.entity.dto.CategoryDTO;
import com.sunxiansheng.practice.server.entity.po.*;
import com.sunxiansheng.practice.server.service.PracticeSetService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import javax.annotation.Resource;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * Description:
 * @Author sun
 * @Create 2024/6/25 17:08
 * @Version 1.0
 */
@Service
@Slf4j
public class PracticeSetServiceImpl implements PracticeSetService {

    @Resource
    private SubjectCategoryDao subjectCategoryDao;

    @Resource
    private SubjectMappingDao subjectMappingDao;

    @Resource
    private SubjectLabelDao subjectLabelDao;

    @Override
    public List<SpecialPracticeVO> getSpecialPracticeContent() {
        // 构建要返回的对象
        List<SpecialPracticeVO> specialPracticeVOList = new LinkedList<>();
        // 构建一个查询的DTO
        CategoryDTO categoryDTO = new CategoryDTO();
        // 第一步:查询所有的一级分类的名字和id,遍历结果,将每一个结果map成一个SpecialPracticeVO然后收集成一个specialPracticeVOList
        // 根据题目的类型,查询二级分类中有题的,并且题目类型是单选,多选,判断的,的一级分类id
        List<Integer> subjectTypeList = new LinkedList<>();
        subjectTypeList.add(SubjectInfoTypeEnum.RADIO.getCode());
        subjectTypeList.add(SubjectInfoTypeEnum.MULTIPLE.getCode());
        subjectTypeList.add(SubjectInfoTypeEnum.JUDGE.getCode());
        categoryDTO.setSubjectTypeList(subjectTypeList);
        List<PrimaryCategoryPO> poList = subjectCategoryDao.getPrimaryCategoryHasSubject(categoryDTO);
        if (CollectionUtils.isEmpty(poList)) {
            return specialPracticeVOList;
        }
        // 此时poList中的id为一级分类的id
        // 将一级分类的每一个元素map成一个SpecialPracticeVO并最终收集成一个list
        List<SpecialPracticeVO> res = poList.stream().map(
                primaryCategoryPO -> {
                    // 要构建的SpecialPracticeVO
                    SpecialPracticeVO specialPracticeVO = new SpecialPracticeVO();
                    // ==========映射过程==========

                    // 取出每个一级分类的id,映射成一个SpecialPracticeVO
                    Long primaryCategoryId = primaryCategoryPO.getId();
                    specialPracticeVO.setPrimaryCategoryId(primaryCategoryId);
                    // 根据primaryCategoryId 查询出primaryCategoryName
                    CategoryPO categoryPO = subjectCategoryDao.selectById(primaryCategoryId);
                    specialPracticeVO.setPrimaryCategoryName(categoryPO.getCategoryName());
                    // 组装specialPracticeCategoryVOList
                    List<SpecialPracticeCategoryVO> specialPracticeCategoryVOList = new LinkedList<>();
                    // 根据primaryCategoryId查询出所有二级分类的categoryName和categoryId
                    List<SecondCategoryPO> secondCategoryPOList = subjectCategoryDao.getSecondCategoryByPrimaryId(primaryCategoryId);
                    // 遍历每一个secondCategoryPO,将其map成一个SpecialPracticeCategoryVO,然后收集成specialPracticeCategoryVOList
                    List<SpecialPracticeCategoryVO> categoryList = secondCategoryPOList.stream().map(
                            secondCategoryPO -> {
                                // 映射成SpecialPracticeCategoryVO
                                SpecialPracticeCategoryVO specialPracticeCategoryVO = new SpecialPracticeCategoryVO();
                                specialPracticeCategoryVO.setCategoryName(secondCategoryPO.getCategoryName());
                                specialPracticeCategoryVO.setCategoryId(secondCategoryPO.getId());
                                // 构建labelList
                                // 根据分类id查询所有标签的id和labelName
                                List<LabelCountPO> labelIdAndName = subjectMappingDao.getLabelIdAndName(secondCategoryPO.getId(), subjectTypeList);
                                List<SpecialPracticeLabelVO> labelList = labelIdAndName.stream().map(
                                        labelCountPO -> {
                                            SpecialPracticeLabelVO specialPracticeLabelVO = new SpecialPracticeLabelVO();
                                            // 映射
                                            specialPracticeLabelVO.setId(labelCountPO.getLabelId());
                                            specialPracticeLabelVO.setLabelName(labelCountPO.getLabelName());
                                            specialPracticeLabelVO.setAssembleId(secondCategoryPO.getId() + "-" + labelCountPO.getLabelId());
                                            return specialPracticeLabelVO;
                                        }
                                ).collect(Collectors.toList());
                                specialPracticeCategoryVO.setLabelList(labelList);
                                return specialPracticeCategoryVO;
                            }
                    ).collect(Collectors.toList());
                    specialPracticeVO.setCategoryList(categoryList);
                    // ==========映射过程==========
                    // 映射成一个SpecialPracticeVO
                    return specialPracticeVO;
                }
        ).collect(Collectors.toList());
        return res;
    }


}
3.dao
1.SubjectCategoryDao.java
package com.sunxiansheng.practice.server.dao;


import com.sunxiansheng.practice.server.entity.dto.CategoryDTO;
import com.sunxiansheng.practice.server.entity.po.CategoryPO;
import com.sunxiansheng.practice.server.entity.po.PrimaryCategoryPO;
import com.sunxiansheng.practice.server.entity.po.SecondCategoryPO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 题目分类(SubjectCategory)表数据库访问层
 *
 * @author makejava
 * @since 2024-05-23 19:06:49
 */
@Mapper
public interface SubjectCategoryDao {

    List<PrimaryCategoryPO> getPrimaryCategory(CategoryDTO categoryDTO);

    CategoryPO selectById(Long id);

    List<CategoryPO> selectList(CategoryDTO categoryDTOTemp);

    /**
     * 查询一级分类下有题目的分类id
     * @param categoryDTO
     * @return
     */
    List<PrimaryCategoryPO> getPrimaryCategoryHasSubject(CategoryDTO categoryDTO);

    /**
     * 根据一级分类id查询二级分类
     * @param primaryCategoryId
     * @return
     */
    List<SecondCategoryPO> getSecondCategoryByPrimaryId(Long primaryCategoryId);
}
2.SubjectLabelDao.java
package com.sunxiansheng.practice.server.dao;


import com.sunxiansheng.practice.server.entity.po.SubjectLabelPO;

/**
 * 题目标签表(SubjectLabel)表数据库访问层
 *
 * @author makejava
 * @since 2024-05-25 16:43:49
 */
public interface SubjectLabelDao {

    SubjectLabelPO queryById(Long id);

}
3.SubjectMappingDao.java
package com.sunxiansheng.practice.server.dao;

import com.sunxiansheng.practice.server.entity.po.LabelCountPO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 题目分类关系表(SubjectMapping)表数据库访问层
 *
 * @author makejava
 * @since 2024-05-26 14:05:02
 */
public interface SubjectMappingDao {

    List<LabelCountPO> getLabelSubjectCount(@Param("categoryId") Long categoryId, @Param("subjectTypeList") List<Integer> subjectTypeList);

    // 根据分类id和题目类型查询标签的id和labelName
    List<LabelCountPO> getLabelIdAndName(@Param("categoryId") Long categoryId, @Param("subjectTypeList") List<Integer> subjectTypeList);
}
4.mapper.xml
1.SubjectCategoryDao.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sunxiansheng.practice.server.dao.SubjectCategoryDao">
    <select id="getPrimaryCategory" resultType="com.sunxiansheng.practice.server.entity.po.PrimaryCategoryPO">
        select count(distinct a.subject_id) as subjectCount,
               b.parent_id                  as parentId
        from subject_mapping a,
             subject_category b,
             subject_info c
        where a.category_id = b.id
          and a.subject_id = c.id
          and a.is_deleted = 0
          and b.is_deleted = 0
          and c.is_deleted = 0
          and c.subject_type in
        <foreach collection="subjectTypeList" item="item" open="(" close=")" separator=",">
            #{item}
        </foreach>
        group by b.parent_id
    </select>

    <select id="selectById" resultType="com.sunxiansheng.practice.server.entity.po.CategoryPO">
        select category_name as categoryName
        from subject_category
        where is_deleted = 0
          and id = #{id}
    </select>

    <select id="selectList" resultType="com.sunxiansheng.practice.server.entity.po.CategoryPO">
        select id,
               category_name as categoryName,
               category_type as categoryType,
               parent_id     as parentId
        from subject_category
        where is_deleted = 0
          and parent_id = #{parentId}
          and category_type = #{categoryType}
    </select>

    <select id="getPrimaryCategoryHasSubject" resultType="com.sunxiansheng.practice.server.entity.po.PrimaryCategoryPO">
        select distinct parent_id as id
        from subject_category a,
             subject_mapping b,
             subject_info c
        where a.id = b.category_id
          and c.id = b.subject_id
          and a.is_deleted = 0
          and b.is_deleted = 0
          and c.is_deleted = 0
          and category_type = 2
          and subject_type in
        <foreach collection="subjectTypeList" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>

    <select id="getSecondCategoryByPrimaryId" resultType="com.sunxiansheng.practice.server.entity.po.SecondCategoryPO">
        select distinct category_id as id,
        category_name as categoryName
        from subject_mapping a,
             subject_category b
        where a.category_id = b.id
          and a.is_deleted = 0
          and b.is_deleted = 0
        and parent_id = #{primaryCategoryId}
    </select>
</mapper>
2.SubjectLabelDao.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sunxiansheng.practice.server.dao.SubjectLabelDao">
    <resultMap id="SubjectLabelPOResultMap" type="com.sunxiansheng.practice.server.entity.po.SubjectLabelPO">
        <id column="id" property="id"/>
        <result column="label_name" property="labelName"/>
        <result column="sort_num" property="sortNum"/>
        <result column="category_id" property="categoryId"/>
        <result column="created_by" property="createdBy"/>
        <result column="created_time" property="createdTime"/>
        <result column="update_by" property="updateBy"/>
        <result column="update_time" property="updateTime"/>
        <result column="is_deleted" property="isDeleted"/>
    </resultMap>
    <select id="queryById" resultMap="SubjectLabelPOResultMap">
        select id,
               label_name,
               category_id,
               sort_num,
               created_by,
               created_time,
               update_by,
               is_deleted,
               update_time
        from subject_label
        where id = #{id}
    </select>
</mapper>
3.SubjectMappingDao.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sunxiansheng.practice.server.dao.SubjectMappingDao">

    <select id="getLabelSubjectCount" resultType="com.sunxiansheng.practice.server.entity.po.LabelCountPO">
        select count(distinct a.subject_id) as count,
               a.label_id                   as labelId
        from subject_mapping a,
             subject_info b
        where a.subject_id = b.id
          and a.is_deleted = 0
          and b.is_deleted = 0
          and a.category_id = #{categoryId}
          and b.subject_type in
        <foreach collection="subjectTypeList" item="item" open="(" close=")" separator=",">
            #{item}
        </foreach>
        group by a.label_id
    </select>

    <select id="getLabelIdAndName" resultType="com.sunxiansheng.practice.server.entity.po.LabelCountPO">
        select label_id         as labelId,
               c.label_name as labelName
        from subject_mapping a,
             subject_category b,
             subject_label c,
             subject_info d
        where a.category_id = b.id
          and a.label_id = c.id
          and a.subject_id = d.id
          and a.is_deleted = 0
          and b.is_deleted = 0
          and c.is_deleted = 0
          and d.is_deleted = 0
          and subject_type in
        <foreach collection="subjectTypeList" item="item" open="(" close=")" separator=",">
            #{item}
        </foreach>
        and a.category_id = #{categoryId}
        group by label_id, label_name
    </select>
</mapper>
5.entity
1.dto
CategoryDTO.java
package com.sunxiansheng.practice.server.entity.dto;

import lombok.Data;

import java.util.List;

/**
 * Description:
 * @Author sun
 * @Create 2024/6/25 17:15
 * @Version 1.0
 */
@Data
public class CategoryDTO {

    private Long id;

    private List<Integer> subjectTypeList;

    private Integer categoryType;

    private Long parentId;

}
2.po
1.CategoryPO.java
package com.sunxiansheng.practice.server.entity.po;

import lombok.Data;

/**
 * Description: 大类PO,对应DB中的字段
 * @Author sun
 * @Create 2024/6/25 17:28
 * @Version 1.0
 */
@Data
public class CategoryPO {

    private Long id;

    private String categoryName;

    private Integer categoryType;

    private Long parentId;
}
2.LabelCountPO.java
package com.sunxiansheng.practice.server.entity.po;

import lombok.Data;

/**
 * Description:
 * @Author sun
 * @Create 2024/6/26 14:40
 * @Version 1.0
 */
@Data
public class LabelCountPO {

    private Long labelId;

    private Integer count;

    private String labelName;

}
3.PrimaryCategoryPO.java
package com.sunxiansheng.practice.server.entity.po;

import lombok.Data;

/**
 * Description: 大类PO,对应DB中的字段
 * @Author sun
 * @Create 2024/6/25 17:28
 * @Version 1.0
 */
@Data
public class PrimaryCategoryPO {

    private Long id;

    private String categoryName;

    private Integer categoryType;

    private Long parentId;

}
4.SecondCategoryPO.java
package com.sunxiansheng.practice.server.entity.po;

import lombok.Data;

/**
 * Description:
 * @Author sun
 * @Create 2024/6/26 17:46
 * @Version 1.0
 */
@Data
public class SecondCategoryPO {

    private String categoryName;

    private Long id;

}
5.SubjectLabelPO.java
package com.sunxiansheng.practice.server.entity.po;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 题目标签表(SubjectLabel)实体类
 *
 * @author makejava
 * @since 2024-05-25 16:43:50
 */
@Data
public class SubjectLabelPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 标签分类
     */
    private String labelName;
    /**
     * 排序
     */
    private Integer sortNum;

    private String categoryId;
    /**
     * 创建人
     */
    private String createdBy;
    /**
     * 创建时间
     */
    private Date createdTime;
    /**
     * 更新人
     */
    private String updateBy;
    /**
     * 更新时间
     */
    private Date updateTime;

    private Integer isDeleted;


}

3.测试

1.接口设计

image-20240626200618987

2.测试请求

image-20240626200633285

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2044810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot的秒杀系统设计与实现

TOC springboot193基于SpringBoot的秒杀系统设计与实现 第1章 绪论 1.1 研究背景 互联网时代不仅仅是通过各种各样的电脑进行网络连接的时代&#xff0c;也包含了移动终端连接互联网进行复杂处理的一些事情。传统的互联网时代一般泛指就是PC端&#xff0c;也就是电脑互联网…

开放式耳机怎么样好用吗?六个专业好招教你选!

传统入耳式耳机容易滑落&#xff0c;而且戴久了耳朵疼&#xff0c;近段时间&#xff0c;耳机圈开始流行开放式耳机。开放式耳机的出现就避免了这个问题的出现&#xff0c;本文就为大家推荐几款使用感较好的开放式耳机&#xff0c;一起来看看吧~现在开放式耳机太多了&#xff0c…

IO进程(学习)2024.8.15

目录 重定向打开文件 文件IO 概念 特点 函数 1.打开文件 2.关闭文件 3.读写文件 read write 4.文件定位操作 重定向打开文件 FILE * freopen(const char *pathname, const char *mode, FILE* fp) 功能&#xff1a;将指定的文件流重定向到打开的文件中 参数&#…

离散数学概论

目录 一、引言 二、离散数学的主要内容 1. 集合论 1.1 集合的基本概念 1.2 集合的运算 集合运算总结表格 2. 数理逻辑 2.1 命题逻辑 2.2 逻辑推理 2.3 逻辑等价 逻辑联结词与逻辑等价总结表格 3. 组合数学 3.1 计数原理 3.2 排列与组合 3.3 容斥原理 组合数学总…

15.基于session实现登录 前端项目部署

前端项目nginx部署 nginx配置文件 worker_processes 1;events {worker_connections 1024; }http {include mime.types;default_type application/json;sendfile on;keepalive_timeout 65;server {listen 8080;server_name localhost;# 指定前端项目所…

手把手教你CNVD漏洞挖掘 + 资产收集

0x1 前言 挖掘CNVD漏洞有时候其实比一般的edusrc还好挖&#xff0c;但是一般要挖证书的话&#xff0c;还是需要花时间的&#xff0c;其中信息收集&#xff0c;公司资产确定等操作需要花费一定时间的。下面就记录下我之前跟一个师傅学习的一个垂直越权成功的CNVD漏洞通杀&#…

【案例42】“”引发的“血案”--建表带双引号

问题现象 数据抽取工具报错。 研发排查后发现&#xff0c;这条语句不执行导致。转来让解决此问题。 问题分析 与研发沟通发现。是因为在user_segments 中一直有FIP_OPERATINGLOG_copy1 造成的。 询问可以直接drop掉相关表&#xff0c; drop table FIP_OPERATINGLOG_copy1 ; …

十一、实现逻辑层

系列文章目录&#xff1a;C asio网络编程-CSDN博客 1、服务器架构设计 2、单例模板类 我们的LogicSystem类为单例类&#xff0c;可以只把这个类写为单例&#xff0c;也可以写一个单例模板类&#xff0c;让其它类继承它就可以形成单例。这里选择第二种&#xff0c;因为后面可能…

Python利用openpyxl复制Excel文件且保留样式—另存为副本(附完整代码)

目录 专栏导读库的介绍库的安装前言结果预览目录结构完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动化专…

配电房动环监控系统 温湿度环境、供配电、UPS集中管控@卓振思众

在现代电力网络中&#xff0c;配电房作为供电系统的核心节点&#xff0c;承担着至关重要的角色。为了保障电力供应的稳定性与可靠性&#xff0c;配电房的管理与监控显得尤为重要。随着技术的不断进步&#xff0c;【卓振思众】智能的配电房动环监控系统应运而生&#xff0c;成为…

# Spring Cloud Alibaba Nacos_配置中心与服务发现(四)

Spring Cloud Alibaba Nacos_配置中心与服务发现&#xff08;四&#xff09; 一、Nacos 配置管理-集群部署 1、 把 nacos 应用程序包&#xff0c;复制3份&#xff0c;分别命名为 nacos1, nacos2, nacos3 分别在 conf 目录下&#xff0c;修改 application.properties 配置文件…

【大模型LLMs】LLMs-based Summarization研究进展梳理

【大模型LLMs】LLMs-based Summarization方法梳理 Survey1 Knowledge Distillation from LLMsRefereeInheritSumm 2 Prompt Engineering2.1 Template EngineeringOdSum 2.2 CoTSumCoTCoDSuReSliSumRefiner 梳理基于大模型的摘要总结方案&#xff0c;持续汇总中&#xff08;更关…

数据埋点系列 9|数据伦理与隐私-在合规与创新间寻找平衡

在数据驱动决策的时代&#xff0c;数据伦理和隐私保护已成为至关重要的议题。组织必须在利用数据创新和保护用户隐私之间找到平衡。本文将探讨数据伦理的核心原则、隐私保护的技术实现&#xff0c;以及如何在合规和创新之间取得平衡。 目录 1. 数据伦理的核心原则1.1 透明度1…

【机器学习】卷积神经网络简介

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 卷积神经网络简介1. 引言2. CNN的基本概念2.1 什么是卷积神经网络2.2 CNN与传统…

uniprot数据库转换ID功能

1.登入uniprot数据库 uniprot 2. 选择ID mapping&#xff0c;输入P31946和P62258等uniprot数据库中的蛋白质ID 然后在To database选项中选择&#xff1a;sequence databases---RefSeq Protein---map 显示已完成&#xff0c;点击ID MAPPING 下方的网址&#xff0c;则可以看到uni…

「12月·长沙」第三届传感、测量、通信和物联网技术国际会议(SMC-IoT 2024)

第三届传感、测量、通信和物联网技术国际会议&#xff08;SMC-IoT 2024&#xff09;将于2024年11月29日-2024年12月1日召开&#xff0c;由湖南涉外经济学院主办。会议中发表的文章将会被收录, 并于见刊后提交EI核心索引。 会议旨在围绕传感、测量、通信和物联网技术等相关研究…

mysql数据库 行级锁,间隙锁和临键锁详解

目录 准备 查看锁命令 演示 普通的select语句 共享锁与排他锁 无索引行锁升级为表锁 间隙锁&临键锁 索引上的等值查询(索引为唯一索引) 索引上的等值查询(索引为普通索引) 索引上的范围查询(唯一索引) 准备 我的mysql版本是8。 CREATE TABLE user (id int unsi…

.NET 8 跨平台高性能边缘采集网关

目录 前言 项目介绍 通道 插件 设备 变量 项目特点 可视化操作 脚本支持 自定义插件支持 性能 断线缓存 完整可商用的边缘网关 项目插件 采集插件 业务插件 项目展示 1、ThingsGateway 演示地址 2、登录页面 3、系统首页 4、网关管理 5、网关状态 6、网关…

【区块链+金融服务】基于区块链的一站式绿色金融开放平台 | FISCO BCOS应用案例

科技的进步为绿色金融发展提供了新的机遇&#xff0c;但银行、企业、第三方金融机构等在进行绿色金融业务操作过程中&#xff0c; 存在着相关系统和服务平台建设成本高、迭代难度大、数据交互弱、适配难等痛点。 基于此&#xff0c;中碳绿信采用国产开源联盟链底层平台 FISCO …

Element-01.快速入门

1.什么是Element 2.快速入门 第二步引入ElementUI组件库&#xff0c;在当前的工程目录下的main.js文件中引入。 import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue;Vue.use(ElementUI); 第一…