TTrainCourseServiceImpl.java 8.52 KB
Newer Older
耿迪迪's avatar
耿迪迪 committed
1 2
package com.zehong.system.service.impl;

耿迪迪's avatar
耿迪迪 committed
3 4
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
耿迪迪's avatar
耿迪迪 committed
5
import com.zehong.common.utils.DateUtils;
耿迪迪's avatar
耿迪迪 committed
6
import com.zehong.system.domain.StatisticsTrainCourse;
耿迪迪's avatar
耿迪迪 committed
7
import com.zehong.system.domain.TTrainCourse;
耿迪迪's avatar
耿迪迪 committed
8
import com.zehong.system.domain.TTrainCourseTopic;
9
import com.zehong.system.domain.TTrainPlan;
耿迪迪's avatar
耿迪迪 committed
10 11
import com.zehong.system.domain.TTrainUserCourse;
import com.zehong.system.domain.vo.UserCourseVo;
耿迪迪's avatar
耿迪迪 committed
12
import com.zehong.system.mapper.TTrainCourseMapper;
耿迪迪's avatar
耿迪迪 committed
13 14 15
import com.zehong.system.mapper.TTrainCourseTopicMapper;
import com.zehong.system.mapper.TTrainPlanMapper;
import com.zehong.system.mapper.TTrainUserCourseMapper;
耿迪迪's avatar
耿迪迪 committed
16
import com.zehong.system.service.ITTrainCourseService;
耿迪迪's avatar
耿迪迪 committed
17 18 19 20
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

耿迪迪's avatar
耿迪迪 committed
21
import java.util.*;
耿迪迪's avatar
耿迪迪 committed
22
import java.util.stream.Collectors;
耿迪迪's avatar
耿迪迪 committed
23

耿迪迪's avatar
耿迪迪 committed
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
/**
 * 培训课程Service业务层处理
 * 
 * @author zehong
 * @date 2022-09-19
 */
@Service
public class TTrainCourseServiceImpl implements ITTrainCourseService 
{
    @Autowired
    private TTrainCourseMapper tTrainCourseMapper;
    @Autowired
    private TTrainPlanMapper tTrainPlanMapper;
    @Autowired
    private TTrainUserCourseMapper tTrainUserCourseMapper;
    @Autowired
    private TTrainCourseTopicMapper tTrainCourseTopicMapper;

    /**
     * 查询培训课程
     * 
     * @param courseId 培训课程ID
     * @return 培训课程
     */
    @Override
    public TTrainCourse selectTTrainCourseById(Long courseId)
    {
        return tTrainCourseMapper.selectTTrainCourseById(courseId);
    }

    /**
     * 发布培训课程
     * @return
     */
    @Override
    @Transactional
    public Integer selectTTrainCourseRelease(Long courseId){
         TTrainCourse course = tTrainCourseMapper.selectTTrainCourseById(courseId);
         if(course==null){
             return 0;
         }
         List<String> userIds = tTrainPlanMapper.selectAlluserByplanId(course.getCourseType());
66
        tTrainCourseMapper.insertUserCourse(courseId,userIds,course.getPersonnelType());
耿迪迪's avatar
耿迪迪 committed
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
         course.setStatus(1);
         course.setReleaseTime(new Date());
         return tTrainCourseMapper.updateTTrainCourse(course);
    }
    /**
     * 查询培训课程列表
     * 
     * @param tTrainCourse 培训课程
     * @return 培训课程
     */
    @Override
    public List<TTrainCourse> selectTTrainCourseList(TTrainCourse tTrainCourse)
    {
        return tTrainCourseMapper.selectTTrainCourseList(tTrainCourse);
    }

    /**
     * 新增培训课程
     * 
     * @param tTrainCourse 培训课程
     * @return 结果
     */
    @Override
    public Long insertTTrainCourse(TTrainCourse tTrainCourse)
    {
92 93 94
        if(tTrainCourse.getDuration()!=null){//分钟转化秒
            tTrainCourse.setDuration(tTrainCourse.getDuration()*60);
        }
95 96 97 98 99 100
        if(tTrainCourse.getCourseType()!=null){
            TTrainPlan p = tTrainPlanMapper.selectTTrainPlanById(tTrainCourse.getCourseType());
            if(p!=null){
                tTrainCourse.setPersonnelType(p.getPersonnelType());
            }
        }
耿迪迪's avatar
耿迪迪 committed
101 102 103 104 105 106 107 108 109 110 111 112 113 114
        tTrainCourse.setCreateTime(DateUtils.getNowDate());
        tTrainCourseMapper.insertTTrainCourse(tTrainCourse);
        return tTrainCourse.getCourseId();
    }

    /**
     * 修改培训课程
     * 
     * @param tTrainCourse 培训课程
     * @return 结果
     */
    @Override
    public int updateTTrainCourse(TTrainCourse tTrainCourse)
    {
115 116 117
        if(tTrainCourse.getDuration()!=null){//分钟转化秒
            tTrainCourse.setDuration(tTrainCourse.getDuration()*60);
        }
耿迪迪's avatar
耿迪迪 committed
118 119
        return tTrainCourseMapper.updateTTrainCourse(tTrainCourse);
    }
120 121 122 123 124 125
    @Override
    public int updateTTrainUserCourse(TTrainUserCourse tTrainUserCourse)
    {
        return tTrainUserCourseMapper.updateTTrainUserCourse(tTrainUserCourse);
    }

耿迪迪's avatar
耿迪迪 committed
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156

    /**
     * 批量删除培训课程
     * 
     * @param courseIds 需要删除的培训课程ID
     * @return 结果
     */
    @Override
    public int deleteTTrainCourseByIds(Long[] courseIds)
    {
        return tTrainCourseMapper.deleteTTrainCourseByIds(courseIds);
    }

    /**
     * 删除培训课程信息
     * 
     * @param courseId 培训课程ID
     * @return 结果
     */
    @Override
    public int deleteTTrainCourseById(Long courseId)
    {
        return tTrainCourseMapper.deleteTTrainCourseById(courseId);
    }

    /**
     * 用户课程表
     * @return
     */
    @Override
    public List<UserCourseVo> userCourseList(Long userId,Integer type){
157
        List<UserCourseVo> list = tTrainCourseMapper.userCourseList(userId,type,1);
158 159 160 161 162 163 164 165
        for (UserCourseVo v :list){
            if(v.getTestEndTime()!=null&&v.getTestEndTime().getTime()<new Date().getTime()){
                v.setState(3);
            }
            if(v.getTestStartTime()!=null&&v.getTestStartTime().getTime()>new Date().getTime()){
                v.setState(4);
            }
        }
耿迪迪's avatar
耿迪迪 committed
166 167 168
        return list;
    }

169 170 171 172 173 174 175 176 177
    /**
     * 承包商课程表
     * @return
     */
    @Override
    public List<UserCourseVo> youkeCourseList(Long userId,Integer type){
        List<UserCourseVo> list = tTrainCourseMapper.userCourseList(userId,type,2);
        return list;
    }
耿迪迪's avatar
耿迪迪 committed
178 179 180 181 182 183 184
    /**
     * 考试判断
     * @param userCourseId
     * @param answers
     * @return
     */
    @Override
185
    @Transactional(rollbackFor = Exception.class)
耿迪迪's avatar
耿迪迪 committed
186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
    public Map<String,Object> examination (Long userCourseId,String[] answers){
        TTrainUserCourse userCourse = tTrainUserCourseMapper.selectTTrainUserCourseById(userCourseId);
        TTrainCourseTopic topic = new TTrainCourseTopic();
        topic.setCourseId(userCourse.getCourseId());
        List<TTrainCourseTopic> list = tTrainCourseTopicMapper.selectTTrainCourseTopicList(topic);
        int num = 0;
        for(Integer i=0;i<answers.length;i++){
            if(Integer.parseInt(answers[i])==list.get(i).getAnswer()){
                num++;
            }
        }
        userCourse.setExaminationResult(num);
        userCourse.setExaminationTime(new Date());
        TTrainCourse c = tTrainCourseMapper.selectTTrainCourseById(userCourse.getCourseId());
        if(num>=c.getQualifiedNum()){
            userCourse.setState(2);
        }else {
            userCourse.setState(1);
        }
        tTrainUserCourseMapper.updateTTrainUserCourse(userCourse);
        Map<String,Object> map = new HashMap<>();
        map.put("answer",num);
        map.put("qualifiedNum",c.getQualifiedNum());
        map.put("topicNum",list.size());
        return map;
    }
耿迪迪's avatar
耿迪迪 committed
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226

    /**
     * 考试发布
     * @param tTrainCourse 考试实体
     * @return int
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int testPublish( TTrainCourse tTrainCourse){
        //查询考试人员信息
        TTrainCourse course = tTrainCourseMapper.selectTTrainCourseById(tTrainCourse.getCourseId());
        if(course==null){
            return 0;
        }
        //新增考试人员
耿迪迪's avatar
耿迪迪 committed
227
        List<JSONObject> personList = JSONObject.parseArray(course.getTestPersons(),JSONObject.class);
228
        List<String> persons = personList.stream().map(item ->String.valueOf(item.get("peoPleId"))).collect(Collectors.toList());
229
        tTrainCourseMapper.insertUserCourse(tTrainCourse.getCourseId(),persons,tTrainCourse.getPersonnelType());
耿迪迪's avatar
耿迪迪 committed
230 231 232 233
        tTrainCourse.setStatus(1);
        tTrainCourse.setReleaseTime(new Date());
        return tTrainCourseMapper.updateTTrainCourse(tTrainCourse);
    }
耿迪迪's avatar
耿迪迪 committed
234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253

    /**
     * 考试统计接口
     * @param statisticsTrainCourse 统计实体
     * @return List<StatisticsTrainCourse>
     */
    @Override
    public List<StatisticsTrainCourse> statisticsTrainCourse(StatisticsTrainCourse statisticsTrainCourse){
        return tTrainCourseMapper.statisticsTrainCourse(statisticsTrainCourse);
    }

    /**
     * 根据考试查询人员考试详情
     * @param courseId 考试id
     * @return List<TTrainUserCourse>
     */
    @Override
    public List<TTrainUserCourse> testPersonDetailByCourseId(Long courseId){
        return tTrainUserCourseMapper.testPersonDetailByCourseId(courseId);
    }
254 255 256

    @Override
    public TTrainUserCourse getUserCourse(Long userCourseId){
zhangjianqian's avatar
zhangjianqian committed
257 258 259 260 261 262
        TTrainUserCourse userCourse = tTrainUserCourseMapper.selectTTrainUserCourseById(userCourseId);
        TTrainCourse v = tTrainCourseMapper.selectTTrainCourseById(userCourse.getCourseId());
        if(v.getTestEndTime()!=null&&v.getTestEndTime().getTime()<new Date().getTime()){
            userCourse.setState(3);
        }
        return userCourse;
263 264 265
    }


耿迪迪's avatar
耿迪迪 committed
266
}