Browse Source

xiaoxi

master
6 years ago
parent
commit
a871530a71
  1. 3
      game/src/main/java/com/ccsens/game/bean/dto/message/ChangeStatusMessageDto.java
  2. 7
      game/src/main/java/com/ccsens/game/bean/vo/ClientVo.java
  3. 7
      game/src/main/java/com/ccsens/game/persist/dao/GameUserJoinDao.java
  4. 2
      game/src/main/java/com/ccsens/game/service/ClientService.java
  5. 17
      game/src/main/java/com/ccsens/game/util/SendMsg.java
  6. 7
      game/src/main/resources/mapper_dao/GameUserJoinDao.xml

3
game/src/main/java/com/ccsens/game/bean/dto/message/ChangeStatusMessageDto.java

@ -12,9 +12,6 @@ public class ChangeStatusMessageDto {
private PendingData pendingData;
private CompletedData completedData;
private PendingData pendingData;
private CompletedData completedData;
@Data
@ApiModel("开始")
public static class PendingData{

7
game/src/main/java/com/ccsens/game/bean/vo/ClientVo.java

@ -96,5 +96,12 @@ public class ClientVo {
@ApiModelProperty("分数")
private int score;
}
@Data
@ApiModel("Ranking")
public class Ranking{
private Long userId;
private int rank;
}
}

7
game/src/main/java/com/ccsens/game/persist/dao/GameUserJoinDao.java

@ -11,6 +11,13 @@ import java.util.List;
@Repository
public interface GameUserJoinDao extends GameUserJoinMapper {
/**
* 获取排名
* @param recordId
* @return
*/
List<ClientVo.Ranking> getAllRanking( @Param("recordId") Long recordId);
/**
* 获取排名
* @param userId

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

@ -63,7 +63,7 @@ public class ClientService implements IClientService {
private SendMsg sendMsg;
@Override
public ClientVo.Join join(ClientDto.Join join, Long userId) {
public ClientVo.Join join(ClientDto.Join join, Long userId){
log.info("加入游戏:{}, userId:{}", join, userId);
int timeMore = (int)(join.getLocalTime() - System.currentTimeMillis());

17
game/src/main/java/com/ccsens/game/util/SendMsg.java

@ -6,6 +6,11 @@ import com.ccsens.game.bean.dto.message.GameMessageWithChangeStatusOut;
import com.ccsens.game.bean.po.GameRecord;
import com.ccsens.game.bean.po.GameUserJoin;
import com.ccsens.game.persist.dao.GameUserJoinDao;
import com.ccsens.util.JacksonUtil;
import com.ccsens.util.config.RabbitMQConfig;
import com.fasterxml.jackson.core.JsonProcessingException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
@ -21,9 +26,12 @@ import java.util.concurrent.TimeUnit;
* @create: 2019/12/28 15:49
*/
@Service
@Slf4j
public class SendMsg {
@Autowired
private GameUserJoinDao gameUserJoinDao;
@Autowired
private AmqpTemplate rabbitTemplate;
public void sendStatus(GameRecord gameRecord, List<GameUserJoin> userJoins, byte status) {
List<GameMessageWithChangeStatusOut> outs = new ArrayList<>();
@ -31,7 +39,14 @@ public class SendMsg {
outs.add(getMsg(gameRecord, join, status));
});
if (CollectionUtil.isNotEmpty(outs)) {
//TODO fasong
try {
rabbitTemplate.convertAndSend(RabbitMQConfig.RabbitMQ_QUEUE_NAME,
JacksonUtil.beanToJson(outs));
} catch (JsonProcessingException e) {
e.printStackTrace();
log.error("通知游戏状态变更mq异常");
}
}
}

7
game/src/main/resources/mapper_dao/GameUserJoinDao.xml

@ -41,4 +41,11 @@ WHERE c.user_id= #{userId,jdbcType=BIGINT} limit 1
<select id="overNum" resultType="Integer">
select count(*) from t_game_user_join where record_id = #{recordId,jdbcType=BIGINT} and score &lt; #{score,jdbcType=INTEGER}
</select>
<select id="getAllRanking" resultType="com.ccsens.game.bean.vo.ClientVo$Ranking">
SELECT user_id as userId,(@rowNum:=@rowNum+1) AS rank
FROM
(select user_id,score from t_game_user_join where rec_status = 0 and record_id = #{recordId,jdbcType=BIGINT}) a,
(SELECT(@rowNum:=0)) b
ORDER BY a.score DESC
</select>
</mapper>
Loading…
Cancel
Save