提交 ee67e560 authored 作者: zhengfg's avatar zhengfg

修改优惠券使用方式

上级 30110b6d
......@@ -31,14 +31,14 @@ public class TbCfOrderController {
@ApiOperation("用户结算,返回订单")
@GetMapping("/settle")
public Result<TbCfOrderVo> settleAccount() throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.settleAccount();
public Result<TbCfOrderVo> settleAccount(String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.settleAccount(iss_coupon_id);
}
@ApiOperation("用户确定下单")
@PostMapping("/place")
public Result placeOrder(@ApiParam("订单详情") @RequestBody TbCfOrderVo tbCfOrderVo) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.placeOrder(tbCfOrderVo);
public Result placeOrder(@ApiParam("订单详情") @RequestBody TbCfOrderVo tbCfOrderVo,String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.placeOrder(tbCfOrderVo,iss_coupon_id);
}
/**
......
......@@ -47,4 +47,5 @@ public interface TbCfOrderDao extends BaseDao<TbCfOrderEntity> {
List<TbCfItemShippedEntity> getDeliveryList(Date beginDate, Date endDate);
OrderEntity getOrder(String orderId);
TbCfCouponEntity queryCouponPrice(String iss_coupon_id);
}
......@@ -81,7 +81,7 @@ public interface TbCfOrderService {
*
* @return
*/
Result settleAccount() throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
Result settleAccount(String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
/**
* 用户下单
......@@ -89,7 +89,7 @@ public interface TbCfOrderService {
* @param tbCfOrderVo
* @return
*/
Result placeOrder(TbCfOrderVo tbCfOrderVo) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
Result placeOrder(TbCfOrderVo tbCfOrderVo,String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
/**
* 获取用户订单列表
......
......@@ -7,10 +7,7 @@ import com.diaoyun.zion.chinafrica.entity.*;
import com.diaoyun.zion.chinafrica.enums.CouponCategoryEnum;
import com.diaoyun.zion.chinafrica.enums.DeliveryStatusEnum;
import com.diaoyun.zion.chinafrica.enums.OrderStatusEnum;
import com.diaoyun.zion.chinafrica.service.SpiderService;
import com.diaoyun.zion.chinafrica.service.TbCfCouponService;
import com.diaoyun.zion.chinafrica.service.TbCfFeeService;
import com.diaoyun.zion.chinafrica.service.TbCfOrderService;
import com.diaoyun.zion.chinafrica.service.*;
import com.diaoyun.zion.chinafrica.vo.TbCfCartItemDetailVo;
import com.diaoyun.zion.chinafrica.vo.TbCfFinanceVo;
import com.diaoyun.zion.chinafrica.vo.TbCfOrderVo;
......@@ -103,6 +100,8 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
@Autowired
private HttpServletRequest request; //自动注入request
@Autowired
private TbCfIssueCouponService tbCfIssueCouponService; //发放表
@Override
public TbCfOrderEntity queryObject(String orderId) {
......@@ -140,27 +139,36 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
return tbCfOrderDao.deleteBatch(orderIds);
}
@Override
public Result settleAccount() throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
/**
* 用户计算1
* @param iss_coupon_id
* @return
* @throws IOException
* @throws URISyntaxException
* @throws ExecutionException
* @throws InterruptedException
* @throws TimeoutException
*/
@Override
public Result settleAccount(String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
Result<TbCfOrderVo> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
//获取购物车已勾选 商品
List<TbCfCartItemDetailVo> tbCfCartItemDetailList = tbCfItemDetailDao.getCartItemList(tbCfUserInfoVo.getUserId(), StateConstant.VALID);
if (tbCfCartItemDetailList.isEmpty()) {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
} else {
//获取订单数据
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList);
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList,iss_coupon_id);
result.setData(tbCfOrder).setMessage("Order pending settlement");
}
return result;
}
@Override
public Result placeOrder(TbCfOrderVo pageOrder) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
public Result placeOrder(TbCfOrderVo pageOrder,String iss_coupon_id ) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
Result<TbCfOrderVo> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
......@@ -172,7 +180,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
} else {
//获取下单的订单数据
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList);
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList,iss_coupon_id);
//持久化订单数据
TbCfOrderEntity tbCfOrderEntity = new TbCfOrderEntity();
BeanUtils.copyProperties(definiteOrder, tbCfOrderEntity);
......@@ -267,7 +275,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
TbCfFinanceEntity tbCfFinance = createFinance(charge, tbCfOrderVo);
TbCfFinanceVo tbCfFinanceVo = new TbCfFinanceVo();
BeanUtils.copyProperties(tbCfFinance, tbCfFinanceVo);
//赠送购物返券
/* //赠送购物返券
List<TbCfCouponEntity> couponList = tbCfCouponDao.getCouponByCategory(CouponCategoryEnum.SHOP.getValue(), new Date());
if (!couponList.isEmpty()) {
//领取优惠券
......@@ -275,7 +283,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
if (couponResult.getCode() == ResultCodeEnum.SUCCESS.getCode()) {
tbCfFinanceVo.setCouponId(couponList.get(0).getCouponId());
}
}
}*/
result.setData(tbCfFinanceVo);
} else {
result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode()).setMessage("Payment failed!");
......@@ -571,9 +579,9 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws IOException
* @throws URISyntaxException
*/
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList) {
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String iss_coupon_id) {
TbCfOrderVo definiteOrder = getGenericOrder(tbCfCartItemDetailList);
//获取可以使用的优惠券,后续还有判断此订单是否可以使用
/*//获取可以使用的优惠券,后续还有判断此订单是否可以使用
List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date());
if (!tbCfCouponList.isEmpty()) {
//分开可使用和不可使用优惠券
......@@ -589,10 +597,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
definiteOrder.setCouponPrice(usableCoupon.getDeductAmount());
}
}
}
}*/
//计算实际需要付款
countRealityPay(definiteOrder);
countRealityPay(definiteOrder,iss_coupon_id);
//获取订单地址
String deliveryAddressId = pageOrder.getDeliveryAddressId();
Validator.NOT_BLANK.validate("address", deliveryAddressId);
......@@ -686,11 +694,22 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
return result;
}
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
/**
* 用户计算价格2
* @param tbCfUserInfoVo
* @param tbCfCartItemDetailList
* @param iss_coupon_id
* @return
* @throws IOException
* @throws URISyntaxException
* @throws ExecutionException
* @throws InterruptedException
* @throws TimeoutException
*/
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
TbCfOrderVo tbCfOrder = getGenericOrder(tbCfCartItemDetailList);
//获取可以使用的优惠券,后续还有判断此订单是否可以使用
List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date());
/* //获取可以使用的优惠券,后续还有判断此订单是否可以使用
List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date());
if (!tbCfCouponList.isEmpty()) {
//分开可使用和不可使用优惠券
......@@ -699,10 +718,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//设置默认的优惠券
setDefaultCoupon(tbCfOrder);
}
}
}*/
//计算实际需要付款
countRealityPay(tbCfOrder);
countRealityPay(tbCfOrder,iss_coupon_id);
tbCfOrder.setUserId(tbCfUserInfoVo.getUserId());
tbCfOrder.setUserName(tbCfUserInfoVo.getNick());
......@@ -714,7 +733,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
*
* @param tbCfOrder
*/
private void countRealityPay(TbCfOrderVo tbCfOrder) {
private void countRealityPay(TbCfOrderVo tbCfOrder,String iss_coupon_id) {
TbCfIssueCouponEntity coupon = tbCfIssueCouponService.queryObject(iss_coupon_id);
TbCfCouponEntity couponEntity = tbCfOrderDao.queryCouponPrice(iss_coupon_id);
tbCfOrder.setCouponPrice(couponEntity.getDeductAmount());
BigDecimal couponPrice = tbCfOrder.getCouponPrice();
//实际需要支付款项
if (couponPrice != null) {
......@@ -730,7 +752,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
}
/**
* 分开可使用和不可使用优惠券
* 分开可使用和不可使用优惠券(暂时没用)
*
* @param tbCfOrder
* @param tbCfCouponList
......
......@@ -136,7 +136,9 @@
AND name LIKE concat('%',#{name},'%')
</if>
</select>
<select id="queryCouponPrice" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCouponEntity">
select t2.* from tb_cf_issue_coupon t1 left join tb_cf_coupon t2 on t2.coupon_id=t1.coupon_id where t1.coupon_issuetable_id=#{iss_coupon_id}
</select>
<insert id="save" parameterType="com.diaoyun.zion.chinafrica.entity.TbCfOrderEntity">
insert into tb_cf_order(
`order_id`,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论