package org.xmx0632.deliciousfruit.api.v1;
import java.math.BigDecimal;
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.DeductionByCashCouponRequest;
import org.xmx0632.deliciousfruit.api.v1.bo.DeductionByCashCouponResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.DeductionByGiftCardRequest;
import org.xmx0632.deliciousfruit.api.v1.bo.DeductionByGiftCardResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.DeductionByPointRequest;
import org.xmx0632.deliciousfruit.api.v1.bo.DeductionByPointResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.DeductionFromAccountRequest;
import org.xmx0632.deliciousfruit.api.v1.bo.DeductionFromAccountResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.Result;
import org.xmx0632.deliciousfruit.api.v1.helper.WebHelper;
import org.xmx0632.deliciousfruit.entity.UserAccount;
import org.xmx0632.deliciousfruit.service.ConfigService;
/**
* 抵扣付款接口
*
* @author Jefferson-pengtao
*/
@Controller
@RequestMapping(value = "/api/v1/deduction")
public class DeductionPayApiController {
private static Logger log = LoggerFactory
.getLogger(OrderApiController.class);
@Autowired
private ConfigService configService;
@RequestMapping(value = "/point", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<DeductionByPointResponse> point(
@RequestBody DeductionByPointRequest deductionByPointRequest,
ServletRequest request) {
UserAccount userAccount = WebHelper.getCurrentUser(request);
log.debug("UserAccount:{}", userAccount);
log.debug("Request:{}", deductionByPointRequest);
DeductionByPointResponse response = new DeductionByPointResponse();
response.setTransactionID(deductionByPointRequest.getTransactionID());
response.setPointLeft(100);
response.setResult(Result.SUCCESS_RESULT);
log.debug("response:{}", response);
return new ResponseEntity<DeductionByPointResponse>(response,
HttpStatus.OK);
}
@RequestMapping(value = "/account", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<DeductionFromAccountResponse> account(
@RequestBody DeductionFromAccountRequest deductionFromAccountRequest,
ServletRequest request) {
UserAccount userAccount = WebHelper.getCurrentUser(request);
log.debug("UserAccount:{}", userAccount);
log.debug("Request:{}", deductionFromAccountRequest);
DeductionFromAccountResponse response = new DeductionFromAccountResponse();
response.setTransactionID(deductionFromAccountRequest
.getTransactionID());
response.setBalance(BigDecimal.valueOf(100.00));
response.setResult(Result.SUCCESS_RESULT);
log.debug("response:{}", response);
return new ResponseEntity<DeductionFromAccountResponse>(response,
HttpStatus.OK);
}
@RequestMapping(value = "/cashCoupon", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<DeductionByCashCouponResponse> cashCoupon(
@RequestBody DeductionByCashCouponRequest deductionByCashCouponRequest,
ServletRequest request) {
UserAccount userAccount = WebHelper.getCurrentUser(request);
log.debug("UserAccount:{}", userAccount);
log.debug("Request:{}", deductionByCashCouponRequest);
DeductionByCashCouponResponse response = new DeductionByCashCouponResponse();
response.setTransactionID(deductionByCashCouponRequest
.getTransactionID());
response.setPayLeftTimes(2);
response.setResult(Result.SUCCESS_RESULT);
log.debug("response:{}", response);
return new ResponseEntity<DeductionByCashCouponResponse>(response,
HttpStatus.OK);
}
@RequestMapping(value = "/giftCard", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<DeductionByGiftCardResponse> giftCard(
@RequestBody DeductionByGiftCardRequest deductionByGiftCardRequest,
ServletRequest request) {
UserAccount userAccount = WebHelper.getCurrentUser(request);
log.debug("UserAccount:{}", userAccount);
log.debug("Request:{}", deductionByGiftCardRequest);
DeductionByGiftCardResponse response = new DeductionByGiftCardResponse();
response.setTransactionID(deductionByGiftCardRequest.getTransactionID());
response.setBalance(BigDecimal.valueOf(50.00));
response.setResult(Result.SUCCESS_RESULT);
log.debug("response:{}", response);
return new ResponseEntity<DeductionByGiftCardResponse>(response,
HttpStatus.OK);
}
}