package com.mossle.user.rs; import java.text.SimpleDateFormat; import java.util.Date; import javax.annotation.Resource; import javax.ws.rs.FormParam; import javax.ws.rs.POST; import javax.ws.rs.Path; import com.mossle.api.user.AccountLogDTO; import com.mossle.core.util.BaseDTO; import com.mossle.user.component.AccountLogQueue; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @Component @Path("account/log") public class AccountLogResource { private static Logger logger = LoggerFactory .getLogger(AccountLogResource.class); private AccountLogQueue accountLogQueue; @POST public BaseDTO log(@FormParam("username") String username, @FormParam("result") String result, @FormParam("reason") String reason, @FormParam("application") String application, @FormParam("logTime") String logTime, @FormParam("client") String client, @FormParam("server") String server, @FormParam("description") String description) { Date date = this.tryToParseTime(logTime); AccountLogDTO accountLogDto = new AccountLogDTO(); accountLogDto.setUsername(username); accountLogDto.setResult(result); accountLogDto.setReason(reason); accountLogDto.setApplication(application); accountLogDto.setLogTime(date); accountLogDto.setClient(client); accountLogDto.setServer(server); accountLogDto.setDescription(description); BaseDTO baseDto = new BaseDTO(); try { accountLogQueue.add(accountLogDto); baseDto.setCode(200); } catch (Exception ex) { logger.error(ex.getMessage(), ex); baseDto.setCode(500); baseDto.setMessage(ex.getMessage()); } return baseDto; } public Date tryToParseTime(String text) { if (text == null) { return new Date(); } try { Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S") .parse(text); return date; } catch (Exception ex) { logger.error(ex.getMessage(), ex); return new Date(); } } @Resource public void setAccountLogQueue(AccountLogQueue accountLogQueue) { this.accountLogQueue = accountLogQueue; } }