package org.xmx0632.deliciousfruit.api.v1; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.xmx0632.deliciousfruit.api.v1.bo.CheckUsernameRequest; import org.xmx0632.deliciousfruit.api.v1.bo.CheckUsernameResponse; import org.xmx0632.deliciousfruit.api.v1.bo.Result; import org.xmx0632.deliciousfruit.service.UserAccountService; /** * UserAccount的API的Controller. * * @author xmx0632 */ @Controller @RequestMapping(value = "/api/v1") public class UserAccountCheckUsernameApiController { private static Logger log = LoggerFactory .getLogger(UserAccountCheckUsernameApiController.class); @Autowired private UserAccountService userAccountService; @RequestMapping(value = "/checkUsername", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity<CheckUsernameResponse> checkUsername( @RequestBody CheckUsernameRequest request) { log.debug("Request:{}", request); long count = userAccountService.countByUsername(request.getLoginName()); CheckUsernameResponse response = new CheckUsernameResponse(); Result result = getResult(count); response.setResult(result); log.debug("response:{}", response); return new ResponseEntity<CheckUsernameResponse>(response, HttpStatus.OK); } private Result getResult(long count) { if (count == 0) { return new Result(Result.SUCCESS, "username available"); } return new Result(Result.FAIL, "username unavailable"); } }