“djh”
2025-10-21 dcae9d58eaa90faea4a4c095ed1bfb34bed1414a
新增
已添加6个文件
362 ■■■■■ 文件已修改
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/CourseEffectivenController.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/domain/CourseEffectiven.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/mapper/CourseEffectivenMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/CourseEffectivenService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/java/com/gkhy/exam/system/service/impl/CourseEffectivenServiceImpl.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-system/src/main/resources/mapper/system/CourseEffectivenMapper.xml 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/CourseEffectivenController.java
对比新文件
@@ -0,0 +1,70 @@
package com.gkhy.exam.admin.controller.web;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.CourseEffectiven;
import com.gkhy.exam.system.domain.InternalAuditPlan;
import com.gkhy.exam.system.service.CourseEffectivenService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/effectiven")
@Api(tags = "课程有效性评价管理")
public class CourseEffectivenController {
    @Autowired
    private CourseEffectivenService courseEffectivenService;
    /**
     * 课程有效性评价列表
     * @param courseEffectiven
     * @return
     */
    @ApiOperation(value = "课程有效性评价列表(分页)")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
    })
    @GetMapping("/list")
    public CommonResult listCourseEffectiven(CourseEffectiven courseEffectiven){
        return CommonResult.success(courseEffectivenService.selectCourseEffectivenList(courseEffectiven));
    }
    /**
     * 课程有效性评价新增
     * @param courseEffectiven
     * @return
     */
    @ApiOperation(value = "课程有效性评价新增")
    @PostMapping("/insert")
    public CommonResult insertCourseEffectiven(@RequestBody CourseEffectiven courseEffectiven){
        return courseEffectivenService.insertCourseEffectiven(courseEffectiven);
    }
    /**
     * 课程有效性评价修改
     * @param courseEffectiven
     * @return
     */
    @ApiOperation(value = "课程有效性评价修改")
    @PostMapping("/update")
    public CommonResult updateCourseEffectiven(@RequestBody CourseEffectiven courseEffectiven){
        return courseEffectivenService.updateCourseEffectiven(courseEffectiven);
    }
    /**
     * 课程有效性评价删除
     * @param effectivenId
     * @return
     */
    @ApiOperation(value = "课程有效性评价删除")
    @GetMapping("/deleted")
    public CommonResult deletedCourseEffectiven(@RequestParam("effectivenId") Integer effectivenId){
        return courseEffectivenService.deletedCourseEffectiven(effectivenId);
    }
}
multi-system/src/main/java/com/gkhy/exam/system/domain/CourseEffectiven.java
对比新文件
@@ -0,0 +1,115 @@
package com.gkhy.exam.system.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Getter
@Setter
@TableName("course_effectiven")
@ApiModel(value = "CourseEffectiven", description = "课程有效性评价")
public class CourseEffectiven implements Serializable {
    @ApiModelProperty("主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "企业id")
    @TableField("company_id")
    private Long companyId;
    @TableField(exist = false)
    private String companyName;
    @ApiModelProperty(value = "计划id")
    @TableField("plan_id")
    private Integer planId;
    @TableField(exist = false)
    private String planName;
    @ApiModelProperty(value = "讲师id")
    @TableField("teacher_id")
    private Integer teacherId;
    @TableField(exist = false)
    private String teacherName;
    @ApiModelProperty(value = "所属部门id")
    @TableField("dept_id")
    private Integer deptId;
    @TableField(exist = false)
    private String deptName;
    @ApiModelProperty(value = "开课日期id")
    @TableField("open_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate openTime;
    @ApiModelProperty(value = "员工")
    @TableField("staffs")
    private String staffs;
    @TableField(exist = false)
    private String staffsNames;
    @ApiModelProperty(value = "个人素养")
    @TableField("personal_quality")
    private String personalQuality;
    @ApiModelProperty(value = "授课准备")
    @TableField("preparatory")
    private String preparatory;
    @ApiModelProperty(value = "课程内容")
    @TableField("course_content")
    private String courseContent;
    @ApiModelProperty(value = "你的建议")
    @TableField("suggest")
    private String suggest;
    @ApiModelProperty(value = "关于讲师")
    @TableField("about_teacher")
    private String aboutTeacher;
    @ApiModelProperty(value = "关于内容")
    @TableField("about_content")
    private String aboutContent;
    @ApiModelProperty(value = "关于授课方式")
    @TableField("teach_form")
    private String teachForm;
    @ApiModelProperty(value = "其他")
    @TableField("other")
    private String other;
    @TableField("del_flag")
    private Integer delFlag;
    @TableField("create_by")
    private String createBy;
    @TableField("create_time")
    private LocalDateTime createTime;
    @TableField("update_by")
    private String updateBy;
    @TableField("update_time")
    private LocalDateTime updateTime;
}
multi-system/src/main/java/com/gkhy/exam/system/mapper/CourseEffectivenMapper.java
对比新文件
@@ -0,0 +1,13 @@
package com.gkhy.exam.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gkhy.exam.system.domain.CourseEffectiven;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper
public interface CourseEffectivenMapper extends BaseMapper<CourseEffectiven> {
    List<CourseEffectiven> selectEffectivenList(CourseEffectiven courseEffectiven);
}
multi-system/src/main/java/com/gkhy/exam/system/service/CourseEffectivenService.java
对比新文件
@@ -0,0 +1,16 @@
package com.gkhy.exam.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.system.domain.CourseEffectiven;
public interface CourseEffectivenService extends IService<CourseEffectiven> {
    CommonPage selectCourseEffectivenList(CourseEffectiven courseEffectiven);
    CommonResult insertCourseEffectiven(CourseEffectiven courseEffectiven);
    CommonResult updateCourseEffectiven(CourseEffectiven courseEffectiven);
    CommonResult deletedCourseEffectiven(Integer effectivenId);
}
multi-system/src/main/java/com/gkhy/exam/system/service/impl/CourseEffectivenServiceImpl.java
对比新文件
@@ -0,0 +1,103 @@
package com.gkhy.exam.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.exam.common.api.CommonPage;
import com.gkhy.exam.common.api.CommonResult;
import com.gkhy.exam.common.domain.entity.SysUser;
import com.gkhy.exam.common.utils.PageUtils;
import com.gkhy.exam.common.utils.SecurityUtils;
import com.gkhy.exam.system.domain.CourseEffectiven;
import com.gkhy.exam.system.mapper.CourseEffectivenMapper;
import com.gkhy.exam.system.mapper.SysUserMapper;
import com.gkhy.exam.system.service.CourseEffectivenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class CourseEffectivenServiceImpl extends ServiceImpl<CourseEffectivenMapper, CourseEffectiven> implements CourseEffectivenService {
    @Autowired
    private CourseEffectivenMapper courseEffectivenMapper;
    @Autowired
    private SysUserMapper sysUserMapper;
    @Override
    public CommonPage selectCourseEffectivenList(CourseEffectiven courseEffectiven) {
        if (!SecurityUtils.adminUser() && courseEffectiven.getCompanyId() == null){
            throw new RuntimeException("非管理员操作,企业查询不可为空");
        }
        PageUtils.startPage();
        List<CourseEffectiven> courseEffectivens = courseEffectivenMapper.selectEffectivenList(courseEffectiven);
        Set<Integer> allUserIds = courseEffectivens.stream()
                .map(CourseEffectiven::getStaffs)
                .filter(Objects::nonNull)
                .flatMap(staffs -> Arrays.stream(staffs.split(",")))
                .map(String::trim)
                .filter(s -> !s.isEmpty())
                .map(Integer::valueOf)
                .collect(Collectors.toSet());
        if (!allUserIds.isEmpty()) {
            // 批量查询用户信息
            Map<Long, String> userMap  = sysUserMapper.selectBatchIds(new ArrayList<>(allUserIds)).stream()
                    .collect(Collectors.toMap(SysUser::getId, SysUser::getName));
            // 设置用户姓名
            courseEffectivens.forEach(item -> {
                if (item.getStaffs() != null) {
                    String staffNames = Arrays.stream(item.getStaffs().split(","))
                            .map(String::trim)
                            .filter(s -> !s.isEmpty())
                            .map(Long::valueOf)
                            .map(userMap::get)
                            .filter(Objects::nonNull)
                            .collect(Collectors.joining(","));
                    item.setStaffsNames(staffNames);
                }
            });
        }
        return CommonPage.restPage(courseEffectivens);
    }
    @Override
    public CommonResult insertCourseEffectiven(CourseEffectiven courseEffectiven) {
        courseEffectiven.setCreateBy(SecurityUtils.getUsername());
        courseEffectiven.setCreateTime(LocalDateTime.now());
        int insert = courseEffectivenMapper.insert(courseEffectiven);
        if (insert>0){
            return CommonResult.success();
        }
        return CommonResult.failed();
    }
    @Override
    public CommonResult updateCourseEffectiven(CourseEffectiven courseEffectiven) {
        courseEffectiven.setUpdateBy(SecurityUtils.getUsername());
        courseEffectiven.setUpdateTime(LocalDateTime.now());
        int update = courseEffectivenMapper.updateById(courseEffectiven);
        if (update>0){
            return CommonResult.success();
        }
        return CommonResult.failed();
    }
    @Override
    public CommonResult deletedCourseEffectiven(Integer effectivenId) {
        CourseEffectiven courseEffectiven = new CourseEffectiven();
        courseEffectiven.setId(effectivenId);
        courseEffectiven.setUpdateBy(SecurityUtils.getUsername());
        courseEffectiven.setUpdateTime(LocalDateTime.now());
        courseEffectiven.setDelFlag(2);
        int update = courseEffectivenMapper.updateById(courseEffectiven);
        if (update>0){
            return CommonResult.success();
        }
        return CommonResult.failed();
    }
}
multi-system/src/main/resources/mapper/system/CourseEffectivenMapper.xml
对比新文件
@@ -0,0 +1,45 @@
<?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.gkhy.exam.system.mapper.CourseEffectivenMapper">
    <select id="selectEffectivenList" resultType="com.gkhy.exam.system.domain.CourseEffectiven">
        SELECT
            ce.`id`,
            ce.`company_id`,
            sc.`name` as company_name,
            ce.`plan_id`,
            tp.`train_name` as plan_name,
            ce.`teacher_id`,
            su.`name` as teacher_name,
            ce.`dept_id`,
            sd.`dept_name`,
            ce.`open_time`,
            ce.`staffs`,
            ce.`personal_quality`,
            ce.`preparatory`,
            ce.`course_content`,
            ce.`suggest`,
            ce.`about_teacher`,
            ce.`about_content`,
            ce.`teach_form`,
            ce.`other`,
            ce.`del_flag`,
            ce.`create_by`,
            ce.`create_time`,
            ce.`update_by`,
            ce.`update_time`
        FROM
            `course_effectiven` ce
                LEFT JOIN sys_user su ON ce.teacher_id = su.id
                LEFT JOIN sys_company sc ON ce.company_id = sc.id
                LEFT JOIN sys_dept sd ON ce.dept_id = sd.dept_id
                LEFT JOIN train_plan tp ON ce.plan_id = tp.id
        WHERE
            ce.del_flag = 0
            <if test="companyId!=null">
                and ce.company_id = #{companyId}
            </if>
        ORDER BY
            ce.create_time DESC
    </select>
</mapper>