6 years ago
parent
commit
7bc4048ff2
  1. 6
      game/src/main/java/com/ccsens/game/netty/wsserver/WebSocketEncoder.java
  2. 2
      game/src/main/java/com/ccsens/game/service/MessageService.java
  3. 23
      game/src/main/java/com/ccsens/game/service/ScreenService.java
  4. 46
      mt/src/main/java/com/ccsens/mt/api/ScoreController.java
  5. 16
      mt/src/main/java/com/ccsens/mt/api/SigninController.java
  6. 4
      mt/src/main/java/com/ccsens/mt/service/IScoreService.java
  7. 4
      mt/src/main/java/com/ccsens/mt/service/ISigninService.java
  8. 57
      mt/src/main/java/com/ccsens/mt/service/ScoreService.java
  9. 40
      mt/src/main/java/com/ccsens/mt/service/SigninService.java
  10. 8
      mt/src/main/resources/mapper_dao/ScoreDao.xml
  11. 30
      tall/src/main/java/com/ccsens/tall/service/ExcelService.java
  12. 8
      tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java
  13. 4
      tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java

6
game/src/main/java/com/ccsens/game/netty/wsserver/WebSocketEncoder.java

@ -25,6 +25,12 @@ public class WebSocketEncoder extends MessageToByteEncoder<BaseMessageDto> {
ctx.writeAndFlush(new TextWebSocketFrame(msg));
logger.info("Websocket send: {}",msg);
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
cause.printStackTrace();
super.exceptionCaught(ctx, cause);
}
}

2
game/src/main/java/com/ccsens/game/service/MessageService.java

@ -109,7 +109,7 @@ public class MessageService implements IMessageService {
gameMessages.forEach(gameMessage -> {
gameMessage.setType(WebConstant.Message_Type.ChangeStatus.phase);
log.info("============ {}",gameMessage);
sendTo(gameMessage.getUserId().toString(), gameMessage);
sendTo(gameMessage.getUserId().toString(), gameMessage.getData());
});
}
}

23
game/src/main/java/com/ccsens/game/service/ScreenService.java

@ -329,27 +329,28 @@ public class ScreenService implements IScreenService{
if(ObjectUtil.isNull(gameType)){
throw new BaseException(CodeEnum.NOT_GAME_TYPE);
}
//添加一场新的游戏记录
GameRecord gameRecordNew = new GameRecord();
gameRecordNew.setId(snowflake.nextId());
gameRecordNew.setUserPayId(gameUserPay.getId());
gameRecordNew.setUrl(WebConstant.TEST_URL_GAME + gameRecordNew.getId() + File.separator + gameType.getScreenUrl());
gameRecordNew.setQrCodeUrl(WebConstant.TEST_URL_GAME + gameRecordNew.getId() + File.separator + gameType.getClientUrl());
gameRecordDao.insertSelective(gameRecordNew);
//修改购买的游戏的使用次数
gameUserPay.setUsedCount(gameUserPay.getUsedCount() + 1);
gameUserPayDao.updateByPrimaryKeySelective(gameUserPay);
// //添加一场新的游戏记录
// GameRecord gameRecordNew = new GameRecord();
// gameRecordNew.setId(snowflake.nextId());
// gameRecordNew.setUserPayId(gameUserPay.getId());
// gameRecordNew.setUrl(WebConstant.TEST_URL_GAME + gameRecordNew.getId() + File.separator + gameType.getScreenUrl());
// gameRecordNew.setQrCodeUrl(WebConstant.TEST_URL_GAME + gameRecordNew.getId() + File.separator + gameType.getClientUrl());
// gameRecordDao.insertSelective(gameRecordNew);
// //修改购买的游戏的使用次数
// gameUserPay.setUsedCount(gameUserPay.getUsedCount() + 1);
// gameUserPayDao.updateByPrimaryKeySelective(gameUserPay);
if(gameUserPay.getUsedCount() >= gameUserPay.getTotalCount()){
throw new BaseException(CodeEnum. GAME_NOT_TIMES);
}
GameRecord gameRecordNew = null;
if(gameRecord.getGameStatus() == 3){
//添加一场新的游戏记录
gameRecordNew = new GameRecord();
gameRecordNew.setId(snowflake.nextId());
gameRecordNew.setUserPayId(gameUserPay.getId());
gameRecordNew.setUrl(WebConstant.TEST_URL_GAME + gameType.getScreenUrl() + "?id="+gameRecord.getId());
gameRecordNew.setUrl(WebConstant.TEST_URL_GAME + gameType.getScreenUrl() + "?id="+gameRecordNew.getId());
gameRecordNew.setQrCodeUrl(WebConstant.TEST_URL_GAME + gameRecordNew.getId() + File.separator + gameType.getClientUrl());
gameRecordDao.insertSelective(gameRecordNew);
//修改购买的游戏的使用次数

46
mt/src/main/java/com/ccsens/mt/api/ScoreController.java

@ -72,30 +72,28 @@ public class ScoreController {
}
//
// @ApiOperation(value = "退回单个评委的评分",notes = "")
// @ApiImplicitParams({
// @ApiImplicitParam(name = "roleId", value = "评委id", required = true, paramType = "path"),
// @ApiImplicitParam(name = "playerId", value = "参赛项目id", required = true, paramType = "path"),
// })
// @RequestMapping(value = "/back", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"})
// public JsonResponse backScore(HttpServletRequest request,
// @RequestParam(required = true) Long roleId,
// @RequestParam(required = true) Long playerId) throws Exception {
// scoreService.backScore(roleId,playerId);
// return JsonResponse.newInstance().ok();
// }
//
// @ApiOperation(value = "退回所有评委的评分",notes = "")
// @ApiImplicitParams({
// @ApiImplicitParam(name = "playerId", value = "参赛项目id", required = true, paramType = "path"),
// })
// @RequestMapping(value = "/backAll", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"})
// public JsonResponse backScoreAll(HttpServletRequest request,
// @RequestParam(required = true) Long playerId) throws Exception {
// scoreService.backScoreAll(playerId);
// return JsonResponse.newInstance().ok();
// }
@ApiOperation(value = "退回单个评委的评分",notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "roleId", value = "评委id", required = true, paramType = "path"),
@ApiImplicitParam(name = "playerId", value = "参赛项目id", required = true, paramType = "path"),
})
@RequestMapping(value = "/back", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"})
public JsonResponse backScore(@RequestParam(required = true) Long roleId,
@RequestParam(required = true) Long playerId) throws Exception {
scoreService.backScore(roleId,playerId);
return JsonResponse.newInstance().ok();
}
@ApiOperation(value = "退回所有评委的评分",notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "playerId", value = "参赛项目id", required = true, paramType = "path"),
})
@RequestMapping(value = "/backAll", method = RequestMethod.DELETE, produces = {"application/json;charset=UTF-8"})
public JsonResponse backScoreAll(@RequestParam(required = true) Long playerId) throws Exception {
scoreService.backScoreAll(playerId);
return JsonResponse.newInstance().ok();
}
@ApiOperation(value = "查看项目排名及详细分数",notes = "")
@ApiImplicitParams({

16
mt/src/main/java/com/ccsens/mt/api/SigninController.java

@ -14,6 +14,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Api(tags = "签到" , description = "")
@RestController
@ -53,4 +54,19 @@ public class SigninController {
return JsonResponse.newInstance().ok(signinVoInfo);
}
@ApiOperation(value = "查看所有人的签到信息", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(name = "taskId", value = "签到任务的id", required = true, paramType = ""),
})
@RequestMapping(value = "all", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
public JsonResponse<List<SigninVo.SigninVoInfo>> getSignAllByTaskId(HttpServletRequest request,
@RequestParam(required = true) Long taskId) throws Exception {
log.info("查看自己的签到信息");
//获取userId
Long userId = userService.getUserIdByToken(request);
List<SigninVo.SigninVoInfo> signinVoInfo = signinService.getSignAllByTaskId(taskId,userId);
return JsonResponse.newInstance().ok(signinVoInfo);
}
}

4
mt/src/main/java/com/ccsens/mt/service/IScoreService.java

@ -15,4 +15,8 @@ public interface IScoreService {
List<ScoreVo.RankingScore> getRanking(Long projectId);
void showScore(Long projectId, Long playerId) throws Exception;
void backScore(Long roleId, Long playerId);
void backScoreAll(Long playerId);
}

4
mt/src/main/java/com/ccsens/mt/service/ISigninService.java

@ -3,8 +3,12 @@ package com.ccsens.mt.service;
import com.ccsens.mt.bean.dto.SigninDto;
import com.ccsens.mt.bean.vo.SigninVo;
import java.util.List;
public interface ISigninService {
SigninVo.SigninVoInfo signin(SigninDto.SigninInfo signinInfo, Long userId);
SigninVo.SigninVoInfo getSignByTaskId(Long taskId, Long userId);
List<SigninVo.SigninVoInfo> getSignAllByTaskId(Long taskId, Long userId);
}

57
mt/src/main/java/com/ccsens/mt/service/ScoreService.java

@ -271,12 +271,14 @@ public class ScoreService implements IScoreService{
if (CollectionUtil.isNotEmpty(judgeList)) {
for (MtJudge judge : judgeList) {
BigDecimal scoreSUM = scoreDao.sumScoreByJudgeId(judge.getId(), taskId);
judgeScore = new ScoreVo.JudgeScore();
judgeScore.setJudgeId(judge.getId());
judgeScore.setJudgeName(judge.getNickname());
judgeScore.setScore(scoreSUM);
if(ObjectUtil.isNotNull(scoreSUM)) {
judgeScore = new ScoreVo.JudgeScore();
judgeScore.setJudgeId(judge.getId());
judgeScore.setJudgeName(judge.getNickname());
judgeScore.setScore(scoreSUM);
judgeScoreList.add(judgeScore);
judgeScoreList.add(judgeScore);
}
}
}
return judgeScoreList;
@ -314,7 +316,9 @@ public class ScoreService implements IScoreService{
judge.setScore(judgeScore.getScore());
judgeList.add(judge);
//获取此任务的总分
aveScore = aveScore.add(judgeScore.getScore());
if(ObjectUtil.isNotNull(judgeScore.getScore())){
aveScore = aveScore.add(judgeScore.getScore());
}
}
//平均分
aveScore = aveScore.divide(BigDecimal.valueOf(judgeScoreList.size()), 2, ROUND_HALF_UP);
@ -336,4 +340,45 @@ public class ScoreService implements IScoreService{
//发送消息
messageService.sendSyncMessageWithShow(scoreShow);
}
/**
* 退回单个评委的评分
*/
@Override
public void backScore(Long roleId, Long taskId) {
TaskVo.TaskInfoWithFeign taskInfo = tallFeignClient.getProjectId(taskId);
if(ObjectUtil.isNull(taskInfo)){
throw new BaseException(CodeEnum.NOT_TASK);
}
MtScoreExample mtScoreExample = new MtScoreExample();
mtScoreExample.createCriteria().andJudgeUserIdEqualTo(roleId).andTaskIdEqualTo(taskInfo.getId());
List<MtScore> mtScoreList = scoreDao.selectByExample(mtScoreExample);
if(CollectionUtil.isNotEmpty(mtScoreList)){
for(MtScore score : mtScoreList){
score.setRecStatus((byte) 2);
scoreDao.updateByPrimaryKeySelective(score);
}
}
}
/**
* 退回该任务的所有评分
*/
@Override
public void backScoreAll(Long taskId) {
TaskVo.TaskInfoWithFeign taskInfo = tallFeignClient.getProjectId(taskId);
if(ObjectUtil.isNull(taskInfo)){
throw new BaseException(CodeEnum.NOT_TASK);
}
MtScoreExample mtScoreExample = new MtScoreExample();
mtScoreExample.createCriteria().andTaskIdEqualTo(taskInfo.getId());
List<MtScore> mtScoreList = scoreDao.selectByExample(mtScoreExample);
if(CollectionUtil.isNotEmpty(mtScoreList)){
for(MtScore score : mtScoreList){
score.setRecStatus((byte) 2);
scoreDao.updateByPrimaryKeySelective(score);
}
}
}
}

40
mt/src/main/java/com/ccsens/mt/service/SigninService.java

@ -12,6 +12,7 @@ import com.ccsens.util.exception.BaseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@ -21,6 +22,12 @@ public class SigninService implements ISigninService{
@Autowired
private Snowflake snowflake;
/**
* 签到
* @param signinInfo
* @param userId
* @return
*/
@Override
public SigninVo.SigninVoInfo signin(SigninDto.SigninInfo signinInfo, Long userId) {
MtSigninExample signinExample = new MtSigninExample();
@ -56,7 +63,12 @@ public class SigninService implements ISigninService{
return signinVoInfo;
}
/**
* 查看自己的签到信息
* @param taskId
* @param userId
* @return
*/
@Override
public SigninVo.SigninVoInfo getSignByTaskId(Long taskId, Long userId) {
SigninVo.SigninVoInfo signinVoInfo = new SigninVo.SigninVoInfo();
@ -72,4 +84,30 @@ public class SigninService implements ISigninService{
}
return signinVoInfo;
}
/**
* 查看任务的全部签到信息
* @param taskId
* @param userId
* @return
*/
@Override
public List<SigninVo.SigninVoInfo> getSignAllByTaskId(Long taskId, Long userId) {
List<SigninVo.SigninVoInfo> signinVoInfoList = new ArrayList<>();
MtSigninExample signinExample = new MtSigninExample();
signinExample.createCriteria().andTaskIdEqualTo(taskId);
List<MtSignin> signinList = mtSigninDao.selectByExample(signinExample);
if(CollectionUtil.isNotEmpty(signinList)){
for(MtSignin mtSignin : signinList){
SigninVo.SigninVoInfo signinVoInfo = new SigninVo.SigninVoInfo();
signinVoInfo.setName(mtSignin.getName());
signinVoInfo.setPhone(mtSignin.getPhone());
signinVoInfo.setSequence(mtSignin.getSequence());
signinVoInfo.setSignTime(mtSignin.getSigninTime());
signinVoInfoList.add(signinVoInfo);
}
}
return signinVoInfoList;
}
}

8
mt/src/main/resources/mapper_dao/ScoreDao.xml

@ -12,6 +12,8 @@
task_id=#{playerId}
AND
judge_user_id = #{judgeId}
AND
rec_status = 0
</select>
<select id="sumScore" parameterType="java.util.Map" resultType="java.math.BigDecimal">
@ -21,6 +23,8 @@
`t_mt_score`
WHERE
task_id=#{playerId}
AND
rec_status = 0
</select>
<select id="maxScore" parameterType="java.util.Map" resultType="com.ccsens.mt.bean.po.MtScore">
@ -32,6 +36,8 @@
score = (SELECT MAX(score) FROM `t_mt_score` WHERE task_id=#{playerId})
AND
task_id=#{playerId}
AND
rec_status = 0
LIMIT 0,1
</select>
@ -44,6 +50,8 @@
score = (SELECT MIN(score) FROM `t_mt_score` WHERE task_id=#{playerId})
AND
task_id=#{playerId}
AND
rec_status = 0
LIMIT 0,1
</select>

30
tall/src/main/java/com/ccsens/tall/service/ExcelService.java

@ -600,12 +600,14 @@ public class ExcelService implements IExcelService {
// if(StrUtil.isEmpty(task2)){
// throw new BaseException(CodeEnum.WBS_NOT_TASK_NAME.addMsg(wbsSheet.getSheetName()+i));
// }
//TODO 一级任务(时间暂时为空)
//一级任务
if (StrUtil.isNotEmpty(task1)) {
ProTaskDetail firstTaskDetail = new ProTaskDetail();
firstTaskDetail.setId(snowflake.nextId());
firstTaskDetail.setName(task1);
firstTaskDetail.setProjectId(sysProject.getId());
firstTaskDetail.setBeginTime(sysProject.getBeginTime());
firstTaskDetail.setEndTime(sysProject.getEndTime());
firstTaskDetail.setDelay((byte) WebConstant.TASK_DELAY.SelfMotion.value);
firstTaskDetail.setVirtual((byte) WebConstant.TASK_VIRTUAL.Normal.value);
firstTaskDetail.setLevel((byte) WebConstant.TASK_LEVEL.FirstTask.value);
@ -765,6 +767,26 @@ public class ExcelService implements IExcelService {
//添加任务
proTaskDetailService.saveTaskDetail(taskDetail);
taskDetails.add(taskDetail);
//给一级任务时间赋值
if(CollectionUtil.isNotEmpty(taskDetails)){
for(ProTaskDetail firstTaskDetail : taskDetails){
if(firstTaskDetail.getId().longValue() == firstTaskDetailId){
//开始时间
if(ObjectUtil.isNull(firstTaskDetail.getBeginTime())){
firstTaskDetail.setBeginTime(taskDetail.getBeginTime());
}else if(firstTaskDetail.getBeginTime() > taskDetail.getBeginTime()){
firstTaskDetail.setBeginTime(taskDetail.getBeginTime());
}
//结束时间
if(ObjectUtil.isNull(firstTaskDetail.getEndTime())){
firstTaskDetail.setEndTime(taskDetail.getEndTime());
}else if(firstTaskDetail.getEndTime() < taskDetail.getEndTime()){
firstTaskDetail.setEndTime(taskDetail.getEndTime());
}
break;
}
}
}
}
}
//添加一个结束虚拟节点
@ -956,8 +978,8 @@ public class ExcelService implements IExcelService {
public void saveProTaskSubTime(List<ProTaskDetail> taskDetails) throws Exception {
if (CollectionUtil.isNotEmpty(taskDetails)) {
for (ProTaskDetail taskDetail : taskDetails) {
//虚拟任务或一级任务不拆分
if (taskDetail.getVirtual() == WebConstant.TASK_VIRTUAL.Virtual.value || taskDetail.getLevel() == 1) {
//虚拟任务不拆分
if (taskDetail.getVirtual() == WebConstant.TASK_VIRTUAL.Virtual.value) {
continue;
}
//cycle为空或者组任务,只加一条数据
@ -1053,7 +1075,7 @@ public class ExcelService implements IExcelService {
//获取任务Id
if (StrUtil.isNotEmpty(task)) {
for (ProTaskDetail proTask : taskDetails) {
if (task.equals(proTask.getName())) {
if (task.equals(proTask.getName()) && proTask.getLevel() == 2) {
if (proTask.getHasGroup() == 1) {
taskNameList = hasGroupMap.get(proTask.getName());
break;

8
tall/src/main/java/com/ccsens/tall/service/ProTaskDetailService.java

@ -123,7 +123,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
normalTask = new TaskVo.NormalTask();
BeanUtil.copyProperties(firstTaskDetail, normalTask);
normalTask.setDetailId(firstTaskDetail.getId());
normalTask.setId(null);
normalTask.setId(taskDeliverService.isTaskOrSubTime(firstTaskDetail.getId()));
normalTask.setSequence(sequence);
//查找一级任务下的二级任务
List<TaskVo.NormalTask> secondNormalTaskList = taskDetailDao.selectNormalTaskListByPM(projectId, firstTaskDetail.getId(), startTime, endTime,roleId);
@ -393,7 +393,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
//查找项目下的一级任务
ProTaskDetailExample firstTaskExample = new ProTaskDetailExample();
firstTaskExample.createCriteria().andProjectIdEqualTo(projectId)
.andVirtualEqualTo((byte) WebConstant.TASK_VIRTUAL.Normal.value).andParentIdEqualTo(0L);
.andVirtualEqualTo((byte) WebConstant.TASK_VIRTUAL.Normal.value).andLevelEqualTo((byte) 1);
List<ProTaskDetail> firstTaskList = taskDetailDao.selectByExample(firstTaskExample);
if (CollectionUtil.isNotEmpty(firstTaskList)) {
for (ProTaskDetail firstTask : firstTaskList) {
@ -429,7 +429,9 @@ public class ProTaskDetailService implements IProTaskDetailService {
Long now = System.currentTimeMillis();
System.out.println(task.getName());
TaskVo.TaskIdAndSubTimeIdByParentIdAndTime taskAndSubTime = taskDetailDao.selectSubTimeByTaskParentIdAndTime(task.getId(), now);
taskDeliverByMVP.setDelivers(taskDeliverService.selectDeliverOrInputByTask(taskAndSubTime.getTaskId(), 0));
if(ObjectUtil.isNotNull(taskAndSubTime)){
taskDeliverByMVP.setDelivers(taskDeliverService.selectDeliverOrInputByTask(taskAndSubTime.getTaskId(), 0));
}
}
//查找任务的输入文档
taskDeliverByMVP.setInputs(taskDeliverService.selectDeliverOrInputByTask(task.getId(), 1));

4
tall/src/main/java/com/ccsens/tall/service/TaskDeliverService.java

@ -307,7 +307,9 @@ public class TaskDeliverService implements ITaskDeliverService {
}
else {
TaskVo.TaskIdAndSubTimeIdByParentIdAndTime taskAndSubTime = taskDetailDao.selectSubTimeByTaskParentIdAndTime(taskDetail.getId(), now);
subTimeId = taskAndSubTime.getSubTimeId();
if(ObjectUtil.isNotNull(taskAndSubTime)){
subTimeId = taskAndSubTime.getSubTimeId();
}
}
}
}

Loading…
Cancel
Save