|
@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
-import com.ym.mec.biz.dal.dao.TempLittleArtistTrainingCampDao;
|
|
|
+import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.ImGroupDto;
|
|
|
import com.ym.mec.biz.dal.dto.TempLittleArtistTrainingCampDto;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
@@ -20,6 +20,7 @@ import com.ym.mec.common.page.PageUtil;
|
|
|
import com.ym.mec.common.page.WrapperUtil;
|
|
|
import com.ym.mec.common.tenant.TenantContextHolder;
|
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
+import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
import com.ym.mec.util.excel.POIUtil;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
@@ -64,6 +65,12 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
|
|
|
private SysConfigService sysConfigService;
|
|
|
@Autowired
|
|
|
private SysMessageService sysMessageService;
|
|
|
+ @Autowired
|
|
|
+ private StudentDao studentDao;
|
|
|
+ @Autowired
|
|
|
+ private StudentRegistrationDao studentRegistrationDao;
|
|
|
+ @Autowired
|
|
|
+ private MusicGroupDao musicGroupDao;
|
|
|
|
|
|
@Override
|
|
|
public TempLittleArtistTrainingCampDao getDao() {
|
|
@@ -181,6 +188,7 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
|
|
|
.le(Objects.nonNull(param.get("applyEndDate")), TempLittleArtistTrainingCamp::getApplyEndDate, param.get("applyEndDate"))
|
|
|
.ge(Objects.nonNull(param.get("trainStartDate")), TempLittleArtistTrainingCamp::getTrainStartDate, param.get("trainStartDate"))
|
|
|
.le(Objects.nonNull(param.get("trainEndDate")), TempLittleArtistTrainingCamp::getTrainEndDate, param.get("trainEndDate"))
|
|
|
+ .le(Objects.nonNull(param.get("enableFlag")), TempLittleArtistTrainingCamp::getEnableFlag, param.get("enableFlag"))
|
|
|
.orderByDesc(TempLittleArtistTrainingCamp::getId));
|
|
|
return PageUtil.pageInfo(pageList);
|
|
|
}
|
|
@@ -210,15 +218,10 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
|
|
|
@Override
|
|
|
public List<TempUserTrainingTimeDetailVo> queryUserTrainingTime(Map<String, Object> param) {
|
|
|
Integer userId = WrapperUtil.toInt(param, "userId", "学员id不能为空");
|
|
|
- //查询训练营的训练时间段
|
|
|
- TempLittleArtistTrainingCampUserRelation campUser = tempLittleArtistTrainingCampUserRelationService.getOne(Wrappers.<TempLittleArtistTrainingCampUserRelation>lambdaQuery()
|
|
|
- .eq(TempLittleArtistTrainingCampUserRelation::getUserId, userId));
|
|
|
- TempLittleArtistTrainingCamp camp = this.getOne(Wrappers.<TempLittleArtistTrainingCamp>lambdaQuery()
|
|
|
- .eq(TempLittleArtistTrainingCamp::getId, campUser.getActivityId())
|
|
|
- .eq(TempLittleArtistTrainingCamp::getDelFlag, 0));
|
|
|
+ //获取训练营
|
|
|
+ TempLittleArtistTrainingCamp camp = this.lambdaQuery().eq(TempLittleArtistTrainingCamp::getId, param.get("campId")).one();
|
|
|
String startDateStr = DateUtil.dateToString(camp.getTrainStartDate());
|
|
|
String endDateStr = DateUtil.dateToString(camp.getTrainEndDate());
|
|
|
-
|
|
|
//生成训练时间集合
|
|
|
List<TempUserTrainingTimeDetailVo> resultList = new ArrayList<>();
|
|
|
LocalDate generateDate = LocalDate.parse(startDateStr);
|
|
@@ -232,6 +235,8 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
|
|
|
tempUserTrainingTimeDetailVo.setTrainingDate(DateUtil.toDate(generateDate.toString()));
|
|
|
tempUserTrainingTimeDetailVo.setPlayTime(BigDecimal.ZERO);
|
|
|
tempUserTrainingTimeDetailVo.setIsFinish(0);
|
|
|
+ tempUserTrainingTimeDetailVo.setSignStandard(camp.getSignStandard());
|
|
|
+ tempUserTrainingTimeDetailVo.setStandardDays(camp.getStandardDays());
|
|
|
resultList.add(tempUserTrainingTimeDetailVo);
|
|
|
generateDate = generateDate.plusDays(1);
|
|
|
}
|
|
@@ -273,7 +278,20 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
|
|
|
queryUserTrainingDetailOpsParam(param);
|
|
|
Page<TempCampUserTrainingDetailVo> page = PageUtil.getPageInfo(param);
|
|
|
page.setDesc("b.playDay");
|
|
|
- return PageUtil.pageInfo(baseMapper.queryUserTrainingDetail(page, param));
|
|
|
+ IPage<TempCampUserTrainingDetailVo> vos = baseMapper.queryUserTrainingDetail(page, param);
|
|
|
+ List<TempCampUserTrainingDetailVo> records = vos.getRecords();
|
|
|
+ if(CollectionUtils.isNotEmpty(records)){
|
|
|
+ List<Integer> studentIds = records.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
+ Map<Integer,String> subjectMap = MapUtil.convertIntegerMap(studentDao.getStudentSubjectMapList(studentIds));
|
|
|
+ Map<Integer,String> groupNameMap = MapUtil.convertMybatisMap(musicGroupDao.queryNormalGroupName(studentIds));
|
|
|
+ Integer signStandard = Integer.parseInt(param.get("signStandard").toString());
|
|
|
+ for (TempCampUserTrainingDetailVo record : records) {
|
|
|
+ record.setSubjectName(subjectMap.get(record.getId()));
|
|
|
+ record.setMusicGroupName(groupNameMap.get(record.getId()));
|
|
|
+ record.setStandardFlag(record.getPlayDay() >= signStandard);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return PageUtil.pageInfo(vos);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -286,6 +304,8 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
|
|
|
.eq(TempLittleArtistTrainingCamp::getDelFlag, 0));
|
|
|
param.put("startTime", camp.getTrainStartDate());
|
|
|
param.put("endTime", camp.getTrainEndDate());
|
|
|
+ param.put("signStandard", camp.getSignStandard() * 60);
|
|
|
+ param.put("standardDays", camp.getStandardDays());
|
|
|
param.put("state", TempLittleArtistTrainingCampUserRelation.APPLY);
|
|
|
}
|
|
|
|
|
@@ -309,10 +329,12 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
|
|
|
@Override
|
|
|
public Map<String, Object> queryCampCycle() {
|
|
|
SysUser user = getUser();
|
|
|
- //查询未删除的训练营
|
|
|
- List<TempLittleArtistTrainingCamp> campList = this.list(Wrappers.<TempLittleArtistTrainingCamp>lambdaQuery()
|
|
|
- .eq(TempLittleArtistTrainingCamp::getDelFlag, 0)
|
|
|
- .orderByDesc(TempLittleArtistTrainingCamp::getId));
|
|
|
+ //获取学员可见训练营
|
|
|
+ //获取学员分部、乐团列表
|
|
|
+ Integer organId = user.getOrganId();
|
|
|
+ musicGroupDao.queryUserMusicGroups(user.getId());
|
|
|
+ List<String> musicGroupIds = studentRegistrationDao.queryStudentMusicGroup(user.getId());
|
|
|
+ List<TempLittleArtistTrainingCamp> campList = this.baseMapper.findTrainingByStudent(organId,musicGroupIds);
|
|
|
//查询该学员是否购买过该训练营
|
|
|
TempLittleArtistTrainingCampUserRelation userRelation = tempLittleArtistTrainingCampUserRelationService.getOne(Wrappers.<TempLittleArtistTrainingCampUserRelation>lambdaQuery()
|
|
|
.eq(TempLittleArtistTrainingCampUserRelation::getUserId, user.getId()));
|
|
@@ -541,7 +563,7 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
|
|
|
vo.setPlayTime(playTime);
|
|
|
vo.setTrainStartDate(camp.getTrainStartDate());
|
|
|
vo.setTrainEndDate(camp.getTrainEndDate());
|
|
|
- vo.setIsFinish(playTime >= 600 ? 0 : 1);
|
|
|
+ vo.setIsFinish(playTime >= camp.getSignStandard() * 60 ? 0 : 1);
|
|
|
return vo;
|
|
|
}
|
|
|
|
|
@@ -555,8 +577,8 @@ public class TempLittleArtistTrainingCampServiceImpl extends ServiceImpl<TempLit
|
|
|
OutputStream outputStream = response.getOutputStream();
|
|
|
HSSFWorkbook workbook = null;
|
|
|
try {
|
|
|
- String[] header = {"学员编号", "学员姓名", "手机号", "群组", "打卡天数", "训练时长(分钟)"};
|
|
|
- String[] body = {"id", "username", "phone", "imGroupName", "playDay", "playTime"};
|
|
|
+ String[] header = {"学员编号", "学员姓名", "学员声部", "乐团", "手机号", "群组", "打卡天数", "训练时长(分钟)", "打卡状态"};
|
|
|
+ String[] body = {"id", "username", "subjectName", "musicGroupName", "phone", "imGroupName", "playDay", "playTime", "standardFlag?'达标':'未达标'"};
|
|
|
workbook = POIUtil.exportExcel(header, body, list);
|
|
|
response.setContentType("application/octet-stream");
|
|
|
response.setHeader("Content-Disposition", "attachment;filename=replacement-" + DateUtil.getDate(new Date()) + ".xls");
|