Commit 4d956ae6 by 梅存智

获取报名的参加人数

parent 97aed996
......@@ -10,13 +10,16 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.cache.RedisCache;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.training.application.domain.TpStudentEnrollPassed;
import com.yizhi.training.application.domain.TrainingProject;
import com.yizhi.training.application.mapper.TpStudentEnrollPassedMapper;
import com.yizhi.training.application.mapper.TpViewRecordMapper;
import com.yizhi.training.application.mapper.TrainingProjectMapper;
import com.yizhi.training.application.service.ITpStudentEnrollPassedService;
import com.yizhi.training.application.service.ITrainingProjectService;
@RestController
@RequestMapping("/TpStudentEnrollPassed")
......@@ -34,6 +37,15 @@ public class TpStudentEnrollPassedController {
@Autowired
private TrainingProjectMapper trainingProjectMapper;
@Autowired
private ITrainingProjectService trainingProjectService;
@Autowired
private TpViewRecordMapper tpViewRecordMapper;
@Autowired
private RedisCache redisCache;
@GetMapping("/selectTpIdByCondition")
Long selectTpIdByCondition(@RequestParam(value = "tpProjrctId")Long tpProjrctId){
RequestContext context = ContextHolder.get();
......@@ -56,8 +68,22 @@ public class TpStudentEnrollPassedController {
tep.setEndTime(tp.getEndTime());
tep.setJoinTime(new Date());
tep.setSiteId(requestContext.getSiteId());
tpStudentEnrollPassedMapper.insert(tep);
Integer count = tpStudentEnrollPassedMapper.insert(tep);
//参加人数添加到缓存
if(count > 0){
try {
String key = "tp:page:joinNumber:count:" + tp.getCompanyId();
String item = tp.getSiteId() + tp.getId().toString();
if (tp.getVisibleRange() == 1) {
count = tpViewRecordMapper.getEnrollViewNum(tp);
} else {
count = tpViewRecordMapper.getEnrollViewNumRange(tp);
}
redisCache.hset(key, item, count + "", 86400);
} catch(Exception e){
e.printStackTrace();
}
}
return tep.getId();
}
......
......@@ -58,4 +58,50 @@ public interface TpViewRecordMapper extends BaseMapper<TpViewRecord> {
"GROUP BY tb.account_id) a")
Integer getViewNumRange(@Param("trainingProject") TrainingProject trainingProject);
/**
* 获取报名的参加人数
* @param trainingProject
* @return
*/
@Select("select count(1) from " +
"(select tb.id " +
"from tp_view_record tb " +
"INNER JOIN tr_enroll_record en ON en.training_project_id=tb.training_project_id " +
"where tb.training_project_id = #{trainingProject.id} " +
"and tb.company_id = #{trainingProject.companyId} " +
"and tb.site_id = #{trainingProject.siteId} " +
"group by tb.account_id) tb")
Integer getEnrollViewNum(@Param("trainingProject") TrainingProject trainingProject);
/**
* 获取报名的参加人数
* @param trainingProject
* @return
*/
@Select("SELECT count(1) from (select tb.account_id\n" +
"from (\n" +
"select tb.account_id,tb.org_id\n" +
"from tp_view_record tb \n" +
"INNER JOIN tr_enroll_record en ON en.training_project_id=tb.training_project_id " +
"where tb.training_project_id = #{trainingProject.id} \n" +
"and tb.company_id = #{trainingProject.companyId}\n" +
"and tb.site_id = #{trainingProject.siteId} \n" +
"group by tb.account_id) tb\n" +
"left join tp_authorization_range t on tb.account_id=t.relation_id \n" +
"where t.biz_id = #{trainingProject.id} \n" +
"GROUP BY tb.account_id\n" +
"UNION ALL \n" +
"select tb.account_id\n" +
"from (\n" +
"select tb.account_id,tb.org_id\n" +
"from tp_view_record tb \n" +
"where tb.training_project_id = #{trainingProject.id} \n" +
"and tb.company_id = #{trainingProject.companyId}\n" +
"and tb.site_id = #{trainingProject.siteId} \n" +
"group by tb.account_id) tb\n" +
"left join tp_authorization_range t on tb.org_id=t.relation_id \n" +
"where t.biz_id = #{trainingProject.id}\n" +
"GROUP BY tb.account_id) a")
Integer getEnrollViewNumRange(@Param("trainingProject") TrainingProject trainingProject);
}
......@@ -516,8 +516,19 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_WAIT_ENROLL.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_WAIT_ENROLL.getValue());
//根据报名开始时间和签到开始时间设置活动状态
state = compareTime(tr.getEnrollStartTime(), tr.getSignStartTime() == null ? tr.getEnrollEndTime() : tr.getSignStartTime());
//根据报名开始时间和签到开始时间设置报名活动状态
Date endTime = tr.getSignStartTime();
if(endTime == null){
endTime = tr.getEnrollEndTime();
} else {
//判断签到开始时间是否和报名的开始时间和结束时间重合,重合取报名结束时间
Date s = tr.getEnrollStartTime();
Date e = tr.getEnrollEndTime();
if((endTime.after(s) || s.equals(endTime)) && (endTime.before(e) || e.equals(endTime))){
endTime = e;
}
}
state = compareTime(tr.getEnrollStartTime(), endTime);
if(state == TrEnrollStatusEnum.ACT_RUN){
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_ENROLL.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_ENROLL.getValue());
......@@ -739,9 +750,19 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_WAIT_ENROLL.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_WAIT_ENROLL.getValue());
// 根据报名开始时间和签到开始时间设置活动状态
state = compareTime(tr.getEnrollStartTime(),
tr.getSignStartTime() == null ? tr.getEnrollEndTime() : tr.getSignStartTime());
//根据报名开始时间和签到开始时间设置报名活动状态
Date endTime = tr.getSignStartTime();
if(endTime == null){
endTime = tr.getEnrollEndTime();
} else {
//判断签到开始时间是否和报名的开始时间和结束时间重合,重合取报名结束时间
Date s = tr.getEnrollStartTime();
Date e = tr.getEnrollEndTime();
if((endTime.after(s) || s.equals(endTime)) && (endTime.before(e) || e.equals(endTime))){
endTime = e;
}
}
state = compareTime(tr.getEnrollStartTime(), endTime);
if (state == TrEnrollStatusEnum.ACT_RUN) {
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_ENROLL.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_ENROLL.getValue());
......@@ -1408,6 +1429,9 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
if(count > 0){
List<String> list = new ArrayList<String>(1);
list.add(DateUtil.toDay(theDay));
list.add(DateUtil.toDay(DateUtil.addDay(theDay, 1)));
list.add(DateUtil.toDay(DateUtil.addDay(theDay, 2)));
list.add(DateUtil.toDay(DateUtil.addDay(theDay, 3)));
item.setTheDay(list);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment