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.CashCouponRequest;
import org.xmx0632.deliciousfruit.api.v1.bo.CashCouponResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.ECouponRequest;
import org.xmx0632.deliciousfruit.api.v1.bo.ECouponResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.GiftCardRequest;
import org.xmx0632.deliciousfruit.api.v1.bo.GiftCardResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.OrderResponse.PayByEcoupon;
import org.xmx0632.deliciousfruit.api.v1.bo.Result;
import org.xmx0632.deliciousfruit.api.v1.bo.UserBalanceResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.UserPointResponse;
import org.xmx0632.deliciousfruit.api.v1.helper.WebHelper;
import org.xmx0632.deliciousfruit.entity.UserAccount;
import org.xmx0632.deliciousfruit.erp.ErpApiService;
/**
* 用户资产查询接口 包括: 积分,账户余额,现金券,礼品卡
*
* @author epeolvv
*
*/
@Controller
@RequestMapping(value = "/api/v1/asset/query")
public class UserAssetsQueryApiController {
private static Logger log = LoggerFactory
.getLogger(UserAssetsQueryApiController.class);
@Autowired
private ErpApiService erpApiService;
/**
* 积分查询
*
*/
@RequestMapping(value = "/point", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<UserPointResponse> point(ServletRequest request) {
UserAccount userAccount = WebHelper.getCurrentUser(request);
log.debug("UserAccount:{}", userAccount);
UserPointResponse response = new UserPointResponse();
/*
* ErpCustomer erpCustomer = erpApiService.getCustomerBy(userAccount
* .getCustomerId());
*
* if (erpCustomer == null) {
*
* } response.setPoint(Integer.parseInt(erpCustomer.getIntPoint()));
*/
response.setResult(Result.SUCCESS_RESULT);
response.setPoint(100);
log.debug("response:{}", response);
return new ResponseEntity<UserPointResponse>(response, HttpStatus.OK);
}
/**
* 账户余额查询
*
*/
@RequestMapping(value = "/balance", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<UserBalanceResponse> balance(ServletRequest request) {
UserAccount userAccount = WebHelper.getCurrentUser(request);
log.debug("UserAccount:{}", userAccount);
UserBalanceResponse response = new UserBalanceResponse();
log.debug("userAccount:" + userAccount);
/*
* ErpCustomer erpCustomer = erpApiService.getCustomerBy(userAccount
* .getCustomerId());
*
* if (erpCustomer == null) {
*
* }
*
* response.setBalance(BigDecimal.valueOf(Integer.parseInt(erpCustomer
* .getDecCoin())));
*/
// TODO 测试数据
response.setBalance(BigDecimal.valueOf(100.00));
response.setResult(Result.SUCCESS_RESULT);
log.debug("response:{}", response);
return new ResponseEntity<UserBalanceResponse>(response, HttpStatus.OK);
}
/**
* 现金券查询
*
**/
@RequestMapping(value = "/cashCoupon", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<CashCouponResponse> cashCoupon(
@RequestBody CashCouponRequest cashCouponRequest,
ServletRequest request) {
UserAccount userAccount = WebHelper.getCurrentUser(request);
log.debug("UserAccount:{}", userAccount);
log.debug("Request:{}", cashCouponRequest);
CashCouponResponse response = new CashCouponResponse();
for (String id : cashCouponRequest.getCashCouponIds()) {
CashCouponResponse.CashCoupon cashCoupon = new CashCouponResponse.CashCoupon();
cashCoupon.setId(id);
response.getCashCoupons().add(cashCoupon);
}
response.setResult(Result.SUCCESS_RESULT);
log.debug("response:{}", response);
return new ResponseEntity<CashCouponResponse>(response, HttpStatus.OK);
}
/**
* 现金券查询
*
**/
@RequestMapping(value = "/eCoupon", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<ECouponResponse> eCoupon(
@RequestBody ECouponRequest eCouponRequest, ServletRequest request) {
UserAccount userAccount = WebHelper.getCurrentUser(request);
log.debug("UserAccount:{}", userAccount);
log.debug("Request:{}", eCouponRequest);
ECouponResponse response = new ECouponResponse();
for (String id : eCouponRequest.geteCouponIds()) {
PayByEcoupon payByEcoupon = new PayByEcoupon();
payByEcoupon.setId(id);
payByEcoupon.setAmount(BigDecimal.valueOf(100.00));
response.geteCoupons().add(payByEcoupon);
}
response.setResult(Result.SUCCESS_RESULT);
log.debug("response:{}", response);
return new ResponseEntity<ECouponResponse>(response, HttpStatus.OK);
}
/**
* 礼品卡查询
*
*/
@RequestMapping(value = "/giftCard", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public ResponseEntity<GiftCardResponse> giftCard(
@RequestBody GiftCardRequest giftCardRequest, ServletRequest request) {
UserAccount userAccount = WebHelper.getCurrentUser(request);
log.debug("UserAccount:{}", userAccount);
log.debug("Request:{}", giftCardRequest);
GiftCardResponse response = new GiftCardResponse();
for (GiftCardRequest.CardReq cardReq : giftCardRequest.getGiftCards()) {
GiftCardResponse.GiftCard giftCard = new GiftCardResponse.GiftCard();
giftCard.setId(cardReq.getId());
response.getGiftCards().add(giftCard);
}
response.setResult(Result.SUCCESS_RESULT);
log.debug("response:{}", response);
return new ResponseEntity<GiftCardResponse>(response, HttpStatus.OK);
}
}