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);
}
}