@Override
 public String exchangeCode(int serverid, int player, String code) {
   ActivationCode activationCode = activationCodeDao.get(code);
   if (activationCode == null) {
     return new JSONObject().put("result", 1).put("code", code).toString(); // 错误cdk
   }
   if (!activationCode.getServersForList().contains(String.valueOf(serverid))) {
     return new JSONObject().put("result", 4).put("code", code).toString(); // 该cdk不属于该服务器使用
   }
   int eventId = activationCode.getEventId();
   List<ActivationCodeExchangeLog> activationCodeExchangeLogs =
       activationCodeExchangeLogDao.find(serverid, eventId, player);
   if (activationCodeExchangeLogs.size() > 0) {
     String code1 = activationCodeExchangeLogs.get(0).getCode();
     if (code.equals(code1)) {
       return new JSONObject().put("result", 2).put("code", code).toString(); // 已使用的CDK
     } else {
       return new JSONObject().put("result", 6).put("code", code).toString(); // 活动已参与
     }
   }
   ActivationCodeExchangeLog activationCodeExchangeLog =
       activationCodeExchangeLogDao.findByCode(code);
   if (activationCodeExchangeLog != null) {
     return new JSONObject().put("result", 2).put("code", code).toString(); // 已使用的CDK
   }
   long current = new Date().getTime();
   if (activationCode.getBeginTime().getTime() <= current
       && current <= activationCode.getEndTime().getTime()) {
     // activationCodeDao.update(activationCode);
     activationCodeExchangeLogDao.save(
         new ActivationCodeExchangeLog(
             activationCode.getEventId(), code, serverid, player)); // 保存兑换日志
     return new JSONObject()
         .put("result", 0)
         .put("code", code)
         .put("kind", activationCode.getKind())
         .toString();
   } else {
     return new JSONObject().put("result", 5).put("code", code).toString(); // cdk过期
   }
 }