锁表问题

/**
*团队报名
*/
@Override
//@Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class,RuntimeException.class})
public Result teamCompetition(Team team,Region region) {
try {
team.setGameState(1);
int i = teamMapper.updateByPrimaryKeySelective(team);

        if(i>0){
            region.setTotalpeople( region.getTotalpeople()+team.getPeopleNum());
            region.setTotalTeam(region.getTotalTeam()+1);
            int j = regionService.updateByKeySelective(region);
            if(j>0){
            //查询团队下所有队员
            List<TeamUser> tulist =  teamUserMapper.selectteamuser(team.getTid());
                Date date = new Date();
                List<UserMatch> umlist = new ArrayList <UserMatch>();
                if(!tulist.isEmpty()){
                    for (TeamUser teamuser: tulist) {
                        UserMatch userMatch = new UserMatch();
                        userMatch.setRegionid(teamuser.getRegionid());
                        userMatch.setUserid(teamuser.getUserid());
                        userMatch.setJointype(2);
                        userMatch.setJointime(date);
                        userMatch.setInitfund(new BigDecimal(region.getInitmoney()));
                            boolean flag = wybTaskService.doNewbieTask("jt",teamuser.getUserid());
                            if(flag){
                                umlist.add(userMatch);
                            }else{
                                throw GlobalException.error(CodeMsg.INFO(400,"团队报名参赛失败"));

                            }
                    }
                    int num =userMatchMapper.insertList(umlist);
                    if(num>0){
                        Map map = new HashMap();
                        map.put("captain_id",team.getTeamLeader());//队长
                        map.put("client_id",team.getTeamLeader());//
                        map.put("team_id",String.valueOf(team.getTid()));//团队id
                        map.put("game_id",String.valueOf(team.getRegionId()));//比赛id
                        String paramStr = JSONObject.toJSONString(map);


                        boolean b = setInvokeProtocol(paramStr, 11190);
                        if(b){
                           int m = teamUserMapper.updateteamuserByApplystateis(team.getTid());
                            logger.info("团队参赛后修改未通过申请的队员信息为失效"+m+"条。。。。。");
                           return Result.success();
                        }else{
                            throw GlobalException.error(CodeMsg.INFO(400,"团队报名参赛失败"));
                        }
                    }else {
                        throw GlobalException.error(CodeMsg.INFO(400,"团队报名参赛失败"));
                    }
                }else {
                    throw GlobalException.error(CodeMsg.INFO(400,"团队报名参赛失败"));
                }
            }else{
                throw GlobalException.error(CodeMsg.INFO(400,"团队报名参赛失败"));
            }
        }else{
            throw GlobalException.error(CodeMsg.INFO(400,"团队报名参赛失败"));
        }
    }catch (Exception e){
        e.printStackTrace();
        throw GlobalException.error(CodeMsg.INFO(400,"团队报名参赛异常"));
    }
}

/***************************************************************************************************/
@Override
public boolean doNewbieTask(String taskKey, Integer userid) {
String tasknames = “”;
switch (taskKey){
case “ct”:
tasknames = “创建团队”;
break;
case “cg”:
tasknames = “创建组合”;
break;
case “jt”:
tasknames = “参加团队”;
break;
case “wg”:
tasknames = “赢得比赛”;
break;
default:
tasknames = “其他任务”;
}
try {
WybTask wybTask = wybTaskMapper.selectByBaseName(taskKey);
TaskUser taskUser = taskUserService.selectByUserAndKey(userid,wybTask.getTaskSname());
if(null == taskUser){//当前用户没有做过首次穿件团队的任务
taskUser = new TaskUser();
taskUser.setTaskkey(wybTask.getTaskSname());
taskUser.setUserid(userid);
taskUser.setTaskname(“首次”+tasknames);
int m = taskUserService.saveSelective(taskUser);
if(m>0){
//首次创建团队的任务完成
int x =subscibeWalletService.updateRatByUser(userid,wybTask.getTaskIntegral());
if(x>0){//写一份积分记录
int num = subscibeWalletService.saveWybIntegralDetails(userid,
“首次完成新手任务-”+tasknames,wybTask.getTaskIntegral(),“新手任务-”+tasknames);
if(num>0){
return true;
}else{
throw GlobalException.error(CodeMsg.INFO(400,“首次完成新手任务失败”));
}
}else {
throw GlobalException.error(CodeMsg.INFO(400,“首次完成新手任务失败”));
}
}else{
throw GlobalException.error(CodeMsg.INFO(400,“首次完成新手任务失败”));
}
}else{
return true;
}
}catch (Exception e){
e.printStackTrace();
}
return false;
}

上一篇:2019年12月PMP®认证考试精选试题(二)附答案及解析


下一篇:【题解】【白雪皑皑】