package org.xmx0632.deliciousfruit.api.v1; import javax.servlet.ServletRequest; 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.Result; import org.xmx0632.deliciousfruit.api.v1.bo.ShareFruitStoryRequest; import org.xmx0632.deliciousfruit.api.v1.bo.ShareFruitStoryResponse; import org.xmx0632.deliciousfruit.api.v1.bo.ShareOrderRequest; import org.xmx0632.deliciousfruit.api.v1.bo.ShareOrderResponse; import org.xmx0632.deliciousfruit.api.v1.bo.TerminalType; import org.xmx0632.deliciousfruit.api.v1.helper.PictureUrlHelper; import org.xmx0632.deliciousfruit.api.v1.helper.WebHelper; import org.xmx0632.deliciousfruit.entity.FruitStory; import org.xmx0632.deliciousfruit.entity.UserAccount; import org.xmx0632.deliciousfruit.global.ConfigConstant; import org.xmx0632.deliciousfruit.service.ConfigService; import org.xmx0632.deliciousfruit.service.FruitStoryService; /** * 获取分享页面接口 * * @author Jefferson-pengtao */ @Controller @RequestMapping(value = "/api/v1/share") public class ShareApiController { private static Logger log = LoggerFactory .getLogger(OrderApiController.class); @Autowired private ConfigService configService; @Autowired private FruitStoryService fruitStoryService; @RequestMapping(value = "/fruitStory", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity<ShareFruitStoryResponse> fruitStory( @RequestBody ShareFruitStoryRequest shareFruitStoryRequest, ServletRequest request) { UserAccount userAccount = WebHelper.getCurrentUser(request); log.debug("UserAccount:{}", userAccount); log.debug("Request:{}", shareFruitStoryRequest); ShareFruitStoryResponse response = new ShareFruitStoryResponse(); String storyId = shareFruitStoryRequest.getFruitStoryId(); // 检测有没有ID if (storyId == null || "".equals(storyId)) { response.setResult(new Result(Result.FAIL, Result.MSG_ERR_NO_ID)); log.debug("response:{}", response); return new ResponseEntity<ShareFruitStoryResponse>(response, HttpStatus.OK); } Long id; // 检测ID是不是有效 try { id = Long.parseLong(storyId); } catch (NumberFormatException e) { response.setResult(new Result(Result.FAIL, Result.MSG_ERR_NOT_VALID_ID)); log.debug("response:{}", response); return new ResponseEntity<ShareFruitStoryResponse>(response, HttpStatus.OK); } FruitStory story = fruitStoryService.getFruitStory(id); // 不存在此ID的水果故事 if (story == null) { response.setResult(new Result(Result.FAIL, Result.MSG_ERR_NOT_EXIST)); log.debug("response:{}", response); return new ResponseEntity<ShareFruitStoryResponse>(response, HttpStatus.OK); } // 水果故事已下线或还没创建完 if (!FruitStory.STATUS_ONLINE.equalsIgnoreCase(story.getStatus())) { response.setResult(new Result(Result.FAIL, Result.MSG_ERR_STORY_NOT_ONLINE)); log.debug("response:{}", response); return new ResponseEntity<ShareFruitStoryResponse>(response, HttpStatus.OK); } response.setPageUrl(PictureUrlHelper.genShareStoryUrl(storyId, configService)); response.setPictureUrl(PictureUrlHelper.genPictureUrl( TerminalType.IOS_RETINA, ConfigConstant.FRUIT_MENU_DIR, story .getFruitStoryMenu().getFruitStoryPicUrl(), configService)); response.setIntroduction(story.getFruitStoryMenu().getFruitStoryIntro()); response.setResult(Result.SUCCESS_RESULT); log.debug("response:{}", response); return new ResponseEntity<ShareFruitStoryResponse>(response, HttpStatus.OK); } @RequestMapping(value = "/order", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity<ShareOrderResponse> order( @RequestBody ShareOrderRequest shareOrderRequest, ServletRequest request) { UserAccount userAccount = WebHelper.getCurrentUser(request); log.debug("UserAccount:{}", userAccount); log.debug("Request:{}", shareOrderRequest); ShareOrderResponse response = new ShareOrderResponse(); response.setPageUrl(PictureUrlHelper.genShareOrderUrl( shareOrderRequest.getOrderNumber(), configService)); response.setPictureUrl(PictureUrlHelper .genShareOrderPicUrl(configService)); response.setIntroduction("大家快来看我的订单哦"); response.setResult(Result.SUCCESS_RESULT); log.debug("response:{}", response); return new ResponseEntity<ShareOrderResponse>(response, HttpStatus.OK); } }