鎖表問題

/**
*團隊報名
*/
@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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章